[−][src]Struct register::LocalRegisterCopy
This behaves very similarly to a read-only register, but instead of doing a volatile read to MMIO to get the value for each function call, a copy of the register contents are stored locally in memory. This allows a peripheral to do a single read on a register, and then check which bits are set without having to do a full MMIO read each time. It also allows the value of the register to be "cached" in case the peripheral driver needs to clear the register in hardware yet still be able to check the bits.
Methods
impl<T, R> LocalRegisterCopy<T, R> where
R: RegisterLongName,
T: IntLike,
[src]
R: RegisterLongName,
T: IntLike,
pub const fn new(value: T) -> LocalRegisterCopy<T, R>
[src]
pub fn get(&self) -> T
[src]
pub fn read(&self, field: Field<T, R>) -> T
[src]
pub fn read_as_enum<E>(&self, field: Field<T, R>) -> Option<E> where
E: TryFromValue<T, EnumType = E>,
[src]
E: TryFromValue<T, EnumType = E>,
pub fn is_set(&self, field: Field<T, R>) -> bool
[src]
pub fn matches_any(&self, field: FieldValue<T, R>) -> bool
[src]
pub fn matches_all(&self, field: FieldValue<T, R>) -> bool
[src]
pub fn bitand(&self, rhs: T) -> LocalRegisterCopy<T, R>
[src]
Do a bitwise AND operation of the stored value and the passed in value and return a new LocalRegisterCopy.
Trait Implementations
impl<T, R> Clone for LocalRegisterCopy<T, R> where
R: RegisterLongName + Clone,
T: IntLike + Clone,
[src]
R: RegisterLongName + Clone,
T: IntLike + Clone,
fn clone(&self) -> LocalRegisterCopy<T, R>
[src]
fn clone_from(&mut self, source: &Self)
1.0.0[src]
impl<T, R> Copy for LocalRegisterCopy<T, R> where
R: RegisterLongName + Copy,
T: IntLike + Copy,
[src]
R: RegisterLongName + Copy,
T: IntLike + Copy,
impl<T, R> Debug for LocalRegisterCopy<T, R> where
R: RegisterLongName,
T: IntLike + Debug,
[src]
R: RegisterLongName,
T: IntLike + Debug,
Auto Trait Implementations
impl<T, R> Send for LocalRegisterCopy<T, R> where
R: Send,
T: Send,
R: Send,
T: Send,
impl<T, R> Sync for LocalRegisterCopy<T, R> where
R: Sync,
T: Sync,
R: Sync,
T: Sync,
impl<T, R> Unpin for LocalRegisterCopy<T, R> where
R: Unpin,
T: Unpin,
R: Unpin,
T: Unpin,
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = !
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,