pub struct ReadWriteRegWrapper<'a, T, N, R>(/* private fields */)
where
T: UIntLike,
N: RegisterLongName,
R: BaseReadableRegister<T> + BaseWriteableRegister<T>;
Expand description
Workaround-wrapper for read- and writable LiteX registers
This workaround-wrapper is required to make an associated type of
LiteXSoCRegisterConfiguration
generic over the
RegisterLongName
until generic associated types stabilize in
Rust. Please see the LiteXSoCRegisterConfiguration
documentation for more information.
Implementations§
Source§impl<'a, T, N, R> ReadWriteRegWrapper<'a, T, N, R>
impl<'a, T, N, R> ReadWriteRegWrapper<'a, T, N, R>
pub fn wrap(reg: &'a R) -> ReadWriteRegWrapper<'a, T, N, R>
Trait Implementations§
Source§impl<T, N, R> BaseReadableRegister<T> for ReadWriteRegWrapper<'_, T, N, R>
impl<T, N, R> BaseReadableRegister<T> for ReadWriteRegWrapper<'_, T, N, R>
Source§impl<T, N, R> BaseWriteableRegister<T> for ReadWriteRegWrapper<'_, T, N, R>
impl<T, N, R> BaseWriteableRegister<T> for ReadWriteRegWrapper<'_, T, N, R>
Auto Trait Implementations§
impl<'a, T, N, R> Freeze for ReadWriteRegWrapper<'a, T, N, R>
impl<'a, T, N, R> RefUnwindSafe for ReadWriteRegWrapper<'a, T, N, R>
impl<'a, T, N, R> Send for ReadWriteRegWrapper<'a, T, N, R>
impl<'a, T, N, R> Sync for ReadWriteRegWrapper<'a, T, N, R>
impl<'a, T, N, R> Unpin for ReadWriteRegWrapper<'a, T, N, R>
impl<'a, T, N, R> UnwindSafe for ReadWriteRegWrapper<'a, T, N, R>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<R, T> Read<T> for Rwhere
T: UIntLike,
R: BaseReadableRegister<T>,
impl<R, T> Read<T> for Rwhere
T: UIntLike,
R: BaseReadableRegister<T>,
const REG_WIDTH: usize = R::REG_WIDTH
type Reg = <R as BaseReadableRegister<T>>::Reg
Source§fn read_as_enum<E>(&self, field: Field<T, <R as Read<T>>::Reg>) -> Option<E>where
E: TryFromValue<T, EnumType = E>,
fn read_as_enum<E>(&self, field: Field<T, <R as Read<T>>::Reg>) -> Option<E>where
E: TryFromValue<T, EnumType = E>,
Read value of the given field as an enum member
Source§fn extract(&self) -> LocalRegisterCopy<T, <R as Read<T>>::Reg>
fn extract(&self) -> LocalRegisterCopy<T, <R as Read<T>>::Reg>
Make a local copy of the register
Source§fn is_set(&self, field: Field<T, <R as Read<T>>::Reg>) -> bool
fn is_set(&self, field: Field<T, <R as Read<T>>::Reg>) -> bool
Check if one or more bits in a field are set
Source§fn any_matching_bits_set(
&self,
field: FieldValue<T, <R as Read<T>>::Reg>,
) -> bool
fn any_matching_bits_set( &self, field: FieldValue<T, <R as Read<T>>::Reg>, ) -> bool
Check if any specified parts of a field match
Source§fn matches_all(&self, field: FieldValue<T, <R as Read<T>>::Reg>) -> bool
fn matches_all(&self, field: FieldValue<T, <R as Read<T>>::Reg>) -> bool
Check if all specified parts of a field match
Source§impl<R, T> ReadWrite<T> for R
impl<R, T> ReadWrite<T> for R
const REG_WIDTH: usize
Source§fn modify(&self, field: FieldValue<T, <R as Read<T>>::Reg>)
fn modify(&self, field: FieldValue<T, <R as Read<T>>::Reg>)
Write the value of one or more fields, leaving the other
fields unchanged
Source§fn modify_no_read(
&self,
original: LocalRegisterCopy<T, <R as Read<T>>::Reg>,
field: FieldValue<T, <R as Read<T>>::Reg>,
)
fn modify_no_read( &self, original: LocalRegisterCopy<T, <R as Read<T>>::Reg>, field: FieldValue<T, <R as Read<T>>::Reg>, )
Write the value of one or more fields, maintaining the value
of unchanged fields via a provided original value, rather than
a register read.