Enum scale_info::TypeDef

source ·
pub enum TypeDef<T: Form = MetaForm> {
    Composite(TypeDefComposite<T>),
    Variant(TypeDefVariant<T>),
    Sequence(TypeDefSequence<T>),
    Array(TypeDefArray<T>),
    Tuple(TypeDefTuple<T>),
    Primitive(TypeDefPrimitive),
    Compact(TypeDefCompact<T>),
    BitSequence(TypeDefBitSequence<T>),
}
Expand description

The possible types a SCALE encodable Rust value could have.

Note

In order to preserve backwards compatibility, variant indices are explicitly specified instead of depending on the default implicit ordering.

When adding a new variant, it must be added at the end with an incremented index.

When removing an existing variant, the rest of variant indices remain the same, and the removed index should not be reused.

Variants§

§

Composite(TypeDefComposite<T>)

A composite type (e.g. a struct or a tuple)

§

Variant(TypeDefVariant<T>)

A variant type (e.g. an enum)

§

Sequence(TypeDefSequence<T>)

A sequence type with runtime known length.

§

Array(TypeDefArray<T>)

An array type with compile-time known length.

§

Tuple(TypeDefTuple<T>)

A tuple type.

§

Primitive(TypeDefPrimitive)

A Rust primitive type.

§

Compact(TypeDefCompact<T>)

A type using the [Compact] encoding

§

BitSequence(TypeDefBitSequence<T>)

A type representing a sequence of bits.

Trait Implementations§

source§

impl<T: Clone + Form> Clone for TypeDef<T>

source§

fn clone(&self) -> TypeDef<T>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<T: Debug + Form> Debug for TypeDef<T>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<T: Form> Decode for TypeDef<T>where TypeDefComposite<T>: Decode, TypeDefVariant<T>: Decode, TypeDefSequence<T>: Decode, TypeDefArray<T>: Decode, TypeDefTuple<T>: Decode, TypeDefCompact<T>: Decode, TypeDefBitSequence<T>: Decode,

source§

fn decode<__CodecInputEdqy: Input>( __codec_input_edqy: &mut __CodecInputEdqy ) -> Result<Self, Error>

Attempt to deserialise the value from input.
source§

fn skip<I>(input: &mut I) -> Result<(), Error>where I: Input,

Attempt to skip the encoded value from input. Read more
source§

fn encoded_fixed_size() -> Option<usize>

Returns the fixed encoded size of the type. Read more
source§

impl<T: Form> Encode for TypeDef<T>where TypeDefComposite<T>: Encode, TypeDefVariant<T>: Encode, TypeDefSequence<T>: Encode, TypeDefArray<T>: Encode, TypeDefTuple<T>: Encode, TypeDefCompact<T>: Encode, TypeDefBitSequence<T>: Encode,

source§

fn encode_to<__CodecOutputEdqy: Output + ?Sized>( &self, __codec_dest_edqy: &mut __CodecOutputEdqy )

Convert self to a slice and append it to the destination.
source§

fn size_hint(&self) -> usize

If possible give a hint of expected size of the encoding. Read more
source§

fn encode(&self) -> Vec<u8, Global>

Convert self to an owned vector.
source§

fn using_encoded<R, F>(&self, f: F) -> Rwhere F: FnOnce(&[u8]) -> R,

Convert self to a slice and then invoke the given closure with it.
source§

fn encoded_size(&self) -> usize

Calculates the encoded size. Read more
source§

impl<F: Form> From<TypeDefArray<F>> for TypeDef<F>

source§

fn from(x: TypeDefArray<F>) -> Self

Converts to this type from the input type.
source§

impl<F: Form> From<TypeDefBitSequence<F>> for TypeDef<F>

source§

fn from(x: TypeDefBitSequence<F>) -> Self

Converts to this type from the input type.
source§

impl<F: Form> From<TypeDefCompact<F>> for TypeDef<F>

source§

fn from(x: TypeDefCompact<F>) -> Self

Converts to this type from the input type.
source§

impl<F: Form> From<TypeDefComposite<F>> for TypeDef<F>

source§

fn from(x: TypeDefComposite<F>) -> Self

Converts to this type from the input type.
source§

impl<F: Form> From<TypeDefPrimitive> for TypeDef<F>

source§

fn from(x: TypeDefPrimitive) -> Self

Converts to this type from the input type.
source§

impl<F: Form> From<TypeDefSequence<F>> for TypeDef<F>

source§

fn from(x: TypeDefSequence<F>) -> Self

Converts to this type from the input type.
source§

impl<F: Form> From<TypeDefTuple<F>> for TypeDef<F>

source§

fn from(x: TypeDefTuple<F>) -> Self

Converts to this type from the input type.
source§

impl<F: Form> From<TypeDefVariant<F>> for TypeDef<F>

source§

fn from(x: TypeDefVariant<F>) -> Self

Converts to this type from the input type.
source§

impl IntoPortable for TypeDef

§

type Output = TypeDef<PortableForm>

The portable version of Self.
source§

fn into_portable(self, registry: &mut Registry) -> Self::Output

Convert self to the portable form by using the registry for caching.
source§

impl<T: Ord + Form> Ord for TypeDef<T>

source§

fn cmp(&self, other: &TypeDef<T>) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Selfwhere Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · source§

fn min(self, other: Self) -> Selfwhere Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 · source§

fn clamp(self, min: Self, max: Self) -> Selfwhere Self: Sized + PartialOrd<Self>,

Restrict a value to a certain interval. Read more
source§

impl<T: PartialEq + Form> PartialEq<TypeDef<T>> for TypeDef<T>

source§

fn eq(&self, other: &TypeDef<T>) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<T: PartialOrd + Form> PartialOrd<TypeDef<T>> for TypeDef<T>

source§

fn partial_cmp(&self, other: &TypeDef<T>) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · source§

fn lt(&self, other: &Rhs) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · source§

fn le(&self, other: &Rhs) -> bool

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 · source§

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · source§

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
source§

impl<T: Form> EncodeLike<TypeDef<T>> for TypeDef<T>where TypeDefComposite<T>: Encode, TypeDefVariant<T>: Encode, TypeDefSequence<T>: Encode, TypeDefArray<T>: Encode, TypeDefTuple<T>: Encode, TypeDefCompact<T>: Encode, TypeDefBitSequence<T>: Encode,

source§

impl<T: Eq + Form> Eq for TypeDef<T>

source§

impl<T: Form> StructuralEq for TypeDef<T>

source§

impl<T: Form> StructuralPartialEq for TypeDef<T>

Auto Trait Implementations§

§

impl<T> RefUnwindSafe for TypeDef<T>where <T as Form>::String: RefUnwindSafe, <T as Form>::Type: RefUnwindSafe,

§

impl<T> Send for TypeDef<T>where <T as Form>::String: Send, <T as Form>::Type: Send,

§

impl<T> Sync for TypeDef<T>where <T as Form>::String: Sync, <T as Form>::Type: Sync,

§

impl<T> Unpin for TypeDef<T>where <T as Form>::String: Unpin, <T as Form>::Type: Unpin,

§

impl<T> UnwindSafe for TypeDef<T>where <T as Form>::String: UnwindSafe, <T as Form>::Type: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

const: unstable · source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

const: unstable · source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> DecodeAll for Twhere T: Decode,

source§

fn decode_all(input: &mut &[u8]) -> Result<T, Error>

Decode Self and consume all of the given input data. Read more
source§

impl<T> DecodeLimit for Twhere T: Decode,

source§

fn decode_all_with_depth_limit( limit: u32, input: &mut &[u8] ) -> Result<T, Error>

Decode Self and consume all of the given input data. Read more
source§

fn decode_with_depth_limit<I>(limit: u32, input: &mut I) -> Result<T, Error>where I: Input,

Decode Self with the given maximum recursion depth and advance input by the number of bytes consumed. Read more
source§

impl<T> From<T> for T

const: unstable · source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for Twhere U: From<T>,

const: unstable · source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> KeyedVec for Twhere T: Codec,

source§

fn to_keyed_vec(&self, prepend_key: &[u8]) -> Vec<u8, Global>

Return an encoding of Self prepended by given slice.
source§

impl<T> ToOwned for Twhere T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
const: unstable · source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
const: unstable · source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<S> Codec for Swhere S: Decode + Encode,

source§

impl<T> EncodeLike<&&T> for Twhere T: Encode,

source§

impl<T> EncodeLike<&T> for Twhere T: Encode,

source§

impl<T> EncodeLike<&mut T> for Twhere T: Encode,

source§

impl<T> EncodeLike<Arc<T>> for Twhere T: Encode,

source§

impl<T> EncodeLike<Box<T, Global>> for Twhere T: Encode,

source§

impl<'a, T> EncodeLike<Cow<'a, T>> for Twhere T: ToOwned + Encode,

source§

impl<T> EncodeLike<Rc<T>> for Twhere T: Encode,

source§

impl<S> FullCodec for Swhere S: Decode + FullEncode,

source§

impl<S> FullEncode for Swhere S: Encode + EncodeLike<S>,