pub struct EngineScope<'a> { /* private fields */ }Expand description
Основные пагинаторы и типы контекстов блокирующего API.
Блокирующие HTTP-клиенты ISS API.
Блокирующий владеющий контекст для engine.
Implementations§
Source§impl<'a> OwnedEngineScope<'a>
impl<'a> OwnedEngineScope<'a>
Sourcepub fn engine(&self) -> &EngineName
pub fn engine(&self) -> &EngineName
Имя торгового движка текущего контекста.
Examples found in repository?
examples/actual_indexes_dump.rs (line 128)
116fn load_security_snapshots(
117 moex_client: &Client,
118 wanted_secids: &HashSet<SecId>,
119) -> Result<(HashMap<SecId, ResolvedSnapshot>, Vec<SecId>), ExampleError> {
120 let stock_scope = moex_client
121 .stock()
122 .expect("stock engine literal must be valid");
123 let markets = with_retry(retry_policy(), || stock_scope.markets())?;
124 let mut snapshots = HashMap::with_capacity(wanted_secids.len());
125
126 'markets: for market in markets {
127 let boards = with_retry(retry_policy(), || {
128 moex_client.boards(stock_scope.engine(), market.name())
129 })?;
130
131 for board in boards.into_iter().filter(|board| board.is_traded()) {
132 let board_snapshots = load_board_snapshots_all_pages(
133 moex_client,
134 stock_scope.engine().as_str(),
135 market.name().as_str(),
136 board.boardid().as_str(),
137 )?;
138
139 for snapshot in board_snapshots {
140 if !wanted_secids.contains(snapshot.secid()) {
141 continue;
142 }
143
144 snapshots
145 .entry(snapshot.secid().clone())
146 .or_insert_with(|| ResolvedSnapshot {
147 market: market.name().as_str().to_owned().into_boxed_str(),
148 board: board.boardid().as_str().to_owned().into_boxed_str(),
149 lot_size: snapshot.lot_size(),
150 last: snapshot.last(),
151 });
152 }
153
154 if snapshots.len() == wanted_secids.len() {
155 break 'markets;
156 }
157 }
158 }
159
160 let missing_mapping = wanted_secids
161 .iter()
162 .filter(|secid| !snapshots.contains_key(*secid))
163 .cloned()
164 .collect();
165
166 Ok((snapshots, missing_mapping))
167}Sourcepub fn markets(&self) -> Result<Vec<Market>, MoexError>
pub fn markets(&self) -> Result<Vec<Market>, MoexError>
Получить доступные рынки (markets) для текущего движка.
Examples found in repository?
examples/actual_indexes_dump.rs (line 123)
116fn load_security_snapshots(
117 moex_client: &Client,
118 wanted_secids: &HashSet<SecId>,
119) -> Result<(HashMap<SecId, ResolvedSnapshot>, Vec<SecId>), ExampleError> {
120 let stock_scope = moex_client
121 .stock()
122 .expect("stock engine literal must be valid");
123 let markets = with_retry(retry_policy(), || stock_scope.markets())?;
124 let mut snapshots = HashMap::with_capacity(wanted_secids.len());
125
126 'markets: for market in markets {
127 let boards = with_retry(retry_policy(), || {
128 moex_client.boards(stock_scope.engine(), market.name())
129 })?;
130
131 for board in boards.into_iter().filter(|board| board.is_traded()) {
132 let board_snapshots = load_board_snapshots_all_pages(
133 moex_client,
134 stock_scope.engine().as_str(),
135 market.name().as_str(),
136 board.boardid().as_str(),
137 )?;
138
139 for snapshot in board_snapshots {
140 if !wanted_secids.contains(snapshot.secid()) {
141 continue;
142 }
143
144 snapshots
145 .entry(snapshot.secid().clone())
146 .or_insert_with(|| ResolvedSnapshot {
147 market: market.name().as_str().to_owned().into_boxed_str(),
148 board: board.boardid().as_str().to_owned().into_boxed_str(),
149 lot_size: snapshot.lot_size(),
150 last: snapshot.last(),
151 });
152 }
153
154 if snapshots.len() == wanted_secids.len() {
155 break 'markets;
156 }
157 }
158 }
159
160 let missing_mapping = wanted_secids
161 .iter()
162 .filter(|secid| !snapshots.contains_key(*secid))
163 .cloned()
164 .collect();
165
166 Ok((snapshots, missing_mapping))
167}Sourcepub fn turnovers(&self) -> Result<Vec<Turnover>, MoexError>
pub fn turnovers(&self) -> Result<Vec<Turnover>, MoexError>
Получить обороты (turnovers) для текущего движка.
Sourcepub fn market<M>(
self,
market: M,
) -> Result<OwnedMarketScope<'a>, ParseMarketNameError>
pub fn market<M>( self, market: M, ) -> Result<OwnedMarketScope<'a>, ParseMarketNameError>
Зафиксировать рынок внутри текущего engine.
Сокращение для часто используемого рынка shares.
Trait Implementations§
Source§impl<'a> Clone for OwnedEngineScope<'a>
impl<'a> Clone for OwnedEngineScope<'a>
Source§fn clone(&self) -> OwnedEngineScope<'a>
fn clone(&self) -> OwnedEngineScope<'a>
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl<'a> !RefUnwindSafe for OwnedEngineScope<'a>
impl<'a> !UnwindSafe for OwnedEngineScope<'a>
impl<'a> Freeze for OwnedEngineScope<'a>
impl<'a> Send for OwnedEngineScope<'a>
impl<'a> Sync for OwnedEngineScope<'a>
impl<'a> Unpin for OwnedEngineScope<'a>
impl<'a> UnsafeUnpin for OwnedEngineScope<'a>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more