firmware_uefi::service::nvram::spec_services

Struct SupportedAttrs

Source
pub struct SupportedAttrs(/* private fields */);
Expand description

SetVariable validation is incredibly tricky, since there are a lot of subtle logic branches that are predicated on the presence (or lack thereof) of various attribute bits.

In order to make the implementation a bit easier to understand and maintain, we switch from using the full-featured EfiVariableAttributes bitflags type to a restricted subset of these flags described by SupportedAttrs part-way through SetVariable.

Implementations§

Source§

impl SupportedAttrs

Source

pub const fn new() -> Self

Creates a new default initialized bitfield.

Source

pub const fn from_bits(bits: u32) -> Self

Convert from bits.

Source

pub const fn into_bits(self) -> u32

Convert into bits.

Source

pub const fn non_volatile(&self) -> bool

Bits: 0..1

Source

pub const fn with_non_volatile_checked(self, value: bool) -> Result<Self, ()>

Bits: 0..1

Source

pub const fn with_non_volatile(self, value: bool) -> Self

Bits: 0..1

Source

pub const fn set_non_volatile(&mut self, value: bool)

Bits: 0..1

Source

pub const fn set_non_volatile_checked(&mut self, value: bool) -> Result<(), ()>

Bits: 0..1

Source

pub const fn bootservice_access(&self) -> bool

Bits: 1..2

Source

pub const fn with_bootservice_access_checked( self, value: bool, ) -> Result<Self, ()>

Bits: 1..2

Source

pub const fn with_bootservice_access(self, value: bool) -> Self

Bits: 1..2

Source

pub const fn set_bootservice_access(&mut self, value: bool)

Bits: 1..2

Source

pub const fn set_bootservice_access_checked( &mut self, value: bool, ) -> Result<(), ()>

Bits: 1..2

Source

pub const fn runtime_access(&self) -> bool

Bits: 2..3

Source

pub const fn with_runtime_access_checked(self, value: bool) -> Result<Self, ()>

Bits: 2..3

Source

pub const fn with_runtime_access(self, value: bool) -> Self

Bits: 2..3

Source

pub const fn set_runtime_access(&mut self, value: bool)

Bits: 2..3

Source

pub const fn set_runtime_access_checked( &mut self, value: bool, ) -> Result<(), ()>

Bits: 2..3

Source

pub const fn hardware_error_record(&self) -> bool

Bits: 3..4

Source

pub const fn with_hardware_error_record_checked( self, value: bool, ) -> Result<Self, ()>

Bits: 3..4

Source

pub const fn with_hardware_error_record(self, value: bool) -> Self

Bits: 3..4

Source

pub const fn set_hardware_error_record(&mut self, value: bool)

Bits: 3..4

Source

pub const fn set_hardware_error_record_checked( &mut self, value: bool, ) -> Result<(), ()>

Bits: 3..4

Source

pub const fn time_based_authenticated_write_access(&self) -> bool

Bits: 5..6

Source

pub const fn with_time_based_authenticated_write_access_checked( self, value: bool, ) -> Result<Self, ()>

Bits: 5..6

Source

pub const fn with_time_based_authenticated_write_access( self, value: bool, ) -> Self

Bits: 5..6

Source

pub const fn set_time_based_authenticated_write_access(&mut self, value: bool)

Bits: 5..6

Source

pub const fn set_time_based_authenticated_write_access_checked( &mut self, value: bool, ) -> Result<(), ()>

Bits: 5..6

Source§

impl SupportedAttrs

Trait Implementations§

Source§

impl Clone for SupportedAttrs

Source§

fn clone(&self) -> SupportedAttrs

Returns a copy of the value. Read more
1.0.0 · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Debug for SupportedAttrs

Source§

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

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

impl Default for SupportedAttrs

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl From<SupportedAttrs> for u32

Source§

fn from(v: SupportedAttrs) -> u32

Converts to this type from the input type.
Source§

impl From<u32> for SupportedAttrs

Source§

fn from(v: u32) -> Self

Converts to this type from the input type.
Source§

impl PartialEq for SupportedAttrs

Source§

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

Tests for self and other values to be equal, and is used by ==.
1.0.0 · 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 Copy for SupportedAttrs

Source§

impl StructuralPartialEq for SupportedAttrs

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, dst: *mut u8)

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

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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, 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.
§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more