pub trait BaseNode: Node<Base = Self> {
    type Representation;
    type Branch: BranchNode;
    type Leaf: Node;

    // Required method
    fn into_representation(
        self,
        arena: &mut Arena<Self>
    ) -> Self::Representation
       where Self: Sized;
}

Required Associated Types§

source

type Representation

The representation of the node after it is removed from the arena.

If this is a branch node, this representation should include its children.

source

type Branch: BranchNode

The type used for branch nodes.

This may be the base node itself, or a separate node type.

source

type Leaf: Node

The type used for leaf nodes.

This may be the base node itself, or a separate node type.

Required Methods§

source

fn into_representation(self, arena: &mut Arena<Self>) -> Self::Representation
where Self: Sized,

Converts this node into its representation.

If this is a branch node, this node’s children should be removed from the arena and included in the representation.

Object Safety§

This trait is not object safe.

Implementors§

source§

impl<BranchData, LeafData> BaseNode for SplitNode<BranchData, LeafData>
where BranchData: Debug, LeafData: Debug,

Available on crate feature split only.
§

type Representation = SplitNodeRepresentation<BranchData, LeafData>

§

type Branch = Branch<BranchData, LeafData>

§

type Leaf = Leaf<BranchData, LeafData>

source§

impl<Data: Debug> BaseNode for UnifiedNode<Data>

Available on crate feature unified only.
source§

impl<Data: Debug> BaseNode for UnifiedNodeDeque<Data>

Available on crate feature unified only.