Skip to main content

futu_cache/static_data/
readiness.rs

1pub use futu_domain_static_data::StaticDataReadiness;
2use futu_domain_static_data::{StockListSyncFacts, stock_list_readiness_for_facts};
3
4#[derive(Debug, Clone, PartialEq, Eq)]
5pub struct StockListSyncStatus {
6    pub first_sync_done: bool,
7    pub started_total: u64,
8    pub finished_total: u64,
9    pub failed_total: u64,
10    pub recoverable_retry_total: u64,
11    pub zero_delta_total: u64,
12    pub converged: bool,
13    pub last_version: u64,
14    pub last_total_stocks: u64,
15    pub last_cached_count: u64,
16    pub last_finished_ms: Option<u64>,
17}
18
19impl StockListSyncStatus {
20    #[must_use]
21    pub fn readiness_for_security_count(&self, security_count: usize) -> StaticDataReadiness {
22        stock_list_readiness_for_facts(&self.domain_facts(), security_count)
23    }
24
25    #[must_use]
26    pub fn domain_facts(&self) -> StockListSyncFacts {
27        StockListSyncFacts {
28            first_sync_done: self.first_sync_done,
29            started_total: self.started_total,
30            finished_total: self.finished_total,
31            failed_total: self.failed_total,
32            recoverable_retry_total: self.recoverable_retry_total,
33            converged: self.converged,
34        }
35    }
36}