IntoEncodableValues

Trait IntoEncodableValues 

Source
pub trait IntoEncodableValues {
    type Values<'this>: EncodableValues
       where Self: 'this;

    // Required methods
    fn into_encodable_values(&self) -> Self::Values<'_>;
    fn num_encodable_values(&self) -> usize;
}
Expand description

This can be implemented for anything that can be encoded in multiple steps into a set of values via scale_encode::EncodeAsType. The common use case is to encode a tuple of multiple types, step by step, into bytes. As well as tuples up to size 12, Implementations also exist for Vecs and arrays.

Required Associated Types§

Source

type Values<'this>: EncodableValues where Self: 'this

An implementation of EncodableValues that can be used to iterate through the values.

Required Methods§

Source

fn into_encodable_values(&self) -> Self::Values<'_>

Return an implementation of EncodableValues for this type.

Source

fn num_encodable_values(&self) -> usize

The number of values that can be encoded from this type.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Types§

Source§

impl IntoEncodableValues for ()

Source§

impl<'a, T: IntoEncodableValues> IntoEncodableValues for &'a T

Source§

type Values<'this> = <T as IntoEncodableValues>::Values<'this> where 'a: 'this

Source§

fn into_encodable_values(&self) -> Self::Values<'_>

Source§

fn num_encodable_values(&self) -> usize

Source§

impl<A: EncodeAsType> IntoEncodableValues for (A,)

Source§

type Values<'this> = TupleIter<'this, (A,)> where (A,): 'this

Source§

fn num_encodable_values(&self) -> usize

Source§

fn into_encodable_values(&self) -> Self::Values<'_>

Source§

impl<A: EncodeAsType, B: EncodeAsType> IntoEncodableValues for (A, B)

Source§

type Values<'this> = TupleIter<'this, (A, B)> where (A, B): 'this

Source§

fn num_encodable_values(&self) -> usize

Source§

fn into_encodable_values(&self) -> Self::Values<'_>

Source§

impl<A: EncodeAsType, B: EncodeAsType, C: EncodeAsType> IntoEncodableValues for (A, B, C)

Source§

type Values<'this> = TupleIter<'this, (A, B, C)> where (A, B, C): 'this

Source§

fn num_encodable_values(&self) -> usize

Source§

fn into_encodable_values(&self) -> Self::Values<'_>

Source§

impl<A: EncodeAsType, B: EncodeAsType, C: EncodeAsType, D: EncodeAsType> IntoEncodableValues for (A, B, C, D)

Source§

type Values<'this> = TupleIter<'this, (A, B, C, D)> where (A, B, C, D): 'this

Source§

fn num_encodable_values(&self) -> usize

Source§

fn into_encodable_values(&self) -> Self::Values<'_>

Source§

impl<A: EncodeAsType, B: EncodeAsType, C: EncodeAsType, D: EncodeAsType, E: EncodeAsType> IntoEncodableValues for (A, B, C, D, E)

Source§

type Values<'this> = TupleIter<'this, (A, B, C, D, E)> where (A, B, C, D, E): 'this

Source§

fn num_encodable_values(&self) -> usize

Source§

fn into_encodable_values(&self) -> Self::Values<'_>

Source§

impl<A: EncodeAsType, B: EncodeAsType, C: EncodeAsType, D: EncodeAsType, E: EncodeAsType, F: EncodeAsType> IntoEncodableValues for (A, B, C, D, E, F)

Source§

type Values<'this> = TupleIter<'this, (A, B, C, D, E, F)> where (A, B, C, D, E, F): 'this

Source§

fn num_encodable_values(&self) -> usize

Source§

fn into_encodable_values(&self) -> Self::Values<'_>

Source§

impl<A: EncodeAsType, B: EncodeAsType, C: EncodeAsType, D: EncodeAsType, E: EncodeAsType, F: EncodeAsType, G: EncodeAsType> IntoEncodableValues for (A, B, C, D, E, F, G)

Source§

type Values<'this> = TupleIter<'this, (A, B, C, D, E, F, G)> where (A, B, C, D, E, F, G): 'this

Source§

fn num_encodable_values(&self) -> usize

Source§

fn into_encodable_values(&self) -> Self::Values<'_>

Source§

impl<A: EncodeAsType, B: EncodeAsType, C: EncodeAsType, D: EncodeAsType, E: EncodeAsType, F: EncodeAsType, G: EncodeAsType, H: EncodeAsType> IntoEncodableValues for (A, B, C, D, E, F, G, H)

Source§

impl<A: EncodeAsType, B: EncodeAsType, C: EncodeAsType, D: EncodeAsType, E: EncodeAsType, F: EncodeAsType, G: EncodeAsType, H: EncodeAsType, I: EncodeAsType> IntoEncodableValues for (A, B, C, D, E, F, G, H, I)

Source§

impl<A: EncodeAsType, B: EncodeAsType, C: EncodeAsType, D: EncodeAsType, E: EncodeAsType, F: EncodeAsType, G: EncodeAsType, H: EncodeAsType, I: EncodeAsType, J: EncodeAsType> IntoEncodableValues for (A, B, C, D, E, F, G, H, I, J)

Source§

impl<A: EncodeAsType, B: EncodeAsType, C: EncodeAsType, D: EncodeAsType, E: EncodeAsType, F: EncodeAsType, G: EncodeAsType, H: EncodeAsType, I: EncodeAsType, J: EncodeAsType, K: EncodeAsType> IntoEncodableValues for (A, B, C, D, E, F, G, H, I, J, K)

Source§

impl<A: EncodeAsType, B: EncodeAsType, C: EncodeAsType, D: EncodeAsType, E: EncodeAsType, F: EncodeAsType, G: EncodeAsType, H: EncodeAsType, I: EncodeAsType, J: EncodeAsType, K: EncodeAsType, L: EncodeAsType> IntoEncodableValues for (A, B, C, D, E, F, G, H, I, J, K, L)

Source§

impl<K: EncodeAsType> IntoEncodableValues for Vec<K>

Source§

type Values<'this> = Iter<'this, K> where K: 'this

Source§

fn num_encodable_values(&self) -> usize

Source§

fn into_encodable_values(&self) -> Self::Values<'_>

Source§

impl<K: EncodeAsType, const N: usize> IntoEncodableValues for [K; N]

Source§

type Values<'this> = Iter<'this, K> where K: 'this

Source§

fn num_encodable_values(&self) -> usize

Source§

fn into_encodable_values(&self) -> Self::Values<'_>

Implementors§