pub trait Memory: Sized {
type Memwidth: RegInt;
type Access: Access;
type Endian: Endian;
// Required methods
fn first_entry_ptr(&self) -> *mut Self::Memwidth;
fn num_entries(&self) -> usize;
fn width(&self) -> usize;
// Provided methods
fn index(&self, idx: usize) -> MemEntry<Self> { ... }
fn slice(&self, range: impl RangeBounds<usize>) -> MemEntryIter<Self> ⓘ { ... }
fn iter(&self) -> MemEntryIter<Self> ⓘ { ... }
}Expand description
Behaviors common to all SystemRDL memories
Required Associated Types§
Required Methods§
fn first_entry_ptr(&self) -> *mut Self::Memwidth
Sourcefn num_entries(&self) -> usize
fn num_entries(&self) -> usize
Number of memory entries
Provided Methods§
Sourcefn index(&self, idx: usize) -> MemEntry<Self>
fn index(&self, idx: usize) -> MemEntry<Self>
Access the memory entry at a specific index. Panics if out of bounds.
Sourcefn slice(&self, range: impl RangeBounds<usize>) -> MemEntryIter<Self> ⓘ
fn slice(&self, range: impl RangeBounds<usize>) -> MemEntryIter<Self> ⓘ
Iterate over a range of memory entries
Sourcefn iter(&self) -> MemEntryIter<Self> ⓘ
fn iter(&self) -> MemEntryIter<Self> ⓘ
Iterate over all memory entries
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".