Trait adapton::collection::SetT [] [src]

pub trait SetT<A: Adapton, Elm: Hash + Clone> {
    type Set;
    fn empty(st: &mut A);
    fn update_elm<Update, Res>(st: &mut A, set: Self::Set, elm: Elm, update: &Update) -> (Self::Set, Res) where Update: FnOnce(&mut A, Option<Elm>, Elm) -> (Option<Elm>, Res);
    fn elim_move<Arg, Res, NilC, ElmC, UnionC>(st: &mut A, set: Self::Set, arg: Arg, nil: &NilC, elm: &ElmC, union: &UnionC) -> Res where NilC: FnOnce(&mut A, Arg) -> Res, ElmC: FnOnce(&mut A, Elm, Arg) -> Res, UnionC: FnOnce(&mut A, Self::Set, Self::Set, Arg) -> Res;
    fn is_mem(st: &mut A, set: Self::Set, elm: Elm) -> bool;
    fn is_empty(st: &mut A, set: Self::Set) -> bool;
}

Associated Types

type Set

Required Methods

fn empty(st: &mut A)

fn update_elm<Update, Res>(st: &mut A, set: Self::Set, elm: Elm, update: &Update) -> (Self::Set, Res) where Update: FnOnce(&mut A, Option<Elm>, Elm) -> (Option<Elm>, Res)

fn elim_move<Arg, Res, NilC, ElmC, UnionC>(st: &mut A, set: Self::Set, arg: Arg, nil: &NilC, elm: &ElmC, union: &UnionC) -> Res where NilC: FnOnce(&mut A, Arg) -> Res, ElmC: FnOnce(&mut A, Elm, Arg) -> Res, UnionC: FnOnce(&mut A, Self::Set, Self::Set, Arg) -> Res

fn is_mem(st: &mut A, set: Self::Set, elm: Elm) -> bool

fn is_empty(st: &mut A, set: Self::Set) -> bool

Implementors