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 NonZeroI8

§

type Identity = NonZeroI8

§

fn type_info() -> Type

§

impl TypeInfo for NonZeroI16

§

type Identity = NonZeroI16

§

fn type_info() -> Type

§

impl TypeInfo for NonZeroI32

§

type Identity = NonZeroI32

§

fn type_info() -> Type

§

impl TypeInfo for NonZeroI64

§

type Identity = NonZeroI64

§

fn type_info() -> Type

§

impl TypeInfo for NonZeroI128

§

impl TypeInfo for NonZeroU8

§

type Identity = NonZeroU8

§

fn type_info() -> Type

§

impl TypeInfo for NonZeroU16

§

type Identity = NonZeroU16

§

fn type_info() -> Type

§

impl TypeInfo for NonZeroU32

§

type Identity = NonZeroU32

§

fn type_info() -> Type

§

impl TypeInfo for NonZeroU64

§

type Identity = NonZeroU64

§

fn type_info() -> Type

§

impl TypeInfo for NonZeroU128

§

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 &Twhere T: TypeInfo + 'static + ?Sized,

§

type Identity = T

§

fn type_info() -> Type

§

impl<T> TypeInfo for &mut Twhere 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§