[][src]Struct rtable::tree::Tree

pub struct Tree<P: Prefixable, D> { /* fields omitted */ }

Tree struct.

Methods

impl<P: Prefixable, D> Tree<P, D>[src]

Tree impl.

pub fn new() -> Tree<P, D>[src]

Constructor.

pub fn top(&self) -> Option<Rc<Node<P, D>>>[src]

Return top node.

pub fn count(&self) -> usize[src]

Return count with data.

Important traits for NodeIterator<P, D>
pub fn get_node(&mut self, prefix: &P) -> NodeIterator<P, D>[src]

Get node with given prefix, create one if it doesn't exist.

pub fn insert(&mut self, prefix: &P, data: D) -> Option<D>[src]

Insert data with given prefix, and return:

  • Some(data) if data already exist with the prefix.
  • None if successfully inserted the data.

pub fn update(&mut self, prefix: &P, data: D) -> Option<D>[src]

Update data with given prefix, and return:

  • old data if data exists and successfully replace.
  • None if data does not exist, and replace does not occur.

pub fn upsert(&mut self, prefix: &P, data: D) -> Option<D>[src]

Insert if data does not exist, or Update, and return:

  • old data if data exists and successfully replace.
  • None if data does not exist.

pub fn delete(&mut self, prefix: &P) -> Option<D>[src]

Delete data with the prefix if data exist, and return:

  • old data if data exists and successfully delete.
  • None if data does not exist.

Important traits for NodeIterator<P, D>
pub fn lookup_exact(&self, prefix: &P) -> NodeIterator<P, D>[src]

Perform exact match lookup.

Important traits for NodeIterator<P, D>
pub fn lookup(&self, prefix: &P) -> NodeIterator<P, D>[src]

Perform longest match lookup.

Important traits for NodeIterator<P, D>
pub fn erase(&mut self, it: NodeIterator<P, D>) -> NodeIterator<P, D>[src]

Erase a node from tree, and return iterator for next node.

Important traits for NodeIterator<P, D>
pub fn node_iter(&self) -> NodeIterator<P, D>[src]

Return node iterator.

Trait Implementations

impl<'_, P: Prefixable, D> IntoIterator for &'_ Tree<P, D>[src]

Tree IntoIterator.

type Item = Rc<Node<P, D>>

The type of the elements being iterated over.

type IntoIter = DataIterator<P, D>

Which kind of iterator are we turning this into?

Auto Trait Implementations

impl<P, D> !RefUnwindSafe for Tree<P, D>

impl<P, D> !Send for Tree<P, D>

impl<P, D> !Sync for Tree<P, D>

impl<P, D> Unpin for Tree<P, D>

impl<P, D> !UnwindSafe for Tree<P, D>

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.