Skip to main content

resolve_required_stock_ids

Function resolve_required_stock_ids 

Source
pub fn resolve_required_stock_ids<F>(
    parsed: &ParsedSymbolList,
    resolver: F,
) -> Result<Vec<(Security, u64)>, String>
where F: FnMut(&Security) -> Option<u64>,
Expand description

把已校验的列表整体解析到 (Security, stock_id) tuple 列表。

整体语义:任一 symbol 在 resolver(通常是 StaticDataCache)里 cache miss 或解析为 stock_id=0 → 整批 reject(不 partial,不 silent, 不 fallback)。caller 必须调用 parse_required_symbol_list 拿到 ParsedSymbolList,本函数不再校验空列表 / market=0 / code=“”.

resolver 闭包是抽象层 — caller 传入 |sec| static_cache .get_security_info_trigger_refresh(&format!("{}_{}", sec.market, sec.code)) .map(|info| info.stock_id). 这样本 helper 不依赖 futu-cache(保持 futu-qot crate 边界清晰),同时 caller 可以注入 mock resolver 单测。

失败信息含具体 missing symbol 列表,用户能立刻判断哪个 symbol 没在 stock_list cache 里(典型场景:海外期货 cache 未刷新 / symbol 拼写错 / market 误传)。