Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(86)

Unified Diff: mojo/public/tools/bindings/generators/go_templates/union.tmpl

Issue 2250183003: Make the fuchsia mojo/public repo the source of truth. (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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
deleted file mode 100644
index 6cdbd2e8d4cf9c0cdaa55daffc0965a55e2b154b..0000000000000000000000000000000000000000
--- a/mojo/public/tools/bindings/generators/go_templates/union.tmpl
+++ /dev/null
@@ -1,124 +0,0 @@
-// Copyright 2015 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-{% import "encoding_macros.tmpl" as encoding_macros %}
-{% import "runtime_type_macros.tmpl" as runtime_type_macros %}
-
-{% macro define(union, typepkg, package, exported=True) %}
-type {{union|name(exported)}} interface {
- Tag() uint32
- Interface() interface{}
- __Reflect(__{{union|name(exported)}}Reflect)
- Encode(encoder *bindings.Encoder) error
-}
-
-{{runtime_type_macros.maybeWriteStaticMojomTypeAccessor(typepkg, union)}}
-
-type __{{union|name(exported)}}Reflect struct {
-{% for field in union.fields %}
- {{field|name(exported)}} {{field.kind|go_type}}
-{% endfor %}
-}
-
-func Decode{{union|name(exported)}}(decoder *bindings.Decoder) ({{union|name(exported)}}, error) {
- size, tag, err := decoder.ReadUnionHeader()
- if err != nil {
- return nil, err
- }
-
- if size == 0 {
- decoder.SkipUnionValue()
- return nil, nil
- }
-
- switch tag {
-{% for field in union.fields %}
- case {{field.ordinal}}:
- var value {{union|name(exported)}}{{field|name(exported)}}
- if err := value.decodeInternal(decoder); err != nil {
- return nil, err
- }
- decoder.FinishReadingUnionValue()
- return &value, nil
-{% endfor %}
- }
-
- decoder.SkipUnionValue()
- return &{{union|name(exported)}}Unknown{tag: tag}, nil
-}
-
-{% set struct_name = union|name(exported) + 'Unknown' %}
-type {{struct_name}} struct { tag uint32 }
-func (u *{{struct_name}}) Tag() uint32 { return u.tag }
-func (u *{{struct_name}}) Interface() interface{} { return nil }
-func (u *{{struct_name}}) __Reflect(__{{union|name(exported)}}Reflect) {}
-
-func (u *{{struct_name}}) Encode(encoder *bindings.Encoder) error {
- return fmt.Errorf("Trying to serialize an unknown {{union|name(exported)}}. There is no sane way to do that!");
-}
-
-{% for field in union.fields %}
-{%- set struct_name = union|name(exported) + field|name(exported) %}
-type {{struct_name}} struct { Value {{field.kind|go_type}} }
-func (u *{{struct_name}}) Tag() uint32 { return {{field.ordinal}} }
-func (u *{{struct_name}}) Interface() interface{} { return u.Value }
-func (u *{{struct_name}}) __Reflect(__{{union|name(exported)}}Reflect) {}
-
-func (u *{{struct_name}}) Encode(encoder *bindings.Encoder) error {
- encoder.WriteUnionHeader(u.Tag())
- {{encode_union_field('u.Value', field.kind)|tab_indent()}}
- encoder.FinishWritingUnionValue()
- return nil
-}
-
-func (u *{{struct_name}}) decodeInternal(decoder *bindings.Decoder) error {
- {{decode_union_field('u.Value', field.kind)|tab_indent()}}
- return nil
-}
-
-{{runtime_type_macros.maybeWriteMojomTypeAccessor(typepkg, union, struct_name)}}
-
-{% endfor %}
-
-{% endmacro %}
-
-{% macro encode_union_field(value, kind) %}
-{% if kind|is_union %}
-if err := encoder.WritePointer(); err != nil {
- return err
-}
-
-encoder.StartNestedUnion()
-{{encoding_macros.encode(value, kind)}}
-encoder.Finish()
-{% else %}
-{{encoding_macros.encode(value, kind)}}
-{% endif %}
-{% endmacro %}
-
-{% macro decode_union_field(value, kind) %}
-{% if kind|is_union %}
-if pointer, err := decoder.ReadPointer(); err != nil || pointer == 0 {
- if err != nil {
- return err
- }
-{% if kind|is_nullable %}
- {{value}} = nil
- return nil
-{% else %}
- return &bindings.ValidationError{bindings.UnexpectedNullPointer, "unexpected null union pointer"}
-{% endif %}
-}
-
-if err := decoder.StartNestedUnion(); err != nil {
- return err
-}
-
-{{encoding_macros.decode(value, kind)}}
-
-decoder.Finish()
-{% else %}
-{{encoding_macros.decode(value, kind)}}
-{% endif %}
-{% endmacro %}

Powered by Google App Engine
This is Rietveld 408576698