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 UserContext: Debug
type UserContext: Debug
Type of data-structure stored in the Engine-instance. Retrievable with Engine::context().
Provided methods
Process extension to substitution map.
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 with_constraint<E: Engine<Self>>(
_state: &mut State<Self, E>,
_constraint: &Rc<dyn Constraint<Self, E>>
)
Called before the constraint is added to the state
fn take_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>>
)
Called after the constraint has been removed from the state
fn enforce_constraints<E: Engine<Self>>(_x: LTerm<Self, E>) -> Goal<Self, E>
fn enforce_constraints<E: Engine<Self>>(_x: LTerm<Self, E>) -> Goal<Self, E>
Called in reification when constraints are finalized. For example finite domain constraints are converted to sequences of integers.