Trait RuleMonitorLike
pub trait RuleMonitorLike<A, OA, OT, M, P, R>where
A: Action<Single>,
OA: Action<OT, S = A>,
OT: Dimension,
M: InverseModelMonoid<OA, P, OT>,
P: PredicateInner,
R: RuleLike<A = A, P = P>,{
// Required method
fn update(
&mut self,
insertion: impl IntoIterator<Item = R>,
deletion: impl IntoIterator<Item = R>,
) -> InverseModel<OA, P, OT, M>;
// Provided methods
fn insert(
&mut self,
insertion: impl IntoIterator<Item = R>,
) -> InverseModel<OA, P, OT, M> { ... }
fn delete(
&mut self,
deletion: impl IntoIterator<Item = R>,
) -> InverseModel<OA, P, OT, M> { ... }
}Expand description
Rule storage and IM generator.
[A]: Action type inside the monitor. [OA]: Output action type of the inverse model. [T]: Dimension type of the inverse model. [M]: Inverse model monoid type. [P]: Predicate type inside the monitor. [R]: Rule type stored inside the monitor.
Required Methods§
fn update(
&mut self,
insertion: impl IntoIterator<Item = R>,
deletion: impl IntoIterator<Item = R>,
) -> InverseModel<OA, P, OT, M>
fn update( &mut self, insertion: impl IntoIterator<Item = R>, deletion: impl IntoIterator<Item = R>, ) -> InverseModel<OA, P, OT, M>
First call of update should return an inverse model of the current state. Subsequent calls should return an inverse model that represent an incremental update.
Provided Methods§
fn insert(
&mut self,
insertion: impl IntoIterator<Item = R>,
) -> InverseModel<OA, P, OT, M>
fn insert( &mut self, insertion: impl IntoIterator<Item = R>, ) -> InverseModel<OA, P, OT, M>
Provided methods
fn delete( &mut self, deletion: impl IntoIterator<Item = R>, ) -> InverseModel<OA, P, OT, M>
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.