pub struct SimpleProgram<'p> {
pub bump: &'p Bump,
pub ext_preds: Vec<PredicateSym<'p>>,
pub rules: HashMap<PredicateSym<'p>, Vec<&'p Clause<'p>>>,
}
Expand description
An implementation of the Program
trait.
Fields§
§bump: &'p Bump
§ext_preds: Vec<PredicateSym<'p>>
§rules: HashMap<PredicateSym<'p>, Vec<&'p Clause<'p>>>
Implementations§
Source§impl<'p> SimpleProgram<'p>
impl<'p> SimpleProgram<'p>
pub fn add_clause(&mut self, clause: &Clause<'_>)
Sourcepub fn stratify(
self,
strata: impl Iterator<Item = &'p HashSet<&'p PredicateSym<'p>>>,
) -> SimpleStratifiedProgram<'p>
pub fn stratify( self, strata: impl Iterator<Item = &'p HashSet<&'p PredicateSym<'p>>>, ) -> SimpleStratifiedProgram<'p>
Produces a StratifiedProgram with given set of layers. TODO: write analysis that computes the set of layers.
Trait Implementations§
Source§impl<'p> Program<'p> for SimpleProgram<'p>
impl<'p> Program<'p> for SimpleProgram<'p>
Source§fn 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.
Source§fn 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.
Auto Trait Implementations§
impl<'p> Freeze for SimpleProgram<'p>
impl<'p> !RefUnwindSafe for SimpleProgram<'p>
impl<'p> !Send for SimpleProgram<'p>
impl<'p> !Sync for SimpleProgram<'p>
impl<'p> Unpin for SimpleProgram<'p>
impl<'p> !UnwindSafe for SimpleProgram<'p>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more