Trait polkadot_sdk_frame::derive::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
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
fn type_info() -> Type
Returns the static type identifier for Self
.
Object Safety§
This trait is not object safe.
Implementations on Foreign Types§
§impl<A, B, C, D> TypeInfo for (A, B, C, D)
impl<A, B, C, D> TypeInfo for (A, B, C, D)
type Identity = (A, B, C, D)
fn type_info() -> Type
§impl<A, B, C, D, E> TypeInfo for (A, B, C, D, E)
impl<A, B, C, D, E> TypeInfo for (A, B, C, D, E)
type Identity = (A, B, C, D, E)
fn type_info() -> Type
§impl<A, B, C, D, E, F> TypeInfo for (A, B, C, D, E, F)
impl<A, B, C, D, E, F> TypeInfo for (A, B, C, D, E, F)
type Identity = (A, B, C, D, E, F)
fn type_info() -> Type
§impl<A, B, C, D, E, F, G> TypeInfo for (A, B, C, D, E, F, G)
impl<A, B, C, D, E, F, G> TypeInfo for (A, B, C, D, E, F, G)
type Identity = (A, B, C, D, E, F, G)
fn type_info() -> Type
§impl<A, B, C, D, E, F, G, H> TypeInfo for (A, B, C, D, E, F, G, H)
impl<A, B, C, D, E, F, G, H> TypeInfo for (A, B, C, D, E, F, G, H)
type Identity = (A, B, C, D, E, F, G, H)
fn type_info() -> Type
§impl<A, B, C, D, E, F, G, H, I> TypeInfo for (A, B, C, D, E, F, G, H, I)
impl<A, B, C, D, E, F, G, H, I> TypeInfo for (A, B, C, D, E, F, G, H, I)
type Identity = (A, B, C, D, E, F, G, H, I)
fn type_info() -> Type
§impl<A, B, C, D, E, F, G, H, I, J> TypeInfo for (A, B, C, D, E, F, G, H, I, J)
impl<A, B, C, D, E, F, G, H, I, J> TypeInfo for (A, B, C, D, E, F, G, H, I, J)
type Identity = (A, B, C, D, E, F, G, H, I, J)
fn type_info() -> Type
§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)
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)
type Identity = (A, B, C, D, E, F, G, H, I, J, K)
fn type_info() -> Type
§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)
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)
type Identity = (A, B, C, D, E, F, G, H, I, J, K, L)
fn type_info() -> Type
§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> 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,
type Identity = (A, B, C, D, E, F, G, H, I, J, K, L, M)
fn type_info() -> Type
§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> 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,
type Identity = (A, B, C, D, E, F, G, H, I, J, K, L, M, N)
fn type_info() -> Type
§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> 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,
type Identity = (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O)
fn type_info() -> Type
§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> 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,
type Identity = (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P)
fn type_info() -> Type
§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> 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,
type Identity = (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q)
fn type_info() -> Type
§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> 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,
type Identity = (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R)
fn type_info() -> Type
§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> 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,
type Identity = (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S)
fn type_info() -> Type
§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<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,
type Identity = (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T)
fn type_info() -> Type
§impl<Address, Call, Signature, Extension> TypeInfo for UncheckedExtrinsic<Address, Call, Signature, Extension>where
Address: StaticTypeInfo,
Call: StaticTypeInfo,
Signature: StaticTypeInfo,
Extension: StaticTypeInfo,
impl<Address, Call, Signature, Extension> TypeInfo for UncheckedExtrinsic<Address, Call, Signature, Extension>where
Address: StaticTypeInfo,
Call: StaticTypeInfo,
Signature: StaticTypeInfo,
Extension: 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
].