pub enum BinProtRule {
Show 26 variants
Nat0,
Unit,
Bool,
String,
Char,
Int,
Int32,
Int64,
NativeInt,
Float,
Option(Box<BinProtRule>),
Record(Vec<RecordField>),
Tuple(Vec<BinProtRule>),
Sum(Vec<Summand>),
Polyvar(Vec<Polyvar>),
List(Box<BinProtRule>),
Hashtable(HashTblEntry),
Vec(usize, Box<BinProtRule>),
Bigstring,
Reference(RuleRef),
TypeVar(String),
SelfReference(Vec<BinProtRule>),
TypeAbstraction(Vec<String>, Box<BinProtRule>),
TypeClosure(Vec<(String, BinProtRule)>, Box<BinProtRule>),
Custom(Vec<BinProtRule>),
CustomForPath(String, Vec<BinProtRule>),
}
Expand description
Recursively defined BinProtRule is how the type tree is constructed
Variants
Nat0
Variable length natural Integer
Unit
Unit type
Bool
Boolean
String
OCaml string type (different to a rust string)
Char
OCaml char type
Int
Variable length integer
Int32
32 bit Integer
Int64
64 bit Integer
NativeInt
OS Native integer
Float
Floating point number
Option(Box<BinProtRule>)
OCaml option
Record(Vec<RecordField>)
records/structs
Tuple(Vec<BinProtRule>)
tuple
Sum(Vec<Summand>)
sum types/enums
Polyvar(Vec<Polyvar>)
τ ≤ Γ(a), τ is an instance of Γ(a) and (Γ(a) a type scheme
List(Box<BinProtRule>)
Variable length list of any BinProt type
Hashtable(HashTblEntry)
Hash table of BinProt types
Vec(usize, Box<BinProtRule>)
fixed length of BinProt types
Bigstring
A set of utils for dealing with bigarrays
of char
Reference(RuleRef)
track indirections for debugging
TypeVar(String)
your type
SelfReference(Vec<BinProtRule>)
inside a recursive type, list of type parameters
TypeAbstraction(Vec<String>, Box<BinProtRule>)
parameterized type: ’a t = …
TypeClosure(Vec<(String, BinProtRule)>, Box<BinProtRule>)
recursive parameterized type with bindings
Custom(Vec<BinProtRule>)
Type that does not use standard derived BinProt encoding
CustomForPath(String, Vec<BinProtRule>)
does not occur in source files, used in traverse
Trait Implementations
sourceimpl Clone for BinProtRule
impl Clone for BinProtRule
sourcefn clone(&self) -> BinProtRule
fn clone(&self) -> BinProtRule
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read more