Trait adapton::collection_edit::ListEdit [] [src]

pub trait ListEdit<A: Adapton, X, T: TreeT<A, X>> {
    type State: Clone + Hash + Eq + PartialEq + Debug;
    fn empty(&mut A) -> Self::State;
    fn insert(&mut A, Self::State, Dir2, X) -> Self::State;
    fn remove(&mut A, Self::State, Dir2) -> (Self::State, Option<X>);
    fn replace(&mut A, Self::State, Dir2, X) -> (Self::State, X, bool);
    fn goto(&mut A, Self::State, Dir2) -> (Self::State, bool);
    fn observe(&mut A, Self::State, Dir2) -> (Self::State, Option<X>);
    fn clr_names(&mut A, Self::State, Dir2) -> Self::State;
    fn ins_name(&mut A, Self::State, Dir2, A::Name) -> Self::State;
    fn ins_cell(&mut A, Self::State, Dir2, A::Name) -> Self::State;
    fn rem_name(&mut A, Self::State, Dir2) -> (Self::State, Option<A::Name>);
    fn ins_tree(&mut A, Self::State, Dir2, T::Tree, Dir2) -> Self::State;
    fn clear_side(&mut A, Self::State, Dir2) -> Self::State;
    fn get_list<L: ListT<A, X>>(&mut A, Self::State, Dir2) -> L::List;
    fn get_tree(&mut A, Self::State, Dir2) -> T::Tree;

    fn insert_optnm(st: &mut A, z: Self::State, dir: Dir2, nm: Option<A::Name>, elm: X) -> Self::State { ... }
    fn move_optnm(st: &mut A, z: Self::State, dir: Dir2, nm: Option<A::Name>) -> (Self::State, bool) { ... }
}

ListEdit<A,X,L> gives a simple notion of list-editing that is generic with respect to adapton implementation A, list element type X, and list implementation L.

Associated Types

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

The State of the Editor is abstract.

Required Methods

fn empty(&mut A) -> Self::State

fn insert(&mut A, Self::State, Dir2, X) -> Self::State

fn remove(&mut A, Self::State, Dir2) -> (Self::State, Option<X>)

fn replace(&mut A, Self::State, Dir2, X) -> (Self::State, X, bool)

fn goto(&mut A, Self::State, Dir2) -> (Self::State, bool)

fn observe(&mut A, Self::State, Dir2) -> (Self::State, Option<X>)

fn clr_names(&mut A, Self::State, Dir2) -> Self::State

fn ins_name(&mut A, Self::State, Dir2, A::Name) -> Self::State

fn ins_cell(&mut A, Self::State, Dir2, A::Name) -> Self::State

fn rem_name(&mut A, Self::State, Dir2) -> (Self::State, Option<A::Name>)

fn ins_tree(&mut A, Self::State, Dir2, T::Tree, Dir2) -> Self::State

fn clear_side(&mut A, Self::State, Dir2) -> Self::State

fn get_list<L: ListT<A, X>>(&mut A, Self::State, Dir2) -> L::List

fn get_tree(&mut A, Self::State, Dir2) -> T::Tree

Provided Methods

fn insert_optnm(st: &mut A, z: Self::State, dir: Dir2, nm: Option<A::Name>, elm: X) -> Self::State

fn move_optnm(st: &mut A, z: Self::State, dir: Dir2, nm: Option<A::Name>) -> (Self::State, bool)

Implementors