pub trait TypeInfo {
    type Identity: 'static + ?Sized;

    fn type_info() -> Type<MetaForm>;
}
Expand description

Implementors return their meta type information.

Required Associated Types§

source

type Identity: 'static + ?Sized

The type identifying for which type info is provided.

Note

This is used to uniquely identify a type via core::any::TypeId::of. In most cases it will just be Self, but can be used to unify different types which have the same encoded representation e.g. reference types Box<T>, &T and &mut T.

Required Methods§

source

fn type_info() -> Type<MetaForm>

Returns the static type identifier for Self.

Implementations on Foreign Types§

source§

impl<T> TypeInfo for Compact<T>where
    T: TypeInfo + 'static,

source§

impl<A> TypeInfo for (A,)where
    A: TypeInfo + 'static,

source§

impl TypeInfo for NonZeroU64

source§

impl TypeInfo for i128

source§

impl<A, B, C, D, E, F, G, H, I, J, K> TypeInfo for (A, B, C, D, E, F, G, H, I, J, K)where
    A: TypeInfo + 'static,
    B: TypeInfo + 'static,
    C: TypeInfo + 'static,
    D: TypeInfo + 'static,
    E: TypeInfo + 'static,
    F: TypeInfo + 'static,
    G: TypeInfo + 'static,
    H: TypeInfo + 'static,
    I: TypeInfo + 'static,
    J: TypeInfo + 'static,
    K: TypeInfo + 'static,

source§

impl TypeInfo for i16

source§

impl TypeInfo for String

source§

impl<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T> TypeInfo for (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T)where
    A: TypeInfo + 'static,
    B: TypeInfo + 'static,
    C: TypeInfo + 'static,
    D: TypeInfo + 'static,
    E: TypeInfo + 'static,
    F: TypeInfo + 'static,
    G: TypeInfo + 'static,
    H: TypeInfo + 'static,
    I: TypeInfo + 'static,
    J: TypeInfo + 'static,
    K: TypeInfo + 'static,
    L: TypeInfo + 'static,
    M: TypeInfo + 'static,
    N: TypeInfo + 'static,
    O: TypeInfo + 'static,
    P: TypeInfo + 'static,
    Q: TypeInfo + 'static,
    R: TypeInfo + 'static,
    S: TypeInfo + 'static,
    T: TypeInfo + 'static,

source§

impl<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q> TypeInfo for (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q)where
    A: TypeInfo + 'static,
    B: TypeInfo + 'static,
    C: TypeInfo + 'static,
    D: TypeInfo + 'static,
    E: TypeInfo + 'static,
    F: TypeInfo + 'static,
    G: TypeInfo + 'static,
    H: TypeInfo + 'static,
    I: TypeInfo + 'static,
    J: TypeInfo + 'static,
    K: TypeInfo + 'static,
    L: TypeInfo + 'static,
    M: TypeInfo + 'static,
    N: TypeInfo + 'static,
    O: TypeInfo + 'static,
    P: TypeInfo + 'static,
    Q: TypeInfo + 'static,

source§

impl<Idx> TypeInfo for Range<Idx>where
    Idx: TypeInfo + 'static + PartialOrd<Idx> + Debug,

source§

impl<K, V> TypeInfo for BTreeMap<K, V, Global>where
    K: TypeInfo + 'static,
    V: TypeInfo + 'static,

source§

impl<T> TypeInfo for [T]where
    T: TypeInfo + 'static,

source§

impl TypeInfo for i64

source§

impl<A, B, C, D, E> TypeInfo for (A, B, C, D, E)where
    A: TypeInfo + 'static,
    B: TypeInfo + 'static,
    C: TypeInfo + 'static,
    D: TypeInfo + 'static,
    E: TypeInfo + 'static,

source§

impl TypeInfo for ()

source§

impl TypeInfo for NonZeroU128

source§

impl TypeInfo for NonZeroI16

source§

impl<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R> TypeInfo for (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R)where
    A: TypeInfo + 'static,
    B: TypeInfo + 'static,
    C: TypeInfo + 'static,
    D: TypeInfo + 'static,
    E: TypeInfo + 'static,
    F: TypeInfo + 'static,
    G: TypeInfo + 'static,
    H: TypeInfo + 'static,
    I: TypeInfo + 'static,
    J: TypeInfo + 'static,
    K: TypeInfo + 'static,
    L: TypeInfo + 'static,
    M: TypeInfo + 'static,
    N: TypeInfo + 'static,
    O: TypeInfo + 'static,
    P: TypeInfo + 'static,
    Q: TypeInfo + 'static,
    R: TypeInfo + 'static,

source§

impl<A, B, C> TypeInfo for (A, B, C)where
    A: TypeInfo + 'static,
    B: TypeInfo + 'static,
    C: TypeInfo + 'static,

source§

impl<A, B, C, D> TypeInfo for (A, B, C, D)where
    A: TypeInfo + 'static,
    B: TypeInfo + 'static,
    C: TypeInfo + 'static,
    D: TypeInfo + 'static,

source§

impl TypeInfo for i8

source§

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

source§

impl TypeInfo for NonZeroI8

source§

impl TypeInfo for i32

source§

impl<T> TypeInfo for BTreeSet<T, Global>where
    T: TypeInfo + 'static,

source§

impl<T> TypeInfo for Option<T>where
    T: TypeInfo + 'static,

source§

impl TypeInfo for NonZeroU32

source§

impl TypeInfo for bool

source§

impl<A, B, C, D, E, F> TypeInfo for (A, B, C, D, E, F)where
    A: TypeInfo + 'static,
    B: TypeInfo + 'static,
    C: TypeInfo + 'static,
    D: TypeInfo + 'static,
    E: TypeInfo + 'static,
    F: TypeInfo + 'static,

source§

impl<T, const N: usize> TypeInfo for [T; N]where
    T: TypeInfo + 'static,

source§

impl<T> TypeInfo for Cow<'static, T>where
    T: ToOwned + TypeInfo + 'static + ?Sized,

§

type Identity = Cow<'static, T>

source§

fn type_info() -> Type<MetaForm>

source§

impl<Idx> TypeInfo for RangeInclusive<Idx>where
    Idx: TypeInfo + 'static + PartialOrd<Idx> + Debug,

source§

impl TypeInfo for char

source§

impl<T> TypeInfo for Box<T, Global>where
    T: TypeInfo + 'static + ?Sized,

source§

impl TypeInfo for NonZeroI32

source§

impl<A, B, C, D, E, F, G, H, I, J, K, L, M> TypeInfo for (A, B, C, D, E, F, G, H, I, J, K, L, M)where
    A: TypeInfo + 'static,
    B: TypeInfo + 'static,
    C: TypeInfo + 'static,
    D: TypeInfo + 'static,
    E: TypeInfo + 'static,
    F: TypeInfo + 'static,
    G: TypeInfo + 'static,
    H: TypeInfo + 'static,
    I: TypeInfo + 'static,
    J: TypeInfo + 'static,
    K: TypeInfo + 'static,
    L: TypeInfo + 'static,
    M: TypeInfo + 'static,

source§

impl<A, B, C, D, E, F, G, H, I, J, K, L> TypeInfo for (A, B, C, D, E, F, G, H, I, J, K, L)where
    A: TypeInfo + 'static,
    B: TypeInfo + 'static,
    C: TypeInfo + 'static,
    D: TypeInfo + 'static,
    E: TypeInfo + 'static,
    F: TypeInfo + 'static,
    G: TypeInfo + 'static,
    H: TypeInfo + 'static,
    I: TypeInfo + 'static,
    J: TypeInfo + 'static,
    K: TypeInfo + 'static,
    L: TypeInfo + 'static,

source§

impl<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S> TypeInfo for (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S)where
    A: TypeInfo + 'static,
    B: TypeInfo + 'static,
    C: TypeInfo + 'static,
    D: TypeInfo + 'static,
    E: TypeInfo + 'static,
    F: TypeInfo + 'static,
    G: TypeInfo + 'static,
    H: TypeInfo + 'static,
    I: TypeInfo + 'static,
    J: TypeInfo + 'static,
    K: TypeInfo + 'static,
    L: TypeInfo + 'static,
    M: TypeInfo + 'static,
    N: TypeInfo + 'static,
    O: TypeInfo + 'static,
    P: TypeInfo + 'static,
    Q: TypeInfo + 'static,
    R: TypeInfo + 'static,
    S: TypeInfo + 'static,

source§

impl<T> TypeInfo for VecDeque<T, Global>where
    T: TypeInfo + 'static,

source§

impl TypeInfo for NonZeroU8

source§

impl<A, B, C, D, E, F, G, H, I> TypeInfo for (A, B, C, D, E, F, G, H, I)where
    A: TypeInfo + 'static,
    B: TypeInfo + 'static,
    C: TypeInfo + 'static,
    D: TypeInfo + 'static,
    E: TypeInfo + 'static,
    F: TypeInfo + 'static,
    G: TypeInfo + 'static,
    H: TypeInfo + 'static,
    I: TypeInfo + 'static,

source§

impl TypeInfo for NonZeroU16

source§

impl<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O> TypeInfo for (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O)where
    A: TypeInfo + 'static,
    B: TypeInfo + 'static,
    C: TypeInfo + 'static,
    D: TypeInfo + 'static,
    E: TypeInfo + 'static,
    F: TypeInfo + 'static,
    G: TypeInfo + 'static,
    H: TypeInfo + 'static,
    I: TypeInfo + 'static,
    J: TypeInfo + 'static,
    K: TypeInfo + 'static,
    L: TypeInfo + 'static,
    M: TypeInfo + 'static,
    N: TypeInfo + 'static,
    O: TypeInfo + 'static,

source§

impl<A, B, C, D, E, F, G> TypeInfo for (A, B, C, D, E, F, G)where
    A: TypeInfo + 'static,
    B: TypeInfo + 'static,
    C: TypeInfo + 'static,
    D: TypeInfo + 'static,
    E: TypeInfo + 'static,
    F: TypeInfo + 'static,
    G: TypeInfo + 'static,

source§

impl TypeInfo for u16

source§

impl<T> TypeInfo for &mut Twhere
    T: TypeInfo + 'static + ?Sized,

source§

impl TypeInfo for u32

source§

impl<A, B, C, D, E, F, G, H, I, J, K, L, M, N> TypeInfo for (A, B, C, D, E, F, G, H, I, J, K, L, M, N)where
    A: TypeInfo + 'static,
    B: TypeInfo + 'static,
    C: TypeInfo + 'static,
    D: TypeInfo + 'static,
    E: TypeInfo + 'static,
    F: TypeInfo + 'static,
    G: TypeInfo + 'static,
    H: TypeInfo + 'static,
    I: TypeInfo + 'static,
    J: TypeInfo + 'static,
    K: TypeInfo + 'static,
    L: TypeInfo + 'static,
    M: TypeInfo + 'static,
    N: TypeInfo + 'static,

source§

impl TypeInfo for u128

source§

impl TypeInfo for NonZeroI64

source§

impl TypeInfo for u64

source§

impl<A, B, C, D, E, F, G, H> TypeInfo for (A, B, C, D, E, F, G, H)where
    A: TypeInfo + 'static,
    B: TypeInfo + 'static,
    C: TypeInfo + 'static,
    D: TypeInfo + 'static,
    E: TypeInfo + 'static,
    F: TypeInfo + 'static,
    G: TypeInfo + 'static,
    H: TypeInfo + 'static,

source§

impl<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P> TypeInfo for (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P)where
    A: TypeInfo + 'static,
    B: TypeInfo + 'static,
    C: TypeInfo + 'static,
    D: TypeInfo + 'static,
    E: TypeInfo + 'static,
    F: TypeInfo + 'static,
    G: TypeInfo + 'static,
    H: TypeInfo + 'static,
    I: TypeInfo + 'static,
    J: TypeInfo + 'static,
    K: TypeInfo + 'static,
    L: TypeInfo + 'static,
    M: TypeInfo + 'static,
    N: TypeInfo + 'static,
    O: TypeInfo + 'static,
    P: TypeInfo + 'static,

source§

impl TypeInfo for NonZeroI128

source§

impl TypeInfo for str

source§

impl<A, B> TypeInfo for (A, B)where
    A: TypeInfo + 'static,
    B: TypeInfo + 'static,

source§

impl<A, B, C, D, E, F, G, H, I, J> TypeInfo for (A, B, C, D, E, F, G, H, I, J)where
    A: TypeInfo + 'static,
    B: TypeInfo + 'static,
    C: TypeInfo + 'static,
    D: TypeInfo + 'static,
    E: TypeInfo + 'static,
    F: TypeInfo + 'static,
    G: TypeInfo + 'static,
    H: TypeInfo + 'static,
    I: TypeInfo + 'static,
    J: TypeInfo + 'static,

source§

impl TypeInfo for u8

source§

impl TypeInfo for OpaquePeerId

source§

impl TypeInfo for AccountId32

source§

impl TypeInfo for KeyTypeId

source§

impl TypeInfo for Signature

source§

impl TypeInfo for OpaqueMultiaddr

source§

impl TypeInfo for Public

source§

impl TypeInfo for Public

source§

impl TypeInfo for Signature

source§

impl TypeInfo for Signature

source§

impl TypeInfo for Public

source§

impl TypeInfo for OpaqueNetworkState

§

impl TypeInfo for U256

§

type Identity = U256

§

fn type_info() -> Type<MetaForm>

§

impl TypeInfo for H384

§

type Identity = H384

§

fn type_info() -> Type<MetaForm>

§

impl TypeInfo for H128

§

type Identity = H128

§

fn type_info() -> Type<MetaForm>

§

impl TypeInfo for H768

§

type Identity = H768

§

fn type_info() -> Type<MetaForm>

§

impl TypeInfo for H160

§

type Identity = H160

§

fn type_info() -> Type<MetaForm>

§

impl TypeInfo for H512

§

type Identity = H512

§

fn type_info() -> Type<MetaForm>

§

impl TypeInfo for U128

§

type Identity = U128

§

fn type_info() -> Type<MetaForm>

§

impl TypeInfo for H256

§

type Identity = H256

§

fn type_info() -> Type<MetaForm>

§

impl TypeInfo for U512

§

type Identity = U512

§

fn type_info() -> Type<MetaForm>

§

impl TypeInfo for StorageProof

§

type Identity = StorageProof

§

fn type_info() -> Type<MetaForm>

§

impl TypeInfo for CompactProof

§

type Identity = CompactProof

§

fn type_info() -> Type<MetaForm>

source§

impl TypeInfo for BlakeTwo256

source§

impl TypeInfo for ModuleError

source§

impl TypeInfo for Digest

source§

impl TypeInfo for TokenError

source§

impl TypeInfo for MultiSignature

source§

impl TypeInfo for ModuleError

source§

impl<Number, Hash> TypeInfo for Header<Number, Hash>where
    Number: Copy + Into<U256> + TryFrom<U256> + HasCompact + TypeInfo + 'static,
    Hash: Hash + TypeInfo + 'static,
    <Hash as Hash>::Output: TypeInfo + 'static,

§

type Identity = Header<Number, Hash>

source§

fn type_info() -> Type<MetaForm>

source§

impl<Call, Extra> TypeInfo for TestXt<Call, Extra>where
    Option<(u64, Extra)>: TypeInfo + 'static,
    Call: TypeInfo + 'static,
    Extra: TypeInfo + 'static,

§

type Identity = TestXt<Call, Extra>

source§

fn type_info() -> Type<MetaForm>

source§

impl TypeInfo for DigestItem

source§

impl<Info> TypeInfo for DispatchErrorWithPostInfo<Info>where
    Info: Eq + PartialEq<Info> + Clone + Copy + Encode + Decode + Printable + TypeInfo + 'static,

source§

impl TypeInfo for MultiSigner

source§

impl<AccountId, AccountIndex> TypeInfo for MultiAddress<AccountId, AccountIndex>where
    AccountId: TypeInfo + 'static,
    AccountIndex: HasCompact + TypeInfo + 'static,

§

type Identity = MultiAddress<AccountId, AccountIndex>

source§

fn type_info() -> Type<MetaForm>

source§

impl TypeInfo for TransactionalError

source§

impl TypeInfo for OpaqueExtrinsic

source§

impl TypeInfo for DispatchError

source§

impl TypeInfo for RuntimeString

source§

impl TypeInfo for UintAuthorityId

source§

impl TypeInfo for PiecewiseLinear<'static>

source§

impl TypeInfo for TestSignature

source§

impl TypeInfo for Keccak256

source§

impl<Address, Call, Signature, Extra> TypeInfo for UncheckedExtrinsic<Address, Call, Signature, Extra>where
    Address: StaticTypeInfo,
    Call: StaticTypeInfo,
    Signature: StaticTypeInfo,
    Extra: SignedExtension + StaticTypeInfo,

Manual TypeInfo implementation because of custom encoding. The data is a valid encoded Vec<u8>, but requires some logic to extract the signature and payload.

See UncheckedExtrinsic::encode and UncheckedExtrinsic::decode.

§

type Identity = UncheckedExtrinsic<Address, Call, Signature, Extra>

source§

fn type_info() -> Type<MetaForm>

source§

impl TypeInfo for Era

source§

impl TypeInfo for FixedI64

source§

impl TypeInfo for Percent

source§

impl TypeInfo for Perbill

source§

impl TypeInfo for Permill

source§

impl TypeInfo for PerU16

source§

impl TypeInfo for FixedU64

source§

impl TypeInfo for Perquintill

source§

impl TypeInfo for FixedU128

source§

impl TypeInfo for FixedI128

source§

impl TypeInfo for ArithmeticError

§

impl TypeInfo for Signature

§

type Identity = Signature

§

fn type_info() -> Type<MetaForm>

§

impl TypeInfo for Signature

§

type Identity = Signature

§

fn type_info() -> Type<MetaForm>

§

impl TypeInfo for Public

§

type Identity = Public

§

fn type_info() -> Type<MetaForm>

§

impl TypeInfo for Signature

§

type Identity = Signature

§

fn type_info() -> Type<MetaForm>

§

impl TypeInfo for Public

§

type Identity = Public

§

fn type_info() -> Type<MetaForm>

§

impl TypeInfo for Public

§

type Identity = Public

§

fn type_info() -> Type<MetaForm>

source§

impl<Reporter, Offender> TypeInfo for OffenceDetails<Reporter, Offender>where
    Offender: TypeInfo + 'static,
    Vec<Reporter, Global>: TypeInfo + 'static,
    Reporter: TypeInfo + 'static,

§

type Identity = OffenceDetails<Reporter, Offender>

source§

fn type_info() -> Type<MetaForm>

source§

impl TypeInfo for DisableStrategy

§

impl TypeInfo for RuntimeVersion

§

type Identity = RuntimeVersion

§

fn type_info() -> Type<MetaForm>

Implementors§

source§

impl TypeInfo for Never

source§

impl TypeInfo for Void

source§

impl TypeInfo for frame_support::pallet_prelude::DispatchError

source§

impl TypeInfo for InvalidTransaction

source§

impl TypeInfo for TransactionValidityError

source§

impl TypeInfo for UnknownTransaction

source§

impl TypeInfo for ProcessMessageError

source§

impl TypeInfo for LookupError

source§

impl TypeInfo for BalanceStatus

source§

impl TypeInfo for DispatchClass

source§

impl TypeInfo for Pays

source§

impl TypeInfo for Weight

source§

impl TypeInfo for PalletId

source§

impl TypeInfo for OldWeight

source§

impl TypeInfo for RuntimeDbWeight

source§

impl TypeInfo for DispatchInfo

source§

impl TypeInfo for PostDispatchInfo

source§

impl<'a, T, S> TypeInfo for BoundedSlice<'a, T, S>where
    &'a [T]: TypeInfo + 'static,
    PhantomData<S>: TypeInfo + 'static,
    T: TypeInfo + 'static,
    S: 'static,

§

type Identity = BoundedSlice<'a, T, S>

source§

impl<AccountId> TypeInfo for AttributeNamespace<AccountId>where
    AccountId: TypeInfo + 'static,

§

type Identity = AttributeNamespace<AccountId>

source§

impl<AccountId> TypeInfo for RawOrigin<AccountId>where
    AccountId: TypeInfo + 'static,

§

type Identity = RawOrigin<AccountId>

source§

impl<Balance> TypeInfo for WeightToFeeCoefficient<Balance>where
    Balance: TypeInfo + 'static,

source§

impl<BlockNumber> TypeInfo for DispatchTime<BlockNumber>where
    BlockNumber: TypeInfo + 'static,

§

type Identity = DispatchTime<BlockNumber>

source§

impl<K, V, S> TypeInfo for BoundedBTreeMap<K, V, S>where
    BTreeMap<K, V, Global>: TypeInfo + 'static,
    PhantomData<S>: TypeInfo + 'static,
    K: TypeInfo + 'static,
    V: TypeInfo + 'static,
    S: 'static,

§

type Identity = BoundedBTreeMap<K, V, S>

source§

impl<T> TypeInfo for Bounded<T>where
    PhantomData<T>: TypeInfo + 'static,
    T: TypeInfo + 'static,

source§

impl<T> TypeInfo for PhantomData<T>

source§

impl<T> TypeInfo for PerDispatchClass<T>where
    T: TypeInfo + 'static,

source§

impl<T> TypeInfo for Vec<T, Global>where
    T: TypeInfo + 'static,

source§

impl<T, E> TypeInfo for Result<T, E>where
    T: TypeInfo + 'static,
    E: TypeInfo + 'static,

§

type Identity = Result<T, E>

source§

impl<T, Hash> TypeInfo for MaybeHashed<T, Hash>where
    T: TypeInfo + 'static,
    Hash: TypeInfo + 'static,

§

type Identity = MaybeHashed<T, Hash>

source§

impl<T, S> TypeInfo for BoundedBTreeSet<T, S>where
    BTreeSet<T, Global>: TypeInfo + 'static,
    PhantomData<S>: TypeInfo + 'static,
    T: TypeInfo + 'static,
    S: 'static,

source§

impl<T, S> TypeInfo for BoundedVec<T, S>where
    Vec<T, Global>: TypeInfo + 'static,
    PhantomData<S>: TypeInfo + 'static,
    T: TypeInfo + 'static,
    S: 'static,

§

type Identity = BoundedVec<T, S>

source§

impl<T, S> TypeInfo for WeakBoundedVec<T, S>where
    Vec<T, Global>: TypeInfo + 'static,
    PhantomData<S>: TypeInfo + 'static,
    T: TypeInfo + 'static,
    S: 'static,

source§

impl<T: TypeInfo + 'static> TypeInfo for WrapperKeepOpaque<T>

source§

impl<T: TypeInfo + 'static> TypeInfo for WrapperOpaque<T>