| Index: mojo/public/tools/bindings/generators/cpp_templates/wrapper_union_class_definition.tmpl
|
| diff --git a/mojo/public/tools/bindings/generators/cpp_templates/wrapper_union_class_definition.tmpl b/mojo/public/tools/bindings/generators/cpp_templates/wrapper_union_class_definition.tmpl
|
| index e905904174d920db89fbd7ef087b7fb70b890929..2a9a2f4c1b5dd41ecbc0ce80a0b58850340a20eb 100644
|
| --- a/mojo/public/tools/bindings/generators/cpp_templates/wrapper_union_class_definition.tmpl
|
| +++ b/mojo/public/tools/bindings/generators/cpp_templates/wrapper_union_class_definition.tmpl
|
| @@ -65,3 +65,19 @@ void {{union.name}}::DestroyActive() {
|
| {%- endfor %}
|
| }
|
| }
|
| +
|
| +{%- if union|is_hashable %}
|
| +size_t {{union.name}}::Hash(size_t seed) const {
|
| + seed = mojo::internal::HashCombine(seed, static_cast<uint32_t>(tag_));
|
| + switch (tag_) {
|
| +{% for field in union.fields %}
|
| + case Tag::{{field.name|upper}}:
|
| + return mojo::internal::Hash(seed, data_.{{field.name}});
|
| +{%- endfor %}
|
| + default:
|
| + NOTREACHED();
|
| + return seed;
|
| + }
|
| +}
|
| +
|
| +{%- endif %}
|
|
|