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
sourceimpl OrderTreeNodes
impl OrderTreeNodes
pub fn order_tree_type(&self) -> OrderTreeType
sourcepub fn iter(&self, root: &OrderTreeRoot) -> OrderTreeIter<'_>ⓘNotable traits for OrderTreeIter<'a>impl<'a> Iterator for OrderTreeIter<'a> type Item = (NodeHandle, &'a LeafNode);
pub fn iter(&self, root: &OrderTreeRoot) -> OrderTreeIter<'_>ⓘNotable traits for OrderTreeIter<'a>impl<'a> Iterator for OrderTreeIter<'a> type Item = (NodeHandle, &'a LeafNode);
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
sourceimpl Clone for OrderTreeNodes
impl Clone for OrderTreeNodes
sourcefn clone(&self) -> OrderTreeNodes
fn clone(&self) -> OrderTreeNodes
Returns a copy of the value. Read more
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moresourceimpl Zeroable for OrderTreeNodes
impl Zeroable for OrderTreeNodes
impl 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
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.