Enum adapton::catalog::collections::Tree
[−]
[src]
pub enum Tree<X> { Nil, Leaf(X), Bin(usize, Box<Tree<X>>, Box<Tree<X>>), Name(Name, usize, Box<Tree<X>>, Box<Tree<X>>), Art(Art<Tree<X>>), }
Variants
Nil
Leaf(X)
Bin(usize, Box<Tree<X>>, Box<Tree<X>>)
Name(Name, usize, Box<Tree<X>>, Box<Tree<X>>)
Art(Art<Tree<X>>)
Trait Implementations
impl<X: Debug> Debug for Tree<X>
[src]
impl<X: PartialEq> PartialEq for Tree<X>
[src]
fn eq(&self, __arg_0: &Tree<X>) -> bool
This method tests for self
and other
values to be equal, and is used by ==
. Read more
fn ne(&self, __arg_0: &Tree<X>) -> bool
This method tests for !=
.
impl<X: Eq> Eq for Tree<X>
[src]
impl<X: Hash> Hash for Tree<X>
[src]
fn hash<__HX: Hasher>(&self, __arg_0: &mut __HX)
Feeds this value into the state given, updating the hasher as necessary.
fn hash_slice<H>(data: &[Self], state: &mut H) where
H: Hasher,
1.3.0
H: Hasher,
Feeds a slice of this type into the state provided.
impl<X: Clone> Clone for Tree<X>
[src]
fn clone(&self) -> Tree<X>
Returns a copy of the value. Read more
fn clone_from(&mut self, source: &Self)
1.0.0
Performs copy-assignment from source
. Read more
impl<Leaf: Debug + Hash + PartialEq + Eq + Clone + 'static> TreeIntro<usize, Leaf> for Tree<Leaf>
[src]
fn nil() -> Self
fn leaf(x: Leaf) -> Self
fn bin(lev: usize, l: Self, r: Self) -> Self
fn name(nm: Name, lev: usize, l: Self, r: Self) -> Self
fn art(art: Art<Self>) -> Self
impl<Leaf: Debug + Hash + PartialEq + Eq + Clone + 'static> TreeElim<usize, Leaf> for Tree<Leaf>
[src]
fn elim_arg<Arg, Res, NilC, LeafC, BinC, NameC>(
tree: Self,
arg: Arg,
nil: NilC,
leaf: LeafC,
bin: BinC,
name: NameC
) -> Res where
NilC: FnOnce(Arg) -> Res,
LeafC: FnOnce(Leaf, Arg) -> Res,
BinC: FnOnce(usize, Self, Self, Arg) -> Res,
NameC: FnOnce(Name, usize, Self, Self, Arg) -> Res,
tree: Self,
arg: Arg,
nil: NilC,
leaf: LeafC,
bin: BinC,
name: NameC
) -> Res where
NilC: FnOnce(Arg) -> Res,
LeafC: FnOnce(Leaf, Arg) -> Res,
BinC: FnOnce(usize, Self, Self, Arg) -> Res,
NameC: FnOnce(Name, usize, Self, Self, Arg) -> Res,
fn full_move<Arg, Res, NilC, LeafC, BinC, NameC, ArtC>(
tree: Self,
arg: Arg,
nil: NilC,
leaf: LeafC,
bin: BinC,
name: NameC,
artf: ArtC
) -> Res where
NilC: FnOnce(Arg) -> Res,
LeafC: FnOnce(Leaf, Arg) -> Res,
BinC: FnOnce(usize, Self, Self, Arg) -> Res,
NameC: FnOnce(Name, usize, Self, Self, Arg) -> Res,
ArtC: FnOnce(&Art<Self>, Arg) -> Res,
tree: Self,
arg: Arg,
nil: NilC,
leaf: LeafC,
bin: BinC,
name: NameC,
artf: ArtC
) -> Res where
NilC: FnOnce(Arg) -> Res,
LeafC: FnOnce(Leaf, Arg) -> Res,
BinC: FnOnce(usize, Self, Self, Arg) -> Res,
NameC: FnOnce(Name, usize, Self, Self, Arg) -> Res,
ArtC: FnOnce(&Art<Self>, Arg) -> Res,
fn elim<Res, NilC, LeafC, BinC, NameC>(
tree: Self,
nil: NilC,
leaf: LeafC,
bin: BinC,
name: NameC
) -> Res where
NilC: FnOnce() -> Res,
LeafC: FnOnce(Leaf) -> Res,
BinC: FnOnce(usize, Self, Self) -> Res,
NameC: FnOnce(Name, usize, Self, Self) -> Res,
tree: Self,
nil: NilC,
leaf: LeafC,
bin: BinC,
name: NameC
) -> Res where
NilC: FnOnce() -> Res,
LeafC: FnOnce(Leaf) -> Res,
BinC: FnOnce(usize, Self, Self) -> Res,
NameC: FnOnce(Name, usize, Self, Self) -> Res,
fn elim_ref<Res, NilC, LeafC, BinC, NameC>(
tree: &Self,
nil: NilC,
leaf: LeafC,
bin: BinC,
name: NameC
) -> Res where
NilC: FnOnce() -> Res,
LeafC: FnOnce(&Leaf) -> Res,
BinC: FnOnce(&usize, &Self, &Self) -> Res,
NameC: FnOnce(&Name, &usize, &Self, &Self) -> Res,
tree: &Self,
nil: NilC,
leaf: LeafC,
bin: BinC,
name: NameC
) -> Res where
NilC: FnOnce() -> Res,
LeafC: FnOnce(&Leaf) -> Res,
BinC: FnOnce(&usize, &Self, &Self) -> Res,
NameC: FnOnce(&Name, &usize, &Self, &Self) -> Res,