Chromium Code Reviews| Index: mojo/public/bindings/generators/cpp_templates/struct_builder_definition.tmpl |
| diff --git a/mojo/public/bindings/generators/cpp_templates/struct_builder_definition.tmpl b/mojo/public/bindings/generators/cpp_templates/struct_builder_definition.tmpl |
| index d4e742786a57a1ba57f52cddc159701cc3b2a538..3841f4d912e4457261263ec275b142fcd9264933 100644 |
| --- a/mojo/public/bindings/generators/cpp_templates/struct_builder_definition.tmpl |
| +++ b/mojo/public/bindings/generators/cpp_templates/struct_builder_definition.tmpl |
| @@ -6,8 +6,25 @@ |
| {%- set _ = dtor_name.append("NULL") %} |
| {%- endif %} |
| +{%- macro set_default(field) -%} |
| +{%- if field.kind|is_string_kind -%} |
| +set_{{field.name}}(mojo::String({{field.default}})); |
| +{%- elif field.kind|is_object_kind -%} |
| +{ |
| + {{field.kind|cpp_wrapper_type}}::Builder tmp; |
| + // TODO |
| + set_{{field.name}}(tmp.Finish()); |
| +} |
| +{%- else -%} |
| +set_{{field.name}}({{field.default}}); |
| +{%- endif %} |
| +{%- endmacro %} |
| + |
| {{class_name}}::Builder::Builder(mojo::Buffer* buf) |
| : data_(Data::New(buf, {{dtor_name[0]}})) { |
| +{%- for pf in struct.packed.packed_fields if pf.field.default %} |
| + {{set_default(pf.field)|indent(2)}} |
|
darin (slow to review)
2014/01/21 23:47:20
Perhaps we should defer setting default values unt
|
| +{%- endfor %} |
| } |
| {{class_name}} {{class_name}}::Builder::Finish() { |