#[repr(C)]pub struct OrderBook_API(/* private fields */);
Expand description
C compatible Foreign Function Interface (FFI) for an underlying OrderBook
.
This struct wraps OrderBook
in a way that makes it compatible with C function
calls, enabling interaction with OrderBook
in a C environment.
It implements the Deref
trait, allowing instances of OrderBook_API
to be
dereferenced to OrderBook
, providing access to OrderBook
’s methods without
having to manually access the underlying OrderBook
instance.
Methods from Deref<Target = OrderBook>§
Sourcepub fn add(
&mut self,
order: BookOrder,
flags: u8,
sequence: u64,
ts_event: UnixNanos,
)
pub fn add( &mut self, order: BookOrder, flags: u8, sequence: u64, ts_event: UnixNanos, )
Adds an order to the book after preprocessing based on book type.
Sourcepub fn update(
&mut self,
order: BookOrder,
flags: u8,
sequence: u64,
ts_event: UnixNanos,
)
pub fn update( &mut self, order: BookOrder, flags: u8, sequence: u64, ts_event: UnixNanos, )
Updates an existing order in the book after preprocessing based on book type.
Sourcepub fn delete(
&mut self,
order: BookOrder,
flags: u8,
sequence: u64,
ts_event: UnixNanos,
)
pub fn delete( &mut self, order: BookOrder, flags: u8, sequence: u64, ts_event: UnixNanos, )
Deletes an order from the book after preprocessing based on book type.
Sourcepub fn clear(&mut self, sequence: u64, ts_event: UnixNanos)
pub fn clear(&mut self, sequence: u64, ts_event: UnixNanos)
Clears all orders from both sides of the book.
Sourcepub fn clear_bids(&mut self, sequence: u64, ts_event: UnixNanos)
pub fn clear_bids(&mut self, sequence: u64, ts_event: UnixNanos)
Clears all bid orders from the book.
Sourcepub fn clear_asks(&mut self, sequence: u64, ts_event: UnixNanos)
pub fn clear_asks(&mut self, sequence: u64, ts_event: UnixNanos)
Clears all ask orders from the book.
Sourcepub fn apply_delta(&mut self, delta: &OrderBookDelta)
pub fn apply_delta(&mut self, delta: &OrderBookDelta)
Applies a single order book delta operation.
Sourcepub fn apply_deltas(&mut self, deltas: &OrderBookDeltas)
pub fn apply_deltas(&mut self, deltas: &OrderBookDeltas)
Applies multiple order book delta operations.
Sourcepub fn apply_depth(&mut self, depth: &OrderBookDepth10)
pub fn apply_depth(&mut self, depth: &OrderBookDepth10)
Replaces current book state with a depth snapshot.
Sourcepub fn bids(&self, depth: Option<usize>) -> impl Iterator<Item = &BookLevel>
pub fn bids(&self, depth: Option<usize>) -> impl Iterator<Item = &BookLevel>
Returns an iterator over bid price levels.
Sourcepub fn asks(&self, depth: Option<usize>) -> impl Iterator<Item = &BookLevel>
pub fn asks(&self, depth: Option<usize>) -> impl Iterator<Item = &BookLevel>
Returns an iterator over ask price levels.
Sourcepub fn bids_as_map(&self, depth: Option<usize>) -> IndexMap<Decimal, Decimal>
pub fn bids_as_map(&self, depth: Option<usize>) -> IndexMap<Decimal, Decimal>
Returns bid price levels as a map of price to size.
Sourcepub fn asks_as_map(&self, depth: Option<usize>) -> IndexMap<Decimal, Decimal>
pub fn asks_as_map(&self, depth: Option<usize>) -> IndexMap<Decimal, Decimal>
Returns ask price levels as a map of price to size.
Sourcepub fn group_bids(
&self,
group_size: Decimal,
depth: Option<usize>,
) -> IndexMap<Decimal, Decimal>
pub fn group_bids( &self, group_size: Decimal, depth: Option<usize>, ) -> IndexMap<Decimal, Decimal>
Groups bid levels by price, up to specified depth.
Sourcepub fn group_asks(
&self,
group_size: Decimal,
depth: Option<usize>,
) -> IndexMap<Decimal, Decimal>
pub fn group_asks( &self, group_size: Decimal, depth: Option<usize>, ) -> IndexMap<Decimal, Decimal>
Groups ask levels by price, up to specified depth.
Sourcepub fn best_bid_price(&self) -> Option<Price>
pub fn best_bid_price(&self) -> Option<Price>
Returns the best bid price if available.
Sourcepub fn best_ask_price(&self) -> Option<Price>
pub fn best_ask_price(&self) -> Option<Price>
Returns the best ask price if available.
Sourcepub fn best_bid_size(&self) -> Option<Quantity>
pub fn best_bid_size(&self) -> Option<Quantity>
Returns the size at the best bid price if available.
Sourcepub fn best_ask_size(&self) -> Option<Quantity>
pub fn best_ask_size(&self) -> Option<Quantity>
Returns the size at the best ask price if available.
Sourcepub fn spread(&self) -> Option<f64>
pub fn spread(&self) -> Option<f64>
Returns the spread between best ask and bid prices if both exist.
Sourcepub fn midpoint(&self) -> Option<f64>
pub fn midpoint(&self) -> Option<f64>
Returns the midpoint between best ask and bid prices if both exist.
Sourcepub fn get_avg_px_for_quantity(
&self,
qty: Quantity,
order_side: OrderSide,
) -> f64
pub fn get_avg_px_for_quantity( &self, qty: Quantity, order_side: OrderSide, ) -> f64
Calculates the average price to fill the specified quantity.
Sourcepub fn get_avg_px_qty_for_exposure(
&self,
target_exposure: Quantity,
order_side: OrderSide,
) -> (f64, f64, f64)
pub fn get_avg_px_qty_for_exposure( &self, target_exposure: Quantity, order_side: OrderSide, ) -> (f64, f64, f64)
Calculates average price and quantity for target exposure. Returns (price, quantity, executed_exposure).
Sourcepub fn get_quantity_for_price(&self, price: Price, order_side: OrderSide) -> f64
pub fn get_quantity_for_price(&self, price: Price, order_side: OrderSide) -> f64
Returns the total quantity available at specified price level.
Sourcepub fn simulate_fills(&self, order: &BookOrder) -> Vec<(Price, Quantity)>
pub fn simulate_fills(&self, order: &BookOrder) -> Vec<(Price, Quantity)>
Simulates fills for an order, returning list of (price, quantity) tuples.
Sourcepub fn pprint(&self, num_levels: usize) -> String
pub fn pprint(&self, num_levels: usize) -> String
Return a formatted string representation of the order book.
Sourcepub fn update_quote_tick(
&mut self,
quote: &QuoteTick,
) -> Result<(), InvalidBookOperation>
pub fn update_quote_tick( &mut self, quote: &QuoteTick, ) -> Result<(), InvalidBookOperation>
Updates L1 book state from a quote tick. Only valid for L1_MBP book type.
Sourcepub fn update_trade_tick(
&mut self,
trade: &TradeTick,
) -> Result<(), InvalidBookOperation>
pub fn update_trade_tick( &mut self, trade: &TradeTick, ) -> Result<(), InvalidBookOperation>
Updates L1 book state from a trade tick. Only valid for L1_MBP book type.