Enum MissingOr
pub enum MissingOr<T> {
Materialized(T),
Missing([u8; 32]),
}Expand description
Either a fully materialized value or a precomputed hash placeholder.
Variants§
Trait Implementations§
§impl<T> Archive for MissingOr<T>
impl<T> Archive for MissingOr<T>
§type Resolver = MissingOrResolver<T>
type Resolver = MissingOrResolver<T>
The resolver for this type. It must contain all the additional
information from serializing needed to make the archived type from
the normal type.
§fn resolve(
&self,
resolver: <MissingOr<T> as Archive>::Resolver,
out: Place<<MissingOr<T> as Archive>::Archived>,
)
fn resolve( &self, resolver: <MissingOr<T> as Archive>::Resolver, out: Place<<MissingOr<T> as Archive>::Archived>, )
Creates the archived version of this value at the given position and
writes it to the given output. Read more
§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 more§impl<T> Decode for MissingOr<T>where
T: Decode,
impl<T> Decode for MissingOr<T>where
T: Decode,
§fn is_ssz_fixed_len() -> bool
fn is_ssz_fixed_len() -> bool
true iff this type is fixed-length.§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].§fn from_ssz_bytes(bytes: &[u8]) -> Result<MissingOr<T>, DecodeError>
fn from_ssz_bytes(bytes: &[u8]) -> Result<MissingOr<T>, DecodeError>
Decode a full instance from
bytes, rejecting trailing input.§impl<__D, T> Deserialize<MissingOr<T>, __D> for <MissingOr<T> as Archive>::Archived
impl<__D, T> Deserialize<MissingOr<T>, __D> for <MissingOr<T> as Archive>::Archived
§fn deserialize(
&self,
deserializer: &mut __D,
) -> Result<MissingOr<T>, <__D as Fallible>::Error>
fn deserialize( &self, deserializer: &mut __D, ) -> Result<MissingOr<T>, <__D as Fallible>::Error>
Deserializes using the given deserializer
§impl<T> Encode for MissingOr<T>where
T: Encode,
impl<T> Encode for MissingOr<T>where
T: Encode,
§fn is_ssz_fixed_len() -> bool
fn is_ssz_fixed_len() -> bool
true iff this type is fixed-length (no variable-length fields).§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).§fn ssz_bytes_len(&self) -> usize
fn ssz_bytes_len(&self) -> usize
Total size of
self when serialized.§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.impl<T> Eq for MissingOr<T>where
T: Eq,
Auto Trait Implementations§
impl<T> Freeze for MissingOr<T>where
T: Freeze,
impl<T> RefUnwindSafe for MissingOr<T>where
T: RefUnwindSafe,
impl<T> Send for MissingOr<T>where
T: Send,
impl<T> Sync for MissingOr<T>where
T: Sync,
impl<T> Unpin for MissingOr<T>where
T: Unpin,
impl<T> UnsafeUnpin for MissingOr<T>where
T: UnsafeUnpin,
impl<T> UnwindSafe for MissingOr<T>where
T: UnwindSafe,
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.