Trait frame_support::dispatch::Encode
source · pub trait Encode {
// Provided methods
fn size_hint(&self) -> usize { ... }
fn encode_to<T>(&self, dest: &mut T)
where T: Output + ?Sized { ... }
fn encode(&self) -> Vec<u8, Global> ⓘ { ... }
fn using_encoded<R, F>(&self, f: F) -> R
where F: FnOnce(&[u8]) -> R { ... }
fn encoded_size(&self) -> usize { ... }
}
Expand description
Trait that allows zero-copy write of value-references to slices in LE format.
Implementations should override using_encoded
for value types and encode_to
and size_hint
for allocating types.
Wrapper types should override all methods.
Provided Methods§
sourcefn size_hint(&self) -> usize
fn size_hint(&self) -> usize
If possible give a hint of expected size of the encoding.
This method is used inside default implementation of encode
to avoid re-allocations.
sourcefn encode_to<T>(&self, dest: &mut T)where
T: Output + ?Sized,
fn encode_to<T>(&self, dest: &mut T)where T: Output + ?Sized,
Convert self to a slice and append it to the destination.
sourcefn using_encoded<R, F>(&self, f: F) -> Rwhere
F: FnOnce(&[u8]) -> R,
fn using_encoded<R, F>(&self, f: F) -> Rwhere F: FnOnce(&[u8]) -> R,
Convert self to a slice and then invoke the given closure with it.
sourcefn encoded_size(&self) -> usize
fn encoded_size(&self) -> usize
Implementations on Foreign Types§
source§impl Encode for WasmMetadata
impl Encode for WasmMetadata
source§impl Encode for WasmFields
impl Encode for WasmFields
source§impl Encode for WasmFieldName
impl Encode for WasmFieldName
source§impl Encode for WasmEntryAttributes
impl Encode for WasmEntryAttributes
source§impl Encode for WasmValuesSet
impl Encode for WasmValuesSet
source§impl<T> Encode for BinaryHeap<T>where
T: Encode,
impl<T> Encode for BinaryHeap<T>where T: Encode,
source§impl Encode for NonZeroU64
impl Encode for NonZeroU64
source§impl Encode for NonZeroU128
impl Encode for NonZeroU128
source§impl Encode for NonZeroU16
impl Encode for NonZeroU16
source§impl Encode for NonZeroU32
impl Encode for NonZeroU32
source§impl<C0, D0, E0, F0, G0, H0, I0, J0, K0, L0, M0, N0, O0, P0, Q0, R0> Encode for (C0, D0, E0, F0, G0, H0, I0, J0, K0, L0, M0, N0, O0, P0, Q0, R0)where
C0: Encode,
D0: Encode,
E0: Encode,
F0: Encode,
G0: Encode,
H0: Encode,
I0: Encode,
J0: Encode,
K0: Encode,
L0: Encode,
M0: Encode,
N0: Encode,
O0: Encode,
P0: Encode,
Q0: Encode,
R0: Encode,
impl<C0, D0, E0, F0, G0, H0, I0, J0, K0, L0, M0, N0, O0, P0, Q0, R0> Encode for (C0, D0, E0, F0, G0, H0, I0, J0, K0, L0, M0, N0, O0, P0, Q0, R0)where C0: Encode, D0: Encode, E0: Encode, F0: Encode, G0: Encode, H0: Encode, I0: Encode, J0: Encode, K0: Encode, L0: Encode, M0: Encode, N0: Encode, O0: Encode, P0: Encode, Q0: Encode, R0: Encode,
source§impl<L0, M0, N0, O0, P0, Q0, R0> Encode for (L0, M0, N0, O0, P0, Q0, R0)where
L0: Encode,
M0: Encode,
N0: Encode,
O0: Encode,
P0: Encode,
Q0: Encode,
R0: Encode,
impl<L0, M0, N0, O0, P0, Q0, R0> Encode for (L0, M0, N0, O0, P0, Q0, R0)where L0: Encode, M0: Encode, N0: Encode, O0: Encode, P0: Encode, Q0: Encode, R0: Encode,
source§impl Encode for NonZeroI64
impl Encode for NonZeroI64
source§impl<N0, O0, P0, Q0, R0> Encode for (N0, O0, P0, Q0, R0)where
N0: Encode,
O0: Encode,
P0: Encode,
Q0: Encode,
R0: Encode,
impl<N0, O0, P0, Q0, R0> Encode for (N0, O0, P0, Q0, R0)where N0: Encode, O0: Encode, P0: Encode, Q0: Encode, R0: Encode,
source§impl<I0, J0, K0, L0, M0, N0, O0, P0, Q0, R0> Encode for (I0, J0, K0, L0, M0, N0, O0, P0, Q0, R0)where
I0: Encode,
J0: Encode,
K0: Encode,
L0: Encode,
M0: Encode,
N0: Encode,
O0: Encode,
P0: Encode,
Q0: Encode,
R0: Encode,
impl<I0, J0, K0, L0, M0, N0, O0, P0, Q0, R0> Encode for (I0, J0, K0, L0, M0, N0, O0, P0, Q0, R0)where I0: Encode, J0: Encode, K0: Encode, L0: Encode, M0: Encode, N0: Encode, O0: Encode, P0: Encode, Q0: Encode, R0: Encode,
source§impl<J0, K0, L0, M0, N0, O0, P0, Q0, R0> Encode for (J0, K0, L0, M0, N0, O0, P0, Q0, R0)where
J0: Encode,
K0: Encode,
L0: Encode,
M0: Encode,
N0: Encode,
O0: Encode,
P0: Encode,
Q0: Encode,
R0: Encode,
impl<J0, K0, L0, M0, N0, O0, P0, Q0, R0> Encode for (J0, K0, L0, M0, N0, O0, P0, Q0, R0)where J0: Encode, K0: Encode, L0: Encode, M0: Encode, N0: Encode, O0: Encode, P0: Encode, Q0: Encode, R0: Encode,
source§impl<T> Encode for LinkedList<T>where
T: Encode,
impl<T> Encode for LinkedList<T>where T: Encode,
source§impl<E0, F0, G0, H0, I0, J0, K0, L0, M0, N0, O0, P0, Q0, R0> Encode for (E0, F0, G0, H0, I0, J0, K0, L0, M0, N0, O0, P0, Q0, R0)where
E0: Encode,
F0: Encode,
G0: Encode,
H0: Encode,
I0: Encode,
J0: Encode,
K0: Encode,
L0: Encode,
M0: Encode,
N0: Encode,
O0: Encode,
P0: Encode,
Q0: Encode,
R0: Encode,
impl<E0, F0, G0, H0, I0, J0, K0, L0, M0, N0, O0, P0, Q0, R0> Encode for (E0, F0, G0, H0, I0, J0, K0, L0, M0, N0, O0, P0, Q0, R0)where E0: Encode, F0: Encode, G0: Encode, H0: Encode, I0: Encode, J0: Encode, K0: Encode, L0: Encode, M0: Encode, N0: Encode, O0: Encode, P0: Encode, Q0: Encode, R0: Encode,
source§impl Encode for NonZeroI16
impl Encode for NonZeroI16
source§impl<O0, P0, Q0, R0> Encode for (O0, P0, Q0, R0)where
O0: Encode,
P0: Encode,
Q0: Encode,
R0: Encode,
impl<O0, P0, Q0, R0> Encode for (O0, P0, Q0, R0)where O0: Encode, P0: Encode, Q0: Encode, R0: Encode,
source§impl Encode for NonZeroI128
impl Encode for NonZeroI128
source§impl<A0, B0, C0, D0, E0, F0, G0, H0, I0, J0, K0, L0, M0, N0, O0, P0, Q0, R0> Encode for (A0, B0, C0, D0, E0, F0, G0, H0, I0, J0, K0, L0, M0, N0, O0, P0, Q0, R0)where
A0: Encode,
B0: Encode,
C0: Encode,
D0: Encode,
E0: Encode,
F0: Encode,
G0: Encode,
H0: Encode,
I0: Encode,
J0: Encode,
K0: Encode,
L0: Encode,
M0: Encode,
N0: Encode,
O0: Encode,
P0: Encode,
Q0: Encode,
R0: Encode,
impl<A0, B0, C0, D0, E0, F0, G0, H0, I0, J0, K0, L0, M0, N0, O0, P0, Q0, R0> Encode for (A0, B0, C0, D0, E0, F0, G0, H0, I0, J0, K0, L0, M0, N0, O0, P0, Q0, R0)where A0: Encode, B0: Encode, C0: Encode, D0: Encode, E0: Encode, F0: Encode, G0: Encode, H0: Encode, I0: Encode, J0: Encode, K0: Encode, L0: Encode, M0: Encode, N0: Encode, O0: Encode, P0: Encode, Q0: Encode, R0: Encode,
source§impl<T> Encode for RangeInclusive<T>where
T: Encode,
impl<T> Encode for RangeInclusive<T>where T: Encode,
source§impl<F0, G0, H0, I0, J0, K0, L0, M0, N0, O0, P0, Q0, R0> Encode for (F0, G0, H0, I0, J0, K0, L0, M0, N0, O0, P0, Q0, R0)where
F0: Encode,
G0: Encode,
H0: Encode,
I0: Encode,
J0: Encode,
K0: Encode,
L0: Encode,
M0: Encode,
N0: Encode,
O0: Encode,
P0: Encode,
Q0: Encode,
R0: Encode,
impl<F0, G0, H0, I0, J0, K0, L0, M0, N0, O0, P0, Q0, R0> Encode for (F0, G0, H0, I0, J0, K0, L0, M0, N0, O0, P0, Q0, R0)where F0: Encode, G0: Encode, H0: Encode, I0: Encode, J0: Encode, K0: Encode, L0: Encode, M0: Encode, N0: Encode, O0: Encode, P0: Encode, Q0: Encode, R0: Encode,
source§impl<G0, H0, I0, J0, K0, L0, M0, N0, O0, P0, Q0, R0> Encode for (G0, H0, I0, J0, K0, L0, M0, N0, O0, P0, Q0, R0)where
G0: Encode,
H0: Encode,
I0: Encode,
J0: Encode,
K0: Encode,
L0: Encode,
M0: Encode,
N0: Encode,
O0: Encode,
P0: Encode,
Q0: Encode,
R0: Encode,
impl<G0, H0, I0, J0, K0, L0, M0, N0, O0, P0, Q0, R0> Encode for (G0, H0, I0, J0, K0, L0, M0, N0, O0, P0, Q0, R0)where G0: Encode, H0: Encode, I0: Encode, J0: Encode, K0: Encode, L0: Encode, M0: Encode, N0: Encode, O0: Encode, P0: Encode, Q0: Encode, R0: Encode,
source§impl<B0, C0, D0, E0, F0, G0, H0, I0, J0, K0, L0, M0, N0, O0, P0, Q0, R0> Encode for (B0, C0, D0, E0, F0, G0, H0, I0, J0, K0, L0, M0, N0, O0, P0, Q0, R0)where
B0: Encode,
C0: Encode,
D0: Encode,
E0: Encode,
F0: Encode,
G0: Encode,
H0: Encode,
I0: Encode,
J0: Encode,
K0: Encode,
L0: Encode,
M0: Encode,
N0: Encode,
O0: Encode,
P0: Encode,
Q0: Encode,
R0: Encode,
impl<B0, C0, D0, E0, F0, G0, H0, I0, J0, K0, L0, M0, N0, O0, P0, Q0, R0> Encode for (B0, C0, D0, E0, F0, G0, H0, I0, J0, K0, L0, M0, N0, O0, P0, Q0, R0)where B0: Encode, C0: Encode, D0: Encode, E0: Encode, F0: Encode, G0: Encode, H0: Encode, I0: Encode, J0: Encode, K0: Encode, L0: Encode, M0: Encode, N0: Encode, O0: Encode, P0: Encode, Q0: Encode, R0: Encode,
source§impl<M0, N0, O0, P0, Q0, R0> Encode for (M0, N0, O0, P0, Q0, R0)where
M0: Encode,
N0: Encode,
O0: Encode,
P0: Encode,
Q0: Encode,
R0: Encode,
impl<M0, N0, O0, P0, Q0, R0> Encode for (M0, N0, O0, P0, Q0, R0)where M0: Encode, N0: Encode, O0: Encode, P0: Encode, Q0: Encode, R0: Encode,
source§impl Encode for NonZeroI32
impl Encode for NonZeroI32
source§impl<H0, I0, J0, K0, L0, M0, N0, O0, P0, Q0, R0> Encode for (H0, I0, J0, K0, L0, M0, N0, O0, P0, Q0, R0)where
H0: Encode,
I0: Encode,
J0: Encode,
K0: Encode,
L0: Encode,
M0: Encode,
N0: Encode,
O0: Encode,
P0: Encode,
Q0: Encode,
R0: Encode,
impl<H0, I0, J0, K0, L0, M0, N0, O0, P0, Q0, R0> Encode for (H0, I0, J0, K0, L0, M0, N0, O0, P0, Q0, R0)where H0: Encode, I0: Encode, J0: Encode, K0: Encode, L0: Encode, M0: Encode, N0: Encode, O0: Encode, P0: Encode, Q0: Encode, R0: Encode,
source§impl<K0, L0, M0, N0, O0, P0, Q0, R0> Encode for (K0, L0, M0, N0, O0, P0, Q0, R0)where
K0: Encode,
L0: Encode,
M0: Encode,
N0: Encode,
O0: Encode,
P0: Encode,
Q0: Encode,
R0: Encode,
impl<K0, L0, M0, N0, O0, P0, Q0, R0> Encode for (K0, L0, M0, N0, O0, P0, Q0, R0)where K0: Encode, L0: Encode, M0: Encode, N0: Encode, O0: Encode, P0: Encode, Q0: Encode, R0: Encode,
source§impl<D0, E0, F0, G0, H0, I0, J0, K0, L0, M0, N0, O0, P0, Q0, R0> Encode for (D0, E0, F0, G0, H0, I0, J0, K0, L0, M0, N0, O0, P0, Q0, R0)where
D0: Encode,
E0: Encode,
F0: Encode,
G0: Encode,
H0: Encode,
I0: Encode,
J0: Encode,
K0: Encode,
L0: Encode,
M0: Encode,
N0: Encode,
O0: Encode,
P0: Encode,
Q0: Encode,
R0: Encode,
impl<D0, E0, F0, G0, H0, I0, J0, K0, L0, M0, N0, O0, P0, Q0, R0> Encode for (D0, E0, F0, G0, H0, I0, J0, K0, L0, M0, N0, O0, P0, Q0, R0)where D0: Encode, E0: Encode, F0: Encode, G0: Encode, H0: Encode, I0: Encode, J0: Encode, K0: Encode, L0: Encode, M0: Encode, N0: Encode, O0: Encode, P0: Encode, Q0: Encode, R0: Encode,
source§impl Encode for OpaqueMetadata
impl Encode for OpaqueMetadata
source§impl<T> Encode for ExtrinsicMetadata<T>where
T: Form,
<T as Form>::Type: Encode,
Vec<SignedExtensionMetadata<T>, Global>: Encode,
impl<T> Encode for ExtrinsicMetadata<T>where T: Form, <T as Form>::Type: Encode, Vec<SignedExtensionMetadata<T>, Global>: Encode,
source§impl<T> Encode for PalletConstantMetadata<T>where
T: Form,
<T as Form>::String: Encode,
<T as Form>::Type: Encode,
Vec<<T as Form>::String, Global>: Encode,
impl<T> Encode for PalletConstantMetadata<T>where T: Form, <T as Form>::String: Encode, <T as Form>::Type: Encode, Vec<<T as Form>::String, Global>: Encode,
source§impl<T> Encode for SignedExtensionMetadata<T>where
T: Form,
<T as Form>::String: Encode,
<T as Form>::Type: Encode,
impl<T> Encode for SignedExtensionMetadata<T>where T: Form, <T as Form>::String: Encode, <T as Form>::Type: Encode,
source§impl<T> Encode for PalletMetadata<T>where
T: Form,
<T as Form>::String: Encode,
Option<PalletStorageMetadata<T>>: Encode,
Option<PalletCallMetadata<T>>: Encode,
Option<PalletEventMetadata<T>>: Encode,
Vec<PalletConstantMetadata<T>, Global>: Encode,
Option<PalletErrorMetadata<T>>: Encode,
impl<T> Encode for PalletMetadata<T>where T: Form, <T as Form>::String: Encode, Option<PalletStorageMetadata<T>>: Encode, Option<PalletCallMetadata<T>>: Encode, Option<PalletEventMetadata<T>>: Encode, Vec<PalletConstantMetadata<T>, Global>: Encode, Option<PalletErrorMetadata<T>>: Encode,
source§impl Encode for RuntimeMetadataDeprecated
impl Encode for RuntimeMetadataDeprecated
source§impl Encode for StorageHasher
impl Encode for StorageHasher
source§impl Encode for RuntimeMetadataV14
impl Encode for RuntimeMetadataV14
source§impl Encode for RuntimeMetadataPrefixed
impl Encode for RuntimeMetadataPrefixed
source§impl Encode for RuntimeMetadata
impl Encode for RuntimeMetadata
source§impl<T> Encode for StorageEntryMetadata<T>where
T: Form,
<T as Form>::String: Encode,
StorageEntryType<T>: Encode,
Vec<<T as Form>::String, Global>: Encode,
impl<T> Encode for StorageEntryMetadata<T>where T: Form, <T as Form>::String: Encode, StorageEntryType<T>: Encode, Vec<<T as Form>::String, Global>: Encode,
source§impl<T> Encode for PalletStorageMetadata<T>where
T: Form,
<T as Form>::String: Encode,
Vec<StorageEntryMetadata<T>, Global>: Encode,
impl<T> Encode for PalletStorageMetadata<T>where T: Form, <T as Form>::String: Encode, Vec<StorageEntryMetadata<T>, Global>: Encode,
source§impl Encode for StorageEntryModifier
impl Encode for StorageEntryModifier
source§impl<T> Encode for Field<T>where
T: Form,
Option<<T as Form>::String>: Encode,
<T as Form>::Type: Encode,
Vec<<T as Form>::String, Global>: Encode,
impl<T> Encode for Field<T>where T: Form, Option<<T as Form>::String>: Encode, <T as Form>::Type: Encode, Vec<<T as Form>::String, Global>: Encode,
source§impl Encode for PortableRegistry
impl Encode for PortableRegistry
source§impl<T> Encode for TypeParameter<T>where
T: Form,
<T as Form>::String: Encode,
Option<<T as Form>::Type>: Encode,
impl<T> Encode for TypeParameter<T>where T: Form, <T as Form>::String: Encode, Option<<T as Form>::Type>: Encode,
source§impl<T> Encode for Variant<T>where
T: Form,
<T as Form>::String: Encode,
Vec<Field<T>, Global>: Encode,
Vec<<T as Form>::String, Global>: Encode,
impl<T> Encode for Variant<T>where T: Form, <T as Form>::String: Encode, Vec<Field<T>, Global>: Encode, Vec<<T as Form>::String, Global>: Encode,
source§impl Encode for TypeDefPrimitive
impl Encode for TypeDefPrimitive
source§impl<T> Encode for Type<T>where
T: Form,
Path<T>: Encode,
Vec<TypeParameter<T>, Global>: Encode,
TypeDef<T>: Encode,
Vec<<T as Form>::String, Global>: Encode,
impl<T> Encode for Type<T>where T: Form, Path<T>: Encode, Vec<TypeParameter<T>, Global>: Encode, TypeDef<T>: Encode, Vec<<T as Form>::String, Global>: Encode,
source§impl<T> Encode for UntrackedSymbol<T>where
PhantomData<fn() -> T>: Encode,
impl<T> Encode for UntrackedSymbol<T>where PhantomData<fn() -> T>: Encode,
source§impl<T> Encode for TypeDef<T>where
T: Form,
TypeDefComposite<T>: Encode,
TypeDefVariant<T>: Encode,
TypeDefSequence<T>: Encode,
TypeDefArray<T>: Encode,
TypeDefTuple<T>: Encode,
TypeDefCompact<T>: Encode,
TypeDefBitSequence<T>: Encode,
impl<T> Encode for TypeDef<T>where T: Form, TypeDefComposite<T>: Encode, TypeDefVariant<T>: Encode, TypeDefSequence<T>: Encode, TypeDefArray<T>: Encode, TypeDefTuple<T>: Encode, TypeDefCompact<T>: Encode, TypeDefBitSequence<T>: Encode,
source§impl Encode for AccountId32
impl Encode for AccountId32
source§impl Encode for CryptoTypePublicPair
impl Encode for CryptoTypePublicPair
source§impl Encode for LocalizedSignature
impl Encode for LocalizedSignature
source§impl Encode for OpaqueMetadata
impl Encode for OpaqueMetadata
source§impl Encode for StorageKind
impl Encode for StorageKind
source§impl Encode for OpaquePeerId
impl Encode for OpaquePeerId
source§impl Encode for LogLevelFilter
impl Encode for LogLevelFilter
source§impl Encode for HttpRequestStatus
impl Encode for HttpRequestStatus
source§impl Encode for CryptoTypeId
impl Encode for CryptoTypeId
source§impl Encode for OpaqueMultiaddr
impl Encode for OpaqueMultiaddr
source§impl Encode for HttpRequestId
impl Encode for HttpRequestId
source§impl Encode for DeriveJunction
impl Encode for DeriveJunction
source§impl Encode for OpaqueNetworkState
impl Encode for OpaqueNetworkState
§impl Encode for ReturnValue
impl Encode for ReturnValue
fn encode_to<__CodecOutputEdqy>(&self, __codec_dest_edqy: &mut __CodecOutputEdqy)where __CodecOutputEdqy: Output + ?Sized,
§impl Encode for Value
impl Encode for Value
fn encode_to<__CodecOutputEdqy>(&self, __codec_dest_edqy: &mut __CodecOutputEdqy)where __CodecOutputEdqy: Output + ?Sized,
source§impl Encode for EcdsaVerifyError
impl Encode for EcdsaVerifyError
§impl Encode for VRFTranscriptData
impl Encode for VRFTranscriptData
fn encode_to<__CodecOutputEdqy>(&self, __codec_dest_edqy: &mut __CodecOutputEdqy)where __CodecOutputEdqy: Output + ?Sized,
§impl Encode for VRFTranscriptValue
impl Encode for VRFTranscriptValue
fn encode_to<__CodecOutputEdqy>(&self, __codec_dest_edqy: &mut __CodecOutputEdqy)where __CodecOutputEdqy: Output + ?Sized,
source§impl Encode for MultiSignature
impl Encode for MultiSignature
source§impl Encode for OpaqueExtrinsic
impl Encode for OpaqueExtrinsic
source§impl Encode for AnySignature
impl Encode for AnySignature
source§impl<Call, Extra> Encode for SignedPayload<Call, Extra>where
Call: Encode,
Extra: SignedExtension,
impl<Call, Extra> Encode for SignedPayload<Call, Extra>where Call: Encode, Extra: SignedExtension,
source§fn using_encoded<R, F>(&self, f: F) -> Rwhere
F: FnOnce(&[u8]) -> R,
fn using_encoded<R, F>(&self, f: F) -> Rwhere F: FnOnce(&[u8]) -> R,
Get an encoded version of this payload.
Payloads longer than 256 bytes are going to be blake2_256
-hashed.