Skip to main content

futu_backend/trade_query/orders/
query_fills.rs

1//! trade_query/orders/query_fills — public current order fill-list query wrappers.
2//! (v1.4.110 CC Batch J: 拆自 orders.rs L667-780 + 889-1072)
3
4use futu_cache::trd_cache::TrdCache;
5use futu_core::error::Result;
6
7use crate::conn::BackendConn;
8
9use super::fill_list::query_order_fills_inner;
10use super::types::{OrderFillInfo, QueryErrorMode};
11
12pub async fn query_order_fills(
13    backend: &BackendConn,
14    acc_id: u64,
15    trd_cache: &TrdCache,
16) -> Result<Vec<OrderFillInfo>> {
17    query_order_fills_inner(backend, acc_id, trd_cache, QueryErrorMode::LenientCacheRead).await
18}
19
20/// Startup necessary-data read. A malformed, partial, or backend-error
21/// response must not be converted into an authoritative empty snapshot.
22pub async fn query_order_fills_for_startup(
23    backend: &BackendConn,
24    acc_id: u64,
25    trd_cache: &TrdCache,
26) -> Result<Vec<OrderFillInfo>> {
27    query_order_fills_inner(
28        backend,
29        acc_id,
30        trd_cache,
31        QueryErrorMode::StrictPushRefresh,
32    )
33    .await
34}
35
36/// v1.4.106 codex 0932 F3 [P2]: strict 版 query_order_fills for push-refresh path.
37///
38/// decode 失败 / `result != 0` → 返 `Err`, retry_with_exp_backoff 触发 retry.
39/// 4 attempts 全失败 → caller 应 record F2 exhaust + log warn (F4 wired in
40/// dispatcher, see codex 0932 F4). v1.4.106 codex 0955 F4: 同样接 `trd_cache`.
41pub async fn query_order_fills_strict_for_push_refresh(
42    backend: &BackendConn,
43    acc_id: u64,
44    trd_cache: &TrdCache,
45) -> Result<Vec<OrderFillInfo>> {
46    query_order_fills_inner(
47        backend,
48        acc_id,
49        trd_cache,
50        QueryErrorMode::StrictPushRefresh,
51    )
52    .await
53}