pub struct Board { /* private fields */ }Expand description
Режим торгов MOEX (boards).
Implementations§
Source§impl Board
impl Board
Sourcepub fn try_new(
id: i64,
board_group_id: i64,
boardid: String,
title: String,
is_traded: i64,
) -> Result<Self, ParseBoardError>
pub fn try_new( id: i64, board_group_id: i64, boardid: String, title: String, is_traded: i64, ) -> Result<Self, ParseBoardError>
Построить режим торгов из wire-значений ISS с валидацией инвариантов.
Sourcepub fn board_group_id(&self) -> u32
pub fn board_group_id(&self) -> u32
Идентификатор группы board.
Sourcepub fn boardid(&self) -> &BoardId
pub fn boardid(&self) -> &BoardId
Символьный идентификатор режима торгов (boardid).
Examples found in repository?
examples/actual_indexes_dump.rs (line 136)
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 is_traded(&self) -> bool
pub fn is_traded(&self) -> bool
Признак, что режим предназначен для торгов (1 в ISS).
Examples found in repository?
examples/actual_indexes_dump.rs (line 131)
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}Trait Implementations§
impl Eq for Board
impl StructuralPartialEq for Board
Auto Trait Implementations§
impl Freeze for Board
impl RefUnwindSafe for Board
impl Send for Board
impl Sync for Board
impl Unpin for Board
impl UnsafeUnpin for Board
impl UnwindSafe for Board
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