pub struct EngineScope<'a> { /* private fields */ }Expand description
Основные paginator-ы и scope-типы блокирующего API.
Блокирующие HTTP-клиенты ISS API.
Blocking scope по engine, владеющий значением.
Implementations§
Source§impl<'a> OwnedEngineScope<'a>
impl<'a> OwnedEngineScope<'a>
Sourcepub fn engine(&self) -> &EngineName
pub fn engine(&self) -> &EngineName
Имя торгового движка текущего owning-scope.
Examples found in repository?
examples/actual_indexes_dump.rs (line 112)
100fn load_security_snapshots(
101 moex_client: &Client,
102 wanted_secids: &HashSet<SecId>,
103) -> Result<(HashMap<SecId, ResolvedSnapshot>, Vec<SecId>), ExampleError> {
104 let stock_scope = moex_client
105 .stock()
106 .expect("stock engine literal must be valid");
107 let markets = with_retry(retry_policy(), || stock_scope.markets())?;
108 let mut snapshots = HashMap::with_capacity(wanted_secids.len());
109
110 'markets: for market in markets {
111 let boards = with_retry(retry_policy(), || {
112 moex_client.boards(stock_scope.engine(), market.name())
113 })?;
114
115 for board in boards.into_iter().filter(|board| board.is_traded()) {
116 let board_snapshots = load_board_snapshots_all_pages(
117 moex_client,
118 stock_scope.engine().as_str(),
119 market.name().as_str(),
120 board.boardid().as_str(),
121 )?;
122
123 for snapshot in board_snapshots {
124 if !wanted_secids.contains(snapshot.secid()) {
125 continue;
126 }
127
128 snapshots
129 .entry(snapshot.secid().clone())
130 .or_insert_with(|| ResolvedSnapshot {
131 market: market.name().as_str().to_owned().into_boxed_str(),
132 board: board.boardid().as_str().to_owned().into_boxed_str(),
133 lot_size: snapshot.lot_size(),
134 last: snapshot.last(),
135 });
136 }
137
138 if snapshots.len() == wanted_secids.len() {
139 break 'markets;
140 }
141 }
142 }
143
144 let missing_mapping = wanted_secids
145 .iter()
146 .filter(|secid| !snapshots.contains_key(*secid))
147 .cloned()
148 .collect();
149
150 Ok((snapshots, missing_mapping))
151}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 107)
100fn load_security_snapshots(
101 moex_client: &Client,
102 wanted_secids: &HashSet<SecId>,
103) -> Result<(HashMap<SecId, ResolvedSnapshot>, Vec<SecId>), ExampleError> {
104 let stock_scope = moex_client
105 .stock()
106 .expect("stock engine literal must be valid");
107 let markets = with_retry(retry_policy(), || stock_scope.markets())?;
108 let mut snapshots = HashMap::with_capacity(wanted_secids.len());
109
110 'markets: for market in markets {
111 let boards = with_retry(retry_policy(), || {
112 moex_client.boards(stock_scope.engine(), market.name())
113 })?;
114
115 for board in boards.into_iter().filter(|board| board.is_traded()) {
116 let board_snapshots = load_board_snapshots_all_pages(
117 moex_client,
118 stock_scope.engine().as_str(),
119 market.name().as_str(),
120 board.boardid().as_str(),
121 )?;
122
123 for snapshot in board_snapshots {
124 if !wanted_secids.contains(snapshot.secid()) {
125 continue;
126 }
127
128 snapshots
129 .entry(snapshot.secid().clone())
130 .or_insert_with(|| ResolvedSnapshot {
131 market: market.name().as_str().to_owned().into_boxed_str(),
132 board: board.boardid().as_str().to_owned().into_boxed_str(),
133 lot_size: snapshot.lot_size(),
134 last: snapshot.last(),
135 });
136 }
137
138 if snapshots.len() == wanted_secids.len() {
139 break 'markets;
140 }
141 }
142 }
143
144 let missing_mapping = wanted_secids
145 .iter()
146 .filter(|secid| !snapshots.contains_key(*secid))
147 .cloned()
148 .collect();
149
150 Ok((snapshots, missing_mapping))
151}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.
Shortcut для часто используемого рынка 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 · 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> Freeze for OwnedEngineScope<'a>
impl<'a> !RefUnwindSafe 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>
impl<'a> !UnwindSafe 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