Skip to content

Commit

Permalink
Resolve #22, update built-in data types mapping for the Rust
Browse files Browse the repository at this point in the history
  • Loading branch information
xuri committed Jan 18, 2021
1 parent e9b5470 commit a744528
Show file tree
Hide file tree
Showing 2 changed files with 57 additions and 55 deletions.
38 changes: 20 additions & 18 deletions genRust.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,24 +17,26 @@ import (

var (
rustBuildinType = map[string]bool{
"i8": true,
"i16": true,
"i32": true,
"i64": true,
"i128": true,
"isize": true,
"u8": true,
"u16": true,
"u32": true,
"u64": true,
"u128": true,
"usize": true,
"f32": true,
"f64": true,
"Vec<char>": true,
"Vec<u8>": true,
"bool": true,
"char": true,
"i8": true,
"i16": true,
"i32": true,
"i64": true,
"i128": true,
"isize": true,
"u8": true,
"u16": true,
"u32": true,
"u64": true,
"u128": true,
"usize": true,
"f32": true,
"f64": true,
"Vec<char>": true,
"Vec<String>": true,
"Vec<u8>": true,
"bool": true,
"char": true,
"String": true,
}
rustKeywords = map[string]bool{
"as": true,
Expand Down
74 changes: 37 additions & 37 deletions utils.go
Original file line number Diff line number Diff line change
Expand Up @@ -72,55 +72,55 @@ func PrepareOutputDir(path string) error {
// Rust languages and data types in XSD.
// https://www.w3.org/TR/xmlschema-2/#datatype
var BuildInTypes = map[string][]string{
"anyType": {"string", "string", "char", "String", "char"},
"ENTITIES": {"[]string", "Array<string>", "char[]", "List<String>", "Vec<char>"},
"ENTITY": {"string", "string", "char", "String", "char"},
"ID": {"string", "string", "char", "String", "char"},
"IDREF": {"string", "string", "char", "String", "char"},
"IDREFS": {"[]string", "Array<string>", "char[]", "List<String>", "Vec<char>"},
"NCName": {"string", "string", "char", "String", "char"},
"NMTOKEN": {"string", "string", "char", "String", "char"},
"NMTOKENS": {"[]string", "Array<string>", "char[]", "List<String>", "Vec<char>"},
"NOTATION": {"[]string", "Array<string>", "char[]", "List<String>", "Vec<char>"},
"Name": {"string", "string", "char", "String", "char"},
"QName": {"xml.Name", "any", "char", "String", "char"},
"anyURI": {"string", "string", "char", "QName", "char"},
"base64Binary": {"[]byte", "Array<any>", "char[]", "List<Byte>", "Vec<u8>"},
"anyType": {"string", "string", "char", "String", "String"},
"ENTITIES": {"[]string", "Array<string>", "char[]", "List<String>", "Vec<String>"},
"ENTITY": {"string", "string", "char", "String", "String"},
"ID": {"string", "string", "char", "String", "String"},
"IDREF": {"string", "string", "char", "String", "String"},
"IDREFS": {"[]string", "Array<string>", "char[]", "List<String>", "Vec<String>"},
"NCName": {"string", "string", "char", "String", "String"},
"NMTOKEN": {"string", "string", "char", "String", "String"},
"NMTOKENS": {"[]string", "Array<string>", "char[]", "List<String>", "Vec<String>"},
"NOTATION": {"[]string", "Array<string>", "char[]", "List<String>", "Vec<String>"},
"Name": {"string", "string", "char", "String", "String"},
"QName": {"xml.Name", "any", "char", "String", "String"},
"anyURI": {"string", "string", "char", "QName", "String"},
"base64Binary": {"[]byte", "Array<any>", "char[]", "List<Byte>", "String"},
"boolean": {"bool", "boolean", "bool", "Boolean", "bool"},
"byte": {"byte", "any", "char[]", "Byte", "u8"},
"date": {"time.Time", "string", "char", "Byte", "u8"},
"dateTime": {"time.Time", "string", "char", "Byte", "u8"},
"decimal": {"float64", "number", "float", "Float", "f64"},
"double": {"float64", "number", "float", "Float", "f64"},
"duration": {"string", "string", "char", "String", "char"},
"float": {"float", "number", "float", "Float", "usize"},
"gDay": {"time.Time", "string", "char", "String", "char"},
"gMonth": {"time.Time", "string", "char", "String", "char"},
"gMonthDay": {"time.Time", "string", "char", "String", "char"},
"gYear": {"time.Time", "string", "char", "String", "char"},
"gYearMonth": {"time.Time", "string", "char", "String", "char"},
"hexBinary": {"[]byte", "Array<any>", "char[]", "List<Byte>", "Vec<u8>"},
"int": {"int", "number", "int", "Integer", "isize"},
"integer": {"int", "number", "int", "Integer", "isize"},
"language": {"string", "string", "char", "String", "char"},
"duration": {"string", "string", "char", "String", "String"},
"float": {"float", "number", "float", "Float", "f64"},
"gDay": {"time.Time", "string", "char", "String", "String"},
"gMonth": {"time.Time", "string", "char", "String", "String"},
"gMonthDay": {"time.Time", "string", "char", "String", "String"},
"gYear": {"time.Time", "string", "char", "String", "String"},
"gYearMonth": {"time.Time", "string", "char", "String", "String"},
"hexBinary": {"[]byte", "Array<any>", "char[]", "List<Byte>", "String"},
"int": {"int", "number", "int", "Integer", "i32"},
"integer": {"int", "number", "int", "Integer", "i32"},
"language": {"string", "string", "char", "String", "String"},
"long": {"int64", "number", "int", "Long", "i64"},
"negativeInteger": {"int", "number", "int", "Integer", "isize"},
"nonNegativeInteger": {"int", "number", "int", "Integer", "isize"},
"normalizedString": {"string", "string", "char", "String", "char"},
"nonPositiveInteger": {"int", "number", "int", "Integer", "isize"},
"positiveInteger": {"int", "number", "int", "Integer", "isize"},
"negativeInteger": {"int", "number", "int", "Integer", "i32"},
"nonNegativeInteger": {"int", "number", "int", "Integer", "u32"},
"normalizedString": {"string", "string", "char", "String", "String"},
"nonPositiveInteger": {"int", "number", "int", "Integer", "i32"},
"positiveInteger": {"int", "number", "int", "Integer", "u32"},
"short": {"int16", "number", "int", "Integer", "i16"},
"string": {"string", "string", "char", "String", "char"},
"time": {"time.Time", "string", "char", "String", "char"},
"token": {"string", "string", "char", "String", "char"},
"string": {"string", "string", "char", "String", "String"},
"time": {"time.Time", "string", "char", "String", "String"},
"token": {"string", "string", "char", "String", "String"},
"unsignedByte": {"byte", "any", "char", "Byte", "u8"},
"unsignedInt": {"uint32", "number", "unsigned int", "Integer", "u32"},
"unsignedLong": {"uint64", "number", "unsigned int", "Long", "u64"},
"unsignedShort": {"uint16", "number", "unsigned int", "Short", "u16"},
"xml:lang": {"string", "string", "char", "String", "char"},
"xml:space": {"string", "string", "char", "String", "char"},
"xml:base": {"string", "string", "char", "String", "char"},
"xml:id": {"string", "string", "char", "String", "char"},
"xml:lang": {"string", "string", "char", "String", "String"},
"xml:space": {"string", "string", "char", "String", "String"},
"xml:base": {"string", "string", "char", "String", "String"},
"xml:id": {"string", "string", "char", "String", "String"},
}

func getBuildInTypeByLang(value, lang string) (buildType string, ok bool) {
Expand Down

0 comments on commit a744528

Please sign in to comment.