Skip to content

Commit e935bd6

Browse files
committed
Rust: expand derive macros
1 parent cdd6245 commit e935bd6

32 files changed

+2825
-763
lines changed

misc/codegen/templates/rust_classes.mustache

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,20 @@ impl {{name}} {
6666
pub fn emit_{{singular_field_name}}(id: trap::Label<Self>{{^is_predicate}}{{#is_repeated}}{{^is_unordered}}, i: usize{{/is_unordered}}{{/is_repeated}}, value: {{base_type}}{{/is_predicate}}, out: &mut trap::Writer) {
6767
out.add_tuple("{{table_name}}", vec![id.into(){{^is_predicate}}{{#is_repeated}}{{^is_unordered}}, i.into(){{/is_unordered}}{{/is_repeated}}, value.into(){{/is_predicate}}]);
6868
}
69+
70+
{{#is_repeated}}
71+
pub fn emit_{{field_name}}(id: trap::Label<Self>, values: impl IntoIterator<Item={{base_type}}>, out: &mut trap::Writer) {
72+
values
73+
.into_iter()
74+
{{^is_unordered}}
75+
.enumerate()
76+
.for_each(|(i, value)| Self::emit_{{singular_field_name}}(id, i, value, out));
77+
{{/is_unordered}}
78+
{{#is_unordered}}
79+
.for_each(|value| Self::emit_{{singular_field_name}}(id, value, out));
80+
{{/is_unordered}}
81+
}
82+
{{/is_repeated}}
6983
{{/detached_fields}}
7084
}
7185
{{/has_detached_fields}}

rust/extractor/src/generated/.generated.list

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)