From a744528f7e6980a5eb5635983f30fc41736949ff Mon Sep 17 00:00:00 2001 From: xuri Date: Tue, 19 Jan 2021 00:19:54 +0800 Subject: [PATCH] Resolve #22, update built-in data types mapping for the Rust --- genRust.go | 38 +++++++++++++++------------- utils.go | 74 +++++++++++++++++++++++++++--------------------------- 2 files changed, 57 insertions(+), 55 deletions(-) diff --git a/genRust.go b/genRust.go index ae4d313..c815430 100644 --- a/genRust.go +++ b/genRust.go @@ -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": true, - "Vec": 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": true, + "Vec": true, + "Vec": true, + "bool": true, + "char": true, + "String": true, } rustKeywords = map[string]bool{ "as": true, diff --git a/utils.go b/utils.go index cd383c4..ab3e4a9 100644 --- a/utils.go +++ b/utils.go @@ -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", "char[]", "List", "Vec"}, - "ENTITY": {"string", "string", "char", "String", "char"}, - "ID": {"string", "string", "char", "String", "char"}, - "IDREF": {"string", "string", "char", "String", "char"}, - "IDREFS": {"[]string", "Array", "char[]", "List", "Vec"}, - "NCName": {"string", "string", "char", "String", "char"}, - "NMTOKEN": {"string", "string", "char", "String", "char"}, - "NMTOKENS": {"[]string", "Array", "char[]", "List", "Vec"}, - "NOTATION": {"[]string", "Array", "char[]", "List", "Vec"}, - "Name": {"string", "string", "char", "String", "char"}, - "QName": {"xml.Name", "any", "char", "String", "char"}, - "anyURI": {"string", "string", "char", "QName", "char"}, - "base64Binary": {"[]byte", "Array", "char[]", "List", "Vec"}, + "anyType": {"string", "string", "char", "String", "String"}, + "ENTITIES": {"[]string", "Array", "char[]", "List", "Vec"}, + "ENTITY": {"string", "string", "char", "String", "String"}, + "ID": {"string", "string", "char", "String", "String"}, + "IDREF": {"string", "string", "char", "String", "String"}, + "IDREFS": {"[]string", "Array", "char[]", "List", "Vec"}, + "NCName": {"string", "string", "char", "String", "String"}, + "NMTOKEN": {"string", "string", "char", "String", "String"}, + "NMTOKENS": {"[]string", "Array", "char[]", "List", "Vec"}, + "NOTATION": {"[]string", "Array", "char[]", "List", "Vec"}, + "Name": {"string", "string", "char", "String", "String"}, + "QName": {"xml.Name", "any", "char", "String", "String"}, + "anyURI": {"string", "string", "char", "QName", "String"}, + "base64Binary": {"[]byte", "Array", "char[]", "List", "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", "char[]", "List", "Vec"}, - "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", "char[]", "List", "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) {