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

Side by Side Diff: mojo/public/tools/bindings/generators/go_templates/mojom_reference_macros.tmpl

Issue 1345263002: Generate Mojom Types in Go (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: GetIdentifier without a default Created 5 years, 2 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 unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 {%- macro registerType(mapping, typepkg, pkg, type) -%}
6 {%- if type|identifier|identifier_check('RegisterType') -%}{# Already printed ou t #}
7 {%- elif type|package != '' -%} {# Don't print. That package will do it. #}
8 {%- else -%}
9 {{type|identifier|identifier_store('RegisterType')}}
10
11 {%- if type|mojom_type(typepkg) != "" -%}{#- simple kind case: do nothing -#}
12 {%- elif type|is_array -%}
13 {{registerType(mapping, typepkg, pkg, type.kind)}}
14 {%- elif type|is_map -%}
15 {{registerType(mapping, typepkg, pkg, type.key_kind)}}
16 {{registerType(mapping, typepkg, pkg, type.value_kind)}}
17 {% elif type|is_enum %}
18 {{mapping}}["{{type|mojom_type_identifier}}"] = &{{typepkg}}UserDefinedTypeEnu mType{
19 Value: {{type|mojom_type_identifier}}(),
20 }
21 {% elif type|is_struct %}
22 {{mapping}}["{{type|mojom_type_identifier}}"] = &{{typepkg}}UserDefinedTypeStr uctType{
23 Value: {{type|mojom_type_identifier}}(),
24 }
25 {% for field in type.fields %}
26 {{registerType(mapping, typepkg, pkg, field.kind)}}
27 {% endfor %}
28 {% elif type|is_union %}
29 {{mapping}}["{{type|mojom_type_identifier}}"] = &{{typepkg}}UserDefinedTypeUni onType{
30 Value: {{type|mojom_type_identifier}}(),
31 }
32 {% for field in type.fields %}
33 {{registerType(mapping, typepkg, pkg, field.kind)}}
34 {% endfor %}
35 {% elif type|is_interface %}
36 {{mapping}}["{{type|mojom_type_identifier}}"] = &{{typepkg}}UserDefinedTypeInt erfaceType{
37 Value: {{type|mojom_type_identifier}}(),
38 }
39 {% for method in type.methods %}
40 {{registerType(mapping, typepkg, pkg, method.param_struct)}}
41 {% if method.response_parameters -%}
42 {{registerType(mapping, typepkg, pkg, method.response_param_struct)}}
43 {%- endif %}
44 {%- endfor %}
45 {% elif type|is_interface_request -%} {# No need to register anything #}
46 {%- else -%}
47 ERROR: UNSUPPORTED TYPE
48 {{type|identifier}}
49 {%- endif -%}
50 {%- endif -%}
51 {%- endmacro -%}
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698