diff --git a/libregister/src/lib.rs b/libregister/src/lib.rs index a091f46..814ef67 100644 --- a/libregister/src/lib.rs +++ b/libregister/src/lib.rs @@ -290,6 +290,19 @@ macro_rules! register_bits { } } ); + + ($mod_name: ident, $(#[$outer:meta])* $name: ident, $type: ty, $bit_begin: expr, $bit_end: expr, RO) => ( + impl $mod_name::Read { + #[allow(unused)] + #[inline] + $(#[$outer])* + pub fn $name(&self) -> $type { + use bit_field::BitField; + + self.inner.get_bits($bit_begin..=$bit_end) as $type + } + } + ); } /// Define a multi-bit field of a register, coerced to a certain type