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

Unified Diff: mojo/public/rust/tests/util/mojom_validation.rs

Issue 2213563002: Rust: Add encoder/decoder tests (Closed) Base URL: git@github.com:domokit/mojo.git@decoding
Patch Set: Test with changes 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
« no previous file with comments | « mojo/public/rust/tests/util/mod.rs ('k') | mojo/rust/BUILD.gn » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: mojo/public/rust/tests/util/mojom_validation.rs
diff --git a/mojo/public/rust/tests/util/mojom_validation.rs b/mojo/public/rust/tests/util/mojom_validation.rs
new file mode 100644
index 0000000000000000000000000000000000000000..4a364407400a34c298dca765547632d6e6e70da0
--- /dev/null
+++ b/mojo/public/rust/tests/util/mojom_validation.rs
@@ -0,0 +1,2636 @@
+//! This file was auto-generated by the Rust bindings generator.
+#![allow(bad_style)]
+#![allow(unused_imports)]
+#![allow(unused_variables)]
+#![allow(dead_code)]
+
+use mojo::bindings::decoding::Decoder;
+use mojo::bindings::encoding;
+use mojo::bindings::encoding::{Context, DataHeaderValue, DATA_HEADER_SIZE, Encoder};
+use mojo::bindings::message;
+use mojo::bindings::message::MessageHeader;
+use mojo::bindings::mojom;
+use mojo::bindings::mojom::{MojomEncodable, MojomPointer, MojomStruct, MojomUnion, MojomMessage,
+ MojomInterface, MojomInterfaceSend, MojomInterfaceRecv,
+ MojomMessageOption, UNION_SIZE};
+
+use mojo::system;
+use mojo::system::{CastHandle, UntypedHandle};
+use mojo::system::message_pipe;
+
+use std::collections::HashMap;
+use std::vec::Vec;
+
+// Top-level constants:
+
+
+// Structs:
+// -- StructA --
+
+// Constants
+// Enums
+// Struct version information
+const StructAVersions: [(u32, u32); 1] = [(0, 16)];
+
+// Struct definition
+pub struct StructA {
+ pub i: u64,
+}
+
+impl MojomPointer for StructA {
+ fn header_data(&self) -> DataHeaderValue {
+ DataHeaderValue::Version(0)
+ }
+ fn serialized_size(&self, _context: &Context) -> usize {
+ 16
+ }
+ fn encode_value(self, encoder: &mut Encoder, context: Context) {
+ MojomEncodable::encode(self.i, encoder, context.clone());
+
+ }
+ fn decode_value(decoder: &mut Decoder, context: Context) -> Self {
+ // TODO(mknyszek): Validate bytes and version
+ let (_bytes, version) = {
+ let mut state = decoder.get_mut(&context);
+ let bytes = state.decode::<u32>();
+ let version = state.decode::<u32>();
+ (bytes, version)
+ };
+ let i = <u64>::decode(decoder, context.clone());
+ StructA { i: i }
+ }
+}
+
+impl MojomEncodable for StructA {
+ impl_encodable_for_pointer!();
+ fn compute_size(&self, context: Context) -> usize {
+ encoding::align_default(self.serialized_size(&context)) +
+ self.i.compute_size(context.clone())
+ }
+}
+
+impl MojomStruct for StructA {}
+// -- StructB --
+
+// Constants
+// Enums
+// Struct version information
+const StructBVersions: [(u32, u32); 1] = [(0, 16)];
+
+// Struct definition
+pub struct StructB {
+ pub struct_a: StructA,
+}
+
+impl MojomPointer for StructB {
+ fn header_data(&self) -> DataHeaderValue {
+ DataHeaderValue::Version(0)
+ }
+ fn serialized_size(&self, _context: &Context) -> usize {
+ 16
+ }
+ fn encode_value(self, encoder: &mut Encoder, context: Context) {
+ MojomEncodable::encode(self.struct_a, encoder, context.clone());
+
+ }
+ fn decode_value(decoder: &mut Decoder, context: Context) -> Self {
+ // TODO(mknyszek): Validate bytes and version
+ let (_bytes, version) = {
+ let mut state = decoder.get_mut(&context);
+ let bytes = state.decode::<u32>();
+ let version = state.decode::<u32>();
+ (bytes, version)
+ };
+ let struct_a = <StructA>::decode(decoder, context.clone());
+ StructB { struct_a: struct_a }
+ }
+}
+
+impl MojomEncodable for StructB {
+ impl_encodable_for_pointer!();
+ fn compute_size(&self, context: Context) -> usize {
+ encoding::align_default(self.serialized_size(&context)) +
+ self.struct_a.compute_size(context.clone())
+ }
+}
+
+impl MojomStruct for StructB {}
+// -- StructC --
+
+// Constants
+// Enums
+// Struct version information
+const StructCVersions: [(u32, u32); 1] = [(0, 16)];
+
+// Struct definition
+pub struct StructC {
+ pub data: Vec<u8>,
+}
+
+impl MojomPointer for StructC {
+ fn header_data(&self) -> DataHeaderValue {
+ DataHeaderValue::Version(0)
+ }
+ fn serialized_size(&self, _context: &Context) -> usize {
+ 16
+ }
+ fn encode_value(self, encoder: &mut Encoder, context: Context) {
+ MojomEncodable::encode(self.data, encoder, context.clone());
+
+ }
+ fn decode_value(decoder: &mut Decoder, context: Context) -> Self {
+ // TODO(mknyszek): Validate bytes and version
+ let (_bytes, version) = {
+ let mut state = decoder.get_mut(&context);
+ let bytes = state.decode::<u32>();
+ let version = state.decode::<u32>();
+ (bytes, version)
+ };
+ let data = <Vec<u8>>::decode(decoder, context.clone());
+ StructC { data: data }
+ }
+}
+
+impl MojomEncodable for StructC {
+ impl_encodable_for_pointer!();
+ fn compute_size(&self, context: Context) -> usize {
+ encoding::align_default(self.serialized_size(&context)) +
+ self.data.compute_size(context.clone())
+ }
+}
+
+impl MojomStruct for StructC {}
+// -- StructD --
+
+// Constants
+// Enums
+// Struct version information
+const StructDVersions: [(u32, u32); 1] = [(0, 16)];
+
+// Struct definition
+pub struct StructD {
+ pub message_pipes: Vec<message_pipe::MessageEndpoint>,
+}
+
+impl MojomPointer for StructD {
+ fn header_data(&self) -> DataHeaderValue {
+ DataHeaderValue::Version(0)
+ }
+ fn serialized_size(&self, _context: &Context) -> usize {
+ 16
+ }
+ fn encode_value(self, encoder: &mut Encoder, context: Context) {
+ MojomEncodable::encode(self.message_pipes, encoder, context.clone());
+
+ }
+ fn decode_value(decoder: &mut Decoder, context: Context) -> Self {
+ // TODO(mknyszek): Validate bytes and version
+ let (_bytes, version) = {
+ let mut state = decoder.get_mut(&context);
+ let bytes = state.decode::<u32>();
+ let version = state.decode::<u32>();
+ (bytes, version)
+ };
+ let message_pipes =
+ <Vec<message_pipe::MessageEndpoint>>::decode(decoder, context.clone());
+ StructD { message_pipes: message_pipes }
+ }
+}
+
+impl MojomEncodable for StructD {
+ impl_encodable_for_pointer!();
+ fn compute_size(&self, context: Context) -> usize {
+ encoding::align_default(self.serialized_size(&context)) +
+ self.message_pipes.compute_size(context.clone())
+ }
+}
+
+impl MojomStruct for StructD {}
+// -- StructE --
+
+// Constants
+// Enums
+// Struct version information
+const StructEVersions: [(u32, u32); 1] = [(0, 24)];
+
+// Struct definition
+pub struct StructE {
+ pub struct_d: StructD,
+ pub data_pipe_consumer: system::data_pipe::Consumer<u8>,
+}
+
+impl MojomPointer for StructE {
+ fn header_data(&self) -> DataHeaderValue {
+ DataHeaderValue::Version(0)
+ }
+ fn serialized_size(&self, _context: &Context) -> usize {
+ 24
+ }
+ fn encode_value(self, encoder: &mut Encoder, context: Context) {
+ MojomEncodable::encode(self.struct_d, encoder, context.clone());
+ MojomEncodable::encode(self.data_pipe_consumer, encoder, context.clone());
+
+ }
+ fn decode_value(decoder: &mut Decoder, context: Context) -> Self {
+ // TODO(mknyszek): Validate bytes and version
+ let (_bytes, version) = {
+ let mut state = decoder.get_mut(&context);
+ let bytes = state.decode::<u32>();
+ let version = state.decode::<u32>();
+ (bytes, version)
+ };
+ let struct_d = <StructD>::decode(decoder, context.clone());
+ let data_pipe_consumer =
+ <system::data_pipe::Consumer<u8>>::decode(decoder, context.clone());
+ StructE {
+ struct_d: struct_d,
+ data_pipe_consumer: data_pipe_consumer,
+ }
+ }
+}
+
+impl MojomEncodable for StructE {
+ impl_encodable_for_pointer!();
+ fn compute_size(&self, context: Context) -> usize {
+ encoding::align_default(self.serialized_size(&context)) +
+ self.struct_d.compute_size(context.clone()) +
+ self.data_pipe_consumer.compute_size(context.clone())
+ }
+}
+
+impl MojomStruct for StructE {}
+// -- StructF --
+
+// Constants
+// Enums
+// Struct version information
+const StructFVersions: [(u32, u32); 1] = [(0, 16)];
+
+// Struct definition
+pub struct StructF {
+ pub fixed_size_array: [u8; 3],
+}
+
+impl MojomPointer for StructF {
+ fn header_data(&self) -> DataHeaderValue {
+ DataHeaderValue::Version(0)
+ }
+ fn serialized_size(&self, _context: &Context) -> usize {
+ 16
+ }
+ fn encode_value(self, encoder: &mut Encoder, context: Context) {
+ MojomEncodable::encode(self.fixed_size_array, encoder, context.clone());
+
+ }
+ fn decode_value(decoder: &mut Decoder, context: Context) -> Self {
+ // TODO(mknyszek): Validate bytes and version
+ let (_bytes, version) = {
+ let mut state = decoder.get_mut(&context);
+ let bytes = state.decode::<u32>();
+ let version = state.decode::<u32>();
+ (bytes, version)
+ };
+ let fixed_size_array = <[u8; 3]>::decode(decoder, context.clone());
+ StructF { fixed_size_array: fixed_size_array }
+ }
+}
+
+impl MojomEncodable for StructF {
+ impl_encodable_for_pointer!();
+ fn compute_size(&self, context: Context) -> usize {
+ encoding::align_default(self.serialized_size(&context)) +
+ self.fixed_size_array.compute_size(context.clone())
+ }
+}
+
+impl MojomStruct for StructF {}
+// -- StructG --
+
+// Constants
+// Enums
+// Struct version information
+const StructGVersions: [(u32, u32); 3] = [(0, 16), (1, 24), (3, 32)];
+
+// Struct definition
+pub struct StructG {
+ pub i: i32,
+ pub b: bool,
+ pub struct_a: Option<StructA>,
+ pub str: Option<String>,
+}
+
+impl MojomPointer for StructG {
+ fn header_data(&self) -> DataHeaderValue {
+ DataHeaderValue::Version(3)
+ }
+ fn serialized_size(&self, _context: &Context) -> usize {
+ 32
+ }
+ fn encode_value(self, encoder: &mut Encoder, context: Context) {
+ MojomEncodable::encode(self.i, encoder, context.clone());
+ MojomEncodable::encode(self.b, encoder, context.clone());
+ MojomEncodable::encode(self.struct_a, encoder, context.clone());
+ MojomEncodable::encode(self.str, encoder, context.clone());
+
+ }
+ fn decode_value(decoder: &mut Decoder, context: Context) -> Self {
+ // TODO(mknyszek): Validate bytes and version
+ let (_bytes, version) = {
+ let mut state = decoder.get_mut(&context);
+ let bytes = state.decode::<u32>();
+ let version = state.decode::<u32>();
+ (bytes, version)
+ };
+ let i = <i32>::decode(decoder, context.clone());
+ let b = if version >= 3 {
+ <bool>::decode(decoder, context.clone())
+ } else {
+ Default::default()
+ };
+ let struct_a = if version >= 1 {
+ <Option<StructA>>::decode(decoder, context.clone())
+ } else {
+ Default::default()
+ };
+ let str = if version >= 3 {
+ <Option<String>>::decode(decoder, context.clone())
+ } else {
+ Default::default()
+ };
+ StructG {
+ i: i,
+ b: b,
+ struct_a: struct_a,
+ str: str,
+ }
+ }
+}
+
+impl MojomEncodable for StructG {
+ impl_encodable_for_pointer!();
+ fn compute_size(&self, context: Context) -> usize {
+ encoding::align_default(self.serialized_size(&context)) +
+ self.i.compute_size(context.clone()) + self.b.compute_size(context.clone()) +
+ self.struct_a.compute_size(context.clone()) + self.str.compute_size(context.clone())
+ }
+}
+
+impl MojomStruct for StructG {}
+// -- StructH --
+
+// Constants
+// Enums
+// Struct version information
+const StructHVersions: [(u32, u32); 1] = [(0, 48)];
+
+// Struct definition
+pub struct StructH {
+ pub a: bool,
+ pub b: u8,
+ pub c: Option<UnionA>,
+ pub d: Option<Vec<UnionA>>,
+ pub e: Option<HashMap<u8, UnionA>>,
+}
+
+impl MojomPointer for StructH {
+ fn header_data(&self) -> DataHeaderValue {
+ DataHeaderValue::Version(0)
+ }
+ fn serialized_size(&self, _context: &Context) -> usize {
+ 48
+ }
+ fn encode_value(self, encoder: &mut Encoder, context: Context) {
+ MojomEncodable::encode(self.a, encoder, context.clone());
+ MojomEncodable::encode(self.b, encoder, context.clone());
+ MojomEncodable::encode(self.c, encoder, context.clone());
+ MojomEncodable::encode(self.d, encoder, context.clone());
+ MojomEncodable::encode(self.e, encoder, context.clone());
+
+ }
+ fn decode_value(decoder: &mut Decoder, context: Context) -> Self {
+ // TODO(mknyszek): Validate bytes and version
+ let (_bytes, version) = {
+ let mut state = decoder.get_mut(&context);
+ let bytes = state.decode::<u32>();
+ let version = state.decode::<u32>();
+ (bytes, version)
+ };
+ let a = <bool>::decode(decoder, context.clone());
+ let b = <u8>::decode(decoder, context.clone());
+ let c = <Option<UnionA>>::decode(decoder, context.clone());
+ let d = <Option<Vec<UnionA>>>::decode(decoder, context.clone());
+ let e = <Option<HashMap<u8, UnionA>>>::decode(decoder, context.clone());
+ StructH {
+ a: a,
+ b: b,
+ c: c,
+ d: d,
+ e: e,
+ }
+ }
+}
+
+impl MojomEncodable for StructH {
+ impl_encodable_for_pointer!();
+ fn compute_size(&self, context: Context) -> usize {
+ encoding::align_default(self.serialized_size(&context)) +
+ self.a.compute_size(context.clone()) + self.b.compute_size(context.clone()) +
+ self.c.compute_size(context.clone()) + self.d.compute_size(context.clone()) +
+ self.e.compute_size(context.clone())
+ }
+}
+
+impl MojomStruct for StructH {}
+// -- BasicStruct --
+
+// Constants
+// Enums
+// Struct version information
+const BasicStructVersions: [(u32, u32); 1] = [(0, 16)];
+
+// Struct definition
+pub struct BasicStruct {
+ pub a: i32,
+}
+
+impl MojomPointer for BasicStruct {
+ fn header_data(&self) -> DataHeaderValue {
+ DataHeaderValue::Version(0)
+ }
+ fn serialized_size(&self, _context: &Context) -> usize {
+ 16
+ }
+ fn encode_value(self, encoder: &mut Encoder, context: Context) {
+ MojomEncodable::encode(self.a, encoder, context.clone());
+
+ }
+ fn decode_value(decoder: &mut Decoder, context: Context) -> Self {
+ // TODO(mknyszek): Validate bytes and version
+ let (_bytes, version) = {
+ let mut state = decoder.get_mut(&context);
+ let bytes = state.decode::<u32>();
+ let version = state.decode::<u32>();
+ (bytes, version)
+ };
+ let a = <i32>::decode(decoder, context.clone());
+ BasicStruct { a: a }
+ }
+}
+
+impl MojomEncodable for BasicStruct {
+ impl_encodable_for_pointer!();
+ fn compute_size(&self, context: Context) -> usize {
+ encoding::align_default(self.serialized_size(&context)) +
+ self.a.compute_size(context.clone())
+ }
+}
+
+impl MojomStruct for BasicStruct {}
+// -- StructWithEnum --
+
+// Constants
+// Enums
+type StructWithEnumEnumWithin = i32;
+const StructWithEnumEnumWithin_A: StructWithEnumEnumWithin = 0;
+const StructWithEnumEnumWithin_B: StructWithEnumEnumWithin = 1;
+const StructWithEnumEnumWithin_C: StructWithEnumEnumWithin = 2;
+const StructWithEnumEnumWithin_D: StructWithEnumEnumWithin = 3;
+
+const StructWithEnumEnumWithin__UNKNOWN: StructWithEnumEnumWithin = 0x7FFFFFFF;
+
+
+// Struct version information
+const StructWithEnumVersions: [(u32, u32); 1] = [(0, 8)];
+
+// Struct definition
+pub struct StructWithEnum {
+}
+
+impl MojomPointer for StructWithEnum {
+ fn header_data(&self) -> DataHeaderValue {
+ DataHeaderValue::Version(0)
+ }
+ fn serialized_size(&self, _context: &Context) -> usize {
+ 8
+ }
+ fn encode_value(self, encoder: &mut Encoder, context: Context) {}
+ fn decode_value(decoder: &mut Decoder, context: Context) -> Self {
+ // TODO(mknyszek): Validate bytes and version
+ let (_bytes, version) = {
+ let mut state = decoder.get_mut(&context);
+ let bytes = state.decode::<u32>();
+ let version = state.decode::<u32>();
+ (bytes, version)
+ };
+ StructWithEnum {}
+ }
+}
+
+impl MojomEncodable for StructWithEnum {
+ impl_encodable_for_pointer!();
+ fn compute_size(&self, context: Context) -> usize {
+ encoding::align_default(self.serialized_size(&context))
+ }
+}
+
+impl MojomStruct for StructWithEnum {}
+
+
+// Mojom Unions:
+// -- UnionA --
+
+type UnionATag = u32;
+const UnionATag_a: UnionATag = 0;
+const UnionATag_b: UnionATag = 1;
+const UnionATag_c: UnionATag = 2;
+const UnionATag_d: UnionATag = 3;
+const UnionATag_e: UnionATag = 4;
+const UnionATag_f: UnionATag = 5;
+const UnionATag_g: UnionATag = 6;
+const UnionATag_h: UnionATag = 7;
+const UnionATag_i: UnionATag = 8;
+const UnionATag_j: UnionATag = 9;
+
+
+const UnionATag__UNKNOWN: UnionATag = 0xFFFFFFFF;
+
+
+
+pub enum UnionA {
+ a(u16),
+ b(u32),
+ c(Option<StructA>),
+ d(Option<Vec<u8>>),
+ e(Option<HashMap<String, u8>>),
+ f(Option<UnionB>),
+ g(StructA),
+ h(Vec<u8>),
+ i(HashMap<String, u8>),
+ j(UnionB),
+ _Unknown(u64),
+}
+
+impl MojomUnion for UnionA {
+ fn get_tag(&self) -> u32 {
+ match *self {
+ UnionA::a(_) => UnionATag_a,
+ UnionA::b(_) => UnionATag_b,
+ UnionA::c(_) => UnionATag_c,
+ UnionA::d(_) => UnionATag_d,
+ UnionA::e(_) => UnionATag_e,
+ UnionA::f(_) => UnionATag_f,
+ UnionA::g(_) => UnionATag_g,
+ UnionA::h(_) => UnionATag_h,
+ UnionA::i(_) => UnionATag_i,
+ UnionA::j(_) => UnionATag_j,
+ UnionA::_Unknown(_) => UnionATag__UNKNOWN,
+ }
+ }
+ fn encode_value(self, encoder: &mut Encoder, context: Context) {
+ match self {
+ UnionA::a(val) => MojomEncodable::encode(val, encoder, context.clone()),
+ UnionA::b(val) => MojomEncodable::encode(val, encoder, context.clone()),
+ UnionA::c(val) => MojomEncodable::encode(val, encoder, context.clone()),
+ UnionA::d(val) => MojomEncodable::encode(val, encoder, context.clone()),
+ UnionA::e(val) => MojomEncodable::encode(val, encoder, context.clone()),
+ UnionA::f(val) => MojomEncodable::encode(val, encoder, context.clone()),
+ UnionA::g(val) => MojomEncodable::encode(val, encoder, context.clone()),
+ UnionA::h(val) => MojomEncodable::encode(val, encoder, context.clone()),
+ UnionA::i(val) => MojomEncodable::encode(val, encoder, context.clone()),
+ UnionA::j(val) => MojomEncodable::encode(val, encoder, context.clone()),
+ UnionA::_Unknown(val) => MojomEncodable::encode(val, encoder, context.clone()),
+ }
+ }
+ fn decode_value(decoder: &mut Decoder, context: Context) -> Self {
+ // TODO(mknyszek): Validate bytes and tag
+ let (_bytes, tag) = {
+ let mut state = decoder.get_mut(&context);
+ let bytes = state.decode::<u32>();
+ let tag = state.decode::<u32>();
+ (bytes, tag)
+ };
+ match tag {
+ UnionATag_a => UnionA::a(<u16>::decode(decoder, context.clone())),
+ UnionATag_b => UnionA::b(<u32>::decode(decoder, context.clone())),
+ UnionATag_c => UnionA::c(<Option<StructA>>::decode(decoder, context.clone())),
+ UnionATag_d => UnionA::d(<Option<Vec<u8>>>::decode(decoder, context.clone())),
+ UnionATag_e => {
+ UnionA::e(<Option<HashMap<String, u8>>>::decode(decoder, context.clone()))
+ }
+ UnionATag_f => UnionA::f(<Option<UnionB>>::decode(decoder, context.clone())),
+ UnionATag_g => UnionA::g(<StructA>::decode(decoder, context.clone())),
+ UnionATag_h => UnionA::h(<Vec<u8>>::decode(decoder, context.clone())),
+ UnionATag_i => UnionA::i(<HashMap<String, u8>>::decode(decoder, context.clone())),
+ UnionATag_j => UnionA::j(<UnionB>::decode(decoder, context.clone())),
+ _ => UnionA::_Unknown(u64::decode(decoder, context.clone())),
+ }
+ }
+}
+
+impl MojomEncodable for UnionA {
+ impl_encodable_for_union!();
+ fn compute_size(&self, context: Context) -> usize {
+ UNION_SIZE +
+ match *self {
+ UnionA::a(ref val) => val.compute_size(context.clone()),
+ UnionA::b(ref val) => val.compute_size(context.clone()),
+ UnionA::c(ref val) => val.compute_size(context.clone()),
+ UnionA::d(ref val) => val.compute_size(context.clone()),
+ UnionA::e(ref val) => val.compute_size(context.clone()),
+ UnionA::f(ref val) => val.compute_size(context.clone()),
+ UnionA::g(ref val) => val.compute_size(context.clone()),
+ UnionA::h(ref val) => val.compute_size(context.clone()),
+ UnionA::i(ref val) => val.compute_size(context.clone()),
+ UnionA::j(ref val) => val.compute_size(context.clone()),
+ UnionA::_Unknown(ref val) => 0,
+ }
+ }
+}
+
+// -- UnionB --
+
+type UnionBTag = u32;
+const UnionBTag_a: UnionBTag = 0;
+const UnionBTag_b: UnionBTag = 1;
+const UnionBTag_c: UnionBTag = 2;
+const UnionBTag_d: UnionBTag = 3;
+
+
+const UnionBTag__UNKNOWN: UnionBTag = 0xFFFFFFFF;
+
+
+
+pub enum UnionB {
+ a(u16),
+ b(u32),
+ c(u64),
+ d(u32),
+ _Unknown(u64),
+}
+
+impl MojomUnion for UnionB {
+ fn get_tag(&self) -> u32 {
+ match *self {
+ UnionB::a(_) => UnionBTag_a,
+ UnionB::b(_) => UnionBTag_b,
+ UnionB::c(_) => UnionBTag_c,
+ UnionB::d(_) => UnionBTag_d,
+ UnionB::_Unknown(_) => UnionBTag__UNKNOWN,
+ }
+ }
+ fn encode_value(self, encoder: &mut Encoder, context: Context) {
+ match self {
+ UnionB::a(val) => MojomEncodable::encode(val, encoder, context.clone()),
+ UnionB::b(val) => MojomEncodable::encode(val, encoder, context.clone()),
+ UnionB::c(val) => MojomEncodable::encode(val, encoder, context.clone()),
+ UnionB::d(val) => MojomEncodable::encode(val, encoder, context.clone()),
+ UnionB::_Unknown(val) => MojomEncodable::encode(val, encoder, context.clone()),
+ }
+ }
+ fn decode_value(decoder: &mut Decoder, context: Context) -> Self {
+ // TODO(mknyszek): Validate bytes and tag
+ let (_bytes, tag) = {
+ let mut state = decoder.get_mut(&context);
+ let bytes = state.decode::<u32>();
+ let tag = state.decode::<u32>();
+ (bytes, tag)
+ };
+ match tag {
+ UnionBTag_a => UnionB::a(<u16>::decode(decoder, context.clone())),
+ UnionBTag_b => UnionB::b(<u32>::decode(decoder, context.clone())),
+ UnionBTag_c => UnionB::c(<u64>::decode(decoder, context.clone())),
+ UnionBTag_d => UnionB::d(<u32>::decode(decoder, context.clone())),
+ _ => UnionB::_Unknown(u64::decode(decoder, context.clone())),
+ }
+ }
+}
+
+impl MojomEncodable for UnionB {
+ impl_encodable_for_union!();
+ fn compute_size(&self, context: Context) -> usize {
+ UNION_SIZE +
+ match *self {
+ UnionB::a(ref val) => val.compute_size(context.clone()),
+ UnionB::b(ref val) => val.compute_size(context.clone()),
+ UnionB::c(ref val) => val.compute_size(context.clone()),
+ UnionB::d(ref val) => val.compute_size(context.clone()),
+ UnionB::_Unknown(ref val) => 0,
+ }
+ }
+}
+
+
+
+// Mojom Enums:
+type BasicEnum = i32;
+const BasicEnum_A: BasicEnum = 0;
+const BasicEnum_B: BasicEnum = 1;
+const BasicEnum_C: BasicEnum = 0;
+const BasicEnum_D: BasicEnum = -3;
+const BasicEnum_E: BasicEnum = 10;
+
+const BasicEnum__UNKNOWN: BasicEnum = 0x7FFFFFFF;
+
+
+
+
+// Interfaces:
+// --- InterfaceA ---
+
+pub mod InterfaceA {
+ pub const SERVICE_NAME: &'static str = "";
+ pub const VERSION: u32 = 0;
+}
+
+pub struct InterfaceAClient {
+ pipe: message_pipe::MessageEndpoint,
+}
+
+impl InterfaceAClient {
+ pub fn new(pipe: message_pipe::MessageEndpoint) -> InterfaceAClient {
+ InterfaceAClient { pipe: pipe }
+ }
+}
+
+impl CastHandle for InterfaceAClient {
+ unsafe fn from_untyped(handle: system::UntypedHandle) -> InterfaceAClient {
+ InterfaceAClient { pipe: message_pipe::MessageEndpoint::from_untyped(handle) }
+ }
+ fn as_untyped(self) -> system::UntypedHandle {
+ self.pipe.as_untyped()
+ }
+}
+
+impl MojomEncodable for InterfaceAClient {
+ impl_encodable_for_interface!();
+}
+
+impl MojomInterface for InterfaceAClient {
+ fn service_name() -> &'static str {
+ InterfaceA::SERVICE_NAME
+ }
+ fn version() -> u32 {
+ InterfaceA::VERSION
+ }
+ fn pipe(&self) -> &message_pipe::MessageEndpoint {
+ &self.pipe
+ }
+ fn unwrap(self) -> message_pipe::MessageEndpoint {
+ self.pipe
+ }
+}
+
+impl<R: InterfaceARequest> MojomInterfaceSend<R> for InterfaceAClient {}
+impl MojomInterfaceRecv for InterfaceAClient {
+ type Container = InterfaceAResponseOption;
+}
+
+pub struct InterfaceAServer {
+ pipe: message_pipe::MessageEndpoint,
+}
+
+impl InterfaceAServer {
+ pub fn new(pipe: message_pipe::MessageEndpoint) -> InterfaceAServer {
+ InterfaceAServer { pipe: pipe }
+ }
+}
+
+impl CastHandle for InterfaceAServer {
+ unsafe fn from_untyped(handle: system::UntypedHandle) -> InterfaceAServer {
+ InterfaceAServer { pipe: message_pipe::MessageEndpoint::from_untyped(handle) }
+ }
+ fn as_untyped(self) -> system::UntypedHandle {
+ self.pipe.as_untyped()
+ }
+}
+
+impl MojomEncodable for InterfaceAServer {
+ impl_encodable_for_interface!();
+}
+
+impl MojomInterface for InterfaceAServer {
+ fn service_name() -> &'static str {
+ InterfaceA::SERVICE_NAME
+ }
+ fn version() -> u32 {
+ InterfaceA::VERSION
+ }
+ fn pipe(&self) -> &message_pipe::MessageEndpoint {
+ &self.pipe
+ }
+ fn unwrap(self) -> message_pipe::MessageEndpoint {
+ self.pipe
+ }
+}
+
+impl<R: InterfaceAResponse> MojomInterfaceSend<R> for InterfaceAServer {}
+impl MojomInterfaceRecv for InterfaceAServer {
+ type Container = InterfaceARequestOption;
+}
+
+// Enums
+
+
+// Constants
+
+
+pub trait InterfaceARequest: MojomMessage {}
+pub trait InterfaceAResponse: MojomMessage {}
+
+pub enum InterfaceARequestOption {
+
+}
+
+impl MojomMessageOption for InterfaceARequestOption {
+ fn decode_payload(ordinal: u32, buffer: &[u8], handles: Vec<UntypedHandle>) -> Self {
+ match ordinal {
+ _ => panic!("Unknown message found: {}", ordinal),
+ }
+ }
+}
+
+pub enum InterfaceAResponseOption {
+
+}
+
+impl MojomMessageOption for InterfaceAResponseOption {
+ fn decode_payload(ordinal: u32, buffer: &[u8], handles: Vec<UntypedHandle>) -> Self {
+ match ordinal {
+ _ => {
+ panic!("Unknown message found, or message has no response: {}",
+ ordinal)
+ }
+ }
+ }
+}
+
+
+// --- BoundsCheckTestInterface ---
+
+pub mod BoundsCheckTestInterface {
+ pub const SERVICE_NAME: &'static str = "this.is.the.service.name.for.BoundsCheckTestInterface";
+ pub const VERSION: u32 = 0;
+}
+
+pub struct BoundsCheckTestInterfaceClient {
+ pipe: message_pipe::MessageEndpoint,
+}
+
+impl BoundsCheckTestInterfaceClient {
+ pub fn new(pipe: message_pipe::MessageEndpoint) -> BoundsCheckTestInterfaceClient {
+ BoundsCheckTestInterfaceClient { pipe: pipe }
+ }
+}
+
+impl CastHandle for BoundsCheckTestInterfaceClient {
+ unsafe fn from_untyped(handle: system::UntypedHandle) -> BoundsCheckTestInterfaceClient {
+ BoundsCheckTestInterfaceClient { pipe: message_pipe::MessageEndpoint::from_untyped(handle) }
+ }
+ fn as_untyped(self) -> system::UntypedHandle {
+ self.pipe.as_untyped()
+ }
+}
+
+impl MojomEncodable for BoundsCheckTestInterfaceClient {
+ impl_encodable_for_interface!();
+}
+
+impl MojomInterface for BoundsCheckTestInterfaceClient {
+ fn service_name() -> &'static str {
+ BoundsCheckTestInterface::SERVICE_NAME
+ }
+ fn version() -> u32 {
+ BoundsCheckTestInterface::VERSION
+ }
+ fn pipe(&self) -> &message_pipe::MessageEndpoint {
+ &self.pipe
+ }
+ fn unwrap(self) -> message_pipe::MessageEndpoint {
+ self.pipe
+ }
+}
+
+impl<R: BoundsCheckTestInterfaceRequest> MojomInterfaceSend<R> for BoundsCheckTestInterfaceClient {}
+impl MojomInterfaceRecv for BoundsCheckTestInterfaceClient {
+ type Container = BoundsCheckTestInterfaceResponseOption;
+}
+
+pub struct BoundsCheckTestInterfaceServer {
+ pipe: message_pipe::MessageEndpoint,
+}
+
+impl BoundsCheckTestInterfaceServer {
+ pub fn new(pipe: message_pipe::MessageEndpoint) -> BoundsCheckTestInterfaceServer {
+ BoundsCheckTestInterfaceServer { pipe: pipe }
+ }
+}
+
+impl CastHandle for BoundsCheckTestInterfaceServer {
+ unsafe fn from_untyped(handle: system::UntypedHandle) -> BoundsCheckTestInterfaceServer {
+ BoundsCheckTestInterfaceServer { pipe: message_pipe::MessageEndpoint::from_untyped(handle) }
+ }
+ fn as_untyped(self) -> system::UntypedHandle {
+ self.pipe.as_untyped()
+ }
+}
+
+impl MojomEncodable for BoundsCheckTestInterfaceServer {
+ impl_encodable_for_interface!();
+}
+
+impl MojomInterface for BoundsCheckTestInterfaceServer {
+ fn service_name() -> &'static str {
+ BoundsCheckTestInterface::SERVICE_NAME
+ }
+ fn version() -> u32 {
+ BoundsCheckTestInterface::VERSION
+ }
+ fn pipe(&self) -> &message_pipe::MessageEndpoint {
+ &self.pipe
+ }
+ fn unwrap(self) -> message_pipe::MessageEndpoint {
+ self.pipe
+ }
+}
+
+impl<R: BoundsCheckTestInterfaceResponse> MojomInterfaceSend<R> for BoundsCheckTestInterfaceServer {}
+impl MojomInterfaceRecv for BoundsCheckTestInterfaceServer {
+ type Container = BoundsCheckTestInterfaceRequestOption;
+}
+
+// Enums
+
+
+// Constants
+
+
+pub trait BoundsCheckTestInterfaceRequest: MojomMessage {}
+pub trait BoundsCheckTestInterfaceResponse: MojomMessage {}
+
+pub enum BoundsCheckTestInterfaceRequestOption {
+ BoundsCheckTestInterfaceMethod0(BoundsCheckTestInterfaceMethod0Request),
+ BoundsCheckTestInterfaceMethod1(BoundsCheckTestInterfaceMethod1Request),
+}
+
+impl MojomMessageOption for BoundsCheckTestInterfaceRequestOption {
+ fn decode_payload(ordinal: u32, buffer: &[u8], handles: Vec<UntypedHandle>) -> Self {
+ match ordinal {
+ BoundsCheckTestInterfaceMethod0::ORDINAL => BoundsCheckTestInterfaceRequestOption::BoundsCheckTestInterfaceMethod0(BoundsCheckTestInterfaceMethod0Request::deserialize(buffer, handles)),
+ BoundsCheckTestInterfaceMethod1::ORDINAL => BoundsCheckTestInterfaceRequestOption::BoundsCheckTestInterfaceMethod1(BoundsCheckTestInterfaceMethod1Request::deserialize(buffer, handles)),
+ _ => panic!("Unknown message found: {}", ordinal),
+ }
+ }
+}
+
+pub enum BoundsCheckTestInterfaceResponseOption {
+ BoundsCheckTestInterfaceMethod0(BoundsCheckTestInterfaceMethod0Response),
+}
+
+impl MojomMessageOption for BoundsCheckTestInterfaceResponseOption {
+ fn decode_payload(ordinal: u32, buffer: &[u8], handles: Vec<UntypedHandle>) -> Self {
+ match ordinal {
+ BoundsCheckTestInterfaceMethod0::ORDINAL => BoundsCheckTestInterfaceResponseOption::BoundsCheckTestInterfaceMethod0(BoundsCheckTestInterfaceMethod0Response::deserialize(buffer, handles)),
+ _ => {
+ panic!("Unknown message found, or message has no response: {}",
+ ordinal)
+ }
+ }
+ }
+}
+
+/// Message: BoundsCheckTestInterfaceMethod0
+pub mod BoundsCheckTestInterfaceMethod0 {
+ pub const ORDINAL: u32 = 0;
+ pub const MIN_VERSION: u32 = 0;
+}
+// -- BoundsCheckTestInterfaceMethod0Request --
+
+// Constants
+// Enums
+// Struct version information
+const BoundsCheckTestInterfaceMethod0RequestVersions: [(u32, u32); 1] = [(0, 16)];
+
+// Struct definition
+pub struct BoundsCheckTestInterfaceMethod0Request {
+ pub param0: u8,
+}
+
+impl MojomPointer for BoundsCheckTestInterfaceMethod0Request {
+ fn header_data(&self) -> DataHeaderValue {
+ DataHeaderValue::Version(0)
+ }
+ fn serialized_size(&self, _context: &Context) -> usize {
+ 16
+ }
+ fn encode_value(self, encoder: &mut Encoder, context: Context) {
+ MojomEncodable::encode(self.param0, encoder, context.clone());
+
+ }
+ fn decode_value(decoder: &mut Decoder, context: Context) -> Self {
+ // TODO(mknyszek): Validate bytes and version
+ let (_bytes, version) = {
+ let mut state = decoder.get_mut(&context);
+ let bytes = state.decode::<u32>();
+ let version = state.decode::<u32>();
+ (bytes, version)
+ };
+ let param0 = <u8>::decode(decoder, context.clone());
+ BoundsCheckTestInterfaceMethod0Request { param0: param0 }
+ }
+}
+
+impl MojomEncodable for BoundsCheckTestInterfaceMethod0Request {
+ impl_encodable_for_pointer!();
+ fn compute_size(&self, context: Context) -> usize {
+ encoding::align_default(self.serialized_size(&context)) +
+ self.param0.compute_size(context.clone())
+ }
+}
+
+impl MojomStruct for BoundsCheckTestInterfaceMethod0Request {}
+impl MojomMessage for BoundsCheckTestInterfaceMethod0Request {
+ fn create_header() -> MessageHeader {
+ MessageHeader::new(BoundsCheckTestInterface::VERSION,
+ BoundsCheckTestInterfaceMethod0::ORDINAL,
+ message::MESSAGE_HEADER_EXPECT_RESPONSE)
+
+ }
+}
+impl BoundsCheckTestInterfaceRequest for BoundsCheckTestInterfaceMethod0Request {}
+
+// -- BoundsCheckTestInterfaceMethod0Response --
+
+// Constants
+// Enums
+// Struct version information
+const BoundsCheckTestInterfaceMethod0ResponseVersions: [(u32, u32); 1] = [(0, 16)];
+
+// Struct definition
+pub struct BoundsCheckTestInterfaceMethod0Response {
+ pub param0: u8,
+}
+
+impl MojomPointer for BoundsCheckTestInterfaceMethod0Response {
+ fn header_data(&self) -> DataHeaderValue {
+ DataHeaderValue::Version(0)
+ }
+ fn serialized_size(&self, _context: &Context) -> usize {
+ 16
+ }
+ fn encode_value(self, encoder: &mut Encoder, context: Context) {
+ MojomEncodable::encode(self.param0, encoder, context.clone());
+
+ }
+ fn decode_value(decoder: &mut Decoder, context: Context) -> Self {
+ // TODO(mknyszek): Validate bytes and version
+ let (_bytes, version) = {
+ let mut state = decoder.get_mut(&context);
+ let bytes = state.decode::<u32>();
+ let version = state.decode::<u32>();
+ (bytes, version)
+ };
+ let param0 = <u8>::decode(decoder, context.clone());
+ BoundsCheckTestInterfaceMethod0Response { param0: param0 }
+ }
+}
+
+impl MojomEncodable for BoundsCheckTestInterfaceMethod0Response {
+ impl_encodable_for_pointer!();
+ fn compute_size(&self, context: Context) -> usize {
+ encoding::align_default(self.serialized_size(&context)) +
+ self.param0.compute_size(context.clone())
+ }
+}
+
+impl MojomStruct for BoundsCheckTestInterfaceMethod0Response {}
+
+impl MojomMessage for BoundsCheckTestInterfaceMethod0Response {
+ fn create_header() -> MessageHeader {
+ MessageHeader::new(BoundsCheckTestInterface::VERSION,
+ BoundsCheckTestInterfaceMethod0::ORDINAL,
+ message::MESSAGE_HEADER_IS_RESPONSE)
+ }
+}
+impl BoundsCheckTestInterfaceResponse for BoundsCheckTestInterfaceMethod0Request {}
+/// Message: BoundsCheckTestInterfaceMethod1
+pub mod BoundsCheckTestInterfaceMethod1 {
+ pub const ORDINAL: u32 = 1;
+ pub const MIN_VERSION: u32 = 0;
+}
+// -- BoundsCheckTestInterfaceMethod1Request --
+
+// Constants
+// Enums
+// Struct version information
+const BoundsCheckTestInterfaceMethod1RequestVersions: [(u32, u32); 1] = [(0, 16)];
+
+// Struct definition
+pub struct BoundsCheckTestInterfaceMethod1Request {
+ pub param0: u8,
+}
+
+impl MojomPointer for BoundsCheckTestInterfaceMethod1Request {
+ fn header_data(&self) -> DataHeaderValue {
+ DataHeaderValue::Version(0)
+ }
+ fn serialized_size(&self, _context: &Context) -> usize {
+ 16
+ }
+ fn encode_value(self, encoder: &mut Encoder, context: Context) {
+ MojomEncodable::encode(self.param0, encoder, context.clone());
+
+ }
+ fn decode_value(decoder: &mut Decoder, context: Context) -> Self {
+ // TODO(mknyszek): Validate bytes and version
+ let (_bytes, version) = {
+ let mut state = decoder.get_mut(&context);
+ let bytes = state.decode::<u32>();
+ let version = state.decode::<u32>();
+ (bytes, version)
+ };
+ let param0 = <u8>::decode(decoder, context.clone());
+ BoundsCheckTestInterfaceMethod1Request { param0: param0 }
+ }
+}
+
+impl MojomEncodable for BoundsCheckTestInterfaceMethod1Request {
+ impl_encodable_for_pointer!();
+ fn compute_size(&self, context: Context) -> usize {
+ encoding::align_default(self.serialized_size(&context)) +
+ self.param0.compute_size(context.clone())
+ }
+}
+
+impl MojomStruct for BoundsCheckTestInterfaceMethod1Request {}
+impl MojomMessage for BoundsCheckTestInterfaceMethod1Request {
+ fn create_header() -> MessageHeader {
+ MessageHeader::new(BoundsCheckTestInterface::VERSION,
+ BoundsCheckTestInterfaceMethod1::ORDINAL,
+ message::MESSAGE_HEADER_NO_FLAG)
+
+ }
+}
+impl BoundsCheckTestInterfaceRequest for BoundsCheckTestInterfaceMethod1Request {}
+
+
+// --- ConformanceTestInterface ---
+
+pub mod ConformanceTestInterface {
+ pub const SERVICE_NAME: &'static str = "";
+ pub const VERSION: u32 = 0;
+}
+
+pub struct ConformanceTestInterfaceClient {
+ pipe: message_pipe::MessageEndpoint,
+}
+
+impl ConformanceTestInterfaceClient {
+ pub fn new(pipe: message_pipe::MessageEndpoint) -> ConformanceTestInterfaceClient {
+ ConformanceTestInterfaceClient { pipe: pipe }
+ }
+}
+
+impl CastHandle for ConformanceTestInterfaceClient {
+ unsafe fn from_untyped(handle: system::UntypedHandle) -> ConformanceTestInterfaceClient {
+ ConformanceTestInterfaceClient { pipe: message_pipe::MessageEndpoint::from_untyped(handle) }
+ }
+ fn as_untyped(self) -> system::UntypedHandle {
+ self.pipe.as_untyped()
+ }
+}
+
+impl MojomEncodable for ConformanceTestInterfaceClient {
+ impl_encodable_for_interface!();
+}
+
+impl MojomInterface for ConformanceTestInterfaceClient {
+ fn service_name() -> &'static str {
+ ConformanceTestInterface::SERVICE_NAME
+ }
+ fn version() -> u32 {
+ ConformanceTestInterface::VERSION
+ }
+ fn pipe(&self) -> &message_pipe::MessageEndpoint {
+ &self.pipe
+ }
+ fn unwrap(self) -> message_pipe::MessageEndpoint {
+ self.pipe
+ }
+}
+
+impl<R: ConformanceTestInterfaceRequest> MojomInterfaceSend<R> for ConformanceTestInterfaceClient {}
+impl MojomInterfaceRecv for ConformanceTestInterfaceClient {
+ type Container = ConformanceTestInterfaceResponseOption;
+}
+
+pub struct ConformanceTestInterfaceServer {
+ pipe: message_pipe::MessageEndpoint,
+}
+
+impl ConformanceTestInterfaceServer {
+ pub fn new(pipe: message_pipe::MessageEndpoint) -> ConformanceTestInterfaceServer {
+ ConformanceTestInterfaceServer { pipe: pipe }
+ }
+}
+
+impl CastHandle for ConformanceTestInterfaceServer {
+ unsafe fn from_untyped(handle: system::UntypedHandle) -> ConformanceTestInterfaceServer {
+ ConformanceTestInterfaceServer { pipe: message_pipe::MessageEndpoint::from_untyped(handle) }
+ }
+ fn as_untyped(self) -> system::UntypedHandle {
+ self.pipe.as_untyped()
+ }
+}
+
+impl MojomEncodable for ConformanceTestInterfaceServer {
+ impl_encodable_for_interface!();
+}
+
+impl MojomInterface for ConformanceTestInterfaceServer {
+ fn service_name() -> &'static str {
+ ConformanceTestInterface::SERVICE_NAME
+ }
+ fn version() -> u32 {
+ ConformanceTestInterface::VERSION
+ }
+ fn pipe(&self) -> &message_pipe::MessageEndpoint {
+ &self.pipe
+ }
+ fn unwrap(self) -> message_pipe::MessageEndpoint {
+ self.pipe
+ }
+}
+
+impl<R: ConformanceTestInterfaceResponse> MojomInterfaceSend<R> for ConformanceTestInterfaceServer {}
+impl MojomInterfaceRecv for ConformanceTestInterfaceServer {
+ type Container = ConformanceTestInterfaceRequestOption;
+}
+
+// Enums
+
+
+// Constants
+
+
+pub trait ConformanceTestInterfaceRequest: MojomMessage {}
+pub trait ConformanceTestInterfaceResponse: MojomMessage {}
+
+pub enum ConformanceTestInterfaceRequestOption {
+ ConformanceTestInterfaceMethod5(ConformanceTestInterfaceMethod5Request),
+ ConformanceTestInterfaceMethod11(ConformanceTestInterfaceMethod11Request),
+ ConformanceTestInterfaceMethod14(ConformanceTestInterfaceMethod14Request),
+ ConformanceTestInterfaceMethod2(ConformanceTestInterfaceMethod2Request),
+ ConformanceTestInterfaceMethod4(ConformanceTestInterfaceMethod4Request),
+ ConformanceTestInterfaceMethod6(ConformanceTestInterfaceMethod6Request),
+ ConformanceTestInterfaceMethod7(ConformanceTestInterfaceMethod7Request),
+ ConformanceTestInterfaceMethod10(ConformanceTestInterfaceMethod10Request),
+ ConformanceTestInterfaceMethod12(ConformanceTestInterfaceMethod12Request),
+ ConformanceTestInterfaceMethod15(ConformanceTestInterfaceMethod15Request),
+ ConformanceTestInterfaceMethod0(ConformanceTestInterfaceMethod0Request),
+ ConformanceTestInterfaceMethod1(ConformanceTestInterfaceMethod1Request),
+ ConformanceTestInterfaceMethod3(ConformanceTestInterfaceMethod3Request),
+ ConformanceTestInterfaceMethod8(ConformanceTestInterfaceMethod8Request),
+ ConformanceTestInterfaceMethod9(ConformanceTestInterfaceMethod9Request),
+ ConformanceTestInterfaceMethod13(ConformanceTestInterfaceMethod13Request),
+}
+
+impl MojomMessageOption for ConformanceTestInterfaceRequestOption {
+ fn decode_payload(ordinal: u32, buffer: &[u8], handles: Vec<UntypedHandle>) -> Self {
+ match ordinal {
+ ConformanceTestInterfaceMethod5::ORDINAL => ConformanceTestInterfaceRequestOption::ConformanceTestInterfaceMethod5(ConformanceTestInterfaceMethod5Request::deserialize(buffer, handles)),
+ ConformanceTestInterfaceMethod11::ORDINAL => ConformanceTestInterfaceRequestOption::ConformanceTestInterfaceMethod11(ConformanceTestInterfaceMethod11Request::deserialize(buffer, handles)),
+ ConformanceTestInterfaceMethod14::ORDINAL => ConformanceTestInterfaceRequestOption::ConformanceTestInterfaceMethod14(ConformanceTestInterfaceMethod14Request::deserialize(buffer, handles)),
+ ConformanceTestInterfaceMethod2::ORDINAL => ConformanceTestInterfaceRequestOption::ConformanceTestInterfaceMethod2(ConformanceTestInterfaceMethod2Request::deserialize(buffer, handles)),
+ ConformanceTestInterfaceMethod4::ORDINAL => ConformanceTestInterfaceRequestOption::ConformanceTestInterfaceMethod4(ConformanceTestInterfaceMethod4Request::deserialize(buffer, handles)),
+ ConformanceTestInterfaceMethod6::ORDINAL => ConformanceTestInterfaceRequestOption::ConformanceTestInterfaceMethod6(ConformanceTestInterfaceMethod6Request::deserialize(buffer, handles)),
+ ConformanceTestInterfaceMethod7::ORDINAL => ConformanceTestInterfaceRequestOption::ConformanceTestInterfaceMethod7(ConformanceTestInterfaceMethod7Request::deserialize(buffer, handles)),
+ ConformanceTestInterfaceMethod10::ORDINAL => ConformanceTestInterfaceRequestOption::ConformanceTestInterfaceMethod10(ConformanceTestInterfaceMethod10Request::deserialize(buffer, handles)),
+ ConformanceTestInterfaceMethod12::ORDINAL => ConformanceTestInterfaceRequestOption::ConformanceTestInterfaceMethod12(ConformanceTestInterfaceMethod12Request::deserialize(buffer, handles)),
+ ConformanceTestInterfaceMethod15::ORDINAL => ConformanceTestInterfaceRequestOption::ConformanceTestInterfaceMethod15(ConformanceTestInterfaceMethod15Request::deserialize(buffer, handles)),
+ ConformanceTestInterfaceMethod0::ORDINAL => ConformanceTestInterfaceRequestOption::ConformanceTestInterfaceMethod0(ConformanceTestInterfaceMethod0Request::deserialize(buffer, handles)),
+ ConformanceTestInterfaceMethod1::ORDINAL => ConformanceTestInterfaceRequestOption::ConformanceTestInterfaceMethod1(ConformanceTestInterfaceMethod1Request::deserialize(buffer, handles)),
+ ConformanceTestInterfaceMethod3::ORDINAL => ConformanceTestInterfaceRequestOption::ConformanceTestInterfaceMethod3(ConformanceTestInterfaceMethod3Request::deserialize(buffer, handles)),
+ ConformanceTestInterfaceMethod8::ORDINAL => ConformanceTestInterfaceRequestOption::ConformanceTestInterfaceMethod8(ConformanceTestInterfaceMethod8Request::deserialize(buffer, handles)),
+ ConformanceTestInterfaceMethod9::ORDINAL => ConformanceTestInterfaceRequestOption::ConformanceTestInterfaceMethod9(ConformanceTestInterfaceMethod9Request::deserialize(buffer, handles)),
+ ConformanceTestInterfaceMethod13::ORDINAL => ConformanceTestInterfaceRequestOption::ConformanceTestInterfaceMethod13(ConformanceTestInterfaceMethod13Request::deserialize(buffer, handles)),
+ _ => panic!("Unknown message found: {}", ordinal),
+ }
+ }
+}
+
+pub enum ConformanceTestInterfaceResponseOption {
+ ConformanceTestInterfaceMethod12(ConformanceTestInterfaceMethod12Response),
+}
+
+impl MojomMessageOption for ConformanceTestInterfaceResponseOption {
+ fn decode_payload(ordinal: u32, buffer: &[u8], handles: Vec<UntypedHandle>) -> Self {
+ match ordinal {
+ ConformanceTestInterfaceMethod12::ORDINAL => ConformanceTestInterfaceResponseOption::ConformanceTestInterfaceMethod12(ConformanceTestInterfaceMethod12Response::deserialize(buffer, handles)),
+ _ => {
+ panic!("Unknown message found, or message has no response: {}",
+ ordinal)
+ }
+ }
+ }
+}
+
+/// Message: ConformanceTestInterfaceMethod5
+pub mod ConformanceTestInterfaceMethod5 {
+ pub const ORDINAL: u32 = 5;
+ pub const MIN_VERSION: u32 = 0;
+}
+// -- ConformanceTestInterfaceMethod5Request --
+
+// Constants
+// Enums
+// Struct version information
+const ConformanceTestInterfaceMethod5RequestVersions: [(u32, u32); 1] = [(0, 24)];
+
+// Struct definition
+pub struct ConformanceTestInterfaceMethod5Request {
+ pub param0: StructE,
+ pub param1: system::data_pipe::Producer<u8>,
+}
+
+impl MojomPointer for ConformanceTestInterfaceMethod5Request {
+ fn header_data(&self) -> DataHeaderValue {
+ DataHeaderValue::Version(0)
+ }
+ fn serialized_size(&self, _context: &Context) -> usize {
+ 24
+ }
+ fn encode_value(self, encoder: &mut Encoder, context: Context) {
+ MojomEncodable::encode(self.param0, encoder, context.clone());
+ MojomEncodable::encode(self.param1, encoder, context.clone());
+
+ }
+ fn decode_value(decoder: &mut Decoder, context: Context) -> Self {
+ // TODO(mknyszek): Validate bytes and version
+ let (_bytes, version) = {
+ let mut state = decoder.get_mut(&context);
+ let bytes = state.decode::<u32>();
+ let version = state.decode::<u32>();
+ (bytes, version)
+ };
+ let param0 = <StructE>::decode(decoder, context.clone());
+ let param1 = <system::data_pipe::Producer<u8>>::decode(decoder, context.clone());
+ ConformanceTestInterfaceMethod5Request {
+ param0: param0,
+ param1: param1,
+ }
+ }
+}
+
+impl MojomEncodable for ConformanceTestInterfaceMethod5Request {
+ impl_encodable_for_pointer!();
+ fn compute_size(&self, context: Context) -> usize {
+ encoding::align_default(self.serialized_size(&context)) +
+ self.param0.compute_size(context.clone()) +
+ self.param1.compute_size(context.clone())
+ }
+}
+
+impl MojomStruct for ConformanceTestInterfaceMethod5Request {}
+impl MojomMessage for ConformanceTestInterfaceMethod5Request {
+ fn create_header() -> MessageHeader {
+ MessageHeader::new(ConformanceTestInterface::VERSION,
+ ConformanceTestInterfaceMethod5::ORDINAL,
+ message::MESSAGE_HEADER_NO_FLAG)
+
+ }
+}
+impl ConformanceTestInterfaceRequest for ConformanceTestInterfaceMethod5Request {}
+
+/// Message: ConformanceTestInterfaceMethod11
+pub mod ConformanceTestInterfaceMethod11 {
+ pub const ORDINAL: u32 = 11;
+ pub const MIN_VERSION: u32 = 0;
+}
+// -- ConformanceTestInterfaceMethod11Request --
+
+// Constants
+// Enums
+// Struct version information
+const ConformanceTestInterfaceMethod11RequestVersions: [(u32, u32); 1] = [(0, 16)];
+
+// Struct definition
+pub struct ConformanceTestInterfaceMethod11Request {
+ pub param0: StructG,
+}
+
+impl MojomPointer for ConformanceTestInterfaceMethod11Request {
+ fn header_data(&self) -> DataHeaderValue {
+ DataHeaderValue::Version(0)
+ }
+ fn serialized_size(&self, _context: &Context) -> usize {
+ 16
+ }
+ fn encode_value(self, encoder: &mut Encoder, context: Context) {
+ MojomEncodable::encode(self.param0, encoder, context.clone());
+
+ }
+ fn decode_value(decoder: &mut Decoder, context: Context) -> Self {
+ // TODO(mknyszek): Validate bytes and version
+ let (_bytes, version) = {
+ let mut state = decoder.get_mut(&context);
+ let bytes = state.decode::<u32>();
+ let version = state.decode::<u32>();
+ (bytes, version)
+ };
+ let param0 = <StructG>::decode(decoder, context.clone());
+ ConformanceTestInterfaceMethod11Request { param0: param0 }
+ }
+}
+
+impl MojomEncodable for ConformanceTestInterfaceMethod11Request {
+ impl_encodable_for_pointer!();
+ fn compute_size(&self, context: Context) -> usize {
+ encoding::align_default(self.serialized_size(&context)) +
+ self.param0.compute_size(context.clone())
+ }
+}
+
+impl MojomStruct for ConformanceTestInterfaceMethod11Request {}
+impl MojomMessage for ConformanceTestInterfaceMethod11Request {
+ fn create_header() -> MessageHeader {
+ MessageHeader::new(ConformanceTestInterface::VERSION,
+ ConformanceTestInterfaceMethod11::ORDINAL,
+ message::MESSAGE_HEADER_NO_FLAG)
+
+ }
+}
+impl ConformanceTestInterfaceRequest for ConformanceTestInterfaceMethod11Request {}
+
+/// Message: ConformanceTestInterfaceMethod14
+pub mod ConformanceTestInterfaceMethod14 {
+ pub const ORDINAL: u32 = 14;
+ pub const MIN_VERSION: u32 = 0;
+}
+// -- ConformanceTestInterfaceMethod14Request --
+
+// Constants
+// Enums
+// Struct version information
+const ConformanceTestInterfaceMethod14RequestVersions: [(u32, u32); 1] = [(0, 24)];
+
+// Struct definition
+pub struct ConformanceTestInterfaceMethod14Request {
+ pub param0: UnionA,
+}
+
+impl MojomPointer for ConformanceTestInterfaceMethod14Request {
+ fn header_data(&self) -> DataHeaderValue {
+ DataHeaderValue::Version(0)
+ }
+ fn serialized_size(&self, _context: &Context) -> usize {
+ 24
+ }
+ fn encode_value(self, encoder: &mut Encoder, context: Context) {
+ MojomEncodable::encode(self.param0, encoder, context.clone());
+
+ }
+ fn decode_value(decoder: &mut Decoder, context: Context) -> Self {
+ // TODO(mknyszek): Validate bytes and version
+ let (_bytes, version) = {
+ let mut state = decoder.get_mut(&context);
+ let bytes = state.decode::<u32>();
+ let version = state.decode::<u32>();
+ (bytes, version)
+ };
+ let param0 = <UnionA>::decode(decoder, context.clone());
+ ConformanceTestInterfaceMethod14Request { param0: param0 }
+ }
+}
+
+impl MojomEncodable for ConformanceTestInterfaceMethod14Request {
+ impl_encodable_for_pointer!();
+ fn compute_size(&self, context: Context) -> usize {
+ encoding::align_default(self.serialized_size(&context)) +
+ self.param0.compute_size(context.clone())
+ }
+}
+
+impl MojomStruct for ConformanceTestInterfaceMethod14Request {}
+impl MojomMessage for ConformanceTestInterfaceMethod14Request {
+ fn create_header() -> MessageHeader {
+ MessageHeader::new(ConformanceTestInterface::VERSION,
+ ConformanceTestInterfaceMethod14::ORDINAL,
+ message::MESSAGE_HEADER_NO_FLAG)
+
+ }
+}
+impl ConformanceTestInterfaceRequest for ConformanceTestInterfaceMethod14Request {}
+
+/// Message: ConformanceTestInterfaceMethod2
+pub mod ConformanceTestInterfaceMethod2 {
+ pub const ORDINAL: u32 = 2;
+ pub const MIN_VERSION: u32 = 0;
+}
+// -- ConformanceTestInterfaceMethod2Request --
+
+// Constants
+// Enums
+// Struct version information
+const ConformanceTestInterfaceMethod2RequestVersions: [(u32, u32); 1] = [(0, 24)];
+
+// Struct definition
+pub struct ConformanceTestInterfaceMethod2Request {
+ pub param0: StructB,
+ pub param1: StructA,
+}
+
+impl MojomPointer for ConformanceTestInterfaceMethod2Request {
+ fn header_data(&self) -> DataHeaderValue {
+ DataHeaderValue::Version(0)
+ }
+ fn serialized_size(&self, _context: &Context) -> usize {
+ 24
+ }
+ fn encode_value(self, encoder: &mut Encoder, context: Context) {
+ MojomEncodable::encode(self.param0, encoder, context.clone());
+ MojomEncodable::encode(self.param1, encoder, context.clone());
+
+ }
+ fn decode_value(decoder: &mut Decoder, context: Context) -> Self {
+ // TODO(mknyszek): Validate bytes and version
+ let (_bytes, version) = {
+ let mut state = decoder.get_mut(&context);
+ let bytes = state.decode::<u32>();
+ let version = state.decode::<u32>();
+ (bytes, version)
+ };
+ let param0 = <StructB>::decode(decoder, context.clone());
+ let param1 = <StructA>::decode(decoder, context.clone());
+ ConformanceTestInterfaceMethod2Request {
+ param0: param0,
+ param1: param1,
+ }
+ }
+}
+
+impl MojomEncodable for ConformanceTestInterfaceMethod2Request {
+ impl_encodable_for_pointer!();
+ fn compute_size(&self, context: Context) -> usize {
+ encoding::align_default(self.serialized_size(&context)) +
+ self.param0.compute_size(context.clone()) +
+ self.param1.compute_size(context.clone())
+ }
+}
+
+impl MojomStruct for ConformanceTestInterfaceMethod2Request {}
+impl MojomMessage for ConformanceTestInterfaceMethod2Request {
+ fn create_header() -> MessageHeader {
+ MessageHeader::new(ConformanceTestInterface::VERSION,
+ ConformanceTestInterfaceMethod2::ORDINAL,
+ message::MESSAGE_HEADER_NO_FLAG)
+
+ }
+}
+impl ConformanceTestInterfaceRequest for ConformanceTestInterfaceMethod2Request {}
+
+/// Message: ConformanceTestInterfaceMethod4
+pub mod ConformanceTestInterfaceMethod4 {
+ pub const ORDINAL: u32 = 4;
+ pub const MIN_VERSION: u32 = 0;
+}
+// -- ConformanceTestInterfaceMethod4Request --
+
+// Constants
+// Enums
+// Struct version information
+const ConformanceTestInterfaceMethod4RequestVersions: [(u32, u32); 1] = [(0, 24)];
+
+// Struct definition
+pub struct ConformanceTestInterfaceMethod4Request {
+ pub param0: StructC,
+ pub param1: Vec<u8>,
+}
+
+impl MojomPointer for ConformanceTestInterfaceMethod4Request {
+ fn header_data(&self) -> DataHeaderValue {
+ DataHeaderValue::Version(0)
+ }
+ fn serialized_size(&self, _context: &Context) -> usize {
+ 24
+ }
+ fn encode_value(self, encoder: &mut Encoder, context: Context) {
+ MojomEncodable::encode(self.param0, encoder, context.clone());
+ MojomEncodable::encode(self.param1, encoder, context.clone());
+
+ }
+ fn decode_value(decoder: &mut Decoder, context: Context) -> Self {
+ // TODO(mknyszek): Validate bytes and version
+ let (_bytes, version) = {
+ let mut state = decoder.get_mut(&context);
+ let bytes = state.decode::<u32>();
+ let version = state.decode::<u32>();
+ (bytes, version)
+ };
+ let param0 = <StructC>::decode(decoder, context.clone());
+ let param1 = <Vec<u8>>::decode(decoder, context.clone());
+ ConformanceTestInterfaceMethod4Request {
+ param0: param0,
+ param1: param1,
+ }
+ }
+}
+
+impl MojomEncodable for ConformanceTestInterfaceMethod4Request {
+ impl_encodable_for_pointer!();
+ fn compute_size(&self, context: Context) -> usize {
+ encoding::align_default(self.serialized_size(&context)) +
+ self.param0.compute_size(context.clone()) +
+ self.param1.compute_size(context.clone())
+ }
+}
+
+impl MojomStruct for ConformanceTestInterfaceMethod4Request {}
+impl MojomMessage for ConformanceTestInterfaceMethod4Request {
+ fn create_header() -> MessageHeader {
+ MessageHeader::new(ConformanceTestInterface::VERSION,
+ ConformanceTestInterfaceMethod4::ORDINAL,
+ message::MESSAGE_HEADER_NO_FLAG)
+
+ }
+}
+impl ConformanceTestInterfaceRequest for ConformanceTestInterfaceMethod4Request {}
+
+/// Message: ConformanceTestInterfaceMethod6
+pub mod ConformanceTestInterfaceMethod6 {
+ pub const ORDINAL: u32 = 6;
+ pub const MIN_VERSION: u32 = 0;
+}
+// -- ConformanceTestInterfaceMethod6Request --
+
+// Constants
+// Enums
+// Struct version information
+const ConformanceTestInterfaceMethod6RequestVersions: [(u32, u32); 1] = [(0, 16)];
+
+// Struct definition
+pub struct ConformanceTestInterfaceMethod6Request {
+ pub param0: Vec<Vec<u8>>,
+}
+
+impl MojomPointer for ConformanceTestInterfaceMethod6Request {
+ fn header_data(&self) -> DataHeaderValue {
+ DataHeaderValue::Version(0)
+ }
+ fn serialized_size(&self, _context: &Context) -> usize {
+ 16
+ }
+ fn encode_value(self, encoder: &mut Encoder, context: Context) {
+ MojomEncodable::encode(self.param0, encoder, context.clone());
+
+ }
+ fn decode_value(decoder: &mut Decoder, context: Context) -> Self {
+ // TODO(mknyszek): Validate bytes and version
+ let (_bytes, version) = {
+ let mut state = decoder.get_mut(&context);
+ let bytes = state.decode::<u32>();
+ let version = state.decode::<u32>();
+ (bytes, version)
+ };
+ let param0 = <Vec<Vec<u8>>>::decode(decoder, context.clone());
+ ConformanceTestInterfaceMethod6Request { param0: param0 }
+ }
+}
+
+impl MojomEncodable for ConformanceTestInterfaceMethod6Request {
+ impl_encodable_for_pointer!();
+ fn compute_size(&self, context: Context) -> usize {
+ encoding::align_default(self.serialized_size(&context)) +
+ self.param0.compute_size(context.clone())
+ }
+}
+
+impl MojomStruct for ConformanceTestInterfaceMethod6Request {}
+impl MojomMessage for ConformanceTestInterfaceMethod6Request {
+ fn create_header() -> MessageHeader {
+ MessageHeader::new(ConformanceTestInterface::VERSION,
+ ConformanceTestInterfaceMethod6::ORDINAL,
+ message::MESSAGE_HEADER_NO_FLAG)
+
+ }
+}
+impl ConformanceTestInterfaceRequest for ConformanceTestInterfaceMethod6Request {}
+
+/// Message: ConformanceTestInterfaceMethod7
+pub mod ConformanceTestInterfaceMethod7 {
+ pub const ORDINAL: u32 = 7;
+ pub const MIN_VERSION: u32 = 0;
+}
+// -- ConformanceTestInterfaceMethod7Request --
+
+// Constants
+// Enums
+// Struct version information
+const ConformanceTestInterfaceMethod7RequestVersions: [(u32, u32); 1] = [(0, 24)];
+
+// Struct definition
+pub struct ConformanceTestInterfaceMethod7Request {
+ pub param0: StructF,
+ pub param1: [Option<[u8; 3]>; 2],
+}
+
+impl MojomPointer for ConformanceTestInterfaceMethod7Request {
+ fn header_data(&self) -> DataHeaderValue {
+ DataHeaderValue::Version(0)
+ }
+ fn serialized_size(&self, _context: &Context) -> usize {
+ 24
+ }
+ fn encode_value(self, encoder: &mut Encoder, context: Context) {
+ MojomEncodable::encode(self.param0, encoder, context.clone());
+ MojomEncodable::encode(self.param1, encoder, context.clone());
+
+ }
+ fn decode_value(decoder: &mut Decoder, context: Context) -> Self {
+ // TODO(mknyszek): Validate bytes and version
+ let (_bytes, version) = {
+ let mut state = decoder.get_mut(&context);
+ let bytes = state.decode::<u32>();
+ let version = state.decode::<u32>();
+ (bytes, version)
+ };
+ let param0 = <StructF>::decode(decoder, context.clone());
+ let param1 = <[Option<[u8; 3]>; 2]>::decode(decoder, context.clone());
+ ConformanceTestInterfaceMethod7Request {
+ param0: param0,
+ param1: param1,
+ }
+ }
+}
+
+impl MojomEncodable for ConformanceTestInterfaceMethod7Request {
+ impl_encodable_for_pointer!();
+ fn compute_size(&self, context: Context) -> usize {
+ encoding::align_default(self.serialized_size(&context)) +
+ self.param0.compute_size(context.clone()) +
+ self.param1.compute_size(context.clone())
+ }
+}
+
+impl MojomStruct for ConformanceTestInterfaceMethod7Request {}
+impl MojomMessage for ConformanceTestInterfaceMethod7Request {
+ fn create_header() -> MessageHeader {
+ MessageHeader::new(ConformanceTestInterface::VERSION,
+ ConformanceTestInterfaceMethod7::ORDINAL,
+ message::MESSAGE_HEADER_NO_FLAG)
+
+ }
+}
+impl ConformanceTestInterfaceRequest for ConformanceTestInterfaceMethod7Request {}
+
+/// Message: ConformanceTestInterfaceMethod10
+pub mod ConformanceTestInterfaceMethod10 {
+ pub const ORDINAL: u32 = 10;
+ pub const MIN_VERSION: u32 = 0;
+}
+// -- ConformanceTestInterfaceMethod10Request --
+
+// Constants
+// Enums
+// Struct version information
+const ConformanceTestInterfaceMethod10RequestVersions: [(u32, u32); 1] = [(0, 16)];
+
+// Struct definition
+pub struct ConformanceTestInterfaceMethod10Request {
+ pub param0: HashMap<String, u8>,
+}
+
+impl MojomPointer for ConformanceTestInterfaceMethod10Request {
+ fn header_data(&self) -> DataHeaderValue {
+ DataHeaderValue::Version(0)
+ }
+ fn serialized_size(&self, _context: &Context) -> usize {
+ 16
+ }
+ fn encode_value(self, encoder: &mut Encoder, context: Context) {
+ MojomEncodable::encode(self.param0, encoder, context.clone());
+
+ }
+ fn decode_value(decoder: &mut Decoder, context: Context) -> Self {
+ // TODO(mknyszek): Validate bytes and version
+ let (_bytes, version) = {
+ let mut state = decoder.get_mut(&context);
+ let bytes = state.decode::<u32>();
+ let version = state.decode::<u32>();
+ (bytes, version)
+ };
+ let param0 = <HashMap<String, u8>>::decode(decoder, context.clone());
+ ConformanceTestInterfaceMethod10Request { param0: param0 }
+ }
+}
+
+impl MojomEncodable for ConformanceTestInterfaceMethod10Request {
+ impl_encodable_for_pointer!();
+ fn compute_size(&self, context: Context) -> usize {
+ encoding::align_default(self.serialized_size(&context)) +
+ self.param0.compute_size(context.clone())
+ }
+}
+
+impl MojomStruct for ConformanceTestInterfaceMethod10Request {}
+impl MojomMessage for ConformanceTestInterfaceMethod10Request {
+ fn create_header() -> MessageHeader {
+ MessageHeader::new(ConformanceTestInterface::VERSION,
+ ConformanceTestInterfaceMethod10::ORDINAL,
+ message::MESSAGE_HEADER_NO_FLAG)
+
+ }
+}
+impl ConformanceTestInterfaceRequest for ConformanceTestInterfaceMethod10Request {}
+
+/// Message: ConformanceTestInterfaceMethod12
+pub mod ConformanceTestInterfaceMethod12 {
+ pub const ORDINAL: u32 = 12;
+ pub const MIN_VERSION: u32 = 0;
+}
+// -- ConformanceTestInterfaceMethod12Request --
+
+// Constants
+// Enums
+// Struct version information
+const ConformanceTestInterfaceMethod12RequestVersions: [(u32, u32); 1] = [(0, 16)];
+
+// Struct definition
+pub struct ConformanceTestInterfaceMethod12Request {
+ pub param0: f32,
+}
+
+impl MojomPointer for ConformanceTestInterfaceMethod12Request {
+ fn header_data(&self) -> DataHeaderValue {
+ DataHeaderValue::Version(0)
+ }
+ fn serialized_size(&self, _context: &Context) -> usize {
+ 16
+ }
+ fn encode_value(self, encoder: &mut Encoder, context: Context) {
+ MojomEncodable::encode(self.param0, encoder, context.clone());
+
+ }
+ fn decode_value(decoder: &mut Decoder, context: Context) -> Self {
+ // TODO(mknyszek): Validate bytes and version
+ let (_bytes, version) = {
+ let mut state = decoder.get_mut(&context);
+ let bytes = state.decode::<u32>();
+ let version = state.decode::<u32>();
+ (bytes, version)
+ };
+ let param0 = <f32>::decode(decoder, context.clone());
+ ConformanceTestInterfaceMethod12Request { param0: param0 }
+ }
+}
+
+impl MojomEncodable for ConformanceTestInterfaceMethod12Request {
+ impl_encodable_for_pointer!();
+ fn compute_size(&self, context: Context) -> usize {
+ encoding::align_default(self.serialized_size(&context)) +
+ self.param0.compute_size(context.clone())
+ }
+}
+
+impl MojomStruct for ConformanceTestInterfaceMethod12Request {}
+impl MojomMessage for ConformanceTestInterfaceMethod12Request {
+ fn create_header() -> MessageHeader {
+ MessageHeader::new(ConformanceTestInterface::VERSION,
+ ConformanceTestInterfaceMethod12::ORDINAL,
+ message::MESSAGE_HEADER_EXPECT_RESPONSE)
+
+ }
+}
+impl ConformanceTestInterfaceRequest for ConformanceTestInterfaceMethod12Request {}
+
+// -- ConformanceTestInterfaceMethod12Response --
+
+// Constants
+// Enums
+// Struct version information
+const ConformanceTestInterfaceMethod12ResponseVersions: [(u32, u32); 1] = [(0, 16)];
+
+// Struct definition
+pub struct ConformanceTestInterfaceMethod12Response {
+ pub param0: f32,
+}
+
+impl MojomPointer for ConformanceTestInterfaceMethod12Response {
+ fn header_data(&self) -> DataHeaderValue {
+ DataHeaderValue::Version(0)
+ }
+ fn serialized_size(&self, _context: &Context) -> usize {
+ 16
+ }
+ fn encode_value(self, encoder: &mut Encoder, context: Context) {
+ MojomEncodable::encode(self.param0, encoder, context.clone());
+
+ }
+ fn decode_value(decoder: &mut Decoder, context: Context) -> Self {
+ // TODO(mknyszek): Validate bytes and version
+ let (_bytes, version) = {
+ let mut state = decoder.get_mut(&context);
+ let bytes = state.decode::<u32>();
+ let version = state.decode::<u32>();
+ (bytes, version)
+ };
+ let param0 = <f32>::decode(decoder, context.clone());
+ ConformanceTestInterfaceMethod12Response { param0: param0 }
+ }
+}
+
+impl MojomEncodable for ConformanceTestInterfaceMethod12Response {
+ impl_encodable_for_pointer!();
+ fn compute_size(&self, context: Context) -> usize {
+ encoding::align_default(self.serialized_size(&context)) +
+ self.param0.compute_size(context.clone())
+ }
+}
+
+impl MojomStruct for ConformanceTestInterfaceMethod12Response {}
+
+impl MojomMessage for ConformanceTestInterfaceMethod12Response {
+ fn create_header() -> MessageHeader {
+ MessageHeader::new(ConformanceTestInterface::VERSION,
+ ConformanceTestInterfaceMethod12::ORDINAL,
+ message::MESSAGE_HEADER_IS_RESPONSE)
+ }
+}
+impl ConformanceTestInterfaceResponse for ConformanceTestInterfaceMethod12Request {}
+/// Message: ConformanceTestInterfaceMethod15
+pub mod ConformanceTestInterfaceMethod15 {
+ pub const ORDINAL: u32 = 15;
+ pub const MIN_VERSION: u32 = 0;
+}
+// -- ConformanceTestInterfaceMethod15Request --
+
+// Constants
+// Enums
+// Struct version information
+const ConformanceTestInterfaceMethod15RequestVersions: [(u32, u32); 1] = [(0, 16)];
+
+// Struct definition
+pub struct ConformanceTestInterfaceMethod15Request {
+ pub param0: StructH,
+}
+
+impl MojomPointer for ConformanceTestInterfaceMethod15Request {
+ fn header_data(&self) -> DataHeaderValue {
+ DataHeaderValue::Version(0)
+ }
+ fn serialized_size(&self, _context: &Context) -> usize {
+ 16
+ }
+ fn encode_value(self, encoder: &mut Encoder, context: Context) {
+ MojomEncodable::encode(self.param0, encoder, context.clone());
+
+ }
+ fn decode_value(decoder: &mut Decoder, context: Context) -> Self {
+ // TODO(mknyszek): Validate bytes and version
+ let (_bytes, version) = {
+ let mut state = decoder.get_mut(&context);
+ let bytes = state.decode::<u32>();
+ let version = state.decode::<u32>();
+ (bytes, version)
+ };
+ let param0 = <StructH>::decode(decoder, context.clone());
+ ConformanceTestInterfaceMethod15Request { param0: param0 }
+ }
+}
+
+impl MojomEncodable for ConformanceTestInterfaceMethod15Request {
+ impl_encodable_for_pointer!();
+ fn compute_size(&self, context: Context) -> usize {
+ encoding::align_default(self.serialized_size(&context)) +
+ self.param0.compute_size(context.clone())
+ }
+}
+
+impl MojomStruct for ConformanceTestInterfaceMethod15Request {}
+impl MojomMessage for ConformanceTestInterfaceMethod15Request {
+ fn create_header() -> MessageHeader {
+ MessageHeader::new(ConformanceTestInterface::VERSION,
+ ConformanceTestInterfaceMethod15::ORDINAL,
+ message::MESSAGE_HEADER_NO_FLAG)
+
+ }
+}
+impl ConformanceTestInterfaceRequest for ConformanceTestInterfaceMethod15Request {}
+
+/// Message: ConformanceTestInterfaceMethod0
+pub mod ConformanceTestInterfaceMethod0 {
+ pub const ORDINAL: u32 = 0;
+ pub const MIN_VERSION: u32 = 0;
+}
+// -- ConformanceTestInterfaceMethod0Request --
+
+// Constants
+// Enums
+// Struct version information
+const ConformanceTestInterfaceMethod0RequestVersions: [(u32, u32); 1] = [(0, 16)];
+
+// Struct definition
+pub struct ConformanceTestInterfaceMethod0Request {
+ pub param0: f32,
+}
+
+impl MojomPointer for ConformanceTestInterfaceMethod0Request {
+ fn header_data(&self) -> DataHeaderValue {
+ DataHeaderValue::Version(0)
+ }
+ fn serialized_size(&self, _context: &Context) -> usize {
+ 16
+ }
+ fn encode_value(self, encoder: &mut Encoder, context: Context) {
+ MojomEncodable::encode(self.param0, encoder, context.clone());
+
+ }
+ fn decode_value(decoder: &mut Decoder, context: Context) -> Self {
+ // TODO(mknyszek): Validate bytes and version
+ let (_bytes, version) = {
+ let mut state = decoder.get_mut(&context);
+ let bytes = state.decode::<u32>();
+ let version = state.decode::<u32>();
+ (bytes, version)
+ };
+ let param0 = <f32>::decode(decoder, context.clone());
+ ConformanceTestInterfaceMethod0Request { param0: param0 }
+ }
+}
+
+impl MojomEncodable for ConformanceTestInterfaceMethod0Request {
+ impl_encodable_for_pointer!();
+ fn compute_size(&self, context: Context) -> usize {
+ encoding::align_default(self.serialized_size(&context)) +
+ self.param0.compute_size(context.clone())
+ }
+}
+
+impl MojomStruct for ConformanceTestInterfaceMethod0Request {}
+impl MojomMessage for ConformanceTestInterfaceMethod0Request {
+ fn create_header() -> MessageHeader {
+ MessageHeader::new(ConformanceTestInterface::VERSION,
+ ConformanceTestInterfaceMethod0::ORDINAL,
+ message::MESSAGE_HEADER_NO_FLAG)
+
+ }
+}
+impl ConformanceTestInterfaceRequest for ConformanceTestInterfaceMethod0Request {}
+
+/// Message: ConformanceTestInterfaceMethod1
+pub mod ConformanceTestInterfaceMethod1 {
+ pub const ORDINAL: u32 = 1;
+ pub const MIN_VERSION: u32 = 0;
+}
+// -- ConformanceTestInterfaceMethod1Request --
+
+// Constants
+// Enums
+// Struct version information
+const ConformanceTestInterfaceMethod1RequestVersions: [(u32, u32); 1] = [(0, 16)];
+
+// Struct definition
+pub struct ConformanceTestInterfaceMethod1Request {
+ pub param0: StructA,
+}
+
+impl MojomPointer for ConformanceTestInterfaceMethod1Request {
+ fn header_data(&self) -> DataHeaderValue {
+ DataHeaderValue::Version(0)
+ }
+ fn serialized_size(&self, _context: &Context) -> usize {
+ 16
+ }
+ fn encode_value(self, encoder: &mut Encoder, context: Context) {
+ MojomEncodable::encode(self.param0, encoder, context.clone());
+
+ }
+ fn decode_value(decoder: &mut Decoder, context: Context) -> Self {
+ // TODO(mknyszek): Validate bytes and version
+ let (_bytes, version) = {
+ let mut state = decoder.get_mut(&context);
+ let bytes = state.decode::<u32>();
+ let version = state.decode::<u32>();
+ (bytes, version)
+ };
+ let param0 = <StructA>::decode(decoder, context.clone());
+ ConformanceTestInterfaceMethod1Request { param0: param0 }
+ }
+}
+
+impl MojomEncodable for ConformanceTestInterfaceMethod1Request {
+ impl_encodable_for_pointer!();
+ fn compute_size(&self, context: Context) -> usize {
+ encoding::align_default(self.serialized_size(&context)) +
+ self.param0.compute_size(context.clone())
+ }
+}
+
+impl MojomStruct for ConformanceTestInterfaceMethod1Request {}
+impl MojomMessage for ConformanceTestInterfaceMethod1Request {
+ fn create_header() -> MessageHeader {
+ MessageHeader::new(ConformanceTestInterface::VERSION,
+ ConformanceTestInterfaceMethod1::ORDINAL,
+ message::MESSAGE_HEADER_NO_FLAG)
+
+ }
+}
+impl ConformanceTestInterfaceRequest for ConformanceTestInterfaceMethod1Request {}
+
+/// Message: ConformanceTestInterfaceMethod3
+pub mod ConformanceTestInterfaceMethod3 {
+ pub const ORDINAL: u32 = 3;
+ pub const MIN_VERSION: u32 = 0;
+}
+// -- ConformanceTestInterfaceMethod3Request --
+
+// Constants
+// Enums
+// Struct version information
+const ConformanceTestInterfaceMethod3RequestVersions: [(u32, u32); 1] = [(0, 16)];
+
+// Struct definition
+pub struct ConformanceTestInterfaceMethod3Request {
+ pub param0: Vec<bool>,
+}
+
+impl MojomPointer for ConformanceTestInterfaceMethod3Request {
+ fn header_data(&self) -> DataHeaderValue {
+ DataHeaderValue::Version(0)
+ }
+ fn serialized_size(&self, _context: &Context) -> usize {
+ 16
+ }
+ fn encode_value(self, encoder: &mut Encoder, context: Context) {
+ MojomEncodable::encode(self.param0, encoder, context.clone());
+
+ }
+ fn decode_value(decoder: &mut Decoder, context: Context) -> Self {
+ // TODO(mknyszek): Validate bytes and version
+ let (_bytes, version) = {
+ let mut state = decoder.get_mut(&context);
+ let bytes = state.decode::<u32>();
+ let version = state.decode::<u32>();
+ (bytes, version)
+ };
+ let param0 = <Vec<bool>>::decode(decoder, context.clone());
+ ConformanceTestInterfaceMethod3Request { param0: param0 }
+ }
+}
+
+impl MojomEncodable for ConformanceTestInterfaceMethod3Request {
+ impl_encodable_for_pointer!();
+ fn compute_size(&self, context: Context) -> usize {
+ encoding::align_default(self.serialized_size(&context)) +
+ self.param0.compute_size(context.clone())
+ }
+}
+
+impl MojomStruct for ConformanceTestInterfaceMethod3Request {}
+impl MojomMessage for ConformanceTestInterfaceMethod3Request {
+ fn create_header() -> MessageHeader {
+ MessageHeader::new(ConformanceTestInterface::VERSION,
+ ConformanceTestInterfaceMethod3::ORDINAL,
+ message::MESSAGE_HEADER_NO_FLAG)
+
+ }
+}
+impl ConformanceTestInterfaceRequest for ConformanceTestInterfaceMethod3Request {}
+
+/// Message: ConformanceTestInterfaceMethod8
+pub mod ConformanceTestInterfaceMethod8 {
+ pub const ORDINAL: u32 = 8;
+ pub const MIN_VERSION: u32 = 0;
+}
+// -- ConformanceTestInterfaceMethod8Request --
+
+// Constants
+// Enums
+// Struct version information
+const ConformanceTestInterfaceMethod8RequestVersions: [(u32, u32); 1] = [(0, 16)];
+
+// Struct definition
+pub struct ConformanceTestInterfaceMethod8Request {
+ pub param0: Vec<Option<Vec<String>>>,
+}
+
+impl MojomPointer for ConformanceTestInterfaceMethod8Request {
+ fn header_data(&self) -> DataHeaderValue {
+ DataHeaderValue::Version(0)
+ }
+ fn serialized_size(&self, _context: &Context) -> usize {
+ 16
+ }
+ fn encode_value(self, encoder: &mut Encoder, context: Context) {
+ MojomEncodable::encode(self.param0, encoder, context.clone());
+
+ }
+ fn decode_value(decoder: &mut Decoder, context: Context) -> Self {
+ // TODO(mknyszek): Validate bytes and version
+ let (_bytes, version) = {
+ let mut state = decoder.get_mut(&context);
+ let bytes = state.decode::<u32>();
+ let version = state.decode::<u32>();
+ (bytes, version)
+ };
+ let param0 = <Vec<Option<Vec<String>>>>::decode(decoder, context.clone());
+ ConformanceTestInterfaceMethod8Request { param0: param0 }
+ }
+}
+
+impl MojomEncodable for ConformanceTestInterfaceMethod8Request {
+ impl_encodable_for_pointer!();
+ fn compute_size(&self, context: Context) -> usize {
+ encoding::align_default(self.serialized_size(&context)) +
+ self.param0.compute_size(context.clone())
+ }
+}
+
+impl MojomStruct for ConformanceTestInterfaceMethod8Request {}
+impl MojomMessage for ConformanceTestInterfaceMethod8Request {
+ fn create_header() -> MessageHeader {
+ MessageHeader::new(ConformanceTestInterface::VERSION,
+ ConformanceTestInterfaceMethod8::ORDINAL,
+ message::MESSAGE_HEADER_NO_FLAG)
+
+ }
+}
+impl ConformanceTestInterfaceRequest for ConformanceTestInterfaceMethod8Request {}
+
+/// Message: ConformanceTestInterfaceMethod9
+pub mod ConformanceTestInterfaceMethod9 {
+ pub const ORDINAL: u32 = 9;
+ pub const MIN_VERSION: u32 = 0;
+}
+// -- ConformanceTestInterfaceMethod9Request --
+
+// Constants
+// Enums
+// Struct version information
+const ConformanceTestInterfaceMethod9RequestVersions: [(u32, u32); 1] = [(0, 16)];
+
+// Struct definition
+pub struct ConformanceTestInterfaceMethod9Request {
+ pub param0: Option<Vec<Vec<Option<system::UntypedHandle>>>>,
+}
+
+impl MojomPointer for ConformanceTestInterfaceMethod9Request {
+ fn header_data(&self) -> DataHeaderValue {
+ DataHeaderValue::Version(0)
+ }
+ fn serialized_size(&self, _context: &Context) -> usize {
+ 16
+ }
+ fn encode_value(self, encoder: &mut Encoder, context: Context) {
+ MojomEncodable::encode(self.param0, encoder, context.clone());
+
+ }
+ fn decode_value(decoder: &mut Decoder, context: Context) -> Self {
+ // TODO(mknyszek): Validate bytes and version
+ let (_bytes, version) = {
+ let mut state = decoder.get_mut(&context);
+ let bytes = state.decode::<u32>();
+ let version = state.decode::<u32>();
+ (bytes, version)
+ };
+ let param0 = <Option<Vec<Vec<Option<system::UntypedHandle>>>>>::decode(decoder, context.clone());
+ ConformanceTestInterfaceMethod9Request { param0: param0 }
+ }
+}
+
+impl MojomEncodable for ConformanceTestInterfaceMethod9Request {
+ impl_encodable_for_pointer!();
+ fn compute_size(&self, context: Context) -> usize {
+ encoding::align_default(self.serialized_size(&context)) +
+ self.param0.compute_size(context.clone())
+ }
+}
+
+impl MojomStruct for ConformanceTestInterfaceMethod9Request {}
+impl MojomMessage for ConformanceTestInterfaceMethod9Request {
+ fn create_header() -> MessageHeader {
+ MessageHeader::new(ConformanceTestInterface::VERSION,
+ ConformanceTestInterfaceMethod9::ORDINAL,
+ message::MESSAGE_HEADER_NO_FLAG)
+
+ }
+}
+impl ConformanceTestInterfaceRequest for ConformanceTestInterfaceMethod9Request {}
+
+/// Message: ConformanceTestInterfaceMethod13
+pub mod ConformanceTestInterfaceMethod13 {
+ pub const ORDINAL: u32 = 13;
+ pub const MIN_VERSION: u32 = 0;
+}
+// -- ConformanceTestInterfaceMethod13Request --
+
+// Constants
+// Enums
+// Struct version information
+const ConformanceTestInterfaceMethod13RequestVersions: [(u32, u32); 1] = [(0, 32)];
+
+// Struct definition
+pub struct ConformanceTestInterfaceMethod13Request {
+ pub param0: Option<InterfaceAClient>,
+ pub param1: u32,
+ pub param2: Option<InterfaceAClient>,
+}
+
+impl MojomPointer for ConformanceTestInterfaceMethod13Request {
+ fn header_data(&self) -> DataHeaderValue {
+ DataHeaderValue::Version(0)
+ }
+ fn serialized_size(&self, _context: &Context) -> usize {
+ 32
+ }
+ fn encode_value(self, encoder: &mut Encoder, context: Context) {
+ MojomEncodable::encode(self.param0, encoder, context.clone());
+ MojomEncodable::encode(self.param1, encoder, context.clone());
+ MojomEncodable::encode(self.param2, encoder, context.clone());
+
+ }
+ fn decode_value(decoder: &mut Decoder, context: Context) -> Self {
+ // TODO(mknyszek): Validate bytes and version
+ let (_bytes, version) = {
+ let mut state = decoder.get_mut(&context);
+ let bytes = state.decode::<u32>();
+ let version = state.decode::<u32>();
+ (bytes, version)
+ };
+ let param0 = <Option<InterfaceAClient>>::decode(decoder, context.clone());
+ let param1 = <u32>::decode(decoder, context.clone());
+ let param2 = <Option<InterfaceAClient>>::decode(decoder, context.clone());
+ ConformanceTestInterfaceMethod13Request {
+ param0: param0,
+ param1: param1,
+ param2: param2,
+ }
+ }
+}
+
+impl MojomEncodable for ConformanceTestInterfaceMethod13Request {
+ impl_encodable_for_pointer!();
+ fn compute_size(&self, context: Context) -> usize {
+ encoding::align_default(self.serialized_size(&context)) +
+ self.param0.compute_size(context.clone()) +
+ self.param1.compute_size(context.clone()) +
+ self.param2.compute_size(context.clone())
+ }
+}
+
+impl MojomStruct for ConformanceTestInterfaceMethod13Request {}
+impl MojomMessage for ConformanceTestInterfaceMethod13Request {
+ fn create_header() -> MessageHeader {
+ MessageHeader::new(ConformanceTestInterface::VERSION,
+ ConformanceTestInterfaceMethod13::ORDINAL,
+ message::MESSAGE_HEADER_NO_FLAG)
+
+ }
+}
+impl ConformanceTestInterfaceRequest for ConformanceTestInterfaceMethod13Request {}
+
+
+// --- IntegrationTestInterface ---
+
+pub mod IntegrationTestInterface {
+ pub const SERVICE_NAME: &'static str = "";
+ pub const VERSION: u32 = 0;
+}
+
+pub struct IntegrationTestInterfaceClient {
+ pipe: message_pipe::MessageEndpoint,
+}
+
+impl IntegrationTestInterfaceClient {
+ pub fn new(pipe: message_pipe::MessageEndpoint) -> IntegrationTestInterfaceClient {
+ IntegrationTestInterfaceClient { pipe: pipe }
+ }
+}
+
+impl CastHandle for IntegrationTestInterfaceClient {
+ unsafe fn from_untyped(handle: system::UntypedHandle) -> IntegrationTestInterfaceClient {
+ IntegrationTestInterfaceClient { pipe: message_pipe::MessageEndpoint::from_untyped(handle) }
+ }
+ fn as_untyped(self) -> system::UntypedHandle {
+ self.pipe.as_untyped()
+ }
+}
+
+impl MojomEncodable for IntegrationTestInterfaceClient {
+ impl_encodable_for_interface!();
+}
+
+impl MojomInterface for IntegrationTestInterfaceClient {
+ fn service_name() -> &'static str {
+ IntegrationTestInterface::SERVICE_NAME
+ }
+ fn version() -> u32 {
+ IntegrationTestInterface::VERSION
+ }
+ fn pipe(&self) -> &message_pipe::MessageEndpoint {
+ &self.pipe
+ }
+ fn unwrap(self) -> message_pipe::MessageEndpoint {
+ self.pipe
+ }
+}
+
+impl<R: IntegrationTestInterfaceRequest> MojomInterfaceSend<R> for IntegrationTestInterfaceClient {}
+impl MojomInterfaceRecv for IntegrationTestInterfaceClient {
+ type Container = IntegrationTestInterfaceResponseOption;
+}
+
+pub struct IntegrationTestInterfaceServer {
+ pipe: message_pipe::MessageEndpoint,
+}
+
+impl IntegrationTestInterfaceServer {
+ pub fn new(pipe: message_pipe::MessageEndpoint) -> IntegrationTestInterfaceServer {
+ IntegrationTestInterfaceServer { pipe: pipe }
+ }
+}
+
+impl CastHandle for IntegrationTestInterfaceServer {
+ unsafe fn from_untyped(handle: system::UntypedHandle) -> IntegrationTestInterfaceServer {
+ IntegrationTestInterfaceServer { pipe: message_pipe::MessageEndpoint::from_untyped(handle) }
+ }
+ fn as_untyped(self) -> system::UntypedHandle {
+ self.pipe.as_untyped()
+ }
+}
+
+impl MojomEncodable for IntegrationTestInterfaceServer {
+ impl_encodable_for_interface!();
+}
+
+impl MojomInterface for IntegrationTestInterfaceServer {
+ fn service_name() -> &'static str {
+ IntegrationTestInterface::SERVICE_NAME
+ }
+ fn version() -> u32 {
+ IntegrationTestInterface::VERSION
+ }
+ fn pipe(&self) -> &message_pipe::MessageEndpoint {
+ &self.pipe
+ }
+ fn unwrap(self) -> message_pipe::MessageEndpoint {
+ self.pipe
+ }
+}
+
+impl<R: IntegrationTestInterfaceResponse> MojomInterfaceSend<R> for IntegrationTestInterfaceServer {}
+impl MojomInterfaceRecv for IntegrationTestInterfaceServer {
+ type Container = IntegrationTestInterfaceRequestOption;
+}
+
+// Enums
+
+
+// Constants
+
+
+pub trait IntegrationTestInterfaceRequest: MojomMessage {}
+pub trait IntegrationTestInterfaceResponse: MojomMessage {}
+
+pub enum IntegrationTestInterfaceRequestOption {
+ IntegrationTestInterfaceMethod0(IntegrationTestInterfaceMethod0Request),
+}
+
+impl MojomMessageOption for IntegrationTestInterfaceRequestOption {
+ fn decode_payload(ordinal: u32, buffer: &[u8], handles: Vec<UntypedHandle>) -> Self {
+ match ordinal {
+ IntegrationTestInterfaceMethod0::ORDINAL => IntegrationTestInterfaceRequestOption::IntegrationTestInterfaceMethod0(IntegrationTestInterfaceMethod0Request::deserialize(buffer, handles)),
+ _ => panic!("Unknown message found: {}", ordinal),
+ }
+ }
+}
+
+pub enum IntegrationTestInterfaceResponseOption {
+ IntegrationTestInterfaceMethod0(IntegrationTestInterfaceMethod0Response),
+}
+
+impl MojomMessageOption for IntegrationTestInterfaceResponseOption {
+ fn decode_payload(ordinal: u32, buffer: &[u8], handles: Vec<UntypedHandle>) -> Self {
+ match ordinal {
+ IntegrationTestInterfaceMethod0::ORDINAL => IntegrationTestInterfaceResponseOption::IntegrationTestInterfaceMethod0(IntegrationTestInterfaceMethod0Response::deserialize(buffer, handles)),
+ _ => {
+ panic!("Unknown message found, or message has no response: {}",
+ ordinal)
+ }
+ }
+ }
+}
+
+/// Message: IntegrationTestInterfaceMethod0
+pub mod IntegrationTestInterfaceMethod0 {
+ pub const ORDINAL: u32 = 0;
+ pub const MIN_VERSION: u32 = 0;
+}
+// -- IntegrationTestInterfaceMethod0Request --
+
+// Constants
+// Enums
+// Struct version information
+const IntegrationTestInterfaceMethod0RequestVersions: [(u32, u32); 1] = [(0, 16)];
+
+// Struct definition
+pub struct IntegrationTestInterfaceMethod0Request {
+ pub param0: BasicStruct,
+}
+
+impl MojomPointer for IntegrationTestInterfaceMethod0Request {
+ fn header_data(&self) -> DataHeaderValue {
+ DataHeaderValue::Version(0)
+ }
+ fn serialized_size(&self, _context: &Context) -> usize {
+ 16
+ }
+ fn encode_value(self, encoder: &mut Encoder, context: Context) {
+ MojomEncodable::encode(self.param0, encoder, context.clone());
+
+ }
+ fn decode_value(decoder: &mut Decoder, context: Context) -> Self {
+ // TODO(mknyszek): Validate bytes and version
+ let (_bytes, version) = {
+ let mut state = decoder.get_mut(&context);
+ let bytes = state.decode::<u32>();
+ let version = state.decode::<u32>();
+ (bytes, version)
+ };
+ let param0 = <BasicStruct>::decode(decoder, context.clone());
+ IntegrationTestInterfaceMethod0Request { param0: param0 }
+ }
+}
+
+impl MojomEncodable for IntegrationTestInterfaceMethod0Request {
+ impl_encodable_for_pointer!();
+ fn compute_size(&self, context: Context) -> usize {
+ encoding::align_default(self.serialized_size(&context)) +
+ self.param0.compute_size(context.clone())
+ }
+}
+
+impl MojomStruct for IntegrationTestInterfaceMethod0Request {}
+impl MojomMessage for IntegrationTestInterfaceMethod0Request {
+ fn create_header() -> MessageHeader {
+ MessageHeader::new(IntegrationTestInterface::VERSION,
+ IntegrationTestInterfaceMethod0::ORDINAL,
+ message::MESSAGE_HEADER_EXPECT_RESPONSE)
+
+ }
+}
+impl IntegrationTestInterfaceRequest for IntegrationTestInterfaceMethod0Request {}
+
+// -- IntegrationTestInterfaceMethod0Response --
+
+// Constants
+// Enums
+// Struct version information
+const IntegrationTestInterfaceMethod0ResponseVersions: [(u32, u32); 1] = [(0, 16)];
+
+// Struct definition
+pub struct IntegrationTestInterfaceMethod0Response {
+ pub param0: Vec<u8>,
+}
+
+impl MojomPointer for IntegrationTestInterfaceMethod0Response {
+ fn header_data(&self) -> DataHeaderValue {
+ DataHeaderValue::Version(0)
+ }
+ fn serialized_size(&self, _context: &Context) -> usize {
+ 16
+ }
+ fn encode_value(self, encoder: &mut Encoder, context: Context) {
+ MojomEncodable::encode(self.param0, encoder, context.clone());
+
+ }
+ fn decode_value(decoder: &mut Decoder, context: Context) -> Self {
+ // TODO(mknyszek): Validate bytes and version
+ let (_bytes, version) = {
+ let mut state = decoder.get_mut(&context);
+ let bytes = state.decode::<u32>();
+ let version = state.decode::<u32>();
+ (bytes, version)
+ };
+ let param0 = <Vec<u8>>::decode(decoder, context.clone());
+ IntegrationTestInterfaceMethod0Response { param0: param0 }
+ }
+}
+
+impl MojomEncodable for IntegrationTestInterfaceMethod0Response {
+ impl_encodable_for_pointer!();
+ fn compute_size(&self, context: Context) -> usize {
+ encoding::align_default(self.serialized_size(&context)) +
+ self.param0.compute_size(context.clone())
+ }
+}
+
+impl MojomStruct for IntegrationTestInterfaceMethod0Response {}
+
+impl MojomMessage for IntegrationTestInterfaceMethod0Response {
+ fn create_header() -> MessageHeader {
+ MessageHeader::new(IntegrationTestInterface::VERSION,
+ IntegrationTestInterfaceMethod0::ORDINAL,
+ message::MESSAGE_HEADER_IS_RESPONSE)
+ }
+}
+impl IntegrationTestInterfaceResponse for IntegrationTestInterfaceMethod0Request {}
« no previous file with comments | « mojo/public/rust/tests/util/mod.rs ('k') | mojo/rust/BUILD.gn » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698