pub enum EvidenceNodeRef<'a> {
Satisfaction(&'a SatTrace),
Failure(&'a Witness),
}Variants§
Implementations§
Source§impl<'a> EvidenceNodeRef<'a>
impl<'a> EvidenceNodeRef<'a>
pub fn constraint_id(self) -> ShapeId
Sourcepub fn node(self) -> Option<&'a Term>
pub fn node(self) -> Option<&'a Term>
The node this judgment is about, completing the (constraint, node)
address the shape memo (validate.rs) is keyed by.
None only for SatTrace::Irrefutable, which is ⊤ and so is about
no node at all.
pub fn status(self) -> EvaluationStatus
pub fn evidence_kind(self) -> EvidenceKind
pub fn kind(self) -> &'static str
Sourcepub fn children(self) -> Vec<Self>
pub fn children(self) -> Vec<Self>
Immediate evidence children in stable semantic order.
This is the shared grammar of failure and satisfaction evidence. Not
crosses polarity; qualified counts can contain both satisfaction traces
for matches and failure witnesses for rejected candidates. Callers that
only need structure should use this instead of maintaining another
variant-specific recursive walk.
Trait Implementations§
Source§impl<'a> Clone for EvidenceNodeRef<'a>
impl<'a> Clone for EvidenceNodeRef<'a>
impl<'a> Copy for EvidenceNodeRef<'a>
Auto Trait Implementations§
impl<'a> Freeze for EvidenceNodeRef<'a>
impl<'a> RefUnwindSafe for EvidenceNodeRef<'a>
impl<'a> Send for EvidenceNodeRef<'a>
impl<'a> Sync for EvidenceNodeRef<'a>
impl<'a> Unpin for EvidenceNodeRef<'a>
impl<'a> UnsafeUnpin for EvidenceNodeRef<'a>
impl<'a> UnwindSafe for EvidenceNodeRef<'a>
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