Struct mango_v4::state::OrderTreeNodes
source · #[repr(C)]pub struct OrderTreeNodes {
pub order_tree_type: u8,
pub padding: [u8; 3],
pub bump_index: u32,
pub free_list_len: u32,
pub free_list_head: NodeHandle,
pub reserved: [u8; 512],
pub nodes: [AnyNode; 1024],
}
Expand description
A binary tree on AnyNode::key()
The key encodes the price in the top 64 bits.
Fields§
§order_tree_type: u8
§padding: [u8; 3]
§bump_index: u32
§free_list_len: u32
§free_list_head: NodeHandle
§reserved: [u8; 512]
§nodes: [AnyNode; 1024]
Implementations§
source§impl OrderTreeNodes
impl OrderTreeNodes
pub fn order_tree_type(&self) -> OrderTreeType
sourcepub fn iter(&self, root: &OrderTreeRoot) -> OrderTreeIter<'_> ⓘ
pub fn iter(&self, root: &OrderTreeRoot) -> OrderTreeIter<'_> ⓘ
Iterate over all entries, including invalid orders
smallest to highest for asks highest to smallest for bids
pub fn node_mut(&mut self, handle: NodeHandle) -> Option<&mut AnyNode>
pub fn node(&self, handle: NodeHandle) -> Option<&AnyNode>
pub fn remove_worst(&mut self, root: &mut OrderTreeRoot) -> Option<LeafNode>
pub fn find_worst(&self, root: &OrderTreeRoot) -> Option<(NodeHandle, &LeafNode)>
sourcepub fn remove_one_expired(
&mut self,
root: &mut OrderTreeRoot,
now_ts: u64
) -> Option<LeafNode>
pub fn remove_one_expired( &mut self, root: &mut OrderTreeRoot, now_ts: u64 ) -> Option<LeafNode>
Remove the order with the lowest expiry timestamp, if that’s < now_ts.
pub fn min_leaf(&self, root: &OrderTreeRoot) -> Option<(NodeHandle, &LeafNode)>
pub fn max_leaf(&self, root: &OrderTreeRoot) -> Option<(NodeHandle, &LeafNode)>
pub fn remove_by_key( &mut self, root: &mut OrderTreeRoot, search_key: u128 ) -> Option<LeafNode>
pub fn insert_leaf( &mut self, root: &mut OrderTreeRoot, new_leaf: &LeafNode ) -> Result<(NodeHandle, Option<LeafNode>)>
pub fn is_full(&self) -> bool
sourcepub fn update_parent_earliest_expiry(
&mut self,
stack: &[(NodeHandle, bool)],
outdated_expiry: u64,
new_expiry: u64
)
pub fn update_parent_earliest_expiry( &mut self, stack: &[(NodeHandle, bool)], outdated_expiry: u64, new_expiry: u64 )
When a node changes, the parents’ child_earliest_expiry may need to be updated.
This function walks up the stack
of parents and applies the change where the
previous child’s outdated_expiry
is replaced by new_expiry
.
sourcepub fn find_earliest_expiry(
&self,
root: &OrderTreeRoot
) -> Option<(NodeHandle, u64)>
pub fn find_earliest_expiry( &self, root: &OrderTreeRoot ) -> Option<(NodeHandle, u64)>
Returns the handle of the node with the lowest expiry timestamp, and this timestamp
Trait Implementations§
source§impl Clone for OrderTreeNodes
impl Clone for OrderTreeNodes
source§fn clone(&self) -> OrderTreeNodes
fn clone(&self) -> OrderTreeNodes
Returns a copy 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 moreimpl Copy for OrderTreeNodes
impl Pod for OrderTreeNodes
Auto Trait Implementations§
impl RefUnwindSafe for OrderTreeNodes
impl Send for OrderTreeNodes
impl Sync for OrderTreeNodes
impl Unpin for OrderTreeNodes
impl UnwindSafe for OrderTreeNodes
Blanket Implementations§
source§impl<T> CheckedAs for T
impl<T> CheckedAs for T
source§fn 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
.§fn is_valid_bit_pattern(_bits: &T) -> bool
fn is_valid_bit_pattern(_bits: &T) -> bool
If this function returns true, then it must be valid to reinterpret
bits
as &Self
.source§impl<Src, Dst> CheckedCastFrom<Src> for Dstwhere
Src: CheckedCast<Dst>,
impl<Src, Dst> CheckedCastFrom<Src> for Dstwhere Src: CheckedCast<Dst>,
source§fn checked_cast_from(src: Src) -> Option<Dst>
fn checked_cast_from(src: Src) -> Option<Dst>
Casts the value.
source§impl<T> Instrument for T
impl<T> Instrument for T
source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
source§impl<Src, Dst> LosslessTryInto<Dst> for Srcwhere
Dst: LosslessTryFrom<Src>,
impl<Src, Dst> LosslessTryInto<Dst> for Srcwhere Dst: LosslessTryFrom<Src>,
source§fn lossless_try_into(self) -> Option<Dst>
fn lossless_try_into(self) -> Option<Dst>
Performs the conversion.
source§impl<Src, Dst> LossyInto<Dst> for Srcwhere
Dst: LossyFrom<Src>,
impl<Src, Dst> LossyInto<Dst> for Srcwhere Dst: LossyFrom<Src>,
source§fn lossy_into(self) -> Dst
fn lossy_into(self) -> Dst
Performs the conversion.
source§impl<T> OverflowingAs for T
impl<T> OverflowingAs for T
source§fn overflowing_as<Dst>(self) -> (Dst, bool)where
T: OverflowingCast<Dst>,
fn overflowing_as<Dst>(self) -> (Dst, bool)where T: OverflowingCast<Dst>,
Casts the value.
source§impl<Src, Dst> OverflowingCastFrom<Src> for Dstwhere
Src: OverflowingCast<Dst>,
impl<Src, Dst> OverflowingCastFrom<Src> for Dstwhere Src: OverflowingCast<Dst>,
source§fn 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
source§impl<T> SaturatingAs for T
impl<T> SaturatingAs for T
source§fn saturating_as<Dst>(self) -> Dstwhere
T: SaturatingCast<Dst>,
fn saturating_as<Dst>(self) -> Dstwhere T: SaturatingCast<Dst>,
Casts the value.
source§impl<Src, Dst> SaturatingCastFrom<Src> for Dstwhere
Src: SaturatingCast<Dst>,
impl<Src, Dst> SaturatingCastFrom<Src> for Dstwhere Src: SaturatingCast<Dst>,
source§fn saturating_cast_from(src: Src) -> Dst
fn saturating_cast_from(src: Src) -> Dst
Casts the value.
source§impl<T> UnwrappedAs for T
impl<T> UnwrappedAs for T
source§fn unwrapped_as<Dst>(self) -> Dstwhere
T: UnwrappedCast<Dst>,
fn unwrapped_as<Dst>(self) -> Dstwhere T: UnwrappedCast<Dst>,
Casts the value.
source§impl<Src, Dst> UnwrappedCastFrom<Src> for Dstwhere
Src: UnwrappedCast<Dst>,
impl<Src, Dst> UnwrappedCastFrom<Src> for Dstwhere Src: UnwrappedCast<Dst>,
source§fn unwrapped_cast_from(src: Src) -> Dst
fn unwrapped_cast_from(src: Src) -> Dst
Casts the value.
source§impl<T> WithSubscriber for T
impl<T> WithSubscriber for T
source§fn 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>,
source§fn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
source§impl<T> WrappingAs for T
impl<T> WrappingAs for T
source§fn wrapping_as<Dst>(self) -> Dstwhere
T: WrappingCast<Dst>,
fn wrapping_as<Dst>(self) -> Dstwhere T: WrappingCast<Dst>,
Casts the value.
source§impl<Src, Dst> WrappingCastFrom<Src> for Dstwhere
Src: WrappingCast<Dst>,
impl<Src, Dst> WrappingCastFrom<Src> for Dstwhere Src: WrappingCast<Dst>,
source§fn wrapping_cast_from(src: Src) -> Dst
fn wrapping_cast_from(src: Src) -> Dst
Casts the value.