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

Side by Side Diff: mojo/public/bindings/generators/js_templates/struct_definition.tmpl

Issue 99623010: Add support for enums within structs and interfaces to mojom. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 6 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 function {{struct.name}}() { 1 function {{struct.name}}() {
2 {%- for packed_field in struct.packed.packed_fields %} 2 {%- for packed_field in struct.packed.packed_fields %}
3 this.{{packed_field.field.name}} = {{packed_field.field|default_value}}; 3 this.{{packed_field.field.name}} = {{packed_field.field|default_value}};
4 {%- endfor %} 4 {%- endfor %}
5 } 5 }
6 6
7 {#--- Enums #}
8 {%- from "enum_definition.tmpl" import enum_def -%}
9 {% for enum in struct.enums %}
10 {{ enum_def("%s.%s"|format(struct.name, enum.name), enum)}}
11 {% endfor %}
12
13 {#--- Encoding and decoding #}
7 {{struct.name}}.encodedSize = codec.kStructHeaderSize + {{struct.packed|payloa d_size}}; 14 {{struct.name}}.encodedSize = codec.kStructHeaderSize + {{struct.packed|payloa d_size}};
8 15
9 {{struct.name}}.decode = function(decoder) { 16 {{struct.name}}.decode = function(decoder) {
10 var packed; 17 var packed;
11 var val = new {{struct.name}}(); 18 var val = new {{struct.name}}();
12 var numberOfBytes = decoder.read32(); 19 var numberOfBytes = decoder.read32();
13 var numberOfFields = decoder.read32(); 20 var numberOfFields = decoder.read32();
14 {%- for byte in struct.bytes %} 21 {%- for byte in struct.bytes %}
15 {%- if byte.packed_fields|length > 1 %} 22 {%- if byte.packed_fields|length > 1 %}
16 packed = decoder.read8(); 23 packed = decoder.read8();
(...skipping 27 matching lines...) Expand all
44 {%- else %} 51 {%- else %}
45 {%- for packed_field in byte.packed_fields %} 52 {%- for packed_field in byte.packed_fields %}
46 encoder.{{packed_field.field.kind|encode_snippet}}val.{{packed_field.field.n ame}}); 53 encoder.{{packed_field.field.kind|encode_snippet}}val.{{packed_field.field.n ame}});
47 {%- endfor %} 54 {%- endfor %}
48 {%- endif %} 55 {%- endif %}
49 {%- if byte.is_padding %} 56 {%- if byte.is_padding %}
50 encoder.skip(1); 57 encoder.skip(1);
51 {%- endif %} 58 {%- endif %}
52 {%- endfor %} 59 {%- endfor %}
53 }; 60 };
OLDNEW
« no previous file with comments | « mojo/public/bindings/generators/js_templates/module.js.tmpl ('k') | mojo/public/bindings/generators/mojom_data.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698