Struct peripherals::Field [−][src]
pub struct Field<R, T, I> { /* fields omitted */ }
A single register field
Created by:
Usable with:
Reg::field
orValue::field
: read this field to its specific type.Reg::toggle
orValue
^
Field
: toggle these fields (only for single-bit fields).
These fields be combined together with |
, &
and ^
, producing Fields
.
Example
use peripherals::{register, Value}; register! { Register: u8 = 0b1001 { BIT1: 0 = struct Bit1(bool); BIT2: 1 = struct Bit2(bool); TWO_BITS: 2..3 = struct TwoBits(u8); } } // Obtain it from the associated constants on the register assert_eq!(Register::BIT1.mask(), 0b0001); assert_eq!(Register::TWO_BITS.mask(), 0b1100); // Use it to read fields let mut value = Value::reset(); assert_eq!(value.value(), 0b1001); assert_eq!(value.field(Register::BIT1), Bit1(true)); assert_eq!(value.field(Register::BIT2), Bit2(false)); assert_eq!(value.field(Register::TWO_BITS), TwoBits(0b10)); // Toggle single-bit fields value ^= Register::BIT1; assert_eq!(value.value(), 0b1000); value ^= Register::BIT2; assert_eq!(value.value(), 0b1010);
Implementations
Trait Implementations
impl<R: RegisterValue, T: Into<Fields<R>>, U: MayToggle> BitAnd<T> for Field<R, U, R::Int> where
T: Either<U::Toggle>,
[src]
impl<R: RegisterValue, T: Into<Fields<R>>, U: MayToggle> BitAnd<T> for Field<R, U, R::Int> where
T: Either<U::Toggle>,
[src]impl<R: RegisterValue, T: Into<Fields<R>>, U: MayToggle> BitOr<T> for Field<R, U, R::Int> where
T: Both<U::Toggle>,
[src]
impl<R: RegisterValue, T: Into<Fields<R>>, U: MayToggle> BitOr<T> for Field<R, U, R::Int> where
T: Both<U::Toggle>,
[src]impl<R: RegisterValue, T: Into<Fields<R>>, U: MayToggle> BitXor<T> for Field<R, U, R::Int> where
T: Both<U::Toggle>,
[src]
impl<R: RegisterValue, T: Into<Fields<R>>, U: MayToggle> BitXor<T> for Field<R, U, R::Int> where
T: Both<U::Toggle>,
[src]impl<R: RegisterValue, T> Clone for Field<R, T, R::Int>
[src]
impl<R: RegisterValue, T> Clone for Field<R, T, R::Int>
[src]impl<R: RegisterValue, T> Debug for Field<R, T, R::Int>
[src]
impl<R: RegisterValue, T> Debug for Field<R, T, R::Int>
[src]impl<R: RegisterValue, T> From<Field<R, T, <R as RegisterValue>::Int>> for Fields<R, ()>
[src]
impl<R: RegisterValue, T> From<Field<R, T, <R as RegisterValue>::Int>> for Fields<R, ()>
[src]impl<R: RegisterValue, T: MayToggle<Toggle = Toggle>> From<Field<R, T, <R as RegisterValue>::Int>> for Fields<R, Toggle>
[src]
impl<R: RegisterValue, T: MayToggle<Toggle = Toggle>> From<Field<R, T, <R as RegisterValue>::Int>> for Fields<R, Toggle>
[src]impl<R: RegisterValue, T> Copy for Field<R, T, R::Int>
[src]
impl<R: RegisterValue, T> Eq for Field<R, T, R::Int>
[src]
Auto Trait Implementations
impl<R, T, I> Send for Field<R, T, I> where
I: Send,
R: Send,
T: Send,
I: Send,
R: Send,
T: Send,
impl<R, T, I> Sync for Field<R, T, I> where
I: Sync,
R: Sync,
T: Sync,
I: Sync,
R: Sync,
T: Sync,
impl<R, T, I> Unpin for Field<R, T, I> where
I: Unpin,
R: Unpin,
T: Unpin,
I: Unpin,
R: Unpin,
T: Unpin,