| // static |
| {{struct.name}}Ptr {{struct.name}}::New() { |
| {{struct.name}}Ptr rv; |
| mojo::internal::StructHelper<{{struct.name}}>::Initialize(&rv); |
| return rv.Pass(); |
| } |
| |
| {{struct.name}}::{{struct.name}}() |
| {%- for field in struct.fields %} |
| {% if loop.first %}:{% else %} {% endif %} {{field.name}}({{field|default_value}}){% if not loop.last %},{% endif %} |
| {%- endfor %} { |
| } |
| |
| {{struct.name}}::~{{struct.name}}() { |
| } |
| |
| {% if struct|is_cloneable_kind %} |
| {{struct.name}}Ptr {{struct.name}}::Clone() const { |
| {{struct.name}}Ptr rv(New()); |
| {%- for field in struct.fields %} |
| {%- if field.kind|is_struct_kind or field.kind|is_array_kind or field.kind|is_map_kind %} |
| rv->{{field.name}} = {{field.name}}.Clone(); |
| {%- else %} |
| rv->{{field.name}} = {{field.name}}; |
| {%- endif %} |
| {%- endfor %} |
| return rv.Pass(); |
| } |
| {% endif %} |
| |
| bool {{struct.name}}::Equals(const {{struct.name}}& other) const { |
| {%- for field in struct.fields %} |
| if (!mojo::internal::ValueTraits<{{field.kind|cpp_wrapper_type}}>::Equals({{field.name}}, other.{{field.name}})) |
| return false; |
| {%- endfor %} |
| return true; |
| } |