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);
|
||
|
}
|
||
|
}
|