Tuples
The TupleType
can be used to represent a fixed list of heterogeneous values of a given
type, as defined by items_types
.
#![allow(unused)] fn main() { use schematic::{Schematic, Schema, SchemaBuilder, SchemaType, schema::{TupleType, IntegerKind}}; impl Schematic for T { fn build_schema(mut schema: SchemaBuilder) -> Schema { schema.tuple(TupleType { items_types: vec![ Box::new(schema.infer::<String>()), Box::new(schema.infer::<bool>()), Box::new(schema.nest().integer(IntegerType::new_kind(IntegerKind::U32))), ], ..TupleType::default() }) } } }
If you’re only defining the items_types
field, you can use the shorthand
TupleType::new()
method. When using this approach, the Box
s are automatically inserted for you.
#![allow(unused)] fn main() { schema.tuple(TupleType::new([ schema.infer::<String>(), schema.infer::<bool>(), schema.nest().integer(IntegerType::new_kind(IntegerKind::U32)), ])); }
Automatically implemented for tuples of 0-12 length.