pub struct Statement {
pub id: Option<String>,
pub vulnerability: Vulnerability,
pub timestamp: String,
pub last_updated: Option<String>,
pub products: Vec<Product>,
pub status: Status,
pub supplier: Option<String>,
pub justification: Option<Justification>,
pub impact_statement: Option<String>,
pub action_statement: Option<String>,
}Expand description
One VEX statement — the unit of “I am asserting that vulnerability X has status S relative to product P”.
Fields§
§id: Option<String>Optional per-statement identifier. When present, must be unique within the document. Spec says it’s used to track revisions.
vulnerability: Vulnerability§timestamp: String§last_updated: Option<String>RFC 3339 timestamp of the most recent revision of this statement.
products: Vec<Product>§status: Status§supplier: Option<String>Optional supplier IRI overriding the document-level author for this statement.
justification: Option<Justification>Required when status == not_affected (per spec; we don’t
enforce at the type level — see vex::conformance_tests).
impact_statement: Option<String>Free-form explanation paired with not_affected.
action_statement: Option<String>Canonical companion to status == affected (per spec).
We never emit affected today, but the field exists so the type
round-trips a richer doc through our parser.
Trait Implementations§
Source§impl<'de> Deserialize<'de> for Statement
impl<'de> Deserialize<'de> for Statement
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
impl StructuralPartialEq for Statement
Auto Trait Implementations§
impl Freeze for Statement
impl RefUnwindSafe for Statement
impl Send for Statement
impl Sync for Statement
impl Unpin for Statement
impl UnsafeUnpin for Statement
impl UnwindSafe for Statement
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
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