pub enum ShapeNode {
Show 13 variants
Any,
Bool,
Int {
min: i64,
max: i64,
},
Float {
bits: u32,
},
String,
Atom,
Bytes,
Ref {
of: Vec<KindName>,
id: Box<ShapeNode>,
},
Named {
name: String,
of: Box<ShapeNode>,
},
List {
of: Box<ShapeNode>,
},
Map {
of: Box<ShapeNode>,
},
Optional {
of: Box<ShapeNode>,
},
Def {
name: String,
},
}Expand description
One shape as data, tagged by kind; a struct or enum is a def, its
definition written once in the description’s defs.
Variants§
Any
Any value.
Bool
true or false.
Int
An integer in min..=max.
Float
A number with a fraction, bits wide.
String
Plain text.
Atom
A name that repeats.
Bytes
Bytes as they are.
Ref
A reference of one of of (any kind if empty), its id of shape id.
Named
A type tools may know by name, stored as of.
List
A list of of.
Map
An object of any keys, every value of.
Optional
of or null.
Def
The struct or enum name, defined in defs.
Trait Implementations§
Source§impl Schema for ShapeNode
impl Schema for ShapeNode
Source§fn read(v: &ValueRef<'_>, cx: &mut Reader<'_>) -> Option<Self>
fn read(v: &ValueRef<'_>, cx: &mut Reader<'_>) -> Option<Self>
Reads
v. Problems go to cx at its current path; None when the
value couldn’t be read (the problem is in cx).Source§fn absent() -> Option<Self>
fn absent() -> Option<Self>
The value of a field that isn’t there —
None: the field is required.Source§fn encode(&self, w: &mut Writer)
fn encode(&self, w: &mut Writer)
Writes itself in the binary form, straight —
Schema::write’s
value encoded, unless the type knows better (derived ones do).Source§fn decode(d: &mut Decoder<'_>) -> Option<Self>
fn decode(d: &mut Decoder<'_>) -> Option<Self>
Reads itself from the binary form, straight;
None when it isn’t
what Schema::encode writes — then read_bytes reads the slow
way, which says what’s wrong. Through a value unless the type knows
better (derived ones do).Source§fn pack(&self, p: &mut Packer)
fn pack(&self, p: &mut Packer)
Packs itself into a frame (
crate::frame): its binary form as
bytes, unless the type packs itself (derived ones and plain types do).Source§fn unpack(u: &mut Unpacker<'_>) -> Option<Self>
fn unpack(u: &mut Unpacker<'_>) -> Option<Self>
Reads itself out of a frame;
None if the bytes aren’t what
Schema::pack writes.Source§fn pack_list(items: &[Self], p: &mut Packer)
fn pack_list(items: &[Self], p: &mut Packer)
A list of these packed: a count, then each one (floats raw).
Source§fn encode_list(items: &[Self], w: &mut Writer)
fn encode_list(items: &[Self], w: &mut Writer)
A list of these written straight (numbers pack theirs).
impl StructuralPartialEq for ShapeNode
Auto Trait Implementations§
impl Freeze for ShapeNode
impl RefUnwindSafe for ShapeNode
impl Send for ShapeNode
impl Sync for ShapeNode
impl Unpin for ShapeNode
impl UnsafeUnpin for ShapeNode
impl UnwindSafe for ShapeNode
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more