@@ -83,13 +83,13 @@ pub enum Storage {
8383
8484pub fn read_node_types ( prefix : & str , node_types_path : & Path ) -> std:: io:: Result < NodeTypeMap > {
8585 let file = fs:: File :: open ( node_types_path) ?;
86- let node_types = serde_json:: from_reader ( file) ?;
87- Ok ( convert_nodes ( & prefix, & node_types) )
86+ let node_types: Vec < NodeInfo > = serde_json:: from_reader ( file) ?;
87+ Ok ( convert_nodes ( prefix, & node_types) )
8888}
8989
9090pub fn read_node_types_str ( prefix : & str , node_types_json : & str ) -> std:: io:: Result < NodeTypeMap > {
91- let node_types = serde_json:: from_str ( node_types_json) ?;
92- Ok ( convert_nodes ( & prefix, & node_types) )
91+ let node_types: Vec < NodeInfo > = serde_json:: from_str ( node_types_json) ?;
92+ Ok ( convert_nodes ( prefix, & node_types) )
9393}
9494
9595fn convert_type ( node_type : & NodeType ) -> TypeName {
@@ -99,31 +99,31 @@ fn convert_type(node_type: &NodeType) -> TypeName {
9999 }
100100}
101101
102- fn convert_types ( node_types : & Vec < NodeType > ) -> Set < TypeName > {
103- let iter = node_types. iter ( ) . map ( convert_type) . collect ( ) ;
104- std:: collections:: BTreeSet :: from ( iter)
102+ fn convert_types ( node_types : & [ NodeType ] ) -> Set < TypeName > {
103+ node_types. iter ( ) . map ( convert_type) . collect ( )
105104}
106105
107- pub fn convert_nodes ( prefix : & str , nodes : & Vec < NodeInfo > ) -> NodeTypeMap {
106+ pub fn convert_nodes ( prefix : & str , nodes : & [ NodeInfo ] ) -> NodeTypeMap {
108107 let mut entries = NodeTypeMap :: new ( ) ;
109108 let mut token_kinds = Set :: new ( ) ;
110109
111110 // First, find all the token kinds
112111 for node in nodes {
113- if node. subtypes . is_none ( ) {
114- if node. fields . as_ref ( ) . map_or ( 0 , |x| x. len ( ) ) == 0 && node. children . is_none ( ) {
115- let type_name = TypeName {
116- kind : node. kind . clone ( ) ,
117- named : node. named ,
118- } ;
119- token_kinds. insert ( type_name) ;
120- }
112+ if node. subtypes . is_none ( )
113+ && node. fields . as_ref ( ) . map_or ( 0 , |x| x. len ( ) ) == 0
114+ && node. children . is_none ( )
115+ {
116+ let type_name = TypeName {
117+ kind : node. kind . clone ( ) ,
118+ named : node. named ,
119+ } ;
120+ token_kinds. insert ( type_name) ;
121121 }
122122 }
123123
124124 for node in nodes {
125125 let flattened_name = & node_type_name ( & node. kind , node. named ) ;
126- let dbscheme_name = escape_name ( & flattened_name) ;
126+ let dbscheme_name = escape_name ( flattened_name) ;
127127 let ql_class_name = dbscheme_name_to_class_name ( & dbscheme_name) ;
128128 let dbscheme_name = format ! ( "{}_{}" , prefix, & dbscheme_name) ;
129129 if let Some ( subtypes) = & node. subtypes {
@@ -138,7 +138,7 @@ pub fn convert_nodes(prefix: &str, nodes: &Vec<NodeInfo>) -> NodeTypeMap {
138138 dbscheme_name,
139139 ql_class_name,
140140 kind : EntryKind :: Union {
141- members : convert_types ( & subtypes) ,
141+ members : convert_types ( subtypes) ,
142142 } ,
143143 } ,
144144 ) ;
@@ -160,7 +160,7 @@ pub fn convert_nodes(prefix: &str, nodes: &Vec<NodeInfo>) -> NodeTypeMap {
160160 if let Some ( node_fields) = & node. fields {
161161 for ( field_name, field_info) in node_fields {
162162 add_field (
163- & prefix,
163+ prefix,
164164 & type_name,
165165 Some ( field_name. to_string ( ) ) ,
166166 field_info,
@@ -172,7 +172,7 @@ pub fn convert_nodes(prefix: &str, nodes: &Vec<NodeInfo>) -> NodeTypeMap {
172172 if let Some ( children) = & node. children {
173173 // Treat children as if they were a field called 'child'.
174174 add_field (
175- & prefix,
175+ prefix,
176176 & type_name,
177177 None ,
178178 children,
@@ -253,13 +253,11 @@ fn add_field(
253253 // All possible types for this field are reserved words. The db
254254 // representation will be an `int` with a `case @foo.field = ...` to
255255 // enumerate the possible values.
256- let mut counter = 0 ;
257256 let mut field_token_ints: BTreeMap < String , ( usize , String ) > = BTreeMap :: new ( ) ;
258- for t in converted_types {
257+ for ( counter , t ) in converted_types. into_iter ( ) . enumerate ( ) {
259258 let dbscheme_variant_name =
260259 escape_name ( & format ! ( "{}_{}_{}" , & prefix, parent_flattened_name, t. kind) ) ;
261260 field_token_ints. insert ( t. kind . to_owned ( ) , ( counter, dbscheme_variant_name) ) ;
262- counter += 1 ;
263261 }
264262 FieldTypeInfo :: ReservedWordInt ( field_token_ints)
265263 } else if field_info. types . len ( ) == 1 {
@@ -330,7 +328,7 @@ fn node_type_name(kind: &str, named: bool) -> String {
330328 }
331329}
332330
333- const RESERVED_KEYWORDS : [ & ' static str ; 14 ] = [
331+ const RESERVED_KEYWORDS : [ & str ; 14 ] = [
334332 "boolean" , "case" , "date" , "float" , "int" , "key" , "of" , "order" , "ref" , "string" , "subtype" ,
335333 "type" , "unique" , "varchar" ,
336334] ;
0 commit comments