#[repr(C)]pub struct BookSide {
pub roots: [OrderTreeRoot; 2],
pub reserved_roots: [OrderTreeRoot; 4],
pub reserved: [u8; 256],
pub nodes: OrderTreeNodes,
}
Fields
roots: [OrderTreeRoot; 2]
reserved_roots: [OrderTreeRoot; 4]
reserved: [u8; 256]
nodes: OrderTreeNodes
Implementations
sourceimpl BookSide
impl BookSide
sourcepub fn iter_valid(
&self,
now_ts: u64,
oracle_price_lots: i64
) -> impl Iterator<Item = BookSideIterItem<'_>>
pub fn iter_valid(
&self,
now_ts: u64,
oracle_price_lots: i64
) -> impl Iterator<Item = BookSideIterItem<'_>>
Iterate over all entries in the book filtering out invalid orders
smallest to highest for asks highest to smallest for bids
sourcepub fn iter_all_including_invalid(
&self,
now_ts: u64,
oracle_price_lots: i64
) -> BookSideIter<'_>ⓘNotable traits for BookSideIter<'a>impl<'a> Iterator for BookSideIter<'a> type Item = BookSideIterItem<'a>;
pub fn iter_all_including_invalid(
&self,
now_ts: u64,
oracle_price_lots: i64
) -> BookSideIter<'_>ⓘNotable traits for BookSideIter<'a>impl<'a> Iterator for BookSideIter<'a> type Item = BookSideIterItem<'a>;
Iterate over all entries, including invalid orders
pub fn node(&self, handle: NodeHandle) -> Option<&AnyNode>
pub fn node_mut(&mut self, handle: NodeHandle) -> Option<&mut AnyNode>
pub fn root(&self, component: BookSideOrderTree) -> &OrderTreeRoot
pub fn root_mut(&mut self, component: BookSideOrderTree) -> &mut OrderTreeRoot
pub fn is_full(&self) -> bool
pub fn insert_leaf(
&mut self,
component: BookSideOrderTree,
new_leaf: &LeafNode
) -> Result<(NodeHandle, Option<LeafNode>)>
sourcepub fn remove_worst(
&mut self,
now_ts: u64,
oracle_price_lots: i64
) -> Option<(LeafNode, i64)>
pub fn remove_worst(
&mut self,
now_ts: u64,
oracle_price_lots: i64
) -> Option<(LeafNode, i64)>
Remove the overall worst-price order.
sourcepub fn remove_one_expired(
&mut self,
component: BookSideOrderTree,
now_ts: u64
) -> Option<LeafNode>
pub fn remove_one_expired(
&mut self,
component: BookSideOrderTree,
now_ts: u64
) -> Option<LeafNode>
Remove the order with the lowest expiry timestamp in the component, if that’s < now_ts. If there is none, try to remove the lowest expiry one from the other component.
pub fn remove_by_key(
&mut self,
component: BookSideOrderTree,
search_key: u128
) -> Option<LeafNode>
pub fn side(&self) -> Side
sourcepub fn quantity_at_price(
&self,
limit_price_lots: i64,
now_ts: u64,
oracle_price_lots: i64
) -> i64
pub fn quantity_at_price(
&self,
limit_price_lots: i64,
now_ts: u64,
oracle_price_lots: i64
) -> i64
Return the quantity of orders that can be matched by an order at limit_price_lots
Trait Implementations
sourceimpl AccountDeserialize for BookSide
impl AccountDeserialize for BookSide
sourcefn try_deserialize(buf: &mut &[u8]) -> Result<Self>
fn try_deserialize(buf: &mut &[u8]) -> Result<Self>
Deserializes previously initialized account data. Should fail for all
uninitialized accounts, where the bytes are zeroed. Implementations
should be unique to a particular account type so that one can never
successfully deserialize the data of one account type into another.
For example, if the SPL token program were to implement this trait,
it should be impossible to deserialize a
Mint
account into a token
Account
. Read moresourcefn try_deserialize_unchecked(buf: &mut &[u8]) -> Result<Self>
fn try_deserialize_unchecked(buf: &mut &[u8]) -> Result<Self>
Deserializes account data without checking the account discriminator.
This should only be used on account initialization, when the bytes of
the account are zeroed. Read more
sourceimpl Discriminator for BookSide
impl Discriminator for BookSide
const DISCRIMINATOR: [u8; 8] = _
fn discriminator() -> [u8; 8]
impl Copy for BookSide
impl Pod for BookSide
impl ZeroCopy for BookSide
Auto Trait Implementations
impl RefUnwindSafe for BookSide
impl Send for BookSide
impl Sync for BookSide
impl Unpin for BookSide
impl UnwindSafe for BookSide
Blanket Implementations
sourceimpl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> CheckedAs for T
impl<T> CheckedAs for T
sourcefn checked_as<Dst>(self) -> Option<Dst>where
T: CheckedCast<Dst>,
fn checked_as<Dst>(self) -> Option<Dst>where
T: CheckedCast<Dst>,
Casts the value.
impl<T> CheckedBitPattern for Twhere
T: AnyBitPattern,
impl<T> CheckedBitPattern for Twhere
T: AnyBitPattern,
type Bits = T
type Bits = T
Self
must have the same layout as the specified Bits
except for
the possible invalid bit patterns being checked during
is_valid_bit_pattern
. Read morefn is_valid_bit_pattern(_bits: &T) -> bool
fn is_valid_bit_pattern(_bits: &T) -> bool
sourceimpl<Src, Dst> CheckedCastFrom<Src> for Dstwhere
Src: CheckedCast<Dst>,
impl<Src, Dst> CheckedCastFrom<Src> for Dstwhere
Src: CheckedCast<Dst>,
sourcefn checked_cast_from(src: Src) -> Option<Dst>
fn checked_cast_from(src: Src) -> Option<Dst>
Casts the value.
sourceimpl<T> Instrument for T
impl<T> Instrument for T
sourcefn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
sourcefn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
sourceimpl<Src, Dst> LosslessTryInto<Dst> for Srcwhere
Dst: LosslessTryFrom<Src>,
impl<Src, Dst> LosslessTryInto<Dst> for Srcwhere
Dst: LosslessTryFrom<Src>,
sourcefn lossless_try_into(self) -> Option<Dst>
fn lossless_try_into(self) -> Option<Dst>
Performs the conversion.
sourceimpl<Src, Dst> LossyInto<Dst> for Srcwhere
Dst: LossyFrom<Src>,
impl<Src, Dst> LossyInto<Dst> for Srcwhere
Dst: LossyFrom<Src>,
sourcefn lossy_into(self) -> Dst
fn lossy_into(self) -> Dst
Performs the conversion.
sourceimpl<T> OverflowingAs for T
impl<T> OverflowingAs for T
sourcefn overflowing_as<Dst>(self) -> (Dst, bool)where
T: OverflowingCast<Dst>,
fn overflowing_as<Dst>(self) -> (Dst, bool)where
T: OverflowingCast<Dst>,
Casts the value.
sourceimpl<Src, Dst> OverflowingCastFrom<Src> for Dstwhere
Src: OverflowingCast<Dst>,
impl<Src, Dst> OverflowingCastFrom<Src> for Dstwhere
Src: OverflowingCast<Dst>,
sourcefn overflowing_cast_from(src: Src) -> (Dst, bool)
fn overflowing_cast_from(src: Src) -> (Dst, bool)
Casts the value.
impl<T> Pointable for T
impl<T> Pointable for T
sourceimpl<T> SaturatingAs for T
impl<T> SaturatingAs for T
sourcefn saturating_as<Dst>(self) -> Dstwhere
T: SaturatingCast<Dst>,
fn saturating_as<Dst>(self) -> Dstwhere
T: SaturatingCast<Dst>,
Casts the value.
sourceimpl<Src, Dst> SaturatingCastFrom<Src> for Dstwhere
Src: SaturatingCast<Dst>,
impl<Src, Dst> SaturatingCastFrom<Src> for Dstwhere
Src: SaturatingCast<Dst>,
sourcefn saturating_cast_from(src: Src) -> Dst
fn saturating_cast_from(src: Src) -> Dst
Casts the value.
sourceimpl<T> UnwrappedAs for T
impl<T> UnwrappedAs for T
sourcefn unwrapped_as<Dst>(self) -> Dstwhere
T: UnwrappedCast<Dst>,
fn unwrapped_as<Dst>(self) -> Dstwhere
T: UnwrappedCast<Dst>,
Casts the value.
sourceimpl<Src, Dst> UnwrappedCastFrom<Src> for Dstwhere
Src: UnwrappedCast<Dst>,
impl<Src, Dst> UnwrappedCastFrom<Src> for Dstwhere
Src: UnwrappedCast<Dst>,
sourcefn unwrapped_cast_from(src: Src) -> Dst
fn unwrapped_cast_from(src: Src) -> Dst
Casts the value.
impl<V, T> VZip<V> for Twhere
V: MultiLane<T>,
impl<V, T> VZip<V> for Twhere
V: MultiLane<T>,
fn vzip(self) -> V
sourceimpl<T> WithSubscriber for T
impl<T> WithSubscriber for T
sourcefn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where
S: Into<Dispatch>,
sourcefn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
sourceimpl<T> WrappingAs for T
impl<T> WrappingAs for T
sourcefn wrapping_as<Dst>(self) -> Dstwhere
T: WrappingCast<Dst>,
fn wrapping_as<Dst>(self) -> Dstwhere
T: WrappingCast<Dst>,
Casts the value.
sourceimpl<Src, Dst> WrappingCastFrom<Src> for Dstwhere
Src: WrappingCast<Dst>,
impl<Src, Dst> WrappingCastFrom<Src> for Dstwhere
Src: WrappingCast<Dst>,
sourcefn wrapping_cast_from(src: Src) -> Dst
fn wrapping_cast_from(src: Src) -> Dst
Casts the value.