Skip to main content

BackendReport

Struct BackendReport 

Source
pub struct BackendReport {
    pub active: Backend,
    pub candidate: Backend,
    pub candidate_detection_mode: CandidateDetectionMode,
    pub simd_feature_enabled: bool,
    pub accelerated_backend_active: bool,
    pub unsafe_boundary_enforced: bool,
    pub security_posture: SecurityPosture,
    pub wipe_posture: WipePosture,
    pub ct_gate_posture: CtGatePosture,
}
Expand description

Backend report for the current build and target.

Fields§

§active: Backend

Backend currently used for admitted runtime dispatch.

In the staged 1.2.0 line, AVX-512 VBMI, AVX2, SSSE3/SSE4.1, and NEON admission covers encode dispatch only. Decode remains scalar until a separate decode admission package is complete.

§candidate: Backend

Strongest backend candidate visible to the current build.

§candidate_detection_mode: CandidateDetectionMode

Whether candidate visibility came from runtime CPU probing, compile-time target features, or a disabled SIMD feature.

§simd_feature_enabled: bool

Whether the simd feature is enabled in this build.

§accelerated_backend_active: bool

Whether an accelerated SIMD backend is active.

§unsafe_boundary_enforced: bool

Whether this build keeps the high-assurance scalar unsafe boundary.

This is a conservative compile-time posture signal. It is true only when the reserved simd feature is disabled; simd builds expose additional private prototype boundaries and must use the release evidence scripts for boundary validation.

§security_posture: SecurityPosture

Current security posture.

§wipe_posture: WipePosture

Current wipe-barrier posture.

§ct_gate_posture: CtGatePosture

Current constant-time result-gate barrier posture.

Implementations§

Source§

impl BackendReport

Source

pub const fn satisfies(self, policy: BackendPolicy) -> bool

Returns whether this report satisfies policy.

let report = base64_ng::runtime::backend_report();

let scalar_only =
    report.satisfies(base64_ng::runtime::BackendPolicy::ScalarExecutionOnly);
assert_eq!(scalar_only, !report.accelerated_backend_active);
Source

pub const fn candidate_required_cpu_features(self) -> &'static [&'static str]

Returns the CPU features required by the detected candidate.

let report = base64_ng::runtime::backend_report();

assert_eq!(
    report.candidate_required_cpu_features(),
    report.candidate.required_cpu_features(),
);
Source

pub const fn memory_lock_posture(self) -> MemoryLockPosture

Returns whether base64-ng itself locks secret buffers into physical memory.

This crate intentionally has no OS-specific mlock/VirtualLock integration. High-assurance deployments should pair secret buffers with their own platform-approved memory-locking, swap, hibernation, and crash-dump controls.

Source

pub const fn snapshot(self) -> BackendSnapshot

Returns a compact structured snapshot with stable string values.

let snapshot = base64_ng::runtime::backend_report().snapshot();

assert_eq!(
    snapshot.accelerated_backend_active,
    snapshot.active != "scalar",
);

Trait Implementations§

Source§

impl Clone for BackendReport

Source§

fn clone(&self) -> BackendReport

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Copy for BackendReport

Source§

impl Debug for BackendReport

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Display for BackendReport

Source§

fn fmt(&self, formatter: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Eq for BackendReport

Source§

impl PartialEq for BackendReport

Source§

fn eq(&self, other: &BackendReport) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl StructuralPartialEq for BackendReport

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.