pub trait Program<'p> {
// Required methods
fn extensional_preds(&'p self) -> impl Iterator<Item = &'p PredicateSym<'p>>;
fn intensional_preds(&'p self) -> impl Iterator<Item = &'p PredicateSym<'p>>;
fn rules(
&'p self,
sym: &'p PredicateSym<'p>,
) -> impl Iterator<Item = &'p Clause<'p>>;
}
Expand description
Represents a program.
extensional_preds
and intensional_preds
are disjoint.
Required Methods§
Sourcefn extensional_preds(&'p self) -> impl Iterator<Item = &'p PredicateSym<'p>>
fn extensional_preds(&'p self) -> impl Iterator<Item = &'p PredicateSym<'p>>
Returns predicates for extensional DB. May return an empty iterator.
Sourcefn intensional_preds(&'p self) -> impl Iterator<Item = &'p PredicateSym<'p>>
fn intensional_preds(&'p self) -> impl Iterator<Item = &'p PredicateSym<'p>>
Returns predicates for intensional DB. May return an empty iterator.
Sourcefn rules(
&'p self,
sym: &'p PredicateSym<'p>,
) -> impl Iterator<Item = &'p Clause<'p>>
fn rules( &'p self, sym: &'p PredicateSym<'p>, ) -> impl Iterator<Item = &'p Clause<'p>>
Maps predicates of intensional DB to rules. May return an empty iterator.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.