Chromium Code Reviews| Index: mojo/public/tools/bindings/generators/mojom_go_generator.py |
| diff --git a/mojo/public/tools/bindings/generators/mojom_go_generator.py b/mojo/public/tools/bindings/generators/mojom_go_generator.py |
| index 2c167f40d0c3db43476375eddbdf2ab692580873..002f5a44b53bc5fa09cb80962a5a0cd0f9d3124d 100644 |
| --- a/mojo/public/tools/bindings/generators/mojom_go_generator.py |
| +++ b/mojo/public/tools/bindings/generators/mojom_go_generator.py |
| @@ -254,6 +254,27 @@ def GetAllEnums(module): |
| enums = [x.enums for x in data] |
| return [i for i in chain.from_iterable(enums)] |
| +def GetSerializedRuntimeTypeInfoLiteral(module, enabled): |
| + """ Constructs a string that represents a literal definition in Go of |
| + an array of bytes corresponding to |module.serialized_runtime_type_info|. |
| + |
| + Args: |
| + module: {mojom.Module} the module being processed. |
| + enabled: {bool} Is this feature enabled. |
| + |
| + Returns: A string of the form '{b0, b1, b2,...}' where the 'bi' are |
| + the decimal representation of the bytes of |
| + |module.serialized_runtime_type_info| or the string '{}' if either |
| + |enabled| is false or |module.serialized_runtime_type_info| is None. |
| + Furthermore the returned string will have embedded newline characters inserted |
| + every 1000 characters to make the generated source code more tractable. |
| + """ |
| + if not enabled or not module.serialized_runtime_type_info: |
| + return '{}' |
| + return '{%s}' % ','.join('%s%d' % |
| + ('\n' if index > 0 and index%1000 == 0 else '', b) |
| + for index, b in enumerate(module.serialized_runtime_type_info)) |
| + |
| def AddImport(imports, mojom_imports, module, element): |
| """Adds an import required to use the provided element. |
| @@ -326,7 +347,6 @@ class Generator(generator.Generator): |
| 'qualified': GetQualifiedName, |
| 'fullidentifier': mojom.GetMojomTypeFullIdentifier, |
| 'mojom_type': GetMojomTypeValue, |
|
alexfandrianto
2016/02/23 21:19:47
I think a lot of these filters don't need to be he
rudominer
2016/02/24 02:06:53
Done.
|
| - 'mojom_type_identifier': mojom.GetMojomTypeIdentifier, |
| 'name': GetNameForElement, |
| 'unqualified_name': GetUnqualifiedNameForElement, |
| 'package': GetPackageNameForElement, |
| @@ -350,7 +370,10 @@ class Generator(generator.Generator): |
| if package != _service_describer_pkg_short else '', |
| 'typepkg': '%s.' % _mojom_types_pkg_short \ |
| if package != _mojom_types_pkg_short else '', |
| - 'unions': self.GetUnions() |
| + 'unions': self.GetUnions(), |
| + 'serialized_runtime_type_info_literal' : ( |
| + GetSerializedRuntimeTypeInfoLiteral(self.module, |
| + self.should_gen_mojom_types)) |
| } |
| @UseJinja('go_templates/source.tmpl', filters=go_filters) |