#[non_exhaustive]pub struct VerifyIssue {
pub action_id: String,
pub severity: String,
pub message: String,
pub tier: EvidenceTier,
}Expand description
A single verification finding.
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.action_id: String§severity: String§message: String§tier: EvidenceTierWhich kind of check produced this finding — see EvidenceTier.
Orthogonal to severity: severity says how bad the situation would be
if the finding is right, the tier says how the finding was arrived at.
An error from a heuristic and an error from a decision procedure are
equally loud and not equally trustworthy.
It is also not the same axis as “does this block execution”.
car_engine::is_blocking_issue blocks on state-independence, and two of
the three findings it treats as advisory (precondition will fail,
not available at this point) are DecisionProcedure findings —
exactly decided over a forward model that only sees declared effects.
Do not rewire that gate onto this field.
Implementations§
Source§impl VerifyIssue
impl VerifyIssue
Sourcepub fn new(
action_id: impl Into<String>,
severity: impl Into<String>,
message: impl Into<String>,
tier: EvidenceTier,
) -> VerifyIssue
pub fn new( action_id: impl Into<String>, severity: impl Into<String>, message: impl Into<String>, tier: EvidenceTier, ) -> VerifyIssue
Build a finding outside this crate. The struct is #[non_exhaustive], so
a caller that derives its own finding from a proposal (the engine’s
admission gate does, for dependency cycles) needs a constructor.
Trait Implementations§
Source§impl Clone for VerifyIssue
impl Clone for VerifyIssue
Source§fn clone(&self) -> VerifyIssue
fn clone(&self) -> VerifyIssue
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for VerifyIssue
impl Debug for VerifyIssue
Source§impl Serialize for VerifyIssue
impl Serialize for VerifyIssue
Source§fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
Auto Trait Implementations§
impl Forget for VerifyIssue
impl Freeze for VerifyIssue
impl Move for VerifyIssue
impl RefUnwindSafe for VerifyIssue
impl Send for VerifyIssue
impl Sync for VerifyIssue
impl Unpin for VerifyIssue
impl UnsafeUnpin for VerifyIssue
impl UnwindSafe for VerifyIssue
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
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,
impl<T> ErasedDestructor for Twhere
T: 'static,
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> ⓘ
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> ⓘ
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