[][src]Struct register::LocalRegisterCopy

pub struct LocalRegisterCopy<T, R = ()> where
    T: IntLike,
    R: RegisterLongName
{ /* fields omitted */ }

A read-only copy register contents

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.

Implementations

impl<T, R> LocalRegisterCopy<T, R> where
    T: IntLike,
    R: RegisterLongName
[src]

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]

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
    T: IntLike + Clone,
    R: RegisterLongName + Clone
[src]

impl<T, R> Copy for LocalRegisterCopy<T, R> where
    T: IntLike + Copy,
    R: RegisterLongName + Copy
[src]

impl<T, R> Debug for LocalRegisterCopy<T, R> where
    T: IntLike + Debug,
    R: RegisterLongName
[src]

Auto Trait Implementations

impl<T, R> Send for LocalRegisterCopy<T, R> where
    R: Send,
    T: Send
[src]

impl<T, R> Sync for LocalRegisterCopy<T, R> where
    R: Sync,
    T: Sync
[src]

impl<T, R> Unpin for LocalRegisterCopy<T, R> where
    R: Unpin,
    T: Unpin
[src]

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.