pub struct MemoryMapping {
pub start: u64,
pub size: u64,
pub source: SlotPath,
}Expand description
One mapped region. The kernel resolves source (a SlotPath to a
Cap::Data) at instance start, reads the bytes, and lays them at
[start, start + size).
source is a variable-length SlotPath (was a fixed [SlotIdx; MAX_SOURCE_DEPTH] + length), so MemoryMapping is now a
variable-length SSZ container with a fully derived codec — no hand-rolled
SSZ. The eager depth bound (≤ MAX_SOURCE_DEPTH) is enforced in
image_cap at deblob, not in the wire decode.
Fields§
§start: u64§size: u64§source: SlotPathCnode path resolving to the Cap::Data whose bytes back this region.
Implementations§
Trait Implementations§
Source§impl Archive for MemoryMapping
impl Archive for MemoryMapping
Source§const COPY_OPTIMIZATION: CopyOptimization<Self>
const COPY_OPTIMIZATION: CopyOptimization<Self>
An optimization flag that allows the bytes of this type to be copied
directly to a writer instead of calling
serialize. Read moreSource§type Archived = ArchivedMemoryMapping
type Archived = ArchivedMemoryMapping
The archived representation of this type. Read more
Source§type Resolver = MemoryMappingResolver
type Resolver = MemoryMappingResolver
The resolver for this type. It must contain all the additional
information from serializing needed to make the archived type from
the normal type.
Source§impl Clone for MemoryMapping
impl Clone for MemoryMapping
Source§fn clone(&self) -> MemoryMapping
fn clone(&self) -> MemoryMapping
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for MemoryMapping
impl Debug for MemoryMapping
Source§impl Decode for MemoryMapping
impl Decode for MemoryMapping
Source§fn is_ssz_fixed_len() -> bool
fn is_ssz_fixed_len() -> bool
true iff this type is fixed-length.Source§fn ssz_fixed_len() -> usize
fn ssz_fixed_len() -> usize
Number of bytes this type occupies in the fixed-length portion of a
container encoding. Variable-length types return
[
BYTES_PER_LENGTH_OFFSET].Source§fn from_ssz_bytes(bytes: &[u8]) -> Result<Self, DecodeError>
fn from_ssz_bytes(bytes: &[u8]) -> Result<Self, DecodeError>
Decode a full instance from
bytes, rejecting trailing input.Source§impl<__D: Fallible + ?Sized> Deserialize<MemoryMapping, __D> for Archived<MemoryMapping>
impl<__D: Fallible + ?Sized> Deserialize<MemoryMapping, __D> for Archived<MemoryMapping>
Source§fn deserialize(
&self,
deserializer: &mut __D,
) -> Result<MemoryMapping, <__D as Fallible>::Error>
fn deserialize( &self, deserializer: &mut __D, ) -> Result<MemoryMapping, <__D as Fallible>::Error>
Deserializes using the given deserializer
Source§impl Encode for MemoryMapping
impl Encode for MemoryMapping
Source§fn is_ssz_fixed_len() -> bool
fn is_ssz_fixed_len() -> bool
true iff this type is fixed-length (no variable-length fields).Source§fn ssz_fixed_len() -> usize
fn ssz_fixed_len() -> usize
Number of bytes this type occupies in the fixed-length portion of a
container encoding. For variable-length types this returns
[
BYTES_PER_LENGTH_OFFSET] (i.e. the size of the offset slot).Source§fn ssz_bytes_len(&self) -> usize
fn ssz_bytes_len(&self) -> usize
Total size of
self when serialized.Source§fn ssz_append(&self, buf: &mut Vec<u8>)
fn ssz_append(&self, buf: &mut Vec<u8>)
Append the encoding of
self to buf.§fn is_basic_type() -> bool
fn is_basic_type() -> bool
true for “basic” SSZ types (uintN, bool), which pack adjacent
elements into shared 32-byte chunks for merkleization. Composite
types (containers, lists, structs) return false (the default).§fn as_ssz_bytes(&self) -> Vec<u8> ⓘ
fn as_ssz_bytes(&self) -> Vec<u8> ⓘ
Serialize into a fresh
Vec<u8> allocated through the global allocator.Source§impl HashTreeRoot for MemoryMapping
impl HashTreeRoot for MemoryMapping
Source§impl PartialEq for MemoryMapping
impl PartialEq for MemoryMapping
Source§impl<__S: Fallible + ?Sized> Serialize<__S> for MemoryMapping
impl<__S: Fallible + ?Sized> Serialize<__S> for MemoryMapping
impl Eq for MemoryMapping
impl StructuralPartialEq for MemoryMapping
Auto Trait Implementations§
impl Freeze for MemoryMapping
impl RefUnwindSafe for MemoryMapping
impl Send for MemoryMapping
impl Sync for MemoryMapping
impl Unpin for MemoryMapping
impl UnsafeUnpin for MemoryMapping
impl UnwindSafe for MemoryMapping
Blanket Implementations§
§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
§type ArchivedMetadata = ()
type ArchivedMetadata = ()
The archived version of the pointer metadata for this type.
§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
Converts some archived metadata to the pointer metadata for itself.
§impl<T> ArchiveUnsized for Twhere
T: Archive,
impl<T> ArchiveUnsized for Twhere
T: Archive,
§type Archived = <T as Archive>::Archived
type Archived = <T as Archive>::Archived
The archived counterpart of this type. Unlike
Archive, it may be
unsized. Read more§fn archived_metadata(
&self,
) -> <<T as ArchiveUnsized>::Archived as ArchivePointee>::ArchivedMetadata
fn archived_metadata( &self, ) -> <<T as ArchiveUnsized>::Archived as ArchivePointee>::ArchivedMetadata
Creates the archived version of the metadata for this value.
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<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Checks if this value is equivalent to the given key. Read more
§impl<T> LayoutRaw for T
impl<T> LayoutRaw for T
§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Returns the layout of the type.
§impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2where
T: SharedNiching<N1, N2>,
N1: Niching<T>,
N2: Niching<T>,
impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2where
T: SharedNiching<N1, N2>,
N1: Niching<T>,
N2: Niching<T>,
§impl<T> Pointee for T
impl<T> Pointee for T
§impl<T, S> SerializeUnsized<S> for Twhere
T: Serialize<S>,
S: Fallible + Writer + ?Sized,
impl<T, S> SerializeUnsized<S> for Twhere
T: Serialize<S>,
S: Fallible + Writer + ?Sized,
§fn serialize_unsized(
&self,
serializer: &mut S,
) -> Result<usize, <S as Fallible>::Error>
fn serialize_unsized( &self, serializer: &mut S, ) -> Result<usize, <S as Fallible>::Error>
Writes the object and returns the position of the archived type.