Trait adapton::collection_traits::ListT [] [src]

pub trait ListT<A: Adapton, Elm>: Debug + Clone + Hash + PartialEq + Eq {
    type List: Debug + Hash + PartialEq + Eq + Clone;
    fn nil(&mut A) -> Self::List;
    fn cons(&mut A, Elm, Self::List) -> Self::List;
    fn name(&mut A, A::Name, Self::List) -> Self::List;
    fn art(&mut A, Art<Self::List, A::Loc>) -> Self::List;
    fn rc(&mut A, Rc<Self::List>) -> Self::List;
    fn elim<Res, Nil, Cons, Name>(&mut A, Self::List, Nil, Cons, Name) -> Res where Nil: FnOnce(&mut A) -> Res, Cons: FnOnce(&mut A, Elm, Self::List) -> Res, Name: FnOnce(&mut A, A::Name, Self::List) -> Res;
    fn elim_move<Arg, Res, Nil, Cons, Name>(&mut A, Self::List, Arg, Nil, Cons, Name) -> Res where Nil: FnOnce(&mut A, Arg) -> Res, Cons: FnOnce(&mut A, Elm, Self::List, Arg) -> Res, Name: FnOnce(&mut A, A::Name, Self::List, Arg) -> Res;

    fn singleton(st: &mut A, hd: Elm) -> Self::List { ... }
    fn is_empty(st: &mut A, list: Self::List) -> bool { ... }
}

Associated Types

type List: Debug + Hash + PartialEq + Eq + Clone

Required Methods

fn nil(&mut A) -> Self::List

fn cons(&mut A, Elm, Self::List) -> Self::List

fn name(&mut A, A::Name, Self::List) -> Self::List

fn art(&mut A, Art<Self::List, A::Loc>) -> Self::List

fn rc(&mut A, Rc<Self::List>) -> Self::List

fn elim<Res, Nil, Cons, Name>(&mut A, Self::List, Nil, Cons, Name) -> Res where Nil: FnOnce(&mut A) -> Res, Cons: FnOnce(&mut A, Elm, Self::List) -> Res, Name: FnOnce(&mut A, A::Name, Self::List) -> Res

fn elim_move<Arg, Res, Nil, Cons, Name>(&mut A, Self::List, Arg, Nil, Cons, Name) -> Res where Nil: FnOnce(&mut A, Arg) -> Res, Cons: FnOnce(&mut A, Elm, Self::List, Arg) -> Res, Name: FnOnce(&mut A, A::Name, Self::List, Arg) -> Res

Provided Methods

fn singleton(st: &mut A, hd: Elm) -> Self::List

fn is_empty(st: &mut A, list: Self::List) -> bool

Implementors