pub trait ContractTypeRefSpec {
const INFO: ContractTypeInfo<'static>;
const SIGNED_PREIMAGE: Option<&'static ContractTypeView<'static>> = _;
}Expand description
Trait for types that can appear in contract spec signatures.
Implemented for primitives, collections, and #[contract_type] types.
Required Associated Constants§
Sourceconst INFO: ContractTypeInfo<'static>
const INFO: ContractTypeInfo<'static>
The type reference. Transitive type definitions are not carried here;
they are retained via the linker-anchor mechanism
(__THRUPUT_SPEC_ANCHOR_ROOT) and resolved by spec-tool.
Provided Associated Constants§
Sourceconst SIGNED_PREIMAGE: Option<&'static ContractTypeView<'static>> = _
const SIGNED_PREIMAGE: Option<&'static ContractTypeView<'static>> = _
How this type appears as a signed-token preimage
(ContractTypeView::SignedToken’s payload): the type itself by
default, or None for a type-erased payload (the SDK’s Opaque
overrides this).
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".
Implementations on Foreign Types§
Source§impl ContractTypeRefSpec for &[u8]
impl ContractTypeRefSpec for &[u8]
const INFO: ContractTypeInfo<'static> = <[u8] as ContractTypeRefSpec>::INFO
Source§impl ContractTypeRefSpec for &str
impl ContractTypeRefSpec for &str
const INFO: ContractTypeInfo<'static> = <str as ContractTypeRefSpec>::INFO
Source§impl ContractTypeRefSpec for ()
impl ContractTypeRefSpec for ()
const INFO: ContractTypeInfo<'static>
Source§impl ContractTypeRefSpec for BlockHeight
impl ContractTypeRefSpec for BlockHeight
const INFO: ContractTypeInfo<'static>
Source§impl ContractTypeRefSpec for ContractAddress
impl ContractTypeRefSpec for ContractAddress
const INFO: ContractTypeInfo<'static>
Source§impl ContractTypeRefSpec for ContractEntrypointID
impl ContractTypeRefSpec for ContractEntrypointID
const INFO: ContractTypeInfo<'static>
Source§impl ContractTypeRefSpec for Ed25519PublicKey
impl ContractTypeRefSpec for Ed25519PublicKey
const INFO: ContractTypeInfo<'static>
Source§impl ContractTypeRefSpec for Ed25519Signature
impl ContractTypeRefSpec for Ed25519Signature
const INFO: ContractTypeInfo<'static>
Source§impl ContractTypeRefSpec for MlDsa65PublicKey
impl ContractTypeRefSpec for MlDsa65PublicKey
const INFO: ContractTypeInfo<'static>
Source§impl ContractTypeRefSpec for MlDsa65Signature
impl ContractTypeRefSpec for MlDsa65Signature
const INFO: ContractTypeInfo<'static>
Source§impl ContractTypeRefSpec for PublicKey
impl ContractTypeRefSpec for PublicKey
const INFO: ContractTypeInfo<'static>
Source§impl ContractTypeRefSpec for SHA256Hash
impl ContractTypeRefSpec for SHA256Hash
const INFO: ContractTypeInfo<'static>
Source§impl ContractTypeRefSpec for Signature
impl ContractTypeRefSpec for Signature
const INFO: ContractTypeInfo<'static>
Source§impl ContractTypeRefSpec for String
Available on crate feature alloc only.
impl ContractTypeRefSpec for String
Available on crate feature
alloc only.const INFO: ContractTypeInfo<'static>
Source§impl ContractTypeRefSpec for SysErr
impl ContractTypeRefSpec for SysErr
const INFO: ContractTypeInfo<'static>
Source§impl ContractTypeRefSpec for SyscallNo
impl ContractTypeRefSpec for SyscallNo
const INFO: ContractTypeInfo<'static>
Source§impl ContractTypeRefSpec for bool
impl ContractTypeRefSpec for bool
const INFO: ContractTypeInfo<'static>
Source§impl ContractTypeRefSpec for i32
impl ContractTypeRefSpec for i32
const INFO: ContractTypeInfo<'static>
Source§impl ContractTypeRefSpec for i64
impl ContractTypeRefSpec for i64
const INFO: ContractTypeInfo<'static>
Source§impl ContractTypeRefSpec for i128
impl ContractTypeRefSpec for i128
const INFO: ContractTypeInfo<'static>
Source§impl ContractTypeRefSpec for str
impl ContractTypeRefSpec for str
const INFO: ContractTypeInfo<'static>
Source§impl ContractTypeRefSpec for u8
impl ContractTypeRefSpec for u8
const INFO: ContractTypeInfo<'static>
Source§impl ContractTypeRefSpec for u32
impl ContractTypeRefSpec for u32
const INFO: ContractTypeInfo<'static>
Source§impl ContractTypeRefSpec for u64
impl ContractTypeRefSpec for u64
const INFO: ContractTypeInfo<'static>
Source§impl ContractTypeRefSpec for u128
impl ContractTypeRefSpec for u128
const INFO: ContractTypeInfo<'static>
Source§impl<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P> ContractTypeRefSpec for (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P)where
A: ContractTypeRefSpec,
B: ContractTypeRefSpec,
C: ContractTypeRefSpec,
D: ContractTypeRefSpec,
E: ContractTypeRefSpec,
F: ContractTypeRefSpec,
G: ContractTypeRefSpec,
H: ContractTypeRefSpec,
I: ContractTypeRefSpec,
J: ContractTypeRefSpec,
K: ContractTypeRefSpec,
L: ContractTypeRefSpec,
M: ContractTypeRefSpec,
N: ContractTypeRefSpec,
O: ContractTypeRefSpec,
P: ContractTypeRefSpec,
impl<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P> ContractTypeRefSpec for (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P)where
A: ContractTypeRefSpec,
B: ContractTypeRefSpec,
C: ContractTypeRefSpec,
D: ContractTypeRefSpec,
E: ContractTypeRefSpec,
F: ContractTypeRefSpec,
G: ContractTypeRefSpec,
H: ContractTypeRefSpec,
I: ContractTypeRefSpec,
J: ContractTypeRefSpec,
K: ContractTypeRefSpec,
L: ContractTypeRefSpec,
M: ContractTypeRefSpec,
N: ContractTypeRefSpec,
O: ContractTypeRefSpec,
P: ContractTypeRefSpec,
const INFO: ContractTypeInfo<'static>
Source§impl<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O> ContractTypeRefSpec for (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O)where
A: ContractTypeRefSpec,
B: ContractTypeRefSpec,
C: ContractTypeRefSpec,
D: ContractTypeRefSpec,
E: ContractTypeRefSpec,
F: ContractTypeRefSpec,
G: ContractTypeRefSpec,
H: ContractTypeRefSpec,
I: ContractTypeRefSpec,
J: ContractTypeRefSpec,
K: ContractTypeRefSpec,
L: ContractTypeRefSpec,
M: ContractTypeRefSpec,
N: ContractTypeRefSpec,
O: ContractTypeRefSpec,
impl<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O> ContractTypeRefSpec for (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O)where
A: ContractTypeRefSpec,
B: ContractTypeRefSpec,
C: ContractTypeRefSpec,
D: ContractTypeRefSpec,
E: ContractTypeRefSpec,
F: ContractTypeRefSpec,
G: ContractTypeRefSpec,
H: ContractTypeRefSpec,
I: ContractTypeRefSpec,
J: ContractTypeRefSpec,
K: ContractTypeRefSpec,
L: ContractTypeRefSpec,
M: ContractTypeRefSpec,
N: ContractTypeRefSpec,
O: ContractTypeRefSpec,
const INFO: ContractTypeInfo<'static>
Source§impl<A, B, C, D, E, F, G, H, I, J, K, L, M, N> ContractTypeRefSpec for (A, B, C, D, E, F, G, H, I, J, K, L, M, N)where
A: ContractTypeRefSpec,
B: ContractTypeRefSpec,
C: ContractTypeRefSpec,
D: ContractTypeRefSpec,
E: ContractTypeRefSpec,
F: ContractTypeRefSpec,
G: ContractTypeRefSpec,
H: ContractTypeRefSpec,
I: ContractTypeRefSpec,
J: ContractTypeRefSpec,
K: ContractTypeRefSpec,
L: ContractTypeRefSpec,
M: ContractTypeRefSpec,
N: ContractTypeRefSpec,
impl<A, B, C, D, E, F, G, H, I, J, K, L, M, N> ContractTypeRefSpec for (A, B, C, D, E, F, G, H, I, J, K, L, M, N)where
A: ContractTypeRefSpec,
B: ContractTypeRefSpec,
C: ContractTypeRefSpec,
D: ContractTypeRefSpec,
E: ContractTypeRefSpec,
F: ContractTypeRefSpec,
G: ContractTypeRefSpec,
H: ContractTypeRefSpec,
I: ContractTypeRefSpec,
J: ContractTypeRefSpec,
K: ContractTypeRefSpec,
L: ContractTypeRefSpec,
M: ContractTypeRefSpec,
N: ContractTypeRefSpec,
const INFO: ContractTypeInfo<'static>
Source§impl<A, B, C, D, E, F, G, H, I, J, K, L, M> ContractTypeRefSpec for (A, B, C, D, E, F, G, H, I, J, K, L, M)where
A: ContractTypeRefSpec,
B: ContractTypeRefSpec,
C: ContractTypeRefSpec,
D: ContractTypeRefSpec,
E: ContractTypeRefSpec,
F: ContractTypeRefSpec,
G: ContractTypeRefSpec,
H: ContractTypeRefSpec,
I: ContractTypeRefSpec,
J: ContractTypeRefSpec,
K: ContractTypeRefSpec,
L: ContractTypeRefSpec,
M: ContractTypeRefSpec,
impl<A, B, C, D, E, F, G, H, I, J, K, L, M> ContractTypeRefSpec for (A, B, C, D, E, F, G, H, I, J, K, L, M)where
A: ContractTypeRefSpec,
B: ContractTypeRefSpec,
C: ContractTypeRefSpec,
D: ContractTypeRefSpec,
E: ContractTypeRefSpec,
F: ContractTypeRefSpec,
G: ContractTypeRefSpec,
H: ContractTypeRefSpec,
I: ContractTypeRefSpec,
J: ContractTypeRefSpec,
K: ContractTypeRefSpec,
L: ContractTypeRefSpec,
M: ContractTypeRefSpec,
const INFO: ContractTypeInfo<'static>
Source§impl<A, B, C, D, E, F, G, H, I, J, K, L> ContractTypeRefSpec for (A, B, C, D, E, F, G, H, I, J, K, L)where
A: ContractTypeRefSpec,
B: ContractTypeRefSpec,
C: ContractTypeRefSpec,
D: ContractTypeRefSpec,
E: ContractTypeRefSpec,
F: ContractTypeRefSpec,
G: ContractTypeRefSpec,
H: ContractTypeRefSpec,
I: ContractTypeRefSpec,
J: ContractTypeRefSpec,
K: ContractTypeRefSpec,
L: ContractTypeRefSpec,
impl<A, B, C, D, E, F, G, H, I, J, K, L> ContractTypeRefSpec for (A, B, C, D, E, F, G, H, I, J, K, L)where
A: ContractTypeRefSpec,
B: ContractTypeRefSpec,
C: ContractTypeRefSpec,
D: ContractTypeRefSpec,
E: ContractTypeRefSpec,
F: ContractTypeRefSpec,
G: ContractTypeRefSpec,
H: ContractTypeRefSpec,
I: ContractTypeRefSpec,
J: ContractTypeRefSpec,
K: ContractTypeRefSpec,
L: ContractTypeRefSpec,
const INFO: ContractTypeInfo<'static>
Source§impl<A, B, C, D, E, F, G, H, I, J, K> ContractTypeRefSpec for (A, B, C, D, E, F, G, H, I, J, K)where
A: ContractTypeRefSpec,
B: ContractTypeRefSpec,
C: ContractTypeRefSpec,
D: ContractTypeRefSpec,
E: ContractTypeRefSpec,
F: ContractTypeRefSpec,
G: ContractTypeRefSpec,
H: ContractTypeRefSpec,
I: ContractTypeRefSpec,
J: ContractTypeRefSpec,
K: ContractTypeRefSpec,
impl<A, B, C, D, E, F, G, H, I, J, K> ContractTypeRefSpec for (A, B, C, D, E, F, G, H, I, J, K)where
A: ContractTypeRefSpec,
B: ContractTypeRefSpec,
C: ContractTypeRefSpec,
D: ContractTypeRefSpec,
E: ContractTypeRefSpec,
F: ContractTypeRefSpec,
G: ContractTypeRefSpec,
H: ContractTypeRefSpec,
I: ContractTypeRefSpec,
J: ContractTypeRefSpec,
K: ContractTypeRefSpec,
const INFO: ContractTypeInfo<'static>
Source§impl<A, B, C, D, E, F, G, H, I, J> ContractTypeRefSpec for (A, B, C, D, E, F, G, H, I, J)where
A: ContractTypeRefSpec,
B: ContractTypeRefSpec,
C: ContractTypeRefSpec,
D: ContractTypeRefSpec,
E: ContractTypeRefSpec,
F: ContractTypeRefSpec,
G: ContractTypeRefSpec,
H: ContractTypeRefSpec,
I: ContractTypeRefSpec,
J: ContractTypeRefSpec,
impl<A, B, C, D, E, F, G, H, I, J> ContractTypeRefSpec for (A, B, C, D, E, F, G, H, I, J)where
A: ContractTypeRefSpec,
B: ContractTypeRefSpec,
C: ContractTypeRefSpec,
D: ContractTypeRefSpec,
E: ContractTypeRefSpec,
F: ContractTypeRefSpec,
G: ContractTypeRefSpec,
H: ContractTypeRefSpec,
I: ContractTypeRefSpec,
J: ContractTypeRefSpec,
const INFO: ContractTypeInfo<'static>
Source§impl<A, B, C, D, E, F, G, H, I> ContractTypeRefSpec for (A, B, C, D, E, F, G, H, I)where
A: ContractTypeRefSpec,
B: ContractTypeRefSpec,
C: ContractTypeRefSpec,
D: ContractTypeRefSpec,
E: ContractTypeRefSpec,
F: ContractTypeRefSpec,
G: ContractTypeRefSpec,
H: ContractTypeRefSpec,
I: ContractTypeRefSpec,
impl<A, B, C, D, E, F, G, H, I> ContractTypeRefSpec for (A, B, C, D, E, F, G, H, I)where
A: ContractTypeRefSpec,
B: ContractTypeRefSpec,
C: ContractTypeRefSpec,
D: ContractTypeRefSpec,
E: ContractTypeRefSpec,
F: ContractTypeRefSpec,
G: ContractTypeRefSpec,
H: ContractTypeRefSpec,
I: ContractTypeRefSpec,
const INFO: ContractTypeInfo<'static>
Source§impl<A, B, C, D, E, F, G, H> ContractTypeRefSpec for (A, B, C, D, E, F, G, H)where
A: ContractTypeRefSpec,
B: ContractTypeRefSpec,
C: ContractTypeRefSpec,
D: ContractTypeRefSpec,
E: ContractTypeRefSpec,
F: ContractTypeRefSpec,
G: ContractTypeRefSpec,
H: ContractTypeRefSpec,
impl<A, B, C, D, E, F, G, H> ContractTypeRefSpec for (A, B, C, D, E, F, G, H)where
A: ContractTypeRefSpec,
B: ContractTypeRefSpec,
C: ContractTypeRefSpec,
D: ContractTypeRefSpec,
E: ContractTypeRefSpec,
F: ContractTypeRefSpec,
G: ContractTypeRefSpec,
H: ContractTypeRefSpec,
const INFO: ContractTypeInfo<'static>
Source§impl<A, B, C, D, E, F, G> ContractTypeRefSpec for (A, B, C, D, E, F, G)where
A: ContractTypeRefSpec,
B: ContractTypeRefSpec,
C: ContractTypeRefSpec,
D: ContractTypeRefSpec,
E: ContractTypeRefSpec,
F: ContractTypeRefSpec,
G: ContractTypeRefSpec,
impl<A, B, C, D, E, F, G> ContractTypeRefSpec for (A, B, C, D, E, F, G)where
A: ContractTypeRefSpec,
B: ContractTypeRefSpec,
C: ContractTypeRefSpec,
D: ContractTypeRefSpec,
E: ContractTypeRefSpec,
F: ContractTypeRefSpec,
G: ContractTypeRefSpec,
const INFO: ContractTypeInfo<'static>
Source§impl<A, B, C, D, E, F> ContractTypeRefSpec for (A, B, C, D, E, F)where
A: ContractTypeRefSpec,
B: ContractTypeRefSpec,
C: ContractTypeRefSpec,
D: ContractTypeRefSpec,
E: ContractTypeRefSpec,
F: ContractTypeRefSpec,
impl<A, B, C, D, E, F> ContractTypeRefSpec for (A, B, C, D, E, F)where
A: ContractTypeRefSpec,
B: ContractTypeRefSpec,
C: ContractTypeRefSpec,
D: ContractTypeRefSpec,
E: ContractTypeRefSpec,
F: ContractTypeRefSpec,
const INFO: ContractTypeInfo<'static>
Source§impl<A, B, C, D, E> ContractTypeRefSpec for (A, B, C, D, E)where
A: ContractTypeRefSpec,
B: ContractTypeRefSpec,
C: ContractTypeRefSpec,
D: ContractTypeRefSpec,
E: ContractTypeRefSpec,
impl<A, B, C, D, E> ContractTypeRefSpec for (A, B, C, D, E)where
A: ContractTypeRefSpec,
B: ContractTypeRefSpec,
C: ContractTypeRefSpec,
D: ContractTypeRefSpec,
E: ContractTypeRefSpec,
const INFO: ContractTypeInfo<'static>
Source§impl<A, B, C, D> ContractTypeRefSpec for (A, B, C, D)where
A: ContractTypeRefSpec,
B: ContractTypeRefSpec,
C: ContractTypeRefSpec,
D: ContractTypeRefSpec,
impl<A, B, C, D> ContractTypeRefSpec for (A, B, C, D)where
A: ContractTypeRefSpec,
B: ContractTypeRefSpec,
C: ContractTypeRefSpec,
D: ContractTypeRefSpec,
const INFO: ContractTypeInfo<'static>
Source§impl<A, B, C> ContractTypeRefSpec for (A, B, C)
impl<A, B, C> ContractTypeRefSpec for (A, B, C)
const INFO: ContractTypeInfo<'static>
Source§impl<A, B> ContractTypeRefSpec for (A, B)where
A: ContractTypeRefSpec,
B: ContractTypeRefSpec,
impl<A, B> ContractTypeRefSpec for (A, B)where
A: ContractTypeRefSpec,
B: ContractTypeRefSpec,
const INFO: ContractTypeInfo<'static>
Source§impl<A> ContractTypeRefSpec for (A,)where
A: ContractTypeRefSpec,
impl<A> ContractTypeRefSpec for (A,)where
A: ContractTypeRefSpec,
const INFO: ContractTypeInfo<'static>
Source§impl<T, const N: u32> ContractTypeRefSpec for VecM<T, N>where
T: ContractTypeRefSpec,
Available on crate feature alloc only.
impl<T, const N: u32> ContractTypeRefSpec for VecM<T, N>where
T: ContractTypeRefSpec,
Available on crate feature
alloc only.const INFO: ContractTypeInfo<'static>
Source§impl<T, const N: usize> ContractTypeRefSpec for Vec<T, N>where
T: ContractTypeRefSpec,
Bounded vector with no allocator: the same wire shape and spec as
VecM<T, N> (for u8, as BytesM<N>), but decodable in a no-alloc
guest.
impl<T, const N: usize> ContractTypeRefSpec for Vec<T, N>where
T: ContractTypeRefSpec,
Bounded vector with no allocator: the same wire shape and spec as
VecM<T, N> (for u8, as BytesM<N>), but decodable in a no-alloc
guest.
const INFO: ContractTypeInfo<'static>
Source§impl<T, const N: usize> ContractTypeRefSpec for [T; N]where
T: ContractTypeRefSpec,
impl<T, const N: usize> ContractTypeRefSpec for [T; N]where
T: ContractTypeRefSpec,
const INFO: ContractTypeInfo<'static>
Source§impl<T> ContractTypeRefSpec for Box<T>where
T: ContractTypeRefSpec,
Available on crate feature alloc only.
impl<T> ContractTypeRefSpec for Box<T>where
T: ContractTypeRefSpec,
Available on crate feature
alloc only.const INFO: ContractTypeInfo<'static> = T::INFO
Source§impl<T> ContractTypeRefSpec for Option<T>where
T: ContractTypeRefSpec,
impl<T> ContractTypeRefSpec for Option<T>where
T: ContractTypeRefSpec,
const INFO: ContractTypeInfo<'static>
Source§impl<T> ContractTypeRefSpec for Vec<T>where
T: ContractTypeRefSpec,
Available on crate feature alloc only.
impl<T> ContractTypeRefSpec for Vec<T>where
T: ContractTypeRefSpec,
Available on crate feature
alloc only.