pub enum CapHashOrRef {
Hash(CapHash),
Ref(CapRef),
}Expand description
Slot/field reference: either a content-addressed blob in
cache.blobs or a mutable working entry in cache.instances.
SSZ note: CapHashOrRef’s HashTreeRoot impl is hand-rolled
(see below), not derived. The pass-through semantics — Hash(h)
hashes to h — let a freshly-published cap substitute for a
Ref reference without changing the hash of any cap that holds
it. The Ref arm panics: callers must settle a cap graph before
hashing it. Encode mirrors HashTreeRoot (panic on Ref);
Decode rejects the Ref selector (no directory context).
Not Copy: the Ref(CapRef) arm carries a refcounted handle,
so the enum is Clone-only.
Variants§
Trait Implementations§
Source§impl Clone for CapHashOrRef
impl Clone for CapHashOrRef
Source§fn clone(&self) -> CapHashOrRef
fn clone(&self) -> CapHashOrRef
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 CapHashOrRef
impl Debug for CapHashOrRef
Source§impl Decode for CapHashOrRef
impl Decode for CapHashOrRef
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 Encode for CapHashOrRef
impl Encode for CapHashOrRef
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.Source§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).Source§impl Hash for CapHashOrRef
impl Hash for CapHashOrRef
Source§impl HashTreeRoot for CapHashOrRef
impl HashTreeRoot for CapHashOrRef
Source§impl PartialEq for CapHashOrRef
impl PartialEq for CapHashOrRef
impl Eq for CapHashOrRef
impl StructuralPartialEq for CapHashOrRef
Auto Trait Implementations§
impl Freeze for CapHashOrRef
impl RefUnwindSafe for CapHashOrRef
impl Send for CapHashOrRef
impl Sync for CapHashOrRef
impl Unpin for CapHashOrRef
impl UnsafeUnpin for CapHashOrRef
impl UnwindSafe for CapHashOrRef
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.
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
Compare self to
key and return true if they are equal.§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.