pub trait MemoryWrite {
// Required methods
fn write_raw(&mut self, addr: usize, buf: &[u8]) -> MemoryResult<()>;
fn write<T: Register>(&mut self, data: T::Ty) -> MemoryResult<()>;
fn set_access_right<T: Register>(&mut self, access_right: AccessRight);
fn register_observer<T, U>(&mut self, observer: U)
where T: Register,
U: MemoryObserver + 'static;
}
Required Methods§
fn write_raw(&mut self, addr: usize, buf: &[u8]) -> MemoryResult<()>
Sourcefn write<T: Register>(&mut self, data: T::Ty) -> MemoryResult<()>
fn write<T: Register>(&mut self, data: T::Ty) -> MemoryResult<()>
Write data to the register.
Since the host side know nothing about Register
, this method can be called only from the machine side so access rights are temporarily set to RW
.
fn set_access_right<T: Register>(&mut self, access_right: AccessRight)
fn register_observer<T, U>(&mut self, observer: U)where
T: Register,
U: MemoryObserver + 'static,
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.