pub struct LogicRule {
pub id: String,
pub head: String,
pub body: Vec<String>,
pub priority: i32,
pub source: String,
pub is_defeasible: bool,
}Expand description
A single logic rule with metadata for conflict analysis.
Fields§
§id: StringUnique identifier for this rule.
head: StringThe conclusion (head) of the rule, e.g. "bird".
body: Vec<String>Premises (body) of the rule. A premise may carry a "NOT:" prefix
to represent negation-as-failure.
priority: i32Numeric priority; higher values take precedence.
source: StringProvenance / source identifier.
is_defeasible: boolWhether this rule can be defeated by a higher-priority rule.
Implementations§
Trait Implementations§
impl StructuralPartialEq for LogicRule
Auto Trait Implementations§
impl Freeze for LogicRule
impl RefUnwindSafe for LogicRule
impl Send for LogicRule
impl Sync for LogicRule
impl Unpin for LogicRule
impl UnsafeUnpin for LogicRule
impl UnwindSafe for LogicRule
Blanket Implementations§
impl<T> Allocation for T
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more