pub struct OrderMatchingCore {
pub instrument_id: InstrumentId,
pub price_increment: Price,
pub bid: Option<Price>,
pub ask: Option<Price>,
pub last: Option<Price>,
pub is_bid_initialized: bool,
pub is_ask_initialized: bool,
pub is_last_initialized: bool,
/* private fields */
}
Expand description
A generic order matching core.
Fields§
§instrument_id: InstrumentId
The instrument ID for the matching core.
price_increment: Price
The price increment for the matching core.
bid: Option<Price>
The current bid price for the matching core.
ask: Option<Price>
The current ask price for the matching core.
last: Option<Price>
The last price for the matching core.
is_bid_initialized: bool
§is_ask_initialized: bool
§is_last_initialized: bool
Implementations§
Source§impl OrderMatchingCore
impl OrderMatchingCore
pub const fn new( instrument_id: InstrumentId, price_increment: Price, trigger_stop_order: Option<ShareableTriggerStopOrderHandler>, fill_market_order: Option<ShareableFillMarketOrderHandler>, fill_limit_order: Option<ShareableFillLimitOrderHandler>, ) -> Self
pub fn set_fill_limit_order_handler( &mut self, handler: ShareableFillLimitOrderHandler, )
pub fn set_trigger_stop_order_handler( &mut self, handler: ShareableTriggerStopOrderHandler, )
pub fn set_fill_market_order_handler( &mut self, handler: ShareableFillMarketOrderHandler, )
pub const fn price_precision(&self) -> u8
pub fn get_order( &self, client_order_id: ClientOrderId, ) -> Option<&PassiveOrderAny>
pub const fn get_orders_bid(&self) -> &[PassiveOrderAny]
pub const fn get_orders_ask(&self) -> &[PassiveOrderAny]
pub fn get_orders(&self) -> Vec<PassiveOrderAny>
pub fn order_exists(&self, client_order_id: ClientOrderId) -> bool
pub const fn set_last_raw(&mut self, last: Price)
pub const fn set_bid_raw(&mut self, bid: Price)
pub const fn set_ask_raw(&mut self, ask: Price)
pub fn reset(&mut self)
Sourcepub fn add_order(&mut self, order: PassiveOrderAny) -> Result<(), OrderError>
pub fn add_order(&mut self, order: PassiveOrderAny) -> Result<(), OrderError>
Adds a passive order to the matching core.
§Errors
Returns an [OrderError::NotFound
] if the order cannot be added.
Sourcepub fn delete_order(
&mut self,
order: &PassiveOrderAny,
) -> Result<(), OrderError>
pub fn delete_order( &mut self, order: &PassiveOrderAny, ) -> Result<(), OrderError>
Deletes a passive order from the matching core.
§Errors
Returns an [OrderError::NotFound
] if the order is not present.
pub fn iterate(&mut self)
pub fn iterate_bids(&mut self)
pub fn iterate_asks(&mut self)
pub fn match_order(&mut self, order: &PassiveOrderAny, _initial: bool)
pub fn match_limit_order(&mut self, order: &LimitOrderAny)
pub fn match_stop_order(&mut self, order: &StopOrderAny)
pub fn is_limit_matched(&self, side: OrderSideSpecified, price: Price) -> bool
pub fn is_stop_matched(&self, side: OrderSideSpecified, price: Price) -> bool
pub fn is_touch_triggered( &self, side: OrderSideSpecified, trigger_price: Price, ) -> bool
Trait Implementations§
Source§impl Clone for OrderMatchingCore
impl Clone for OrderMatchingCore
Source§fn clone(&self) -> OrderMatchingCore
fn clone(&self) -> OrderMatchingCore
Returns a duplicate of the value. Read more
1.0.0 · Source§const fn clone_from(&mut self, source: &Self)
const fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moreAuto Trait Implementations§
impl Freeze for OrderMatchingCore
impl !RefUnwindSafe for OrderMatchingCore
impl !Send for OrderMatchingCore
impl !Sync for OrderMatchingCore
impl Unpin for OrderMatchingCore
impl !UnwindSafe for OrderMatchingCore
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