blob: 00d3f0c6cba331685dffd4a4be31dca90a0824eb [file] [log] [blame]
//! 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;
use mojo::bindings::decoding::{Decoder, ValidationError};
use mojo::bindings::encoding;
use mojo::bindings::encoding::{Context, DataHeaderValue, Encoder, DATA_HEADER_SIZE};
use mojo::bindings::message;
use mojo::bindings::message::MessageHeader;
use mojo::bindings::mojom;
use mojo::bindings::mojom::{
MojomEncodable, MojomInterface, MojomInterfaceRecv, MojomInterfaceSend, MojomMessage,
MojomMessageOption, MojomPointer, MojomStruct, MojomUnion, UNION_SIZE,
};
use mojo::system;
use mojo::system::message_pipe;
use mojo::system::{CastHandle, UntypedHandle};
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) -> Result<Self, ValidationError> {
let version = {
let mut state = decoder.get_mut(&context);
match state.decode_struct_header(&StructAVersions) {
Ok(header) => header.data(),
Err(err) => return Err(err),
}
};
let i = match <u64>::decode(decoder, context.clone()) {
Ok(value) => value,
Err(err) => return Err(err),
};
Ok(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) -> Result<Self, ValidationError> {
let version = {
let mut state = decoder.get_mut(&context);
match state.decode_struct_header(&StructBVersions) {
Ok(header) => header.data(),
Err(err) => return Err(err),
}
};
let struct_a = match <StructA>::decode(decoder, context.clone()) {
Ok(value) => value,
Err(err) => return Err(err),
};
Ok(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) -> Result<Self, ValidationError> {
let version = {
let mut state = decoder.get_mut(&context);
match state.decode_struct_header(&StructCVersions) {
Ok(header) => header.data(),
Err(err) => return Err(err),
}
};
let data = match <Vec<u8>>::decode(decoder, context.clone()) {
Ok(value) => value,
Err(err) => return Err(err),
};
Ok(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) -> Result<Self, ValidationError> {
let version = {
let mut state = decoder.get_mut(&context);
match state.decode_struct_header(&StructDVersions) {
Ok(header) => header.data(),
Err(err) => return Err(err),
}
};
let message_pipes =
match <Vec<message_pipe::MessageEndpoint>>::decode(decoder, context.clone()) {
Ok(value) => value,
Err(err) => return Err(err),
};
Ok(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) -> Result<Self, ValidationError> {
let version = {
let mut state = decoder.get_mut(&context);
match state.decode_struct_header(&StructEVersions) {
Ok(header) => header.data(),
Err(err) => return Err(err),
}
};
let struct_d = match <StructD>::decode(decoder, context.clone()) {
Ok(value) => value,
Err(err) => return Err(err),
};
let data_pipe_consumer =
match <system::data_pipe::Consumer<u8>>::decode(decoder, context.clone()) {
Ok(value) => value,
Err(err) => return Err(err),
};
Ok(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) -> Result<Self, ValidationError> {
let version = {
let mut state = decoder.get_mut(&context);
match state.decode_struct_header(&StructFVersions) {
Ok(header) => header.data(),
Err(err) => return Err(err),
}
};
let fixed_size_array = match <[u8; 3]>::decode(decoder, context.clone()) {
Ok(value) => value,
Err(err) => return Err(err),
};
Ok(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) -> Result<Self, ValidationError> {
let version = {
let mut state = decoder.get_mut(&context);
match state.decode_struct_header(&StructGVersions) {
Ok(header) => header.data(),
Err(err) => return Err(err),
}
};
let i = match <i32>::decode(decoder, context.clone()) {
Ok(value) => value,
Err(err) => return Err(err),
};
let b = if version >= 3 {
match <bool>::decode(decoder, context.clone()) {
Ok(value) => value,
Err(err) => return Err(err),
}
} else {
Default::default()
};
let struct_a = if version >= 1 {
match <Option<StructA>>::decode(decoder, context.clone()) {
Ok(value) => value,
Err(err) => return Err(err),
}
} else {
Default::default()
};
let str = if version >= 3 {
match <Option<String>>::decode(decoder, context.clone()) {
Ok(value) => value,
Err(err) => return Err(err),
}
} else {
Default::default()
};
Ok(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) -> Result<Self, ValidationError> {
let version = {
let mut state = decoder.get_mut(&context);
match state.decode_struct_header(&StructHVersions) {
Ok(header) => header.data(),
Err(err) => return Err(err),
}
};
let a = match <bool>::decode(decoder, context.clone()) {
Ok(value) => value,
Err(err) => return Err(err),
};
let b = match <u8>::decode(decoder, context.clone()) {
Ok(value) => value,
Err(err) => return Err(err),
};
let c = match <Option<UnionA>>::decode(decoder, context.clone()) {
Ok(value) => value,
Err(err) => return Err(err),
};
let d = match <Option<Vec<UnionA>>>::decode(decoder, context.clone()) {
Ok(value) => value,
Err(err) => return Err(err),
};
let e = match <Option<HashMap<u8, UnionA>>>::decode(decoder, context.clone()) {
Ok(value) => value,
Err(err) => return Err(err),
};
Ok(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) -> Result<Self, ValidationError> {
let version = {
let mut state = decoder.get_mut(&context);
match state.decode_struct_header(&BasicStructVersions) {
Ok(header) => header.data(),
Err(err) => return Err(err),
}
};
let a = match <i32>::decode(decoder, context.clone()) {
Ok(value) => value,
Err(err) => return Err(err),
};
Ok(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) -> Result<Self, ValidationError> {
let version = {
let mut state = decoder.get_mut(&context);
match state.decode_struct_header(&StructWithEnumVersions) {
Ok(header) => header.data(),
Err(err) => return Err(err),
}
};
Ok(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) -> Result<Self, ValidationError> {
let tag = {
let mut state = decoder.get_mut(&context);
let bytes = state.decode::<u32>();
if (bytes as usize) != UNION_SIZE {
return Err(ValidationError::UnexpectedNullUnion);
}
state.decode::<u32>()
};
Ok(match tag {
UnionATag_a => UnionA::a({
match <u16>::decode(decoder, context.clone()) {
Ok(value) => value,
Err(err) => return Err(err),
}
}),
UnionATag_b => UnionA::b({
match <u32>::decode(decoder, context.clone()) {
Ok(value) => value,
Err(err) => return Err(err),
}
}),
UnionATag_c => UnionA::c({
match <Option<StructA>>::decode(decoder, context.clone()) {
Ok(value) => value,
Err(err) => return Err(err),
}
}),
UnionATag_d => UnionA::d({
match <Option<Vec<u8>>>::decode(decoder, context.clone()) {
Ok(value) => value,
Err(err) => return Err(err),
}
}),
UnionATag_e => UnionA::e({
match <Option<HashMap<String, u8>>>::decode(decoder, context.clone()) {
Ok(value) => value,
Err(err) => return Err(err),
}
}),
UnionATag_f => UnionA::f({
match <Option<UnionB>>::decode(decoder, context.clone()) {
Ok(value) => value,
Err(err) => return Err(err),
}
}),
UnionATag_g => UnionA::g({
match <StructA>::decode(decoder, context.clone()) {
Ok(value) => value,
Err(err) => return Err(err),
}
}),
UnionATag_h => UnionA::h({
match <Vec<u8>>::decode(decoder, context.clone()) {
Ok(value) => value,
Err(err) => return Err(err),
}
}),
UnionATag_i => UnionA::i({
match <HashMap<String, u8>>::decode(decoder, context.clone()) {
Ok(value) => value,
Err(err) => return Err(err),
}
}),
UnionATag_j => UnionA::j({
match <UnionB>::decode(decoder, context.clone()) {
Ok(value) => value,
Err(err) => return Err(err),
}
}),
_ => UnionA::_Unknown(u64::decode(decoder, context.clone()).unwrap()),
})
}
}
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) -> Result<Self, ValidationError> {
let tag = {
let mut state = decoder.get_mut(&context);
let bytes = state.decode::<u32>();
if (bytes as usize) != UNION_SIZE {
return Err(ValidationError::UnexpectedNullUnion);
}
state.decode::<u32>()
};
Ok(match tag {
UnionBTag_a => UnionB::a({
match <u16>::decode(decoder, context.clone()) {
Ok(value) => value,
Err(err) => return Err(err),
}
}),
UnionBTag_b => UnionB::b({
match <u32>::decode(decoder, context.clone()) {
Ok(value) => value,
Err(err) => return Err(err),
}
}),
UnionBTag_c => UnionB::c({
match <u64>::decode(decoder, context.clone()) {
Ok(value) => value,
Err(err) => return Err(err),
}
}),
UnionBTag_d => UnionB::d({
match <u32>::decode(decoder, context.clone()) {
Ok(value) => value,
Err(err) => return Err(err),
}
}),
_ => UnionB::_Unknown(u64::decode(decoder, context.clone()).unwrap()),
})
}
}
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,
version: u32,
}
impl InterfaceAClient {
pub fn new(pipe: message_pipe::MessageEndpoint) -> InterfaceAClient {
InterfaceAClient { pipe: pipe, version: InterfaceA::VERSION }
}
pub fn with_version(pipe: message_pipe::MessageEndpoint, version: u32) -> InterfaceAClient {
InterfaceAClient { pipe: pipe, version: version }
}
}
impl MojomInterface for InterfaceAClient {
fn service_name() -> &'static str {
InterfaceA::SERVICE_NAME
}
fn version(&self) -> u32 {
self.version
}
fn pipe(&self) -> &message_pipe::MessageEndpoint {
&self.pipe
}
fn unwrap(self) -> message_pipe::MessageEndpoint {
self.pipe
}
}
impl CastHandle for InterfaceAClient {
unsafe fn from_untyped(handle: system::UntypedHandle) -> InterfaceAClient {
InterfaceAClient {
pipe: message_pipe::MessageEndpoint::from_untyped(handle),
version: 0, // Since we have no other information, assume its the base
}
}
fn as_untyped(self) -> system::UntypedHandle {
self.pipe.as_untyped()
}
}
impl MojomEncodable for InterfaceAClient {
impl_encodable_for_interface!();
}
impl<R: InterfaceARequest> MojomInterfaceSend<R> for InterfaceAClient {}
impl MojomInterfaceRecv for InterfaceAClient {
type Container = InterfaceAResponseOption;
}
pub struct InterfaceAServer {
pipe: message_pipe::MessageEndpoint,
version: u32,
}
impl InterfaceAServer {
pub fn new(pipe: message_pipe::MessageEndpoint) -> InterfaceAServer {
InterfaceAServer { pipe: pipe, version: InterfaceA::VERSION }
}
pub fn with_version(pipe: message_pipe::MessageEndpoint, version: u32) -> InterfaceAServer {
InterfaceAServer { pipe: pipe, version: version }
}
}
impl MojomInterface for InterfaceAServer {
fn service_name() -> &'static str {
InterfaceA::SERVICE_NAME
}
fn version(&self) -> u32 {
self.version
}
fn pipe(&self) -> &message_pipe::MessageEndpoint {
&self.pipe
}
fn unwrap(self) -> message_pipe::MessageEndpoint {
self.pipe
}
}
impl CastHandle for InterfaceAServer {
unsafe fn from_untyped(handle: system::UntypedHandle) -> InterfaceAServer {
InterfaceAServer {
pipe: message_pipe::MessageEndpoint::from_untyped(handle),
version: 0, // Since we have no other information, assume its the base
}
}
fn as_untyped(self) -> system::UntypedHandle {
self.pipe.as_untyped()
}
}
impl MojomEncodable for InterfaceAServer {
impl_encodable_for_interface!();
}
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(
header: MessageHeader,
buffer: &[u8],
handles: Vec<UntypedHandle>,
) -> Result<Self, ValidationError> {
match header.name {
_ => Err(ValidationError::MessageHeaderUnknownMethod),
}
}
}
pub enum InterfaceAResponseOption {}
impl MojomMessageOption for InterfaceAResponseOption {
fn decode_payload(
header: MessageHeader,
buffer: &[u8],
handles: Vec<UntypedHandle>,
) -> Result<Self, ValidationError> {
if header.flags != message::MESSAGE_HEADER_IS_RESPONSE {
return Err(ValidationError::MessageHeaderInvalidFlags);
}
match header.name {
_ => Err(ValidationError::MessageHeaderUnknownMethod),
}
}
}
// --- 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,
version: u32,
}
impl BoundsCheckTestInterfaceClient {
pub fn new(pipe: message_pipe::MessageEndpoint) -> BoundsCheckTestInterfaceClient {
BoundsCheckTestInterfaceClient { pipe: pipe, version: BoundsCheckTestInterface::VERSION }
}
pub fn with_version(
pipe: message_pipe::MessageEndpoint,
version: u32,
) -> BoundsCheckTestInterfaceClient {
BoundsCheckTestInterfaceClient { pipe: pipe, version: version }
}
}
impl MojomInterface for BoundsCheckTestInterfaceClient {
fn service_name() -> &'static str {
BoundsCheckTestInterface::SERVICE_NAME
}
fn version(&self) -> u32 {
self.version
}
fn pipe(&self) -> &message_pipe::MessageEndpoint {
&self.pipe
}
fn unwrap(self) -> message_pipe::MessageEndpoint {
self.pipe
}
}
impl CastHandle for BoundsCheckTestInterfaceClient {
unsafe fn from_untyped(handle: system::UntypedHandle) -> BoundsCheckTestInterfaceClient {
BoundsCheckTestInterfaceClient {
pipe: message_pipe::MessageEndpoint::from_untyped(handle),
version: 0, // Since we have no other information, assume its the base
}
}
fn as_untyped(self) -> system::UntypedHandle {
self.pipe.as_untyped()
}
}
impl MojomEncodable for BoundsCheckTestInterfaceClient {
impl_encodable_for_interface!();
}
impl<R: BoundsCheckTestInterfaceRequest> MojomInterfaceSend<R> for BoundsCheckTestInterfaceClient {}
impl MojomInterfaceRecv for BoundsCheckTestInterfaceClient {
type Container = BoundsCheckTestInterfaceResponseOption;
}
pub struct BoundsCheckTestInterfaceServer {
pipe: message_pipe::MessageEndpoint,
version: u32,
}
impl BoundsCheckTestInterfaceServer {
pub fn new(pipe: message_pipe::MessageEndpoint) -> BoundsCheckTestInterfaceServer {
BoundsCheckTestInterfaceServer { pipe: pipe, version: BoundsCheckTestInterface::VERSION }
}
pub fn with_version(
pipe: message_pipe::MessageEndpoint,
version: u32,
) -> BoundsCheckTestInterfaceServer {
BoundsCheckTestInterfaceServer { pipe: pipe, version: version }
}
}
impl MojomInterface for BoundsCheckTestInterfaceServer {
fn service_name() -> &'static str {
BoundsCheckTestInterface::SERVICE_NAME
}
fn version(&self) -> u32 {
self.version
}
fn pipe(&self) -> &message_pipe::MessageEndpoint {
&self.pipe
}
fn unwrap(self) -> message_pipe::MessageEndpoint {
self.pipe
}
}
impl CastHandle for BoundsCheckTestInterfaceServer {
unsafe fn from_untyped(handle: system::UntypedHandle) -> BoundsCheckTestInterfaceServer {
BoundsCheckTestInterfaceServer {
pipe: message_pipe::MessageEndpoint::from_untyped(handle),
version: 0, // Since we have no other information, assume its the base
}
}
fn as_untyped(self) -> system::UntypedHandle {
self.pipe.as_untyped()
}
}
impl MojomEncodable for BoundsCheckTestInterfaceServer {
impl_encodable_for_interface!();
}
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(
header: MessageHeader,
buffer: &[u8],
handles: Vec<UntypedHandle>,
) -> Result<Self, ValidationError> {
match header.name {
BoundsCheckTestInterfaceMethod0::ORDINAL => {
if header.flags != message::MESSAGE_HEADER_EXPECT_RESPONSE {
return Err(ValidationError::MessageHeaderInvalidFlags);
}
match BoundsCheckTestInterfaceMethod0Request::deserialize(buffer, handles) {
Ok(value) => {
Ok(BoundsCheckTestInterfaceRequestOption::BoundsCheckTestInterfaceMethod0(
value,
))
}
Err(err) => return Err(err),
}
}
BoundsCheckTestInterfaceMethod1::ORDINAL => {
if header.flags != message::MESSAGE_HEADER_NO_FLAG {
return Err(ValidationError::MessageHeaderInvalidFlags);
}
match BoundsCheckTestInterfaceMethod1Request::deserialize(buffer, handles) {
Ok(value) => {
Ok(BoundsCheckTestInterfaceRequestOption::BoundsCheckTestInterfaceMethod1(
value,
))
}
Err(err) => return Err(err),
}
}
_ => Err(ValidationError::MessageHeaderUnknownMethod),
}
}
}
pub enum BoundsCheckTestInterfaceResponseOption {
BoundsCheckTestInterfaceMethod0(BoundsCheckTestInterfaceMethod0Response),
}
impl MojomMessageOption for BoundsCheckTestInterfaceResponseOption {
fn decode_payload(
header: MessageHeader,
buffer: &[u8],
handles: Vec<UntypedHandle>,
) -> Result<Self, ValidationError> {
if header.flags != message::MESSAGE_HEADER_IS_RESPONSE {
return Err(ValidationError::MessageHeaderInvalidFlags);
}
match header.name {
BoundsCheckTestInterfaceMethod0::ORDINAL => {
match BoundsCheckTestInterfaceMethod0Response::deserialize(buffer, handles) {
Ok(value) => {
Ok(BoundsCheckTestInterfaceResponseOption::BoundsCheckTestInterfaceMethod0(
value,
))
}
Err(err) => return Err(err),
}
}
_ => Err(ValidationError::MessageHeaderUnknownMethod),
}
}
}
/// 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) -> Result<Self, ValidationError> {
let version = {
let mut state = decoder.get_mut(&context);
match state.decode_struct_header(&BoundsCheckTestInterfaceMethod0RequestVersions) {
Ok(header) => header.data(),
Err(err) => return Err(err),
}
};
let param0 = match <u8>::decode(decoder, context.clone()) {
Ok(value) => value,
Err(err) => return Err(err),
};
Ok(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 min_version() -> u32 {
BoundsCheckTestInterfaceMethod0::MIN_VERSION
}
fn create_header() -> MessageHeader {
MessageHeader::new(
1,
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) -> Result<Self, ValidationError> {
let version = {
let mut state = decoder.get_mut(&context);
match state.decode_struct_header(&BoundsCheckTestInterfaceMethod0ResponseVersions) {
Ok(header) => header.data(),
Err(err) => return Err(err),
}
};
let param0 = match <u8>::decode(decoder, context.clone()) {
Ok(value) => value,
Err(err) => return Err(err),
};
Ok(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 min_version() -> u32 {
BoundsCheckTestInterfaceMethod0::MIN_VERSION
}
fn create_header() -> MessageHeader {
MessageHeader::new(
1,
BoundsCheckTestInterfaceMethod0::ORDINAL,
message::MESSAGE_HEADER_IS_RESPONSE,
)
}
}
impl BoundsCheckTestInterfaceResponse for BoundsCheckTestInterfaceMethod0Response {}
/// 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) -> Result<Self, ValidationError> {
let version = {
let mut state = decoder.get_mut(&context);
match state.decode_struct_header(&BoundsCheckTestInterfaceMethod1RequestVersions) {
Ok(header) => header.data(),
Err(err) => return Err(err),
}
};
let param0 = match <u8>::decode(decoder, context.clone()) {
Ok(value) => value,
Err(err) => return Err(err),
};
Ok(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 min_version() -> u32 {
BoundsCheckTestInterfaceMethod1::MIN_VERSION
}
fn create_header() -> MessageHeader {
MessageHeader::new(
0,
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,
version: u32,
}
impl ConformanceTestInterfaceClient {
pub fn new(pipe: message_pipe::MessageEndpoint) -> ConformanceTestInterfaceClient {
ConformanceTestInterfaceClient { pipe: pipe, version: ConformanceTestInterface::VERSION }
}
pub fn with_version(
pipe: message_pipe::MessageEndpoint,
version: u32,
) -> ConformanceTestInterfaceClient {
ConformanceTestInterfaceClient { pipe: pipe, version: version }
}
}
impl MojomInterface for ConformanceTestInterfaceClient {
fn service_name() -> &'static str {
ConformanceTestInterface::SERVICE_NAME
}
fn version(&self) -> u32 {
self.version
}
fn pipe(&self) -> &message_pipe::MessageEndpoint {
&self.pipe
}
fn unwrap(self) -> message_pipe::MessageEndpoint {
self.pipe
}
}
impl CastHandle for ConformanceTestInterfaceClient {
unsafe fn from_untyped(handle: system::UntypedHandle) -> ConformanceTestInterfaceClient {
ConformanceTestInterfaceClient {
pipe: message_pipe::MessageEndpoint::from_untyped(handle),
version: 0, // Since we have no other information, assume its the base
}
}
fn as_untyped(self) -> system::UntypedHandle {
self.pipe.as_untyped()
}
}
impl MojomEncodable for ConformanceTestInterfaceClient {
impl_encodable_for_interface!();
}
impl<R: ConformanceTestInterfaceRequest> MojomInterfaceSend<R> for ConformanceTestInterfaceClient {}
impl MojomInterfaceRecv for ConformanceTestInterfaceClient {
type Container = ConformanceTestInterfaceResponseOption;
}
pub struct ConformanceTestInterfaceServer {
pipe: message_pipe::MessageEndpoint,
version: u32,
}
impl ConformanceTestInterfaceServer {
pub fn new(pipe: message_pipe::MessageEndpoint) -> ConformanceTestInterfaceServer {
ConformanceTestInterfaceServer { pipe: pipe, version: ConformanceTestInterface::VERSION }
}
pub fn with_version(
pipe: message_pipe::MessageEndpoint,
version: u32,
) -> ConformanceTestInterfaceServer {
ConformanceTestInterfaceServer { pipe: pipe, version: version }
}
}
impl MojomInterface for ConformanceTestInterfaceServer {
fn service_name() -> &'static str {
ConformanceTestInterface::SERVICE_NAME
}
fn version(&self) -> u32 {
self.version
}
fn pipe(&self) -> &message_pipe::MessageEndpoint {
&self.pipe
}
fn unwrap(self) -> message_pipe::MessageEndpoint {
self.pipe
}
}
impl CastHandle for ConformanceTestInterfaceServer {
unsafe fn from_untyped(handle: system::UntypedHandle) -> ConformanceTestInterfaceServer {
ConformanceTestInterfaceServer {
pipe: message_pipe::MessageEndpoint::from_untyped(handle),
version: 0, // Since we have no other information, assume its the base
}
}
fn as_untyped(self) -> system::UntypedHandle {
self.pipe.as_untyped()
}
}
impl MojomEncodable for ConformanceTestInterfaceServer {
impl_encodable_for_interface!();
}
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 {
ConformanceTestInterfaceMethod3(ConformanceTestInterfaceMethod3Request),
ConformanceTestInterfaceMethod4(ConformanceTestInterfaceMethod4Request),
ConformanceTestInterfaceMethod5(ConformanceTestInterfaceMethod5Request),
ConformanceTestInterfaceMethod7(ConformanceTestInterfaceMethod7Request),
ConformanceTestInterfaceMethod12(ConformanceTestInterfaceMethod12Request),
ConformanceTestInterfaceMethod14(ConformanceTestInterfaceMethod14Request),
ConformanceTestInterfaceMethod15(ConformanceTestInterfaceMethod15Request),
ConformanceTestInterfaceMethod1(ConformanceTestInterfaceMethod1Request),
ConformanceTestInterfaceMethod2(ConformanceTestInterfaceMethod2Request),
ConformanceTestInterfaceMethod6(ConformanceTestInterfaceMethod6Request),
ConformanceTestInterfaceMethod8(ConformanceTestInterfaceMethod8Request),
ConformanceTestInterfaceMethod10(ConformanceTestInterfaceMethod10Request),
ConformanceTestInterfaceMethod11(ConformanceTestInterfaceMethod11Request),
ConformanceTestInterfaceMethod0(ConformanceTestInterfaceMethod0Request),
ConformanceTestInterfaceMethod9(ConformanceTestInterfaceMethod9Request),
ConformanceTestInterfaceMethod13(ConformanceTestInterfaceMethod13Request),
}
impl MojomMessageOption for ConformanceTestInterfaceRequestOption {
fn decode_payload(
header: MessageHeader,
buffer: &[u8],
handles: Vec<UntypedHandle>,
) -> Result<Self, ValidationError> {
match header.name {
ConformanceTestInterfaceMethod3::ORDINAL => {
if header.flags != message::MESSAGE_HEADER_NO_FLAG {
return Err(ValidationError::MessageHeaderInvalidFlags);
}
match ConformanceTestInterfaceMethod3Request::deserialize(buffer, handles) {
Ok(value) => {
Ok(ConformanceTestInterfaceRequestOption::ConformanceTestInterfaceMethod3(
value,
))
}
Err(err) => return Err(err),
}
}
ConformanceTestInterfaceMethod4::ORDINAL => {
if header.flags != message::MESSAGE_HEADER_NO_FLAG {
return Err(ValidationError::MessageHeaderInvalidFlags);
}
match ConformanceTestInterfaceMethod4Request::deserialize(buffer, handles) {
Ok(value) => {
Ok(ConformanceTestInterfaceRequestOption::ConformanceTestInterfaceMethod4(
value,
))
}
Err(err) => return Err(err),
}
}
ConformanceTestInterfaceMethod5::ORDINAL => {
if header.flags != message::MESSAGE_HEADER_NO_FLAG {
return Err(ValidationError::MessageHeaderInvalidFlags);
}
match ConformanceTestInterfaceMethod5Request::deserialize(buffer, handles) {
Ok(value) => {
Ok(ConformanceTestInterfaceRequestOption::ConformanceTestInterfaceMethod5(
value,
))
}
Err(err) => return Err(err),
}
}
ConformanceTestInterfaceMethod7::ORDINAL => {
if header.flags != message::MESSAGE_HEADER_NO_FLAG {
return Err(ValidationError::MessageHeaderInvalidFlags);
}
match ConformanceTestInterfaceMethod7Request::deserialize(buffer, handles) {
Ok(value) => {
Ok(ConformanceTestInterfaceRequestOption::ConformanceTestInterfaceMethod7(
value,
))
}
Err(err) => return Err(err),
}
}
ConformanceTestInterfaceMethod12::ORDINAL => {
if header.flags != message::MESSAGE_HEADER_EXPECT_RESPONSE {
return Err(ValidationError::MessageHeaderInvalidFlags);
}
match ConformanceTestInterfaceMethod12Request::deserialize(buffer, handles) {
Ok(value) => {
Ok(ConformanceTestInterfaceRequestOption::ConformanceTestInterfaceMethod12(
value,
))
}
Err(err) => return Err(err),
}
}
ConformanceTestInterfaceMethod14::ORDINAL => {
if header.flags != message::MESSAGE_HEADER_NO_FLAG {
return Err(ValidationError::MessageHeaderInvalidFlags);
}
match ConformanceTestInterfaceMethod14Request::deserialize(buffer, handles) {
Ok(value) => {
Ok(ConformanceTestInterfaceRequestOption::ConformanceTestInterfaceMethod14(
value,
))
}
Err(err) => return Err(err),
}
}
ConformanceTestInterfaceMethod15::ORDINAL => {
if header.flags != message::MESSAGE_HEADER_NO_FLAG {
return Err(ValidationError::MessageHeaderInvalidFlags);
}
match ConformanceTestInterfaceMethod15Request::deserialize(buffer, handles) {
Ok(value) => {
Ok(ConformanceTestInterfaceRequestOption::ConformanceTestInterfaceMethod15(
value,
))
}
Err(err) => return Err(err),
}
}
ConformanceTestInterfaceMethod1::ORDINAL => {
if header.flags != message::MESSAGE_HEADER_NO_FLAG {
return Err(ValidationError::MessageHeaderInvalidFlags);
}
match ConformanceTestInterfaceMethod1Request::deserialize(buffer, handles) {
Ok(value) => {
Ok(ConformanceTestInterfaceRequestOption::ConformanceTestInterfaceMethod1(
value,
))
}
Err(err) => return Err(err),
}
}
ConformanceTestInterfaceMethod2::ORDINAL => {
if header.flags != message::MESSAGE_HEADER_NO_FLAG {
return Err(ValidationError::MessageHeaderInvalidFlags);
}
match ConformanceTestInterfaceMethod2Request::deserialize(buffer, handles) {
Ok(value) => {
Ok(ConformanceTestInterfaceRequestOption::ConformanceTestInterfaceMethod2(
value,
))
}
Err(err) => return Err(err),
}
}
ConformanceTestInterfaceMethod6::ORDINAL => {
if header.flags != message::MESSAGE_HEADER_NO_FLAG {
return Err(ValidationError::MessageHeaderInvalidFlags);
}
match ConformanceTestInterfaceMethod6Request::deserialize(buffer, handles) {
Ok(value) => {
Ok(ConformanceTestInterfaceRequestOption::ConformanceTestInterfaceMethod6(
value,
))
}
Err(err) => return Err(err),
}
}
ConformanceTestInterfaceMethod8::ORDINAL => {
if header.flags != message::MESSAGE_HEADER_NO_FLAG {
return Err(ValidationError::MessageHeaderInvalidFlags);
}
match ConformanceTestInterfaceMethod8Request::deserialize(buffer, handles) {
Ok(value) => {
Ok(ConformanceTestInterfaceRequestOption::ConformanceTestInterfaceMethod8(
value,
))
}
Err(err) => return Err(err),
}
}
ConformanceTestInterfaceMethod10::ORDINAL => {
if header.flags != message::MESSAGE_HEADER_NO_FLAG {
return Err(ValidationError::MessageHeaderInvalidFlags);
}
match ConformanceTestInterfaceMethod10Request::deserialize(buffer, handles) {
Ok(value) => {
Ok(ConformanceTestInterfaceRequestOption::ConformanceTestInterfaceMethod10(
value,
))
}
Err(err) => return Err(err),
}
}
ConformanceTestInterfaceMethod11::ORDINAL => {
if header.flags != message::MESSAGE_HEADER_NO_FLAG {
return Err(ValidationError::MessageHeaderInvalidFlags);
}
match ConformanceTestInterfaceMethod11Request::deserialize(buffer, handles) {
Ok(value) => {
Ok(ConformanceTestInterfaceRequestOption::ConformanceTestInterfaceMethod11(
value,
))
}
Err(err) => return Err(err),
}
}
ConformanceTestInterfaceMethod0::ORDINAL => {
if header.flags != message::MESSAGE_HEADER_NO_FLAG {
return Err(ValidationError::MessageHeaderInvalidFlags);
}
match ConformanceTestInterfaceMethod0Request::deserialize(buffer, handles) {
Ok(value) => {
Ok(ConformanceTestInterfaceRequestOption::ConformanceTestInterfaceMethod0(
value,
))
}
Err(err) => return Err(err),
}
}
ConformanceTestInterfaceMethod9::ORDINAL => {
if header.flags != message::MESSAGE_HEADER_NO_FLAG {
return Err(ValidationError::MessageHeaderInvalidFlags);
}
match ConformanceTestInterfaceMethod9Request::deserialize(buffer, handles) {
Ok(value) => {
Ok(ConformanceTestInterfaceRequestOption::ConformanceTestInterfaceMethod9(
value,
))
}
Err(err) => return Err(err),
}
}
ConformanceTestInterfaceMethod13::ORDINAL => {
if header.flags != message::MESSAGE_HEADER_NO_FLAG {
return Err(ValidationError::MessageHeaderInvalidFlags);
}
match ConformanceTestInterfaceMethod13Request::deserialize(buffer, handles) {
Ok(value) => {
Ok(ConformanceTestInterfaceRequestOption::ConformanceTestInterfaceMethod13(
value,
))
}
Err(err) => return Err(err),
}
}
_ => Err(ValidationError::MessageHeaderUnknownMethod),
}
}
}
pub enum ConformanceTestInterfaceResponseOption {
ConformanceTestInterfaceMethod12(ConformanceTestInterfaceMethod12Response),
}
impl MojomMessageOption for ConformanceTestInterfaceResponseOption {
fn decode_payload(
header: MessageHeader,
buffer: &[u8],
handles: Vec<UntypedHandle>,
) -> Result<Self, ValidationError> {
if header.flags != message::MESSAGE_HEADER_IS_RESPONSE {
return Err(ValidationError::MessageHeaderInvalidFlags);
}
match header.name {
ConformanceTestInterfaceMethod12::ORDINAL => {
match ConformanceTestInterfaceMethod12Response::deserialize(buffer, handles) {
Ok(value) => Ok(
ConformanceTestInterfaceResponseOption::ConformanceTestInterfaceMethod12(
value,
),
),
Err(err) => return Err(err),
}
}
_ => Err(ValidationError::MessageHeaderUnknownMethod),
}
}
}
/// 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) -> Result<Self, ValidationError> {
let version = {
let mut state = decoder.get_mut(&context);
match state.decode_struct_header(&ConformanceTestInterfaceMethod3RequestVersions) {
Ok(header) => header.data(),
Err(err) => return Err(err),
}
};
let param0 = match <Vec<bool>>::decode(decoder, context.clone()) {
Ok(value) => value,
Err(err) => return Err(err),
};
Ok(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 min_version() -> u32 {
ConformanceTestInterfaceMethod3::MIN_VERSION
}
fn create_header() -> MessageHeader {
MessageHeader::new(
0,
ConformanceTestInterfaceMethod3::ORDINAL,
message::MESSAGE_HEADER_NO_FLAG,
)
}
}
impl ConformanceTestInterfaceRequest for ConformanceTestInterfaceMethod3Request {}
/// 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) -> Result<Self, ValidationError> {
let version = {
let mut state = decoder.get_mut(&context);
match state.decode_struct_header(&ConformanceTestInterfaceMethod4RequestVersions) {
Ok(header) => header.data(),
Err(err) => return Err(err),
}
};
let param0 = match <StructC>::decode(decoder, context.clone()) {
Ok(value) => value,
Err(err) => return Err(err),
};
let param1 = match <Vec<u8>>::decode(decoder, context.clone()) {
Ok(value) => value,
Err(err) => return Err(err),
};
Ok(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 min_version() -> u32 {
ConformanceTestInterfaceMethod4::MIN_VERSION
}
fn create_header() -> MessageHeader {
MessageHeader::new(
0,
ConformanceTestInterfaceMethod4::ORDINAL,
message::MESSAGE_HEADER_NO_FLAG,
)
}
}
impl ConformanceTestInterfaceRequest for ConformanceTestInterfaceMethod4Request {}
/// 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) -> Result<Self, ValidationError> {
let version = {
let mut state = decoder.get_mut(&context);
match state.decode_struct_header(&ConformanceTestInterfaceMethod5RequestVersions) {
Ok(header) => header.data(),
Err(err) => return Err(err),
}
};
let param0 = match <StructE>::decode(decoder, context.clone()) {
Ok(value) => value,
Err(err) => return Err(err),
};
let param1 = match <system::data_pipe::Producer<u8>>::decode(decoder, context.clone()) {
Ok(value) => value,
Err(err) => return Err(err),
};
Ok(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 min_version() -> u32 {
ConformanceTestInterfaceMethod5::MIN_VERSION
}
fn create_header() -> MessageHeader {
MessageHeader::new(
0,
ConformanceTestInterfaceMethod5::ORDINAL,
message::MESSAGE_HEADER_NO_FLAG,
)
}
}
impl ConformanceTestInterfaceRequest for ConformanceTestInterfaceMethod5Request {}
/// 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) -> Result<Self, ValidationError> {
let version = {
let mut state = decoder.get_mut(&context);
match state.decode_struct_header(&ConformanceTestInterfaceMethod7RequestVersions) {
Ok(header) => header.data(),
Err(err) => return Err(err),
}
};
let param0 = match <StructF>::decode(decoder, context.clone()) {
Ok(value) => value,
Err(err) => return Err(err),
};
let param1 = match <[Option<[u8; 3]>; 2]>::decode(decoder, context.clone()) {
Ok(value) => value,
Err(err) => return Err(err),
};
Ok(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 min_version() -> u32 {
ConformanceTestInterfaceMethod7::MIN_VERSION
}
fn create_header() -> MessageHeader {
MessageHeader::new(
0,
ConformanceTestInterfaceMethod7::ORDINAL,
message::MESSAGE_HEADER_NO_FLAG,
)
}
}
impl ConformanceTestInterfaceRequest for ConformanceTestInterfaceMethod7Request {}
/// 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) -> Result<Self, ValidationError> {
let version = {
let mut state = decoder.get_mut(&context);
match state.decode_struct_header(&ConformanceTestInterfaceMethod12RequestVersions) {
Ok(header) => header.data(),
Err(err) => return Err(err),
}
};
let param0 = match <f32>::decode(decoder, context.clone()) {
Ok(value) => value,
Err(err) => return Err(err),
};
Ok(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 min_version() -> u32 {
ConformanceTestInterfaceMethod12::MIN_VERSION
}
fn create_header() -> MessageHeader {
MessageHeader::new(
1,
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) -> Result<Self, ValidationError> {
let version = {
let mut state = decoder.get_mut(&context);
match state.decode_struct_header(&ConformanceTestInterfaceMethod12ResponseVersions) {
Ok(header) => header.data(),
Err(err) => return Err(err),
}
};
let param0 = match <f32>::decode(decoder, context.clone()) {
Ok(value) => value,
Err(err) => return Err(err),
};
Ok(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 min_version() -> u32 {
ConformanceTestInterfaceMethod12::MIN_VERSION
}
fn create_header() -> MessageHeader {
MessageHeader::new(
1,
ConformanceTestInterfaceMethod12::ORDINAL,
message::MESSAGE_HEADER_IS_RESPONSE,
)
}
}
impl ConformanceTestInterfaceResponse for ConformanceTestInterfaceMethod12Response {}
/// 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) -> Result<Self, ValidationError> {
let version = {
let mut state = decoder.get_mut(&context);
match state.decode_struct_header(&ConformanceTestInterfaceMethod14RequestVersions) {
Ok(header) => header.data(),
Err(err) => return Err(err),
}
};
let param0 = match <UnionA>::decode(decoder, context.clone()) {
Ok(value) => value,
Err(err) => return Err(err),
};
Ok(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 min_version() -> u32 {
ConformanceTestInterfaceMethod14::MIN_VERSION
}
fn create_header() -> MessageHeader {
MessageHeader::new(
0,
ConformanceTestInterfaceMethod14::ORDINAL,
message::MESSAGE_HEADER_NO_FLAG,
)
}
}
impl ConformanceTestInterfaceRequest for ConformanceTestInterfaceMethod14Request {}
/// 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) -> Result<Self, ValidationError> {
let version = {
let mut state = decoder.get_mut(&context);
match state.decode_struct_header(&ConformanceTestInterfaceMethod15RequestVersions) {
Ok(header) => header.data(),
Err(err) => return Err(err),
}
};
let param0 = match <StructH>::decode(decoder, context.clone()) {
Ok(value) => value,
Err(err) => return Err(err),
};
Ok(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 min_version() -> u32 {
ConformanceTestInterfaceMethod15::MIN_VERSION
}
fn create_header() -> MessageHeader {
MessageHeader::new(
0,
ConformanceTestInterfaceMethod15::ORDINAL,
message::MESSAGE_HEADER_NO_FLAG,
)
}
}
impl ConformanceTestInterfaceRequest for ConformanceTestInterfaceMethod15Request {}
/// 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) -> Result<Self, ValidationError> {
let version = {
let mut state = decoder.get_mut(&context);
match state.decode_struct_header(&ConformanceTestInterfaceMethod1RequestVersions) {
Ok(header) => header.data(),
Err(err) => return Err(err),
}
};
let param0 = match <StructA>::decode(decoder, context.clone()) {
Ok(value) => value,
Err(err) => return Err(err),
};
Ok(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 min_version() -> u32 {
ConformanceTestInterfaceMethod1::MIN_VERSION
}
fn create_header() -> MessageHeader {
MessageHeader::new(
0,
ConformanceTestInterfaceMethod1::ORDINAL,
message::MESSAGE_HEADER_NO_FLAG,
)
}
}
impl ConformanceTestInterfaceRequest for ConformanceTestInterfaceMethod1Request {}
/// 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) -> Result<Self, ValidationError> {
let version = {
let mut state = decoder.get_mut(&context);
match state.decode_struct_header(&ConformanceTestInterfaceMethod2RequestVersions) {
Ok(header) => header.data(),
Err(err) => return Err(err),
}
};
let param0 = match <StructB>::decode(decoder, context.clone()) {
Ok(value) => value,
Err(err) => return Err(err),
};
let param1 = match <StructA>::decode(decoder, context.clone()) {
Ok(value) => value,
Err(err) => return Err(err),
};
Ok(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 min_version() -> u32 {
ConformanceTestInterfaceMethod2::MIN_VERSION
}
fn create_header() -> MessageHeader {
MessageHeader::new(
0,
ConformanceTestInterfaceMethod2::ORDINAL,
message::MESSAGE_HEADER_NO_FLAG,
)
}
}
impl ConformanceTestInterfaceRequest for ConformanceTestInterfaceMethod2Request {}
/// 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) -> Result<Self, ValidationError> {
let version = {
let mut state = decoder.get_mut(&context);
match state.decode_struct_header(&ConformanceTestInterfaceMethod6RequestVersions) {
Ok(header) => header.data(),
Err(err) => return Err(err),
}
};
let param0 = match <Vec<Vec<u8>>>::decode(decoder, context.clone()) {
Ok(value) => value,
Err(err) => return Err(err),
};
Ok(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 min_version() -> u32 {
ConformanceTestInterfaceMethod6::MIN_VERSION
}
fn create_header() -> MessageHeader {
MessageHeader::new(
0,
ConformanceTestInterfaceMethod6::ORDINAL,
message::MESSAGE_HEADER_NO_FLAG,
)
}
}
impl ConformanceTestInterfaceRequest for ConformanceTestInterfaceMethod6Request {}
/// 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) -> Result<Self, ValidationError> {
let version = {
let mut state = decoder.get_mut(&context);
match state.decode_struct_header(&ConformanceTestInterfaceMethod8RequestVersions) {
Ok(header) => header.data(),
Err(err) => return Err(err),
}
};
let param0 = match <Vec<Option<Vec<String>>>>::decode(decoder, context.clone()) {
Ok(value) => value,
Err(err) => return Err(err),
};
Ok(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 min_version() -> u32 {
ConformanceTestInterfaceMethod8::MIN_VERSION
}
fn create_header() -> MessageHeader {
MessageHeader::new(
0,
ConformanceTestInterfaceMethod8::ORDINAL,
message::MESSAGE_HEADER_NO_FLAG,
)
}
}
impl ConformanceTestInterfaceRequest for ConformanceTestInterfaceMethod8Request {}
/// 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) -> Result<Self, ValidationError> {
let version = {
let mut state = decoder.get_mut(&context);
match state.decode_struct_header(&ConformanceTestInterfaceMethod10RequestVersions) {
Ok(header) => header.data(),
Err(err) => return Err(err),
}
};
let param0 = match <HashMap<String, u8>>::decode(decoder, context.clone()) {
Ok(value) => value,
Err(err) => return Err(err),
};
Ok(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 min_version() -> u32 {
ConformanceTestInterfaceMethod10::MIN_VERSION
}
fn create_header() -> MessageHeader {
MessageHeader::new(
0,
ConformanceTestInterfaceMethod10::ORDINAL,
message::MESSAGE_HEADER_NO_FLAG,
)
}
}
impl ConformanceTestInterfaceRequest for ConformanceTestInterfaceMethod10Request {}
/// 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) -> Result<Self, ValidationError> {
let version = {
let mut state = decoder.get_mut(&context);
match state.decode_struct_header(&ConformanceTestInterfaceMethod11RequestVersions) {
Ok(header) => header.data(),
Err(err) => return Err(err),
}
};
let param0 = match <StructG>::decode(decoder, context.clone()) {
Ok(value) => value,
Err(err) => return Err(err),
};
Ok(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 min_version() -> u32 {
ConformanceTestInterfaceMethod11::MIN_VERSION
}
fn create_header() -> MessageHeader {
MessageHeader::new(
0,
ConformanceTestInterfaceMethod11::ORDINAL,
message::MESSAGE_HEADER_NO_FLAG,
)
}
}
impl ConformanceTestInterfaceRequest for ConformanceTestInterfaceMethod11Request {}
/// 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) -> Result<Self, ValidationError> {
let version = {
let mut state = decoder.get_mut(&context);
match state.decode_struct_header(&ConformanceTestInterfaceMethod0RequestVersions) {
Ok(header) => header.data(),
Err(err) => return Err(err),
}
};
let param0 = match <f32>::decode(decoder, context.clone()) {
Ok(value) => value,
Err(err) => return Err(err),
};
Ok(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 min_version() -> u32 {
ConformanceTestInterfaceMethod0::MIN_VERSION
}
fn create_header() -> MessageHeader {
MessageHeader::new(
0,
ConformanceTestInterfaceMethod0::ORDINAL,
message::MESSAGE_HEADER_NO_FLAG,
)
}
}
impl ConformanceTestInterfaceRequest for ConformanceTestInterfaceMethod0Request {}
/// 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) -> Result<Self, ValidationError> {
let version = {
let mut state = decoder.get_mut(&context);
match state.decode_struct_header(&ConformanceTestInterfaceMethod9RequestVersions) {
Ok(header) => header.data(),
Err(err) => return Err(err),
}
};
let param0 = match <Option<Vec<Vec<Option<system::UntypedHandle>>>>>::decode(
decoder,
context.clone(),
) {
Ok(value) => value,
Err(err) => return Err(err),
};
Ok(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 min_version() -> u32 {
ConformanceTestInterfaceMethod9::MIN_VERSION
}
fn create_header() -> MessageHeader {
MessageHeader::new(
0,
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) -> Result<Self, ValidationError> {
let version = {
let mut state = decoder.get_mut(&context);
match state.decode_struct_header(&ConformanceTestInterfaceMethod13RequestVersions) {
Ok(header) => header.data(),
Err(err) => return Err(err),
}
};
let param0 = match <Option<InterfaceAClient>>::decode(decoder, context.clone()) {
Ok(value) => value,
Err(err) => return Err(err),
};
let param1 = match <u32>::decode(decoder, context.clone()) {
Ok(value) => value,
Err(err) => return Err(err),
};
let param2 = match <Option<InterfaceAClient>>::decode(decoder, context.clone()) {
Ok(value) => value,
Err(err) => return Err(err),
};
Ok(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 min_version() -> u32 {
ConformanceTestInterfaceMethod13::MIN_VERSION
}
fn create_header() -> MessageHeader {
MessageHeader::new(
0,
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,
version: u32,
}
impl IntegrationTestInterfaceClient {
pub fn new(pipe: message_pipe::MessageEndpoint) -> IntegrationTestInterfaceClient {
IntegrationTestInterfaceClient { pipe: pipe, version: IntegrationTestInterface::VERSION }
}
pub fn with_version(
pipe: message_pipe::MessageEndpoint,
version: u32,
) -> IntegrationTestInterfaceClient {
IntegrationTestInterfaceClient { pipe: pipe, version: version }
}
}
impl MojomInterface for IntegrationTestInterfaceClient {
fn service_name() -> &'static str {
IntegrationTestInterface::SERVICE_NAME
}
fn version(&self) -> u32 {
self.version
}
fn pipe(&self) -> &message_pipe::MessageEndpoint {
&self.pipe
}
fn unwrap(self) -> message_pipe::MessageEndpoint {
self.pipe
}
}
impl CastHandle for IntegrationTestInterfaceClient {
unsafe fn from_untyped(handle: system::UntypedHandle) -> IntegrationTestInterfaceClient {
IntegrationTestInterfaceClient {
pipe: message_pipe::MessageEndpoint::from_untyped(handle),
version: 0, // Since we have no other information, assume its the base
}
}
fn as_untyped(self) -> system::UntypedHandle {
self.pipe.as_untyped()
}
}
impl MojomEncodable for IntegrationTestInterfaceClient {
impl_encodable_for_interface!();
}
impl<R: IntegrationTestInterfaceRequest> MojomInterfaceSend<R> for IntegrationTestInterfaceClient {}
impl MojomInterfaceRecv for IntegrationTestInterfaceClient {
type Container = IntegrationTestInterfaceResponseOption;
}
pub struct IntegrationTestInterfaceServer {
pipe: message_pipe::MessageEndpoint,
version: u32,
}
impl IntegrationTestInterfaceServer {
pub fn new(pipe: message_pipe::MessageEndpoint) -> IntegrationTestInterfaceServer {
IntegrationTestInterfaceServer { pipe: pipe, version: IntegrationTestInterface::VERSION }
}
pub fn with_version(
pipe: message_pipe::MessageEndpoint,
version: u32,
) -> IntegrationTestInterfaceServer {
IntegrationTestInterfaceServer { pipe: pipe, version: version }
}
}
impl MojomInterface for IntegrationTestInterfaceServer {
fn service_name() -> &'static str {
IntegrationTestInterface::SERVICE_NAME
}
fn version(&self) -> u32 {
self.version
}
fn pipe(&self) -> &message_pipe::MessageEndpoint {
&self.pipe
}
fn unwrap(self) -> message_pipe::MessageEndpoint {
self.pipe
}
}
impl CastHandle for IntegrationTestInterfaceServer {
unsafe fn from_untyped(handle: system::UntypedHandle) -> IntegrationTestInterfaceServer {
IntegrationTestInterfaceServer {
pipe: message_pipe::MessageEndpoint::from_untyped(handle),
version: 0, // Since we have no other information, assume its the base
}
}
fn as_untyped(self) -> system::UntypedHandle {
self.pipe.as_untyped()
}
}
impl MojomEncodable for IntegrationTestInterfaceServer {
impl_encodable_for_interface!();
}
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(
header: MessageHeader,
buffer: &[u8],
handles: Vec<UntypedHandle>,
) -> Result<Self, ValidationError> {
match header.name {
IntegrationTestInterfaceMethod0::ORDINAL => {
if header.flags != message::MESSAGE_HEADER_EXPECT_RESPONSE {
return Err(ValidationError::MessageHeaderInvalidFlags);
}
match IntegrationTestInterfaceMethod0Request::deserialize(buffer, handles) {
Ok(value) => {
Ok(IntegrationTestInterfaceRequestOption::IntegrationTestInterfaceMethod0(
value,
))
}
Err(err) => return Err(err),
}
}
_ => Err(ValidationError::MessageHeaderUnknownMethod),
}
}
}
pub enum IntegrationTestInterfaceResponseOption {
IntegrationTestInterfaceMethod0(IntegrationTestInterfaceMethod0Response),
}
impl MojomMessageOption for IntegrationTestInterfaceResponseOption {
fn decode_payload(
header: MessageHeader,
buffer: &[u8],
handles: Vec<UntypedHandle>,
) -> Result<Self, ValidationError> {
if header.flags != message::MESSAGE_HEADER_IS_RESPONSE {
return Err(ValidationError::MessageHeaderInvalidFlags);
}
match header.name {
IntegrationTestInterfaceMethod0::ORDINAL => {
match IntegrationTestInterfaceMethod0Response::deserialize(buffer, handles) {
Ok(value) => {
Ok(IntegrationTestInterfaceResponseOption::IntegrationTestInterfaceMethod0(
value,
))
}
Err(err) => return Err(err),
}
}
_ => Err(ValidationError::MessageHeaderUnknownMethod),
}
}
}
/// 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) -> Result<Self, ValidationError> {
let version = {
let mut state = decoder.get_mut(&context);
match state.decode_struct_header(&IntegrationTestInterfaceMethod0RequestVersions) {
Ok(header) => header.data(),
Err(err) => return Err(err),
}
};
let param0 = match <BasicStruct>::decode(decoder, context.clone()) {
Ok(value) => value,
Err(err) => return Err(err),
};
Ok(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 min_version() -> u32 {
IntegrationTestInterfaceMethod0::MIN_VERSION
}
fn create_header() -> MessageHeader {
MessageHeader::new(
1,
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) -> Result<Self, ValidationError> {
let version = {
let mut state = decoder.get_mut(&context);
match state.decode_struct_header(&IntegrationTestInterfaceMethod0ResponseVersions) {
Ok(header) => header.data(),
Err(err) => return Err(err),
}
};
let param0 = match <Vec<u8>>::decode(decoder, context.clone()) {
Ok(value) => value,
Err(err) => return Err(err),
};
Ok(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 min_version() -> u32 {
IntegrationTestInterfaceMethod0::MIN_VERSION
}
fn create_header() -> MessageHeader {
MessageHeader::new(
1,
IntegrationTestInterfaceMethod0::ORDINAL,
message::MESSAGE_HEADER_IS_RESPONSE,
)
}
}
impl IntegrationTestInterfaceResponse for IntegrationTestInterfaceMethod0Response {}