Trait proto_vulcan::user::User[][src]

pub trait User: Debug + Clone + Default + 'static {
    type UserTerm: Debug + Clone + Hash + PartialEq + Eq;
    type UserContext: Debug;
    fn process_extension<E: Engine<Self>>(
        state: State<Self, E>,
        _extension: &SMap<Self, E>
    ) -> SResult<Self, E> { ... }
fn unify<E: Engine<Self>>(
        _state: State<Self, E>,
        _extension: &mut SMap<Self, E>,
        _uwalk: LTerm<Self, E>,
        _vwalk: LTerm<Self, E>
    ) -> SResult<Self, E> { ... }
fn with_constraint<E: Engine<Self>>(
        _state: &mut State<Self, E>,
        _constraint: &Rc<dyn Constraint<Self, E>>
    ) { ... }
fn take_constraint<E: Engine<Self>>(
        _state: &mut State<Self, E>,
        _constraint: &Rc<dyn Constraint<Self, E>>
    ) { ... }
fn enforce_constraints<E: Engine<Self>>(_x: LTerm<Self, E>) -> Goal<Self, E> { ... }
fn finalize<E: Engine<Self>>(_state: &mut State<Self, E>) { ... }
fn reify<E: Engine<Self>>(_state: &mut State<Self, E>) { ... } }

Associated Types

Type of data-structure stored in the Engine-instance. Retrievable with Engine::context().

Provided methods

Process extension to substitution map.

Called before the constraint is added to the state

Called after the constraint has been removed from the state

Called in reification when constraints are finalized. For example finite domain constraints are converted to sequences of integers.

Implementors