pub trait VariadicStruct<'a>: Clone {
    type Item: VariadicRef;
    type ItemMut;

    // Required methods
    fn create(data: TypeIndex, _: &'a [u8]) -> Self::Item;
    fn create_mut(data: &'a mut Vec<u8>) -> Self::ItemMut;
}
Expand description

A type used to create VariadicStructs.

Vector/ArrayView-like classes cannot be directly implemented over the structs since that binds lifetime too early. Instead this generic factory and Higher-Rank-Trait-Bounds are used to emulate higher-kinded-generics.

Required Associated Types§

source

type Item: VariadicRef

Reader type

source

type ItemMut

Associated type used for building an item in MultiVector based on this variadic type.

The builder is returned by MultiVector::grow method. It provides convenient methods add_{variant_name} for each enum variant.

Required Methods§

source

fn create(data: TypeIndex, _: &'a [u8]) -> Self::Item

Creates a reader for specific type of data.

source

fn create_mut(data: &'a mut Vec<u8>) -> Self::ItemMut

Creates a builder for a list of VariadicRef.

Implementors§