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
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