33 lines
		
	
	
		
			763 B
		
	
	
	
		
			Smarty
		
	
	
	
			
		
		
	
	
			33 lines
		
	
	
		
			763 B
		
	
	
	
		
			Smarty
		
	
	
	
| {{
 | |
|     name = x.name
 | |
|     namespace = x.namespace
 | |
|     tables = x.tables
 | |
| }}
 | |
| 
 | |
| type JsonLoader = fn(&str) -> Result<json::JsonValue, LoadError>;
 | |
| 
 | |
| #[allow(non_camel_case_types)]
 | |
| pub struct {{name}} {
 | |
|     {{~ for table in tables ~}}
 | |
| 
 | |
| {{~if table.comment != '' ~}}
 | |
|     /**
 | |
|      * {{table.escape_comment}}
 | |
|      */
 | |
| {{~end~}}
 | |
|     pub {{string.downcase table.name}}: {{table.rust_full_name}},
 | |
|     {{~end~}}
 | |
| }
 | |
| 
 | |
| impl {{name}} {
 | |
|     #[allow(dead_code)]
 | |
|     pub fn new(loader: JsonLoader) -> std::result::Result<Tables, LoadError> {
 | |
|         let tables = Tables {
 | |
|         {{~for table in tables ~}}
 | |
|             {{string.downcase table.name}}: {{table.rust_full_name}}::new(&loader("{{table.output_data_file}}")?)?,
 | |
|         {{~end~}}
 | |
|         };
 | |
|         return Ok(tables);
 | |
|     }
 | |
| }
 |