OLD | NEW |
(Empty) | |
| 1 {% from 'fields/field.tmpl' import encode, declare_storage %} |
| 2 {% from 'macros.tmpl' import print_if %} |
| 3 {% macro define_field_group_class(group): -%} |
| 4 class {{group.type_name}} : public RefCounted<{{group.type_name}}> { |
| 5 public: |
| 6 static PassRefPtr<{{group.type_name}}> Create() { |
| 7 return AdoptRef(new {{group.type_name}}); |
| 8 } |
| 9 PassRefPtr<{{group.type_name}}> Copy() const { |
| 10 return AdoptRef(new {{group.type_name}}(*this)); |
| 11 } |
| 12 |
| 13 bool operator==(const {{group.type_name}}& other) const { |
| 14 return ( |
| 15 {% for field in group.fields %} |
| 16 {{field.name}} == other.{{field.name}}{{print_if(not loop.last, ' &&')}} |
| 17 {% endfor %} |
| 18 ); |
| 19 } |
| 20 bool operator!=(const {{group.type_name}}& other) const { return !(*this == ot
her); } |
| 21 |
| 22 {% for field in group.fields %} |
| 23 {{declare_storage(field)}} |
| 24 {% endfor %} |
| 25 |
| 26 private: |
| 27 {{group.type_name}}() : |
| 28 {% for field in group.fields %} |
| 29 {{field.name}}({{encode(field, field.default_value)}}){{print_if(not loop.
last, ',')}} |
| 30 {% endfor %} |
| 31 {} |
| 32 |
| 33 ALWAYS_INLINE {{group.type_name}}(const {{group.type_name}}& other) : |
| 34 RefCounted<{{group.type_name}}>(), |
| 35 {% for field in group.fields %} |
| 36 {{field.name}}(other.{{field.name}}){{print_if(not loop.last, ',')}} |
| 37 {% endfor %} |
| 38 {} |
| 39 }; |
| 40 {%- endmacro %} |
OLD | NEW |