{%- match kind -%} {%- when RustSchemaKind::Struct with (fields) -%} #[derive(Debug, Clone, Serialize, Deserialize)] pub struct {{ name }} { {% for f in fields %}{% if f.has_rename %} #[serde(rename = "{{ f.wire_name }}")] {% endif %} pub {{ f.ident }}: {{ f.ty }}, {% endfor %}} {%- when RustSchemaKind::StringEnum with (variants) -%} #[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] pub enum {{ name }} { {% for v in variants %}{% if v.has_rename %} #[serde(rename = "{{ v.wire_name }}")] {% endif %} {{ v.ident }}, {% endfor %}} {%- when RustSchemaKind::TransparentArray with (inner) -%} #[derive(Debug, Clone, Serialize, Deserialize)] #[serde(transparent)] pub struct {{ name }}(pub Vec<{{ inner }}>); {%- when RustSchemaKind::Alias with (inner) -%} pub type {{ name }} = {{ inner }}; {%- endmatch -%}