Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(449)

Side by Side Diff: mojo/public/tools/bindings/generators/cpp_templates/wrapper_class_definition.tmpl

Issue 2689513003: Add field-initializing constructors to generated mojo structs. (Closed)
Patch Set: rebase Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // static 1 {% for constructor in struct|struct_constructors %}
2 {{struct.name}}Ptr {{struct.name}}::New() { 2 {{struct.name}}::{{struct.name}}(
3 {{struct.name}}Ptr rv; 3 {%- for field in constructor.params %}
4 mojo::internal::StructHelper<{{struct.name}}>::Initialize(&rv); 4 {%- set type = field.kind|cpp_wrapper_param_type %}
5 return rv; 5 {%- set name = field.name %}
6 } 6 {{type}} {{name}}_in
7 7 {%- if not loop.last -%},{%- endif %}
8 {{struct.name}}::{{struct.name}}() 8 {%- endfor %})
9 {%- for field in struct.fields %} 9 {%- for field, is_parameter in constructor.fields %}
10 {% if loop.first %}:{% else %} {% endif %} {{field.name}}({{field|default_va lue}}){% if not loop.last %},{% endif %} 10 {%- set name = field.name %}
11 {%- endfor %} { 11 {% if loop.first %}:{% else %} {% endif %} {{name}}(
12 } 12 {%- if is_parameter -%}
13 13 std::move({{name}}_in)
14 {{struct.name}}::~{{struct.name}}() { 14 {%- else -%}
15 } 15 {{ field|default_value }}
16 {%- endif -%}
17 ){% if not loop.last %},{% endif %}
18 {%- endfor %} {}
19 {% endfor %}
20 {{struct.name}}::~{{struct.name}}() = default;
16 21
17 {%- if struct|is_hashable %} 22 {%- if struct|is_hashable %}
18 size_t {{struct.name}}::Hash(size_t seed) const { 23 size_t {{struct.name}}::Hash(size_t seed) const {
19 {%- for field in struct.fields %} 24 {%- for field in struct.fields %}
20 {%- if for_blink %} 25 {%- if for_blink %}
21 seed = mojo::internal::WTFHash(seed, this->{{field.name}}); 26 seed = mojo::internal::WTFHash(seed, this->{{field.name}});
22 {%- else %} 27 {%- else %}
23 seed = mojo::internal::Hash(seed, this->{{field.name}}); 28 seed = mojo::internal::Hash(seed, this->{{field.name}});
24 {%- endif %} 29 {%- endif %}
25 {%- endfor %} 30 {%- endfor %}
26 return seed; 31 return seed;
27 } 32 }
28 {%- endif %} 33 {%- endif %}
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698