pub struct Field<T: UIntLike, R: RegisterLongName> {
    pub mask: T,
    pub shift: usize,
    /* private fields */
}
Expand description

Specific section of a register.

For the Field, the mask is unshifted, ie. the LSB should always be set.

Fields

mask: Tshift: usize

Implementations

Check if one or more bits in a field are set

Read value of the field as an enum member

This method expects to be passed the unasked and unshifted register value, extracts the field value by calling Field::read and subsequently passes that value to the TryFromValue implementation on the passed enum type.

The register_bitfields! macro will generate an enum containing the various named field variants and implementing the required TryFromValue trait. It is accessible as $REGISTER_NAME::$FIELD_NAME::Value.

This method can be useful to symbolically represent read register field states throughout the codebase and to enforce exhaustive matches over all defined valid register field values.

Usage Example
register_bitfields![u8,
    EXAMPLEREG [
        TESTFIELD OFFSET(3) NUMBITS(3) [
            Foo = 2,
            Bar = 3,
            Baz = 6,
        ],
    ],
];

match EXAMPLEREG::TESTFIELD.read_as_enum(0x9C) {
    Some(EXAMPLEREG::TESTFIELD::Value::Bar) => "The value is 3!",
    _ => panic!("boo!"),
};

Trait Implementations

Returns a copy of the value. Read more
Performs copy-assignment from source. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

The type returned in the event of a conversion error.
Performs the conversion.
The type returned in the event of a conversion error.
Performs the conversion.