OLD | NEW |
1 {%- from "enum_macros.tmpl" import is_valid_enum_def %} | 1 {%- from "enum_macros.tmpl" import is_valid_enum_def %} |
2 {%- from "enum_macros.tmpl" import global_enum_operators_def %} | 2 {%- from "enum_macros.tmpl" import global_enum_operators_def %} |
3 | 3 |
4 {#--- Enums #} | 4 {#--- Enums #} |
5 {%- for enum in struct.enums -%} | 5 {%- for enum in struct.enums -%} |
6 {{is_valid_enum_def(enum, class_name=struct.name)}} | 6 {{is_valid_enum_def(enum, class_name=struct.name)}} |
7 {{global_enum_operators_def(enum, class_name=struct.name)}} | 7 {{global_enum_operators_def(enum, class_name=struct.name)}} |
8 {%- endfor %} | 8 {%- endfor %} |
9 | 9 |
10 // static | 10 // static |
11 {{struct.name}}Ptr {{struct.name}}::New() { | 11 {{struct.name}}Ptr {{struct.name}}::New() { |
12 {{struct.name}}Ptr rv; | 12 {{struct.name}}Ptr rv; |
13 mojo::internal::StructHelper<{{struct.name}}>::Initialize(&rv); | 13 mojo::internal::StructHelper<{{struct.name}}>::Initialize(&rv); |
14 return rv.Pass(); | 14 return rv; |
15 } | 15 } |
16 | 16 |
17 {{struct.name}}::{{struct.name}}() | 17 {{struct.name}}::{{struct.name}}() |
18 {%- for field in struct.fields %} | 18 {%- for field in struct.fields %} |
19 {% if loop.first %}:{% else %} {% endif %} {{field.name}}({{field|default_va
lue}}){% if not loop.last %},{% endif %} | 19 {% if loop.first %}:{% else %} {% endif %} {{field.name}}({{field|default_va
lue}}){% if not loop.last %},{% endif %} |
20 {%- endfor %} { | 20 {%- endfor %} { |
21 } | 21 } |
22 | 22 |
23 {{struct.name}}::~{{struct.name}}() { | 23 {{struct.name}}::~{{struct.name}}() { |
24 } | 24 } |
25 | 25 |
26 {% if struct|is_cloneable_kind %} | 26 {% if struct|is_cloneable_kind %} |
27 {{struct.name}}Ptr {{struct.name}}::Clone() const { | 27 {{struct.name}}Ptr {{struct.name}}::Clone() const { |
28 {{struct.name}}Ptr rv(New()); | 28 {{struct.name}}Ptr rv(New()); |
29 {%- for field in struct.fields %} | 29 {%- for field in struct.fields %} |
30 {%- if field.kind|is_object_kind and not field.kind|is_string_kind %} | 30 {%- if field.kind|is_object_kind and not field.kind|is_string_kind %} |
31 rv->{{field.name}} = {{field.name}}.Clone(); | 31 rv->{{field.name}} = {{field.name}}.Clone(); |
32 {%- else %} | 32 {%- else %} |
33 rv->{{field.name}} = {{field.name}}; | 33 rv->{{field.name}} = {{field.name}}; |
34 {%- endif %} | 34 {%- endif %} |
35 {%- endfor %} | 35 {%- endfor %} |
36 return rv.Pass(); | 36 return rv; |
37 } | 37 } |
38 {% endif %} | 38 {% endif %} |
39 | 39 |
40 bool {{struct.name}}::Equals(const {{struct.name}}& other) const { | 40 bool {{struct.name}}::Equals(const {{struct.name}}& other) const { |
41 {%- for field in struct.fields %} | 41 {%- for field in struct.fields %} |
42 if (!mojo::internal::ValueTraits<{{field.kind|cpp_wrapper_type}}>::Equals(this
->{{field.name}}, other.{{field.name}})) | 42 if (!mojo::internal::ValueTraits<{{field.kind|cpp_wrapper_type}}>::Equals(this
->{{field.name}}, other.{{field.name}})) |
43 return false; | 43 return false; |
44 {%- endfor %} | 44 {%- endfor %} |
45 return true; | 45 return true; |
46 } | 46 } |
OLD | NEW |