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() { |