pub struct MemoryLayout<A> {Show 23 fields
pub four_state: bool,
pub mode: MemoryLayoutMode,
pub offsets: FxHashMap<A, usize>,
pub widths: FxHashMap<A, usize>,
pub is_4states: FxHashMap<A, bool>,
pub unpacked_arrays: FxHashMap<A, UnpackedArrayLayout>,
pub total_size: usize,
pub working_offsets: FxHashMap<A, usize>,
pub working_base_offset: usize,
pub sparse_offsets: FxHashMap<A, usize>,
pub sparse_base_offset: usize,
pub sparse_layouts: FxHashMap<A, SparseWorkingLayout>,
pub sparse_active_bits_offset: usize,
pub sparse_active_capacity: usize,
pub merged_total_size: usize,
pub triggered_bits_offset: usize,
pub triggered_bits_total_size: usize,
pub scratch_base_offset: usize,
pub scratch_size: usize,
pub runtime_event_capacity: usize,
pub runtime_event_slot_size: usize,
pub runtime_event_buffer_size: usize,
pub runtime_event_site_layouts: Vec<RuntimeEventSiteLayout>,
}Fields§
§four_state: bool§mode: MemoryLayoutMode§offsets: FxHashMap<A, usize>Stable region offsets. Includes all declared state objects.
widths: FxHashMap<A, usize>§is_4states: FxHashMap<A, bool>Whether each state object has a four-state source type.
unpacked_arrays: FxHashMap<A, UnpackedArrayLayout>§total_size: usizeStable region size in bytes.
working_offsets: FxHashMap<A, usize>Working region offsets. Includes only actually-used state objects.
working_base_offset: usize§sparse_offsets: FxHashMap<A, usize>Copy-on-write next-state data for dynamically addressed FF targets.
sparse_base_offset: usize§sparse_layouts: FxHashMap<A, SparseWorkingLayout>§sparse_active_bits_offset: usize§sparse_active_capacity: usize§merged_total_size: usize§triggered_bits_offset: usize§triggered_bits_total_size: usize§scratch_base_offset: usize§scratch_size: usize§runtime_event_capacity: usize§runtime_event_slot_size: usize§runtime_event_buffer_size: usize§runtime_event_site_layouts: Vec<RuntimeEventSiteLayout>Implementations§
Source§impl<A> MemoryLayout<A>
impl<A> MemoryLayout<A>
pub fn build<S>(source: &S, four_state: bool, mode: MemoryLayoutMode) -> Selfwhere
S: LayoutSource<A>,
Sourcepub fn with_backend_scratch(self, scratch_size: usize) -> Self
pub fn with_backend_scratch(self, scratch_size: usize) -> Self
Append backend-private scratch storage without changing any semantic state offset. Backend planning happens after the backend-neutral state layout has been finalized, so scratch is always the final region.
pub fn plane_size(&self, address: &A) -> usize
pub fn region_base_offset<R>(&self, address: &R) -> usizewhere
R: RegionedAddress<A>,
pub fn map_static_bit_offset( &self, address: &A, bit_offset: usize, ) -> (usize, usize)
pub fn regioned_static_byte_and_intra<R>(
&self,
address: &R,
bit_offset: usize,
) -> Option<(i32, usize)>where
R: RegionedAddress<A>,
Trait Implementations§
Source§impl<A: Clone> Clone for MemoryLayout<A>
impl<A: Clone> Clone for MemoryLayout<A>
Source§fn clone(&self) -> MemoryLayout<A>
fn clone(&self) -> MemoryLayout<A>
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl<A: Debug> Debug for MemoryLayout<A>
impl<A: Debug> Debug for MemoryLayout<A>
Source§impl<'de, A> Deserialize<'de> for MemoryLayout<A>
impl<'de, A> Deserialize<'de> for MemoryLayout<A>
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Auto Trait Implementations§
impl<A> Freeze for MemoryLayout<A>where
HashMap<A, usize, BuildHasherDefault<FxHasher>>: Freeze,
HashMap<A, bool, BuildHasherDefault<FxHasher>>: Freeze,
HashMap<A, UnpackedArrayLayout, BuildHasherDefault<FxHasher>>: Freeze,
HashMap<A, SparseWorkingLayout, BuildHasherDefault<FxHasher>>: Freeze,
impl<A> RefUnwindSafe for MemoryLayout<A>
impl<A> Send for MemoryLayout<A>where
HashMap<A, usize, BuildHasherDefault<FxHasher>>: Send,
HashMap<A, bool, BuildHasherDefault<FxHasher>>: Send,
HashMap<A, UnpackedArrayLayout, BuildHasherDefault<FxHasher>>: Send,
HashMap<A, SparseWorkingLayout, BuildHasherDefault<FxHasher>>: Send,
impl<A> Sync for MemoryLayout<A>where
HashMap<A, usize, BuildHasherDefault<FxHasher>>: Sync,
HashMap<A, bool, BuildHasherDefault<FxHasher>>: Sync,
HashMap<A, UnpackedArrayLayout, BuildHasherDefault<FxHasher>>: Sync,
HashMap<A, SparseWorkingLayout, BuildHasherDefault<FxHasher>>: Sync,
impl<A> Unpin for MemoryLayout<A>where
HashMap<A, usize, BuildHasherDefault<FxHasher>>: Unpin,
HashMap<A, bool, BuildHasherDefault<FxHasher>>: Unpin,
HashMap<A, UnpackedArrayLayout, BuildHasherDefault<FxHasher>>: Unpin,
HashMap<A, SparseWorkingLayout, BuildHasherDefault<FxHasher>>: Unpin,
impl<A> UnsafeUnpin for MemoryLayout<A>where
HashMap<A, usize, BuildHasherDefault<FxHasher>>: UnsafeUnpin,
HashMap<A, bool, BuildHasherDefault<FxHasher>>: UnsafeUnpin,
HashMap<A, UnpackedArrayLayout, BuildHasherDefault<FxHasher>>: UnsafeUnpin,
HashMap<A, SparseWorkingLayout, BuildHasherDefault<FxHasher>>: UnsafeUnpin,
impl<A> UnwindSafe for MemoryLayout<A>where
HashMap<A, usize, BuildHasherDefault<FxHasher>>: UnwindSafe,
HashMap<A, bool, BuildHasherDefault<FxHasher>>: UnwindSafe,
HashMap<A, UnpackedArrayLayout, BuildHasherDefault<FxHasher>>: UnwindSafe,
HashMap<A, SparseWorkingLayout, BuildHasherDefault<FxHasher>>: UnwindSafe,
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