Struct Tree

Source
pub struct Tree<T> { /* private fields */ }
Expand description

A read-only tree data structure.

Trees are created from Sapling<T>s. Most interactions with trees happen on slices of them called Nodes. Get a node representing the entire tree using as_node.

Implementations§

Source§

impl<T> Tree<T>

Source

pub fn as_node(&self) -> Node<'_, T>

Returns the unique root node of the tree representing the entire tree.

You can think of this as taking the complete slice of the tree similar to &vec[..] for a Vec<T>.

Source

pub fn get(&self, rank: usize) -> Option<Node<'_, T>>

Returns the node with the specified rank.

Source

pub fn len(&self) -> usize

Returns the number of nodes in the tree.

Because trees are required to have exactly one root node, the length will always be at least 1.

Source

pub fn into_sapling(self) -> Sapling<T>

Turns the tree back into a sapling. No nodes are removed from the tree; building the returned sapling will result in the original tree.

All internal buffers are reused, making this a cheap operation. The only cost of converting Sapling<T>s and Tree<T>s back and forth is the validation that occurs during build.

Trait Implementations§

Source§

impl<T: Debug> Debug for Tree<T>

Source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<T> Freeze for Tree<T>

§

impl<T> RefUnwindSafe for Tree<T>
where T: RefUnwindSafe,

§

impl<T> Send for Tree<T>
where T: Send,

§

impl<T> Sync for Tree<T>
where T: Sync,

§

impl<T> Unpin for Tree<T>
where T: Unpin,

§

impl<T> UnwindSafe for Tree<T>
where T: 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.