#[non_exhaustive]pub enum StandardKind {
Show 14 variants
CraArticle,
CraAnnex,
Pren40000_1_3,
BsiTr03183_2,
NistSsdf,
Eo14028,
FdaPremarket,
NtiaMinimum,
Csaf2,
Cnsa2,
NistPqc,
EuAiAct,
BsiSbomForAi,
Other,
}Expand description
Identifies the source standard a StandardRef points at.
The CRA harmonised-standard ecosystem references multiple parallel hierarchies (the regulation itself, the prEN 40000-1-3 horizontal standard, BSI TR-03183 national guidance) and a violation typically maps to several at once. Notified bodies will read prEN IDs; auditors quote regulation articles; engineers prefer BSI sections.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
CraArticle
EU CRA regulation article (e.g., “Art. 13(4)”)
CraAnnex
EU CRA regulation annex (e.g., “Annex I Part II 1”)
Pren40000_1_3
prEN 40000-1-3 normative requirement ID (e.g., “PRE-7-RQ-07”)
BsiTr03183_2
BSI TR-03183-2 section reference
NistSsdf
NIST SP 800-218 SSDF practice
Eo14028
US Executive Order 14028 Section 4
FdaPremarket
FDA premarket cybersecurity guidance
NtiaMinimum
NTIA Minimum Elements for an SBOM
Csaf2
CSAF v2.0 / ISO/IEC 20153:2025 advisory format
Cnsa2
CNSA 2.0 (NSA Commercial National Security Algorithm Suite)
NistPqc
NIST Post-Quantum Cryptography (FIPS 203/204/205, SP 800-131A)
EuAiAct
EU AI Act (Regulation (EU) 2024/1689) — Annex IV technical documentation
BsiSbomForAi
BSI/G7 “SBOM for AI — Minimum Elements” (Feb 2026)
Other
Other / unrecognised standard
Implementations§
Source§impl StandardKind
impl StandardKind
Source§impl StandardKind
impl StandardKind
Sourcepub fn canonical_help_uri(self, _id: &str) -> Option<String>
pub fn canonical_help_uri(self, _id: &str) -> Option<String>
Stable canonical URL for the standard / regulation that hosts the
referenced clause. Returns None for Other (no canonical home) and
for Pren40000_1_3 because the draft EN is paywalled and CEN’s URLs
are not stable; CRA-P5.1 will revisit once the standard is finalised.
The returned URL is the standard’s root, not a per-clause anchor —
EUR-Lex and most national standards bodies do not publish stable
per-article fragments. Per-article precision lives in the
StandardRef::id (e.g., “Art. 13(4)”) rather than the URL.
Trait Implementations§
Source§impl Clone for StandardKind
impl Clone for StandardKind
Source§fn clone(&self) -> StandardKind
fn clone(&self) -> StandardKind
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 StandardKind
Source§impl Debug for StandardKind
impl Debug for StandardKind
Source§impl<'de> Deserialize<'de> for StandardKind
impl<'de> Deserialize<'de> for StandardKind
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 StandardKind
Source§impl Hash for StandardKind
impl Hash for StandardKind
Source§impl PartialEq for StandardKind
impl PartialEq for StandardKind
Source§fn eq(&self, other: &StandardKind) -> bool
fn eq(&self, other: &StandardKind) -> bool
self and other values to be equal, and is used by ==.Source§impl Serialize for StandardKind
impl Serialize for StandardKind
impl StructuralPartialEq for StandardKind
Auto Trait Implementations§
impl Freeze for StandardKind
impl RefUnwindSafe for StandardKind
impl Send for StandardKind
impl Sync for StandardKind
impl Unpin for StandardKind
impl UnsafeUnpin for StandardKind
impl UnwindSafe for StandardKind
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