#[repr(u8)]pub enum BinaryTag {
Show 20 variants
Nil = 0,
False = 1,
True = 2,
Number = 3,
Symbol = 4,
String = 5,
Bytes = 6,
List = 7,
Vector = 8,
Map = 9,
Set = 10,
Call = 11,
Infix = 12,
Prefix = 13,
Postfix = 14,
Block = 15,
Quote = 16,
Annotated = 17,
Extension = 18,
Local = 19,
}Expand description
The one-byte tag that prefixes each node in a frame body.
Each variant selects the Expr shape that follows and fixes its wire
layout. The discriminant is the on-wire byte; decoding rejects any byte
without a matching variant.
Variants§
Nil = 0
The nil value; no payload.
False = 1
The boolean false; no payload.
True = 2
The boolean true; no payload.
Number = 3
A number: a number-domain table index then the canonical text.
Symbol = 4
A symbol, given as an index into the symbol table.
String = 5
A UTF-8 string, length-prefixed.
Bytes = 6
A raw byte blob, length-prefixed.
List = 7
A list: a count then that many body nodes.
Vector = 8
A vector: a count then that many body nodes.
Map = 9
A map: a count then that many canonically ordered key/value node pairs.
Set = 10
A set: a count then that many canonically ordered body nodes.
Call = 11
A call: an operator node, a count, then that many argument nodes.
Infix = 12
An infix application: an operator symbol index then left and right nodes.
Prefix = 13
A prefix application: an operator symbol index then the argument node.
Postfix = 14
A postfix application: an operator symbol index then the argument node.
Block = 15
A block: a count then that many body nodes.
Quote = 16
A quote: a quote-mode byte then the quoted node.
Annotated = 17
An annotated node: the inner node then a count of symbol/value pairs.
Extension = 18
An extension: a tag symbol index then the payload node.
Local = 19
A local binding reference, given as an index into the symbol table.