pub trait ImplContext<T>{
// Required methods
fn rule(&self, name: &str) -> Option<&Rule>;
fn global_arrangement(
&mut self,
name: &str,
) -> Option<&mut RelationHandle<T>>;
fn has_attribute(&self, name: &str) -> bool;
fn forward_count(
&mut self,
name: &str,
) -> Option<&mut TraceKeyHandle<Value, T, isize>>;
fn forward_propose(
&mut self,
name: &str,
) -> Option<&mut TraceValHandle<Value, Value, T, isize>>;
fn forward_validate(
&mut self,
name: &str,
) -> Option<&mut TraceKeyHandle<(Value, Value), T, isize>>;
fn reverse_count(
&mut self,
name: &str,
) -> Option<&mut TraceKeyHandle<Value, T, isize>>;
fn reverse_propose(
&mut self,
name: &str,
) -> Option<&mut TraceValHandle<Value, Value, T, isize>>;
fn reverse_validate(
&mut self,
name: &str,
) -> Option<&mut TraceKeyHandle<(Value, Value), T, isize>>;
fn is_underconstrained(&self, name: &str) -> bool;
}
Expand description
A thing that can provide global state required during the implementation of plans.
Required Methods§
Sourcefn rule(&self, name: &str) -> Option<&Rule>
fn rule(&self, name: &str) -> Option<&Rule>
Returns the definition for the rule of the given name.
Sourcefn global_arrangement(&mut self, name: &str) -> Option<&mut RelationHandle<T>>
fn global_arrangement(&mut self, name: &str) -> Option<&mut RelationHandle<T>>
Returns a mutable reference to a (non-base) relation, if one is registered under the given name.
Sourcefn has_attribute(&self, name: &str) -> bool
fn has_attribute(&self, name: &str) -> bool
Checks whether an attribute of that name exists.
Sourcefn forward_count(
&mut self,
name: &str,
) -> Option<&mut TraceKeyHandle<Value, T, isize>>
fn forward_count( &mut self, name: &str, ) -> Option<&mut TraceKeyHandle<Value, T, isize>>
Retrieves the forward count trace for the specified aid.
Sourcefn forward_propose(
&mut self,
name: &str,
) -> Option<&mut TraceValHandle<Value, Value, T, isize>>
fn forward_propose( &mut self, name: &str, ) -> Option<&mut TraceValHandle<Value, Value, T, isize>>
Retrieves the forward propose trace for the specified aid.
Sourcefn forward_validate(
&mut self,
name: &str,
) -> Option<&mut TraceKeyHandle<(Value, Value), T, isize>>
fn forward_validate( &mut self, name: &str, ) -> Option<&mut TraceKeyHandle<(Value, Value), T, isize>>
Retrieves the forward validate trace for the specified aid.
Sourcefn reverse_count(
&mut self,
name: &str,
) -> Option<&mut TraceKeyHandle<Value, T, isize>>
fn reverse_count( &mut self, name: &str, ) -> Option<&mut TraceKeyHandle<Value, T, isize>>
Retrieves the reverse count trace for the specified aid.
Sourcefn reverse_propose(
&mut self,
name: &str,
) -> Option<&mut TraceValHandle<Value, Value, T, isize>>
fn reverse_propose( &mut self, name: &str, ) -> Option<&mut TraceValHandle<Value, Value, T, isize>>
Retrieves the reverse propose trace for the specified aid.
Sourcefn reverse_validate(
&mut self,
name: &str,
) -> Option<&mut TraceKeyHandle<(Value, Value), T, isize>>
fn reverse_validate( &mut self, name: &str, ) -> Option<&mut TraceKeyHandle<(Value, Value), T, isize>>
Retrieves the reverse validate trace for the specified aid.
Sourcefn is_underconstrained(&self, name: &str) -> bool
fn is_underconstrained(&self, name: &str) -> bool
Returns the current opinion as to whether this rule is underconstrained. Underconstrained rules cannot be safely materialized and re-used on their own (i.e. without more specific constraints).