#[non_exhaustive]pub enum CraProductClass {
Default,
ImportantClass1,
ImportantClass2,
Critical,
}Expand description
CRA product class per Regulation (EU) 2024/2847 Annex III/IV.
The class drives the conformity-assessment route and the severity calibration of compliance checks (per CRA-P3.2 calibration table): stricter classes upgrade Warning→Error and add EUCC / attestation expectations.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Default
Default — neither Annex III nor Annex IV. Module A self-assessment.
ImportantClass1
Annex III items 1–11 (Important Class I). Module A or B+C.
ImportantClass2
Annex III items 12–17 (Important Class II). Module B+C, H, or EUCC.
Critical
Annex IV (Critical). EUCC mandatory.
Implementations§
Source§impl CraProductClass
impl CraProductClass
Sourcepub fn parse_cli(s: &str) -> Option<Self>
pub fn parse_cli(s: &str) -> Option<Self>
Parse from the CLI-friendly kebab-case form. Accepts a few aliases.
Sourcepub fn parse_cli_strict(s: &str) -> Result<Self, String>
pub fn parse_cli_strict(s: &str) -> Result<Self, String>
Strict variant of Self::parse_cli: an unrecognized spelling is an
error naming the valid values instead of None.
Used by the --cra-product-class CLI flags and the config-file
validator so a typo can never be silently dropped (which would score
the SBOM as Default class and flip CRA verdicts).
§Errors
Returns a message listing the valid canonical spellings when s is
not a recognized product class.
Sourcepub const fn default_route(self) -> ConformityRoute
pub const fn default_route(self) -> ConformityRoute
The conformity-assessment route the regulation expects (or strictly requires) for this class. Manufacturers may choose a stricter route.
Trait Implementations§
Source§impl Clone for CraProductClass
impl Clone for CraProductClass
Source§fn clone(&self) -> CraProductClass
fn clone(&self) -> CraProductClass
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for CraProductClass
Source§impl Debug for CraProductClass
impl Debug for CraProductClass
Source§impl<'de> Deserialize<'de> for CraProductClass
impl<'de> Deserialize<'de> for CraProductClass
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>,
impl Eq for CraProductClass
Source§impl PartialEq for CraProductClass
impl PartialEq for CraProductClass
Source§impl Serialize for CraProductClass
impl Serialize for CraProductClass
impl StructuralPartialEq for CraProductClass
Auto Trait Implementations§
impl Freeze for CraProductClass
impl RefUnwindSafe for CraProductClass
impl Send for CraProductClass
impl Sync for CraProductClass
impl Unpin for CraProductClass
impl UnsafeUnpin for CraProductClass
impl UnwindSafe for CraProductClass
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.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