Struct Leaf

Source
pub struct Leaf<BranchData: Debug, LeafData: Debug> { /* private fields */ }
Available on crate feature split only.
Expand description

The node representing leaves in a split node tree.

Leaves are nodes which may not have children, as opposed to branches, which may have children.

LeafData represents the custom data associated with leaf nodes.

Trait Implementations§

Source§

impl<BranchData: Debug + Debug, LeafData: Debug + Debug> Debug for Leaf<BranchData, LeafData>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<BranchData, LeafData> Hash for Leaf<BranchData, LeafData>
where BranchData: Debug, LeafData: Debug,

Source§

fn hash<H: Hasher>(&self, state: &mut H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl<BranchData, LeafData> LinkedNode for Leaf<BranchData, LeafData>
where BranchData: Debug, LeafData: Debug,

Source§

fn prev(&self) -> Option<<Self::Base as Node>::Token>

Returns the token of this node’s previous sibling. Read more
Source§

fn next(&self) -> Option<<Self::Base as Node>::Token>

Returns the token of this node’s next sibling. Read more
Source§

fn preceding_siblings<'node>( &'node self, arena: &'node Arena<Self::Base>, ) -> PrecedingSiblings<'node, Self>
where Self: Sized,

Returns an iterator over the tokens of this node’s preceding siblings. Read more
Source§

fn following_siblings<'node>( &'node self, arena: &'node Arena<Self::Base>, ) -> FollowingSiblings<'node, Self>
where Self: Sized,

Returns an iterator over the tokens of this node’s following siblings. Read more
Source§

impl<BranchData, LeafData> Node for Leaf<BranchData, LeafData>
where BranchData: Debug, LeafData: Debug,

Source§

type Base = SplitNode<BranchData, LeafData>

The ‘base node’ used in the arena. Read more
Source§

type Token = Token<Leaf<BranchData, LeafData>>

The token associated with this type of node.
Source§

type Data = LeafData

The custom data associated with this node.
Source§

type DataRef<'data> = &'data LeafData where Self: 'data

A type acting as a reference to the node’s data. Read more
Source§

type DataRefMut<'data> = &'data mut LeafData where Self: 'data

A type acting as a mutable reference to the node’s data. Read more
Source§

fn new(arena: &mut Arena<Self::Base>, data: Self::Data) -> Self::Token

Creates a new node allocated in the given arena using the given data. Read more
Source§

fn token(&self) -> Self::Token

Returns this node’s token.
Source§

fn parent(&self) -> Option<Token<<Self::Base as BaseNode>::Branch>>

Returns the token of this node’s parent. Read more
Source§

fn data(&self) -> &LeafData

Returns a reference to the data associated with this node.
Source§

fn data_mut(&mut self) -> &mut LeafData

Returns a mutable reference to the data associated with this node.
Source§

fn ancestors<'node>( &'node self, arena: &'node Arena<Self::Base>, ) -> Ancestors<'node, Self::Base>
where Self: Sized,

Returns an iterator over the tokens of this node’s ancestors. Read more
Source§

fn root<'node>(&'node self, arena: &'node Arena<Self::Base>) -> RootToken<Self>
where Self: Sized,

Returns this node’s root node. Read more
Source§

impl<BranchData, LeafData, Other: Node> PartialEq<Other> for Leaf<BranchData, LeafData>
where BranchData: Debug, LeafData: Debug, <Self as Node>::Token: PartialEq<Other::Token>,

Source§

fn eq(&self, other: &Other) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl<'node, BranchData, LeafData> TryFrom<&'node SplitNode<BranchData, LeafData>> for &'node Leaf<BranchData, LeafData>
where BranchData: Debug, LeafData: Debug,

Source§

type Error = &'node SplitNode<BranchData, LeafData>

The type returned in the event of a conversion error.
Source§

fn try_from( node: &'node SplitNode<BranchData, LeafData>, ) -> Result<Self, Self::Error>

Performs the conversion.
Source§

impl<'node, BranchData, LeafData> TryFrom<&'node mut SplitNode<BranchData, LeafData>> for &'node mut Leaf<BranchData, LeafData>
where BranchData: Debug, LeafData: Debug,

Source§

type Error = &'node mut SplitNode<BranchData, LeafData>

The type returned in the event of a conversion error.
Source§

fn try_from( node: &'node mut SplitNode<BranchData, LeafData>, ) -> Result<Self, Self::Error>

Performs the conversion.
Source§

impl<BranchData, LeafData> Eq for Leaf<BranchData, LeafData>
where BranchData: Debug, LeafData: Debug,

Auto Trait Implementations§

§

impl<BranchData, LeafData> Freeze for Leaf<BranchData, LeafData>
where LeafData: Freeze,

§

impl<BranchData, LeafData> RefUnwindSafe for Leaf<BranchData, LeafData>
where LeafData: RefUnwindSafe, BranchData: RefUnwindSafe,

§

impl<BranchData, LeafData> Send for Leaf<BranchData, LeafData>
where LeafData: Send, BranchData: Send,

§

impl<BranchData, LeafData> Sync for Leaf<BranchData, LeafData>
where LeafData: Sync, BranchData: Sync,

§

impl<BranchData, LeafData> Unpin for Leaf<BranchData, LeafData>
where LeafData: Unpin, BranchData: Unpin,

§

impl<BranchData, LeafData> UnwindSafe for Leaf<BranchData, LeafData>
where LeafData: UnwindSafe, BranchData: UnwindSafe,

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.