Trait mangle_analysis::Program

source ·
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§

source

fn extensional_preds(&'p self) -> impl Iterator<Item = &'p PredicateSym<'p>>

Returns predicates for extensional DB. May return an empty iterator.

source

fn intensional_preds(&'p self) -> impl Iterator<Item = &'p PredicateSym<'p>>

Returns predicates for intensional DB. May return an empty iterator.

source

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.

Object Safety§

This trait is not object safe.

Implementors§

source§

impl<'p> Program<'p> for SimpleProgram<'p>

source§

impl<'p> Program<'p> for SimpleStratifiedProgram<'p>