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

Unified Diff: mojo/public/tools/bindings/generators/dart_templates/mojom_reference_macros.tmpl

Issue 1539673003: Generate Mojom Types in Dart (Take 2) (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Merge with master Created 4 years, 11 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/dart_templates/mojom_reference_macros.tmpl
diff --git a/mojo/public/tools/bindings/generators/dart_templates/mojom_reference_macros.tmpl b/mojo/public/tools/bindings/generators/dart_templates/mojom_reference_macros.tmpl
new file mode 100644
index 0000000000000000000000000000000000000000..177a896bf4caebb9d9aa076389846656ed94a418
--- /dev/null
+++ b/mojo/public/tools/bindings/generators/dart_templates/mojom_reference_macros.tmpl
@@ -0,0 +1,31 @@
+// 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.
+
+{%- macro registerType(mapping, typepkg, pkg, type) -%}
+{%- if type|is_enum_kind -%}
+ {{mapping}}["{{type|mojom_type_identifier}}"] =
+ new {{typepkg}}UserDefinedType()
+ ..enumType = _{{type|mojom_type_identifier|lower_camel}}();
+{%- elif type|is_struct_kind -%}
+ {{mapping}}["{{type|mojom_type_identifier}}"] =
+ new {{typepkg}}UserDefinedType()
+ ..structType = _{{type|mojom_type_identifier|lower_camel}}();
+ {%- for enum in type.enums %}
+ {{ registerType(mapping, typepkg, pkg, enum) }}
+ {%- endfor %}
+{%- elif type|is_union_kind -%}
+ {{mapping}}["{{type|mojom_type_identifier}}"] =
+ new {{typepkg}}UserDefinedType()
+ ..unionType = _{{type|mojom_type_identifier|lower_camel}}();
+{%- elif type|is_interface_kind -%}
+ {{mapping}}["{{type|mojom_type_identifier}}"] =
+ new {{typepkg}}UserDefinedType()
+ ..interfaceType = _{{type|mojom_type_identifier|lower_camel}}();
+ {%- for enum in type.enums %}
+ {{ registerType(mapping, typepkg, pkg, enum) }}
+ {%- endfor %}
+{%- else -%}
+ {# Simple kinds, arrays, maps, and handles do not need to be registered. #}
+{%- endif -%}
+{%- endmacro -%}

Powered by Google App Engine
This is Rietveld 408576698