Trait ink_metadata::TypeInfo

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

    // Required method
    fn type_info() -> Type;
}
Expand description

Implementors return their meta type information.

Required Associated Types§

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§

fn type_info() -> Type

Returns the static type identifier for Self.

Object Safety§

This trait is not object safe.

Implementations on Foreign Types§

§

impl TypeInfo for bool

§

type Identity = bool

§

fn type_info() -> Type

§

impl TypeInfo for char

§

type Identity = char

§

fn type_info() -> Type

§

impl TypeInfo for i8

§

type Identity = i8

§

fn type_info() -> Type

§

impl TypeInfo for i16

§

type Identity = i16

§

fn type_info() -> Type

§

impl TypeInfo for i32

§

type Identity = i32

§

fn type_info() -> Type

§

impl TypeInfo for i64

§

type Identity = i64

§

fn type_info() -> Type

§

impl TypeInfo for i128

§

type Identity = i128

§

fn type_info() -> Type

§

impl TypeInfo for str

§

type Identity = str

§

fn type_info() -> Type

§

impl TypeInfo for u8

§

type Identity = u8

§

fn type_info() -> Type

§

impl TypeInfo for u16

§

type Identity = u16

§

fn type_info() -> Type

§

impl TypeInfo for u32

§

type Identity = u32

§

fn type_info() -> Type

§

impl TypeInfo for u64

§

type Identity = u64

§

fn type_info() -> Type

§

impl TypeInfo for u128

§

type Identity = u128

§

fn type_info() -> Type

§

impl TypeInfo for ()

§

type Identity = ()

§

fn type_info() -> Type

source§

impl TypeInfo for AccountId

source§

impl TypeInfo for Hash

§

type Identity = Hash

source§

fn type_info() -> Type

§

impl TypeInfo for String

§

type Identity = str

§

fn type_info() -> Type

§

impl TypeInfo for NonZero<i8>

§

type Identity = NonZero<i8>

§

fn type_info() -> Type

§

impl TypeInfo for NonZero<i16>

§

type Identity = NonZero<i16>

§

fn type_info() -> Type

§

impl TypeInfo for NonZero<i32>

§

type Identity = NonZero<i32>

§

fn type_info() -> Type

§

impl TypeInfo for NonZero<i64>

§

type Identity = NonZero<i64>

§

fn type_info() -> Type

§

impl TypeInfo for NonZero<i128>

§

type Identity = NonZero<i128>

§

fn type_info() -> Type

§

impl TypeInfo for NonZero<u8>

§

type Identity = NonZero<u8>

§

fn type_info() -> Type

§

impl TypeInfo for NonZero<u16>

§

type Identity = NonZero<u16>

§

fn type_info() -> Type

§

impl TypeInfo for NonZero<u32>

§

type Identity = NonZero<u32>

§

fn type_info() -> Type

§

impl TypeInfo for NonZero<u64>

§

type Identity = NonZero<u64>

§

fn type_info() -> Type

§

impl TypeInfo for NonZero<u128>

§

type Identity = NonZero<u128>

§

fn type_info() -> Type

§

impl TypeInfo for Duration

§

type Identity = Duration

§

fn type_info() -> Type

§

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

§

type Identity = (A,)

§

fn type_info() -> Type

§

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

§

type Identity = (A, B)

§

fn type_info() -> Type

§

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

§

type Identity = (A, B, C)

§

fn type_info() -> Type

§

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

§

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,

§

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,

§

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,

§

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,

§

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,

§

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,

§

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,

§

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,

§

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,

§

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,

§

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,

§

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,

§

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,

§

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,

§

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,

§

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,

§

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

§

type Identity = Range<Idx>

§

fn type_info() -> Type

§

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

§

type Identity = RangeInclusive<Idx>

§

fn type_info() -> Type

§

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

§

type Identity = BTreeMap<K, V>

§

fn type_info() -> Type

§

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

§

type Identity = Cow<'static, T>

§

fn type_info() -> Type

§

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

§

type Identity = Option<T>

§

fn type_info() -> Type

§

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

§

type Identity = T

§

fn type_info() -> Type

§

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

§

type Identity = T

§

fn type_info() -> Type

§

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

§

type Identity = [T]

§

fn type_info() -> Type

§

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

§

type Identity = T

§

fn type_info() -> Type

§

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

§

type Identity = BinaryHeap<T>

§

fn type_info() -> Type

§

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

§

type Identity = BTreeSet<T>

§

fn type_info() -> Type

§

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

§

type Identity = [T]

§

fn type_info() -> Type

§

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

§

type Identity = T

§

fn type_info() -> Type

§

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

§

type Identity = T

§

fn type_info() -> Type

§

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

§

type Identity = [T]

§

fn type_info() -> Type

§

impl<T> TypeInfo for PhantomData<T>

§

type Identity = PhantomData<()>

§

fn type_info() -> Type

§

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

§

type Identity = Compact<T>

§

fn type_info() -> Type

§

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

§

type Identity = Result<T, E>

§

fn type_info() -> Type

§

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

§

type Identity = [T; N]

§

fn type_info() -> Type

Implementors§