pub struct ArenaRegions {
pub const_data_len: usize,
pub in_ptr: u32,
pub in_len: u32,
pub out_ptr: u32,
pub out_cap: u32,
pub scratch_base: u32,
pub arena_size: usize,
}Expand description
Arena region boundaries the in-place decode selects between. The
arena layout (shared by both AOT backends) is
[const_data | pad | in_buf | pad | out_buf | pad | scratch]; the
returned root may live in any region (S1 only ever sees the
param-sourced in_buf list, but the selection is generic so S2+ can
return out_buf / scratch roots through the same gate).
Fields§
§const_data_len: usizeLength of the const-data section at arena offset 0.
in_ptr: u32Input region start (in_ptr) and length.
in_len: u32§out_ptr: u32Output region start (out_ptr) and capacity.
out_cap: u32§scratch_base: u32Scratch region start; it runs to arena_size.
arena_size: usizeTotal arena size in bytes.
Implementations§
Source§impl ArenaRegions
impl ArenaRegions
Sourcepub fn multi_region(&self) -> Result<MultiRegion, VerifyError>
pub fn multi_region(&self) -> Result<MultiRegion, VerifyError>
Build the four-region MultiRegion map in absolute arena
coordinates from the dispatch’s region boundaries. Every slot
pointer the F1 ABI emits is arena-absolute, so the verifier walks
the whole arena and classifies each followed span into one of
const / in / out / scratch. The ABI lays the regions out
disjointly as [const | pad | in | pad | out | pad | scratch]; we
pass each as a half-open [start, end) window.
Trait Implementations§
Source§impl Clone for ArenaRegions
impl Clone for ArenaRegions
Source§fn clone(&self) -> ArenaRegions
fn clone(&self) -> ArenaRegions
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for ArenaRegions
Auto Trait Implementations§
impl Freeze for ArenaRegions
impl RefUnwindSafe for ArenaRegions
impl Send for ArenaRegions
impl Sync for ArenaRegions
impl Unpin for ArenaRegions
impl UnsafeUnpin for ArenaRegions
impl UnwindSafe for ArenaRegions
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more