Skip to main content

SeqElement

Trait SeqElement 

Source
pub trait SeqElement: TailElement {
    const STRIDE: usize;
}
Expand description

A TailElement whose encoding has a fixed stride: every value encodes to exactly STRIDE bytes (STRIDE == MAX_ENCODED_LEN, and encode always writes STRIDE).

This fixed width is what lets a Seq<T> address element i at SEQ_LEN_PREFIX + i*STRIDE with no per-element scan. Implemented for the fixed-width wire primitives (u8..=u128, i16..=i128, bool), [u8; N], and Address. Variable-length encoders (Option<T>, BoundedString<N>, BoundedVec<T, N>) are deliberately NOT SeqElement; they stay on the owned-decode path.

Required Associated Constants§

Source

const STRIDE: usize

Fixed on-wire stride in bytes. MUST equal the exact number of bytes every value of this type encodes to (and decodes from).

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 SeqElement for bool

Source§

const STRIDE: usize = <bool as TailCodec>::MAX_ENCODED_LEN

Source§

impl SeqElement for i16

Source§

const STRIDE: usize = <i16 as TailCodec>::MAX_ENCODED_LEN

Source§

impl SeqElement for i32

Source§

const STRIDE: usize = <i32 as TailCodec>::MAX_ENCODED_LEN

Source§

impl SeqElement for i64

Source§

const STRIDE: usize = <i64 as TailCodec>::MAX_ENCODED_LEN

Source§

impl SeqElement for i128

Source§

const STRIDE: usize = <i128 as TailCodec>::MAX_ENCODED_LEN

Source§

impl SeqElement for u8

Source§

const STRIDE: usize = <u8 as TailCodec>::MAX_ENCODED_LEN

Source§

impl SeqElement for u16

Source§

const STRIDE: usize = <u16 as TailCodec>::MAX_ENCODED_LEN

Source§

impl SeqElement for u32

Source§

const STRIDE: usize = <u32 as TailCodec>::MAX_ENCODED_LEN

Source§

impl SeqElement for u64

Source§

const STRIDE: usize = <u64 as TailCodec>::MAX_ENCODED_LEN

Source§

impl SeqElement for u128

Source§

const STRIDE: usize = <u128 as TailCodec>::MAX_ENCODED_LEN

Implementors§