Index: mojo/public/tools/bindings/generators/go_templates/union.tmpl |
diff --git a/mojo/public/tools/bindings/generators/go_templates/union.tmpl b/mojo/public/tools/bindings/generators/go_templates/union.tmpl |
index aaea489fa1ded810e5715ce52df18161a3467664..8dc2c46e658fe5c507d1461dd05cd6d7b7c33b33 100644 |
--- a/mojo/public/tools/bindings/generators/go_templates/union.tmpl |
+++ b/mojo/public/tools/bindings/generators/go_templates/union.tmpl |
@@ -3,9 +3,10 @@ |
// found in the LICENSE file. |
{% import "encoding_macros.tmpl" as encoding_macros %} |
+{% import "mojom_type_macros.tmpl" as mojom_type_macros %} |
+{% import "mojom_util_macros.tmpl" as util %} |
- |
-{% macro define(union, exported=True) %} |
+{% macro define(union, typepkg, package, exported=True) %} |
type {{union|name(exported)}} interface { |
Tag() uint32 |
Interface() interface{} |
@@ -77,6 +78,18 @@ func (u *{{struct_name}}) decodeInternal(decoder *bindings.Decoder) error { |
{% endfor %} |
+// String names and labels used by the MojomUnion types. |
+var ( |
+ unionName_{{union|name}} = "{{union|name}}" |
+{% for field in union.fields %} |
+ unionFieldName_{{union|name}}_{{field|name}} = "{{field|name}}" |
+{% endfor %} |
+) |
+ |
+func {{util.typeName(union, typepkg, package)}}() {{typepkg}}MojomUnion { |
+ return {{ mojom_type_macros.writeMojomType(typepkg, union, package, exported) }} |
+} |
+ |
{% endmacro %} |
{% macro encode_union_field(value, kind) %} |