Small fixes
This commit is contained in:
parent
4144a90b9d
commit
c7dbbdc178
|
@ -152,19 +152,19 @@ pub fn render_field_type(box_needed: bool, t: &TField) -> impl Emittable {
|
|||
|
||||
pub fn render_recordlike_type(is_struct: bool, n: &str, d: &TSimple) -> impl Emittable {
|
||||
let semi = if is_struct { seq![";"] } else { seq![] };
|
||||
let ppub = if is_struct { "pub " } else { "" };
|
||||
seq![names::render_constructor(n), match d {
|
||||
TSimple::Record(TRecord(fs)) => seq![" ", braces(
|
||||
fs.iter().map(|(n, d)| item(
|
||||
seq![if is_struct { "pub " } else { "" },
|
||||
names::render_fieldname(n), ": ", render_field_type(true, d)]
|
||||
seq![ppub, names::render_fieldname(n), ": ", render_field_type(true, d)]
|
||||
)).collect())],
|
||||
TSimple::Field(TField::Unit) => semi,
|
||||
TSimple::Field(t) => seq![parens![render_field_type(true, t)], semi],
|
||||
TSimple::Field(t) => seq![parens![seq![ppub, render_field_type(true, t)]], semi],
|
||||
}]
|
||||
}
|
||||
|
||||
pub fn render_definition_type(n: &str, t: &TDefinition) -> impl Emittable {
|
||||
seq!["#[derive(Debug, PartialOrd, Ord, PartialEq, Eq)] ",
|
||||
seq!["#[derive(Debug, PartialOrd, Ord, PartialEq, Eq)]\n",
|
||||
match t {
|
||||
TDefinition::Union(items) =>
|
||||
seq!["pub enum ", names::render_constructor(n), " ", braces(
|
||||
|
|
|
@ -36,13 +36,17 @@ lazy_static! {
|
|||
pub static ref LIT20: preserves::value::IOValue = /* version */ preserves::value::PackedReader::decode_bytes(&vec![179, 7, 118, 101, 114, 115, 105, 111, 110]).demand_next(false).unwrap();
|
||||
}
|
||||
|
||||
#[derive(Debug, PartialOrd, Ord, PartialEq, Eq)] pub enum AtomKind {Boolean, Float, Double, SignedInteger, String, ByteString, Symbol}
|
||||
#[derive(Debug, PartialOrd, Ord, PartialEq, Eq)]
|
||||
pub enum AtomKind {Boolean, Float, Double, SignedInteger, String, ByteString, Symbol}
|
||||
|
||||
#[derive(Debug, PartialOrd, Ord, PartialEq, Eq)] pub struct Binding {pub name: std::string::String, pub pattern: std::boxed::Box<SimplePattern>}
|
||||
#[derive(Debug, PartialOrd, Ord, PartialEq, Eq)]
|
||||
pub struct Binding {pub name: std::string::String, pub pattern: std::boxed::Box<SimplePattern>}
|
||||
|
||||
#[derive(Debug, PartialOrd, Ord, PartialEq, Eq)] pub struct Bundle {pub modules: std::boxed::Box<Modules>}
|
||||
#[derive(Debug, PartialOrd, Ord, PartialEq, Eq)]
|
||||
pub struct Bundle {pub modules: std::boxed::Box<Modules>}
|
||||
|
||||
#[derive(Debug, PartialOrd, Ord, PartialEq, Eq)] pub enum CompoundPattern {
|
||||
#[derive(Debug, PartialOrd, Ord, PartialEq, Eq)]
|
||||
pub enum CompoundPattern {
|
||||
Rec {label: std::boxed::Box<NamedPattern>, fields: std::boxed::Box<NamedPattern>},
|
||||
Tuple {patterns: std::vec::Vec<NamedPattern>},
|
||||
TuplePrefix {
|
||||
|
@ -52,7 +56,8 @@ lazy_static! {
|
|||
Dict {entries: std::boxed::Box<DictionaryEntries>}
|
||||
}
|
||||
|
||||
#[derive(Debug, PartialOrd, Ord, PartialEq, Eq)] pub enum Definition {
|
||||
#[derive(Debug, PartialOrd, Ord, PartialEq, Eq)]
|
||||
pub enum Definition {
|
||||
Or {
|
||||
pattern_0: std::boxed::Box<NamedAlternative>,
|
||||
pattern_1: std::boxed::Box<NamedAlternative>,
|
||||
|
@ -66,36 +71,48 @@ lazy_static! {
|
|||
Pattern(std::boxed::Box<Pattern>)
|
||||
}
|
||||
|
||||
#[derive(Debug, PartialOrd, Ord, PartialEq, Eq)] pub struct Definitions(preserves::value::Map<std::string::String, Definition>);
|
||||
#[derive(Debug, PartialOrd, Ord, PartialEq, Eq)]
|
||||
pub struct Definitions(pub preserves::value::Map<std::string::String, Definition>);
|
||||
|
||||
#[derive(Debug, PartialOrd, Ord, PartialEq, Eq)] pub struct DictionaryEntries(preserves::value::Map<preserves::value::IOValue, NamedSimplePattern>);
|
||||
#[derive(Debug, PartialOrd, Ord, PartialEq, Eq)]
|
||||
pub struct DictionaryEntries(pub preserves::value::Map<preserves::value::IOValue, NamedSimplePattern>);
|
||||
|
||||
#[derive(Debug, PartialOrd, Ord, PartialEq, Eq)] pub enum EmbeddedTypeName {Ref(std::boxed::Box<Ref>), False}
|
||||
#[derive(Debug, PartialOrd, Ord, PartialEq, Eq)]
|
||||
pub enum EmbeddedTypeName {Ref(std::boxed::Box<Ref>), False}
|
||||
|
||||
#[derive(Debug, PartialOrd, Ord, PartialEq, Eq)] pub struct ModulePath(std::vec::Vec<std::string::String>);
|
||||
#[derive(Debug, PartialOrd, Ord, PartialEq, Eq)]
|
||||
pub struct ModulePath(pub std::vec::Vec<std::string::String>);
|
||||
|
||||
#[derive(Debug, PartialOrd, Ord, PartialEq, Eq)] pub struct Modules(preserves::value::Map<ModulePath, Schema>);
|
||||
#[derive(Debug, PartialOrd, Ord, PartialEq, Eq)]
|
||||
pub struct Modules(pub preserves::value::Map<ModulePath, Schema>);
|
||||
|
||||
#[derive(Debug, PartialOrd, Ord, PartialEq, Eq)] pub struct NamedAlternative {pub variant_label: std::string::String, pub pattern: std::boxed::Box<Pattern>}
|
||||
#[derive(Debug, PartialOrd, Ord, PartialEq, Eq)]
|
||||
pub struct NamedAlternative {pub variant_label: std::string::String, pub pattern: std::boxed::Box<Pattern>}
|
||||
|
||||
#[derive(Debug, PartialOrd, Ord, PartialEq, Eq)] pub enum NamedPattern {Named(std::boxed::Box<Binding>), Anonymous(std::boxed::Box<Pattern>)}
|
||||
#[derive(Debug, PartialOrd, Ord, PartialEq, Eq)]
|
||||
pub enum NamedPattern {Named(std::boxed::Box<Binding>), Anonymous(std::boxed::Box<Pattern>)}
|
||||
|
||||
#[derive(Debug, PartialOrd, Ord, PartialEq, Eq)] pub enum NamedSimplePattern {Named(std::boxed::Box<Binding>), Anonymous(std::boxed::Box<SimplePattern>)}
|
||||
#[derive(Debug, PartialOrd, Ord, PartialEq, Eq)]
|
||||
pub enum NamedSimplePattern {Named(std::boxed::Box<Binding>), Anonymous(std::boxed::Box<SimplePattern>)}
|
||||
|
||||
#[derive(Debug, PartialOrd, Ord, PartialEq, Eq)] pub enum Pattern {
|
||||
#[derive(Debug, PartialOrd, Ord, PartialEq, Eq)]
|
||||
pub enum Pattern {
|
||||
SimplePattern(std::boxed::Box<SimplePattern>),
|
||||
CompoundPattern(std::boxed::Box<CompoundPattern>)
|
||||
}
|
||||
|
||||
#[derive(Debug, PartialOrd, Ord, PartialEq, Eq)] pub struct Ref {pub module: std::boxed::Box<ModulePath>, pub name: std::string::String}
|
||||
#[derive(Debug, PartialOrd, Ord, PartialEq, Eq)]
|
||||
pub struct Ref {pub module: std::boxed::Box<ModulePath>, pub name: std::string::String}
|
||||
|
||||
#[derive(Debug, PartialOrd, Ord, PartialEq, Eq)] pub struct Schema {
|
||||
#[derive(Debug, PartialOrd, Ord, PartialEq, Eq)]
|
||||
pub struct Schema {
|
||||
pub definitions: std::boxed::Box<Definitions>,
|
||||
pub embedded_type: std::boxed::Box<EmbeddedTypeName>,
|
||||
pub version: std::boxed::Box<Version>
|
||||
}
|
||||
|
||||
#[derive(Debug, PartialOrd, Ord, PartialEq, Eq)] pub enum SimplePattern {
|
||||
#[derive(Debug, PartialOrd, Ord, PartialEq, Eq)]
|
||||
pub enum SimplePattern {
|
||||
Any,
|
||||
Atom {atom_kind: std::boxed::Box<AtomKind>},
|
||||
Embedded {interface: std::boxed::Box<SimplePattern>},
|
||||
|
@ -106,7 +123,8 @@ lazy_static! {
|
|||
Ref(std::boxed::Box<Ref>)
|
||||
}
|
||||
|
||||
#[derive(Debug, PartialOrd, Ord, PartialEq, Eq)] pub struct Version;
|
||||
#[derive(Debug, PartialOrd, Ord, PartialEq, Eq)]
|
||||
pub struct Version;
|
||||
|
||||
fn _parse_atom_kind_boolean(value: &preserves::value::IOValue) -> std::result::Result<AtomKind, ()> {if value != &*LIT0 { return Err(()); } let _tmp0 = (); Ok(AtomKind::Boolean)}
|
||||
|
||||
|
|
Loading…
Reference in New Issue