#[non_exhaustive]pub enum CtGatePosture {
HardwareSpeculationBarrier,
OrderingFence,
CompilerFenceOnly,
}Expand description
Constant-time result-gate barrier posture for this build and target.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
HardwareSpeculationBarrier
The target uses a native speculation barrier before public CT success/failure or equality-result branches.
On AArch64 this uses isb sy plus the CSDB hint encoding. Full
CSDB effectiveness depends on the deployed ARM architecture level;
older cores may treat the hint as a no-op.
OrderingFence
The target uses an ordering fence where the base ISA does not provide a canonical speculation barrier.
CompilerFenceOnly
The target uses compiler fences only.
Implementations§
Trait Implementations§
Source§impl Clone for CtGatePosture
impl Clone for CtGatePosture
Source§fn clone(&self) -> CtGatePosture
fn clone(&self) -> CtGatePosture
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for CtGatePosture
impl Debug for CtGatePosture
Source§impl Display for CtGatePosture
impl Display for CtGatePosture
Source§impl PartialEq for CtGatePosture
impl PartialEq for CtGatePosture
Source§fn eq(&self, other: &CtGatePosture) -> bool
fn eq(&self, other: &CtGatePosture) -> bool
Tests for
self and other values to be equal, and is used by ==.impl Copy for CtGatePosture
impl Eq for CtGatePosture
impl StructuralPartialEq for CtGatePosture
Auto Trait Implementations§
impl Freeze for CtGatePosture
impl RefUnwindSafe for CtGatePosture
impl Send for CtGatePosture
impl Sync for CtGatePosture
impl Unpin for CtGatePosture
impl UnsafeUnpin for CtGatePosture
impl UnwindSafe for CtGatePosture
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