Skip to main content

SmExtra

Type Alias SmExtra 

Source
pub type SmExtra<M> = SmExtra<M>;

Aliased Type§

pub enum SmExtra<M> {}

Trait Implementations§

Source§

impl<M> ByteOrd for SmExtra<M>

Source§

fn bytes_cmp(&self, _: &Self) -> Ordering

Source§

impl<M> FromSized for SmExtra<M>

Source§

fn from_sized(data: &GenericArray<u8, Self::Size>) -> Self

Source§

impl<M> InlineOutput for SmExtra<M>

Source§

fn slice_to_output(slice: &[Self], output: &mut (impl ?Sized + Output))
where Self: Sized,

Specialisation point to allow types like u8 to provide better serialisation implementation for containers like Vec<u8>.
Source§

impl<M> ListHashes for SmExtra<M>

Source§

fn list_hashes(&self, f: &mut (impl ?Sized + FnMut(Hash)))

[Hash]-only part of Topological::traverse.
Source§

fn topology_hash(&self) -> Hash

[Hash] of all [Hash]es the object refers to other objects by.
Source§

fn point_count(&self) -> usize

How many others this object refers to.
Source§

impl<M: StaticMap<E, Mapped: 'static + Clone>, E: 'static + Clone> Map<E> for SmExtra<M>

Source§

type Mapped = <M as StaticMap<E>>::Mapped

Source§

fn map(&self, e: E) -> Self::Mapped

Source§

impl<M> MaybeHasNiche for SmExtra<M>

Source§

type MnArray = NoNiche<ZeroNoNiche<<SmExtra<M> as Size>::Size>>

Should implement [MnArray]. Not constraint explicitly, because that breaks things.
Source§

impl<M> Monostate for SmExtra<M>

Source§

impl<M, I: ParseInput> Parse<I> for SmExtra<M>

Source§

fn parse(input: I) -> Result<Self>

Parse consuming the whole stream.
Source§

impl<M, I: ParseInput> ParseInline<I> for SmExtra<M>

Source§

fn parse_inline(_: &mut I) -> Result<Self>

Parse without consuming the whole stream. Errors on unexpected EOF.
Source§

fn parse_as_inline(input: I) -> Result<Self>

For implementing Parse::parse.
Source§

fn parse_vec(input: I) -> Result<Vec<Self>>

Parse a Vec of Self. Customisable for optimisations.
Source§

fn parse_vec_n(input: &mut I, n: usize) -> Result<Vec<Self>>

Parse a Vec of Self of length n. Customisable for optimisations.
Source§

fn parse_array<const N: usize>(input: &mut I) -> Result<[Self; N]>

Parse an array of Self. Customisable for optimisations.
Source§

fn parse_generic_array<N: ArrayLength>( input: &mut I, ) -> Result<GenericArray<Self, N>>

Parse a GenericArray of Self. Customisable for optimisations.
Source§

impl<M> Size for SmExtra<M>

Source§

impl<M: StaticMap<T>, T> StaticMap<T> for SmExtra<M>

Source§

type Mapped = <M as StaticMap<T>>::Mapped

Source§

fn static_map(x: T) -> Self::Mapped

Source§

impl<M> Tagged for SmExtra<M>

Source§

const TAGS: Tags = _

Source§

const HASH: Hash = _

Source§

impl<M> ToOutput for SmExtra<M>

Source§

fn to_output(&self, _: &mut (impl ?Sized + Output))

Provide object’s byte representation to an Output.
Source§

fn hasher(&self) -> Sha256

Return a Sha256 hasher pre-filled with data of this object.
Source§

fn data_hash(&self) -> Hash

[Hash] of (real, i.e. serialized) data of this object.
Source§

fn mangle_hash(&self) -> Hash

“Mangle hash” of the object. This is used to introduce runtime distinction between data-identical objects similarly to compile-time Tagged::HASH.
Source§

fn output<T: FromOutput<Output: Default>>(&self) -> T

Construct an Output, possibly finalising it afterwards. Read more
Source§

fn vec(&self) -> Vec<u8>

Collect this object’s data (serialize the object).
Source§

impl<M> Topological for SmExtra<M>

Source§

fn traverse(&self, visitor: &mut (impl ?Sized + PointVisitor))

List what objects this one refers to. Read more
Source§

fn topology(&self) -> TopoVec

Collect references into a dynamically-typed list.
Source§

fn byte_node(&self) -> ByteNode
where Self: ToOutput,

Source§

fn to_resolve(&self) -> Arc<dyn Resolve>

Reconstruct a Resolve usable for Parse::parseing this object based on references.