Fixes/upgrades

This commit is contained in:
2026-07-30 21:12:29 -04:00
parent e00b3a177e
commit 9494549861
13 changed files with 823 additions and 60 deletions

View File

@@ -0,0 +1,38 @@
{%- import "type.rs.j2" as types -%}
{%- import "default.rs.j2" as defaults -%}
{%- for line in doc_lines -%}
/// {{ line }}
{% endfor -%}
#[derive({{ derives | join(", ") }})]
{% for attr in extra_attrs -%}
{{ attr }}
{% endfor -%}
pub struct {{ name }} {
{%- for field in fields %}
{%- if field.default_fn %}
#[serde(default = "{{ field.default_fn }}")]
{%- endif %}
pub {{ field.ident }}: {{ types.rust_type(field.type) }},
{%- endfor %}
}
{% for fn in default_fns -%}
fn {{ fn.name }}() -> {{ types.rust_type(fn.type) }} { {{ defaults.default_body(fn.body) }} }
{% endfor -%}
{% if default_fns %}
{% endif -%}
{% if fields -%}
impl Default for {{ name }} {
fn default() -> Self {
Self {
{%- for field in fields %}
{%- if field.default_fn %}
{{ field.ident }}: {{ field.default_fn }}(),
{%- else %}
{{ field.ident }}: ::std::default::Default::default(),
{%- endif %}
{%- endfor %}
}
}
}
{% endif -%}