fidl_fidl_serversuite__common/
fidl_fidl_serversuite__common.rs

1// WARNING: This file is machine generated by fidlgen.
2
3#![warn(clippy::all)]
4#![allow(unused_parens, unused_mut, unused_imports, nonstandard_style)]
5
6use bitflags::bitflags;
7use fidl::encoding::{MessageBufFor, ProxyChannelBox, ResourceDialect};
8use futures::future::{self, MaybeDone, TryFutureExt};
9use zx_status;
10
11pub const SERVER_SUITE_VERSION: u64 = 1;
12
13bitflags! {
14    #[derive(Clone, Copy, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Hash)]
15    pub struct TeardownReason: u32 {
16        const PEER_CLOSED = 1;
17        const VOLUNTARY_SHUTDOWN = 2;
18        const INCOMPATIBLE_FORMAT = 4;
19        const UNEXPECTED_MESSAGE = 8;
20        const ENCODE_FAILURE = 16;
21        const DECODE_FAILURE = 32;
22        const WRITE_FAILURE = 64;
23    }
24}
25
26impl TeardownReason {}
27
28#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
29#[repr(u32)]
30pub enum StartError {
31    TestDisabled = 1,
32}
33
34impl StartError {
35    #[inline]
36    pub fn from_primitive(prim: u32) -> Option<Self> {
37        match prim {
38            1 => Some(Self::TestDisabled),
39            _ => None,
40        }
41    }
42
43    #[inline]
44    pub const fn into_primitive(self) -> u32 {
45        self as u32
46    }
47}
48
49#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
50pub enum Test {
51    Setup,
52    IgnoreDisabled,
53    OneWayNoPayload,
54    TwoWayNoPayload,
55    TwoWayResultWithPayload,
56    TwoWayResultWithError,
57    TwoWayStructPayload,
58    TwoWayTablePayload,
59    TwoWayUnionPayload,
60    OneWayWithNonZeroTxid,
61    TwoWayNoPayloadWithZeroTxid,
62    UnknownOrdinalCausesClose,
63    BadMagicNumberCausesClose,
64    IgnoresUnrecognizedAtRestFlags,
65    IgnoresUnrecognizedDynamicFlags,
66    BadPayloadEncoding,
67    V1TwoWayNoPayload,
68    V1TwoWayStructPayload,
69    EventSendingDoNotReportPeerClosed,
70    ReplySendingDoNotReportPeerClosed,
71    ReceiveOneWayNoPayloadFromPeerClosedChannel,
72    ServerTearsDownWhenPeerClosed,
73    ClientSendsTooFewHandles,
74    ClientSendsWrongHandleType,
75    ClientSendsTooManyRights,
76    ClientSendsTooFewRights,
77    ClientSendsObjectOverPlainHandle,
78    ServerSendsWrongHandleType,
79    ServerSendsTooManyRights,
80    ServerSendsTooFewRights,
81    ServerSendsEpitaph,
82    ServerReceivesEpitaphInvalid,
83    RequestMatchesByteLimit,
84    RequestMatchesHandleLimit,
85    ResponseMatchesByteLimit,
86    ResponseMatchesHandleLimit,
87    ResponseExceedsByteLimit,
88    ResponseExceedsHandleLimit,
89    SendStrictEvent,
90    SendFlexibleEvent,
91    ReceiveStrictOneWay,
92    ReceiveStrictOneWayMismatchedStrictness,
93    ReceiveFlexibleOneWay,
94    ReceiveFlexibleOneWayMismatchedStrictness,
95    StrictTwoWayResponse,
96    StrictTwoWayResponseMismatchedStrictness,
97    StrictTwoWayNonEmptyResponse,
98    StrictTwoWayErrorSyntaxResponse,
99    StrictTwoWayErrorSyntaxResponseMismatchedStrictness,
100    StrictTwoWayErrorSyntaxNonEmptyResponse,
101    FlexibleTwoWayResponse,
102    FlexibleTwoWayResponseMismatchedStrictness,
103    FlexibleTwoWayNonEmptyResponse,
104    FlexibleTwoWayErrorSyntaxResponseSuccessResult,
105    FlexibleTwoWayErrorSyntaxResponseErrorResult,
106    FlexibleTwoWayErrorSyntaxNonEmptyResponseSuccessResult,
107    FlexibleTwoWayErrorSyntaxNonEmptyResponseErrorResult,
108    UnknownStrictOneWayOpenProtocol,
109    UnknownFlexibleOneWayOpenProtocol,
110    UnknownFlexibleOneWayHandleOpenProtocol,
111    UnknownStrictTwoWayOpenProtocol,
112    UnknownFlexibleTwoWayOpenProtocol,
113    UnknownFlexibleTwoWayHandleOpenProtocol,
114    UnknownStrictOneWayAjarProtocol,
115    UnknownFlexibleOneWayAjarProtocol,
116    UnknownStrictTwoWayAjarProtocol,
117    UnknownFlexibleTwoWayAjarProtocol,
118    UnknownStrictOneWayClosedProtocol,
119    UnknownFlexibleOneWayClosedProtocol,
120    UnknownStrictTwoWayClosedProtocol,
121    UnknownFlexibleTwoWayClosedProtocol,
122    #[doc(hidden)]
123    __SourceBreaking {
124        unknown_ordinal: u32,
125    },
126}
127
128/// Pattern that matches an unknown `Test` member.
129#[macro_export]
130macro_rules! TestUnknown {
131    () => {
132        _
133    };
134}
135
136impl Test {
137    #[inline]
138    pub fn from_primitive(prim: u32) -> Option<Self> {
139        match prim {
140            1 => Some(Self::Setup),
141            107 => Some(Self::IgnoreDisabled),
142            2 => Some(Self::OneWayNoPayload),
143            3 => Some(Self::TwoWayNoPayload),
144            4 => Some(Self::TwoWayResultWithPayload),
145            5 => Some(Self::TwoWayResultWithError),
146            6 => Some(Self::TwoWayStructPayload),
147            7 => Some(Self::TwoWayTablePayload),
148            8 => Some(Self::TwoWayUnionPayload),
149            9 => Some(Self::OneWayWithNonZeroTxid),
150            10 => Some(Self::TwoWayNoPayloadWithZeroTxid),
151            11 => Some(Self::UnknownOrdinalCausesClose),
152            12 => Some(Self::BadMagicNumberCausesClose),
153            13 => Some(Self::IgnoresUnrecognizedAtRestFlags),
154            14 => Some(Self::IgnoresUnrecognizedDynamicFlags),
155            15 => Some(Self::BadPayloadEncoding),
156            105 => Some(Self::V1TwoWayNoPayload),
157            106 => Some(Self::V1TwoWayStructPayload),
158            109 => Some(Self::EventSendingDoNotReportPeerClosed),
159            110 => Some(Self::ReplySendingDoNotReportPeerClosed),
160            111 => Some(Self::ReceiveOneWayNoPayloadFromPeerClosedChannel),
161            113 => Some(Self::ServerTearsDownWhenPeerClosed),
162            16 => Some(Self::ClientSendsTooFewHandles),
163            17 => Some(Self::ClientSendsWrongHandleType),
164            18 => Some(Self::ClientSendsTooManyRights),
165            19 => Some(Self::ClientSendsTooFewRights),
166            20 => Some(Self::ClientSendsObjectOverPlainHandle),
167            21 => Some(Self::ServerSendsWrongHandleType),
168            22 => Some(Self::ServerSendsTooManyRights),
169            23 => Some(Self::ServerSendsTooFewRights),
170            24 => Some(Self::ServerSendsEpitaph),
171            25 => Some(Self::ServerReceivesEpitaphInvalid),
172            26 => Some(Self::RequestMatchesByteLimit),
173            27 => Some(Self::RequestMatchesHandleLimit),
174            28 => Some(Self::ResponseMatchesByteLimit),
175            29 => Some(Self::ResponseMatchesHandleLimit),
176            30 => Some(Self::ResponseExceedsByteLimit),
177            31 => Some(Self::ResponseExceedsHandleLimit),
178            32 => Some(Self::SendStrictEvent),
179            33 => Some(Self::SendFlexibleEvent),
180            34 => Some(Self::ReceiveStrictOneWay),
181            35 => Some(Self::ReceiveStrictOneWayMismatchedStrictness),
182            36 => Some(Self::ReceiveFlexibleOneWay),
183            37 => Some(Self::ReceiveFlexibleOneWayMismatchedStrictness),
184            38 => Some(Self::StrictTwoWayResponse),
185            39 => Some(Self::StrictTwoWayResponseMismatchedStrictness),
186            63 => Some(Self::StrictTwoWayNonEmptyResponse),
187            40 => Some(Self::StrictTwoWayErrorSyntaxResponse),
188            41 => Some(Self::StrictTwoWayErrorSyntaxResponseMismatchedStrictness),
189            64 => Some(Self::StrictTwoWayErrorSyntaxNonEmptyResponse),
190            42 => Some(Self::FlexibleTwoWayResponse),
191            43 => Some(Self::FlexibleTwoWayResponseMismatchedStrictness),
192            44 => Some(Self::FlexibleTwoWayNonEmptyResponse),
193            45 => Some(Self::FlexibleTwoWayErrorSyntaxResponseSuccessResult),
194            46 => Some(Self::FlexibleTwoWayErrorSyntaxResponseErrorResult),
195            47 => Some(Self::FlexibleTwoWayErrorSyntaxNonEmptyResponseSuccessResult),
196            48 => Some(Self::FlexibleTwoWayErrorSyntaxNonEmptyResponseErrorResult),
197            49 => Some(Self::UnknownStrictOneWayOpenProtocol),
198            50 => Some(Self::UnknownFlexibleOneWayOpenProtocol),
199            51 => Some(Self::UnknownFlexibleOneWayHandleOpenProtocol),
200            52 => Some(Self::UnknownStrictTwoWayOpenProtocol),
201            53 => Some(Self::UnknownFlexibleTwoWayOpenProtocol),
202            54 => Some(Self::UnknownFlexibleTwoWayHandleOpenProtocol),
203            55 => Some(Self::UnknownStrictOneWayAjarProtocol),
204            56 => Some(Self::UnknownFlexibleOneWayAjarProtocol),
205            57 => Some(Self::UnknownStrictTwoWayAjarProtocol),
206            58 => Some(Self::UnknownFlexibleTwoWayAjarProtocol),
207            59 => Some(Self::UnknownStrictOneWayClosedProtocol),
208            60 => Some(Self::UnknownFlexibleOneWayClosedProtocol),
209            61 => Some(Self::UnknownStrictTwoWayClosedProtocol),
210            62 => Some(Self::UnknownFlexibleTwoWayClosedProtocol),
211            _ => None,
212        }
213    }
214
215    #[inline]
216    pub fn from_primitive_allow_unknown(prim: u32) -> Self {
217        match prim {
218            1 => Self::Setup,
219            107 => Self::IgnoreDisabled,
220            2 => Self::OneWayNoPayload,
221            3 => Self::TwoWayNoPayload,
222            4 => Self::TwoWayResultWithPayload,
223            5 => Self::TwoWayResultWithError,
224            6 => Self::TwoWayStructPayload,
225            7 => Self::TwoWayTablePayload,
226            8 => Self::TwoWayUnionPayload,
227            9 => Self::OneWayWithNonZeroTxid,
228            10 => Self::TwoWayNoPayloadWithZeroTxid,
229            11 => Self::UnknownOrdinalCausesClose,
230            12 => Self::BadMagicNumberCausesClose,
231            13 => Self::IgnoresUnrecognizedAtRestFlags,
232            14 => Self::IgnoresUnrecognizedDynamicFlags,
233            15 => Self::BadPayloadEncoding,
234            105 => Self::V1TwoWayNoPayload,
235            106 => Self::V1TwoWayStructPayload,
236            109 => Self::EventSendingDoNotReportPeerClosed,
237            110 => Self::ReplySendingDoNotReportPeerClosed,
238            111 => Self::ReceiveOneWayNoPayloadFromPeerClosedChannel,
239            113 => Self::ServerTearsDownWhenPeerClosed,
240            16 => Self::ClientSendsTooFewHandles,
241            17 => Self::ClientSendsWrongHandleType,
242            18 => Self::ClientSendsTooManyRights,
243            19 => Self::ClientSendsTooFewRights,
244            20 => Self::ClientSendsObjectOverPlainHandle,
245            21 => Self::ServerSendsWrongHandleType,
246            22 => Self::ServerSendsTooManyRights,
247            23 => Self::ServerSendsTooFewRights,
248            24 => Self::ServerSendsEpitaph,
249            25 => Self::ServerReceivesEpitaphInvalid,
250            26 => Self::RequestMatchesByteLimit,
251            27 => Self::RequestMatchesHandleLimit,
252            28 => Self::ResponseMatchesByteLimit,
253            29 => Self::ResponseMatchesHandleLimit,
254            30 => Self::ResponseExceedsByteLimit,
255            31 => Self::ResponseExceedsHandleLimit,
256            32 => Self::SendStrictEvent,
257            33 => Self::SendFlexibleEvent,
258            34 => Self::ReceiveStrictOneWay,
259            35 => Self::ReceiveStrictOneWayMismatchedStrictness,
260            36 => Self::ReceiveFlexibleOneWay,
261            37 => Self::ReceiveFlexibleOneWayMismatchedStrictness,
262            38 => Self::StrictTwoWayResponse,
263            39 => Self::StrictTwoWayResponseMismatchedStrictness,
264            63 => Self::StrictTwoWayNonEmptyResponse,
265            40 => Self::StrictTwoWayErrorSyntaxResponse,
266            41 => Self::StrictTwoWayErrorSyntaxResponseMismatchedStrictness,
267            64 => Self::StrictTwoWayErrorSyntaxNonEmptyResponse,
268            42 => Self::FlexibleTwoWayResponse,
269            43 => Self::FlexibleTwoWayResponseMismatchedStrictness,
270            44 => Self::FlexibleTwoWayNonEmptyResponse,
271            45 => Self::FlexibleTwoWayErrorSyntaxResponseSuccessResult,
272            46 => Self::FlexibleTwoWayErrorSyntaxResponseErrorResult,
273            47 => Self::FlexibleTwoWayErrorSyntaxNonEmptyResponseSuccessResult,
274            48 => Self::FlexibleTwoWayErrorSyntaxNonEmptyResponseErrorResult,
275            49 => Self::UnknownStrictOneWayOpenProtocol,
276            50 => Self::UnknownFlexibleOneWayOpenProtocol,
277            51 => Self::UnknownFlexibleOneWayHandleOpenProtocol,
278            52 => Self::UnknownStrictTwoWayOpenProtocol,
279            53 => Self::UnknownFlexibleTwoWayOpenProtocol,
280            54 => Self::UnknownFlexibleTwoWayHandleOpenProtocol,
281            55 => Self::UnknownStrictOneWayAjarProtocol,
282            56 => Self::UnknownFlexibleOneWayAjarProtocol,
283            57 => Self::UnknownStrictTwoWayAjarProtocol,
284            58 => Self::UnknownFlexibleTwoWayAjarProtocol,
285            59 => Self::UnknownStrictOneWayClosedProtocol,
286            60 => Self::UnknownFlexibleOneWayClosedProtocol,
287            61 => Self::UnknownStrictTwoWayClosedProtocol,
288            62 => Self::UnknownFlexibleTwoWayClosedProtocol,
289            unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
290        }
291    }
292
293    #[inline]
294    pub fn unknown() -> Self {
295        Self::__SourceBreaking { unknown_ordinal: 0xffffffff }
296    }
297
298    #[inline]
299    pub const fn into_primitive(self) -> u32 {
300        match self {
301            Self::Setup => 1,
302            Self::IgnoreDisabled => 107,
303            Self::OneWayNoPayload => 2,
304            Self::TwoWayNoPayload => 3,
305            Self::TwoWayResultWithPayload => 4,
306            Self::TwoWayResultWithError => 5,
307            Self::TwoWayStructPayload => 6,
308            Self::TwoWayTablePayload => 7,
309            Self::TwoWayUnionPayload => 8,
310            Self::OneWayWithNonZeroTxid => 9,
311            Self::TwoWayNoPayloadWithZeroTxid => 10,
312            Self::UnknownOrdinalCausesClose => 11,
313            Self::BadMagicNumberCausesClose => 12,
314            Self::IgnoresUnrecognizedAtRestFlags => 13,
315            Self::IgnoresUnrecognizedDynamicFlags => 14,
316            Self::BadPayloadEncoding => 15,
317            Self::V1TwoWayNoPayload => 105,
318            Self::V1TwoWayStructPayload => 106,
319            Self::EventSendingDoNotReportPeerClosed => 109,
320            Self::ReplySendingDoNotReportPeerClosed => 110,
321            Self::ReceiveOneWayNoPayloadFromPeerClosedChannel => 111,
322            Self::ServerTearsDownWhenPeerClosed => 113,
323            Self::ClientSendsTooFewHandles => 16,
324            Self::ClientSendsWrongHandleType => 17,
325            Self::ClientSendsTooManyRights => 18,
326            Self::ClientSendsTooFewRights => 19,
327            Self::ClientSendsObjectOverPlainHandle => 20,
328            Self::ServerSendsWrongHandleType => 21,
329            Self::ServerSendsTooManyRights => 22,
330            Self::ServerSendsTooFewRights => 23,
331            Self::ServerSendsEpitaph => 24,
332            Self::ServerReceivesEpitaphInvalid => 25,
333            Self::RequestMatchesByteLimit => 26,
334            Self::RequestMatchesHandleLimit => 27,
335            Self::ResponseMatchesByteLimit => 28,
336            Self::ResponseMatchesHandleLimit => 29,
337            Self::ResponseExceedsByteLimit => 30,
338            Self::ResponseExceedsHandleLimit => 31,
339            Self::SendStrictEvent => 32,
340            Self::SendFlexibleEvent => 33,
341            Self::ReceiveStrictOneWay => 34,
342            Self::ReceiveStrictOneWayMismatchedStrictness => 35,
343            Self::ReceiveFlexibleOneWay => 36,
344            Self::ReceiveFlexibleOneWayMismatchedStrictness => 37,
345            Self::StrictTwoWayResponse => 38,
346            Self::StrictTwoWayResponseMismatchedStrictness => 39,
347            Self::StrictTwoWayNonEmptyResponse => 63,
348            Self::StrictTwoWayErrorSyntaxResponse => 40,
349            Self::StrictTwoWayErrorSyntaxResponseMismatchedStrictness => 41,
350            Self::StrictTwoWayErrorSyntaxNonEmptyResponse => 64,
351            Self::FlexibleTwoWayResponse => 42,
352            Self::FlexibleTwoWayResponseMismatchedStrictness => 43,
353            Self::FlexibleTwoWayNonEmptyResponse => 44,
354            Self::FlexibleTwoWayErrorSyntaxResponseSuccessResult => 45,
355            Self::FlexibleTwoWayErrorSyntaxResponseErrorResult => 46,
356            Self::FlexibleTwoWayErrorSyntaxNonEmptyResponseSuccessResult => 47,
357            Self::FlexibleTwoWayErrorSyntaxNonEmptyResponseErrorResult => 48,
358            Self::UnknownStrictOneWayOpenProtocol => 49,
359            Self::UnknownFlexibleOneWayOpenProtocol => 50,
360            Self::UnknownFlexibleOneWayHandleOpenProtocol => 51,
361            Self::UnknownStrictTwoWayOpenProtocol => 52,
362            Self::UnknownFlexibleTwoWayOpenProtocol => 53,
363            Self::UnknownFlexibleTwoWayHandleOpenProtocol => 54,
364            Self::UnknownStrictOneWayAjarProtocol => 55,
365            Self::UnknownFlexibleOneWayAjarProtocol => 56,
366            Self::UnknownStrictTwoWayAjarProtocol => 57,
367            Self::UnknownFlexibleTwoWayAjarProtocol => 58,
368            Self::UnknownStrictOneWayClosedProtocol => 59,
369            Self::UnknownFlexibleOneWayClosedProtocol => 60,
370            Self::UnknownStrictTwoWayClosedProtocol => 61,
371            Self::UnknownFlexibleTwoWayClosedProtocol => 62,
372            Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
373        }
374    }
375
376    #[inline]
377    pub fn is_unknown(&self) -> bool {
378        match self {
379            Self::__SourceBreaking { unknown_ordinal: _ } => true,
380            _ => false,
381        }
382    }
383}
384
385#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
386#[repr(u32)]
387pub enum UnknownMethodType {
388    OneWay = 1,
389    TwoWay = 2,
390}
391
392impl UnknownMethodType {
393    #[inline]
394    pub fn from_primitive(prim: u32) -> Option<Self> {
395        match prim {
396            1 => Some(Self::OneWay),
397            2 => Some(Self::TwoWay),
398            _ => None,
399        }
400    }
401
402    #[inline]
403    pub const fn into_primitive(self) -> u32 {
404        self as u32
405    }
406}
407
408#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
409pub struct ClosedTargetByteVectorSizeRequest {
410    pub vec: Vec<u8>,
411}
412
413impl fidl::Persistable for ClosedTargetByteVectorSizeRequest {}
414
415#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
416#[repr(C)]
417pub struct ClosedTargetByteVectorSizeResponse {
418    pub n: u32,
419}
420
421impl fidl::Persistable for ClosedTargetByteVectorSizeResponse {}
422
423#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
424#[repr(C)]
425pub struct ClosedTargetCreateNByteVectorRequest {
426    pub n: u32,
427}
428
429impl fidl::Persistable for ClosedTargetCreateNByteVectorRequest {}
430
431#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
432pub struct ClosedTargetCreateNByteVectorResponse {
433    pub vec: Vec<u8>,
434}
435
436impl fidl::Persistable for ClosedTargetCreateNByteVectorResponse {}
437
438#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
439pub struct ClosedTargetGetHandleRightsResponse {
440    pub rights: fidl::Rights,
441}
442
443impl fidl::Persistable for ClosedTargetGetHandleRightsResponse {}
444
445#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
446pub struct ClosedTargetGetSignalableEventRightsResponse {
447    pub rights: fidl::Rights,
448}
449
450impl fidl::Persistable for ClosedTargetGetSignalableEventRightsResponse {}
451
452#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
453#[repr(C)]
454pub struct ClosedTargetHandleVectorSizeResponse {
455    pub n: u32,
456}
457
458impl fidl::Persistable for ClosedTargetHandleVectorSizeResponse {}
459
460#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
461#[repr(C)]
462pub struct ClosedTargetTwoWayStructPayloadRequest {
463    pub v: i8,
464}
465
466impl fidl::Persistable for ClosedTargetTwoWayStructPayloadRequest {}
467
468#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
469#[repr(C)]
470pub struct ClosedTargetTwoWayStructPayloadResponse {
471    pub v: i8,
472}
473
474impl fidl::Persistable for ClosedTargetTwoWayStructPayloadResponse {}
475
476#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
477pub struct ClosedTargetTwoWayResultResponse {
478    pub payload: String,
479}
480
481impl fidl::Persistable for ClosedTargetTwoWayResultResponse {}
482
483#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
484pub struct Empty;
485
486impl fidl::Persistable for Empty {}
487
488#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
489#[repr(C)]
490pub struct OpenTargetFlexibleTwoWayFieldsRequest {
491    pub reply_with: i32,
492}
493
494impl fidl::Persistable for OpenTargetFlexibleTwoWayFieldsRequest {}
495
496#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
497#[repr(C)]
498pub struct OpenTargetStrictTwoWayFieldsRequest {
499    pub reply_with: i32,
500}
501
502impl fidl::Persistable for OpenTargetStrictTwoWayFieldsRequest {}
503
504#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
505#[repr(C)]
506pub struct OpenTargetStrictTwoWayFieldsResponse {
507    pub some_field: i32,
508}
509
510impl fidl::Persistable for OpenTargetStrictTwoWayFieldsResponse {}
511
512#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
513#[repr(C)]
514pub struct OpenTargetFlexibleTwoWayFieldsErrResponse {
515    pub some_field: i32,
516}
517
518impl fidl::Persistable for OpenTargetFlexibleTwoWayFieldsErrResponse {}
519
520#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
521#[repr(C)]
522pub struct OpenTargetFlexibleTwoWayFieldsResponse {
523    pub some_field: i32,
524}
525
526impl fidl::Persistable for OpenTargetFlexibleTwoWayFieldsResponse {}
527
528#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
529#[repr(C)]
530pub struct OpenTargetStrictTwoWayFieldsErrResponse {
531    pub some_field: i32,
532}
533
534impl fidl::Persistable for OpenTargetStrictTwoWayFieldsErrResponse {}
535
536#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
537#[repr(C)]
538pub struct RunnerGetVersionResponse {
539    pub version: u64,
540}
541
542impl fidl::Persistable for RunnerGetVersionResponse {}
543
544#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
545pub struct RunnerOnTeardownRequest {
546    pub reason: TeardownReason,
547}
548
549impl fidl::Persistable for RunnerOnTeardownRequest {}
550
551#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
552#[repr(C)]
553pub struct RunnerShutdownWithEpitaphRequest {
554    pub epitaph_status: i32,
555}
556
557impl fidl::Persistable for RunnerShutdownWithEpitaphRequest {}
558
559#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
560pub struct UnknownMethodInfo {
561    pub ordinal: u64,
562    pub unknown_method_type: UnknownMethodType,
563}
564
565impl fidl::Persistable for UnknownMethodInfo {}
566
567#[derive(Clone, Debug, Default, PartialEq)]
568pub struct ClosedTargetTwoWayTablePayloadRequest {
569    pub v: Option<i8>,
570    #[doc(hidden)]
571    pub __source_breaking: fidl::marker::SourceBreaking,
572}
573
574impl fidl::Persistable for ClosedTargetTwoWayTablePayloadRequest {}
575
576#[derive(Clone, Debug, Default, PartialEq)]
577pub struct ClosedTargetTwoWayTablePayloadResponse {
578    pub v: Option<i8>,
579    #[doc(hidden)]
580    pub __source_breaking: fidl::marker::SourceBreaking,
581}
582
583impl fidl::Persistable for ClosedTargetTwoWayTablePayloadResponse {}
584
585#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
586pub enum ClosedTargetTwoWayResultRequest {
587    Payload(String),
588    Error(u32),
589}
590
591impl ClosedTargetTwoWayResultRequest {
592    #[inline]
593    pub fn ordinal(&self) -> u64 {
594        match *self {
595            Self::Payload(_) => 1,
596            Self::Error(_) => 2,
597        }
598    }
599}
600
601impl fidl::Persistable for ClosedTargetTwoWayResultRequest {}
602
603#[derive(Clone, Debug)]
604pub enum ClosedTargetTwoWayUnionPayloadRequest {
605    V(i8),
606    #[doc(hidden)]
607    __SourceBreaking {
608        unknown_ordinal: u64,
609    },
610}
611
612/// Pattern that matches an unknown `ClosedTargetTwoWayUnionPayloadRequest` member.
613#[macro_export]
614macro_rules! ClosedTargetTwoWayUnionPayloadRequestUnknown {
615    () => {
616        _
617    };
618}
619
620// Custom PartialEq so that unknown variants are not equal to themselves.
621impl PartialEq for ClosedTargetTwoWayUnionPayloadRequest {
622    fn eq(&self, other: &Self) -> bool {
623        match (self, other) {
624            (Self::V(x), Self::V(y)) => *x == *y,
625            _ => false,
626        }
627    }
628}
629
630impl ClosedTargetTwoWayUnionPayloadRequest {
631    #[inline]
632    pub fn ordinal(&self) -> u64 {
633        match *self {
634            Self::V(_) => 1,
635            Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
636        }
637    }
638
639    #[inline]
640    pub fn unknown_variant_for_testing() -> Self {
641        Self::__SourceBreaking { unknown_ordinal: 0 }
642    }
643
644    #[inline]
645    pub fn is_unknown(&self) -> bool {
646        match self {
647            Self::__SourceBreaking { .. } => true,
648            _ => false,
649        }
650    }
651}
652
653impl fidl::Persistable for ClosedTargetTwoWayUnionPayloadRequest {}
654
655#[derive(Clone, Debug)]
656pub enum ClosedTargetTwoWayUnionPayloadResponse {
657    V(i8),
658    #[doc(hidden)]
659    __SourceBreaking {
660        unknown_ordinal: u64,
661    },
662}
663
664/// Pattern that matches an unknown `ClosedTargetTwoWayUnionPayloadResponse` member.
665#[macro_export]
666macro_rules! ClosedTargetTwoWayUnionPayloadResponseUnknown {
667    () => {
668        _
669    };
670}
671
672// Custom PartialEq so that unknown variants are not equal to themselves.
673impl PartialEq for ClosedTargetTwoWayUnionPayloadResponse {
674    fn eq(&self, other: &Self) -> bool {
675        match (self, other) {
676            (Self::V(x), Self::V(y)) => *x == *y,
677            _ => false,
678        }
679    }
680}
681
682impl ClosedTargetTwoWayUnionPayloadResponse {
683    #[inline]
684    pub fn ordinal(&self) -> u64 {
685        match *self {
686            Self::V(_) => 1,
687            Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
688        }
689    }
690
691    #[inline]
692    pub fn unknown_variant_for_testing() -> Self {
693        Self::__SourceBreaking { unknown_ordinal: 0 }
694    }
695
696    #[inline]
697    pub fn is_unknown(&self) -> bool {
698        match self {
699            Self::__SourceBreaking { .. } => true,
700            _ => false,
701        }
702    }
703}
704
705impl fidl::Persistable for ClosedTargetTwoWayUnionPayloadResponse {}
706
707#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
708pub enum OpenTargetFlexibleTwoWayErrRequest {
709    ReplySuccess(Empty),
710    ReplyError(i32),
711}
712
713impl OpenTargetFlexibleTwoWayErrRequest {
714    #[inline]
715    pub fn ordinal(&self) -> u64 {
716        match *self {
717            Self::ReplySuccess(_) => 1,
718            Self::ReplyError(_) => 2,
719        }
720    }
721}
722
723impl fidl::Persistable for OpenTargetFlexibleTwoWayErrRequest {}
724
725#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
726pub enum OpenTargetFlexibleTwoWayFieldsErrRequest {
727    ReplySuccess(i32),
728    ReplyError(i32),
729}
730
731impl OpenTargetFlexibleTwoWayFieldsErrRequest {
732    #[inline]
733    pub fn ordinal(&self) -> u64 {
734        match *self {
735            Self::ReplySuccess(_) => 1,
736            Self::ReplyError(_) => 2,
737        }
738    }
739}
740
741impl fidl::Persistable for OpenTargetFlexibleTwoWayFieldsErrRequest {}
742
743#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
744pub enum OpenTargetStrictTwoWayErrRequest {
745    ReplySuccess(Empty),
746    ReplyError(i32),
747}
748
749impl OpenTargetStrictTwoWayErrRequest {
750    #[inline]
751    pub fn ordinal(&self) -> u64 {
752        match *self {
753            Self::ReplySuccess(_) => 1,
754            Self::ReplyError(_) => 2,
755        }
756    }
757}
758
759impl fidl::Persistable for OpenTargetStrictTwoWayErrRequest {}
760
761#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
762pub enum OpenTargetStrictTwoWayFieldsErrRequest {
763    ReplySuccess(i32),
764    ReplyError(i32),
765}
766
767impl OpenTargetStrictTwoWayFieldsErrRequest {
768    #[inline]
769    pub fn ordinal(&self) -> u64 {
770        match *self {
771            Self::ReplySuccess(_) => 1,
772            Self::ReplyError(_) => 2,
773        }
774    }
775}
776
777impl fidl::Persistable for OpenTargetStrictTwoWayFieldsErrRequest {}
778
779mod internal {
780    use super::*;
781    unsafe impl fidl::encoding::TypeMarker for TeardownReason {
782        type Owned = Self;
783
784        #[inline(always)]
785        fn inline_align(_context: fidl::encoding::Context) -> usize {
786            4
787        }
788
789        #[inline(always)]
790        fn inline_size(_context: fidl::encoding::Context) -> usize {
791            4
792        }
793    }
794
795    impl fidl::encoding::ValueTypeMarker for TeardownReason {
796        type Borrowed<'a> = Self;
797        #[inline(always)]
798        fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
799            *value
800        }
801    }
802
803    unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for TeardownReason {
804        #[inline]
805        unsafe fn encode(
806            self,
807            encoder: &mut fidl::encoding::Encoder<'_, D>,
808            offset: usize,
809            _depth: fidl::encoding::Depth,
810        ) -> fidl::Result<()> {
811            encoder.debug_check_bounds::<Self>(offset);
812            if self.bits() & Self::all().bits() != self.bits() {
813                return Err(fidl::Error::InvalidBitsValue);
814            }
815            encoder.write_num(self.bits(), offset);
816            Ok(())
817        }
818    }
819
820    impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for TeardownReason {
821        #[inline(always)]
822        fn new_empty() -> Self {
823            Self::empty()
824        }
825
826        #[inline]
827        unsafe fn decode(
828            &mut self,
829            decoder: &mut fidl::encoding::Decoder<'_, D>,
830            offset: usize,
831            _depth: fidl::encoding::Depth,
832        ) -> fidl::Result<()> {
833            decoder.debug_check_bounds::<Self>(offset);
834            let prim = decoder.read_num::<u32>(offset);
835            *self = Self::from_bits(prim).ok_or(fidl::Error::InvalidBitsValue)?;
836            Ok(())
837        }
838    }
839    unsafe impl fidl::encoding::TypeMarker for StartError {
840        type Owned = Self;
841
842        #[inline(always)]
843        fn inline_align(_context: fidl::encoding::Context) -> usize {
844            std::mem::align_of::<u32>()
845        }
846
847        #[inline(always)]
848        fn inline_size(_context: fidl::encoding::Context) -> usize {
849            std::mem::size_of::<u32>()
850        }
851
852        #[inline(always)]
853        fn encode_is_copy() -> bool {
854            true
855        }
856
857        #[inline(always)]
858        fn decode_is_copy() -> bool {
859            false
860        }
861    }
862
863    impl fidl::encoding::ValueTypeMarker for StartError {
864        type Borrowed<'a> = Self;
865        #[inline(always)]
866        fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
867            *value
868        }
869    }
870
871    unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for StartError {
872        #[inline]
873        unsafe fn encode(
874            self,
875            encoder: &mut fidl::encoding::Encoder<'_, D>,
876            offset: usize,
877            _depth: fidl::encoding::Depth,
878        ) -> fidl::Result<()> {
879            encoder.debug_check_bounds::<Self>(offset);
880            encoder.write_num(self.into_primitive(), offset);
881            Ok(())
882        }
883    }
884
885    impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for StartError {
886        #[inline(always)]
887        fn new_empty() -> Self {
888            Self::TestDisabled
889        }
890
891        #[inline]
892        unsafe fn decode(
893            &mut self,
894            decoder: &mut fidl::encoding::Decoder<'_, D>,
895            offset: usize,
896            _depth: fidl::encoding::Depth,
897        ) -> fidl::Result<()> {
898            decoder.debug_check_bounds::<Self>(offset);
899            let prim = decoder.read_num::<u32>(offset);
900
901            *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
902            Ok(())
903        }
904    }
905    unsafe impl fidl::encoding::TypeMarker for Test {
906        type Owned = Self;
907
908        #[inline(always)]
909        fn inline_align(_context: fidl::encoding::Context) -> usize {
910            std::mem::align_of::<u32>()
911        }
912
913        #[inline(always)]
914        fn inline_size(_context: fidl::encoding::Context) -> usize {
915            std::mem::size_of::<u32>()
916        }
917
918        #[inline(always)]
919        fn encode_is_copy() -> bool {
920            false
921        }
922
923        #[inline(always)]
924        fn decode_is_copy() -> bool {
925            false
926        }
927    }
928
929    impl fidl::encoding::ValueTypeMarker for Test {
930        type Borrowed<'a> = Self;
931        #[inline(always)]
932        fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
933            *value
934        }
935    }
936
937    unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for Test {
938        #[inline]
939        unsafe fn encode(
940            self,
941            encoder: &mut fidl::encoding::Encoder<'_, D>,
942            offset: usize,
943            _depth: fidl::encoding::Depth,
944        ) -> fidl::Result<()> {
945            encoder.debug_check_bounds::<Self>(offset);
946            encoder.write_num(self.into_primitive(), offset);
947            Ok(())
948        }
949    }
950
951    impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Test {
952        #[inline(always)]
953        fn new_empty() -> Self {
954            Self::unknown()
955        }
956
957        #[inline]
958        unsafe fn decode(
959            &mut self,
960            decoder: &mut fidl::encoding::Decoder<'_, D>,
961            offset: usize,
962            _depth: fidl::encoding::Depth,
963        ) -> fidl::Result<()> {
964            decoder.debug_check_bounds::<Self>(offset);
965            let prim = decoder.read_num::<u32>(offset);
966
967            *self = Self::from_primitive_allow_unknown(prim);
968            Ok(())
969        }
970    }
971    unsafe impl fidl::encoding::TypeMarker for UnknownMethodType {
972        type Owned = Self;
973
974        #[inline(always)]
975        fn inline_align(_context: fidl::encoding::Context) -> usize {
976            std::mem::align_of::<u32>()
977        }
978
979        #[inline(always)]
980        fn inline_size(_context: fidl::encoding::Context) -> usize {
981            std::mem::size_of::<u32>()
982        }
983
984        #[inline(always)]
985        fn encode_is_copy() -> bool {
986            true
987        }
988
989        #[inline(always)]
990        fn decode_is_copy() -> bool {
991            false
992        }
993    }
994
995    impl fidl::encoding::ValueTypeMarker for UnknownMethodType {
996        type Borrowed<'a> = Self;
997        #[inline(always)]
998        fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
999            *value
1000        }
1001    }
1002
1003    unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
1004        for UnknownMethodType
1005    {
1006        #[inline]
1007        unsafe fn encode(
1008            self,
1009            encoder: &mut fidl::encoding::Encoder<'_, D>,
1010            offset: usize,
1011            _depth: fidl::encoding::Depth,
1012        ) -> fidl::Result<()> {
1013            encoder.debug_check_bounds::<Self>(offset);
1014            encoder.write_num(self.into_primitive(), offset);
1015            Ok(())
1016        }
1017    }
1018
1019    impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for UnknownMethodType {
1020        #[inline(always)]
1021        fn new_empty() -> Self {
1022            Self::OneWay
1023        }
1024
1025        #[inline]
1026        unsafe fn decode(
1027            &mut self,
1028            decoder: &mut fidl::encoding::Decoder<'_, D>,
1029            offset: usize,
1030            _depth: fidl::encoding::Depth,
1031        ) -> fidl::Result<()> {
1032            decoder.debug_check_bounds::<Self>(offset);
1033            let prim = decoder.read_num::<u32>(offset);
1034
1035            *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
1036            Ok(())
1037        }
1038    }
1039
1040    impl fidl::encoding::ValueTypeMarker for ClosedTargetByteVectorSizeRequest {
1041        type Borrowed<'a> = &'a Self;
1042        fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1043            value
1044        }
1045    }
1046
1047    unsafe impl fidl::encoding::TypeMarker for ClosedTargetByteVectorSizeRequest {
1048        type Owned = Self;
1049
1050        #[inline(always)]
1051        fn inline_align(_context: fidl::encoding::Context) -> usize {
1052            8
1053        }
1054
1055        #[inline(always)]
1056        fn inline_size(_context: fidl::encoding::Context) -> usize {
1057            16
1058        }
1059    }
1060
1061    unsafe impl<D: fidl::encoding::ResourceDialect>
1062        fidl::encoding::Encode<ClosedTargetByteVectorSizeRequest, D>
1063        for &ClosedTargetByteVectorSizeRequest
1064    {
1065        #[inline]
1066        unsafe fn encode(
1067            self,
1068            encoder: &mut fidl::encoding::Encoder<'_, D>,
1069            offset: usize,
1070            _depth: fidl::encoding::Depth,
1071        ) -> fidl::Result<()> {
1072            encoder.debug_check_bounds::<ClosedTargetByteVectorSizeRequest>(offset);
1073            // Delegate to tuple encoding.
1074            fidl::encoding::Encode::<ClosedTargetByteVectorSizeRequest, D>::encode(
1075                (<fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow(
1076                    &self.vec,
1077                ),),
1078                encoder,
1079                offset,
1080                _depth,
1081            )
1082        }
1083    }
1084    unsafe impl<
1085            D: fidl::encoding::ResourceDialect,
1086            T0: fidl::encoding::Encode<fidl::encoding::UnboundedVector<u8>, D>,
1087        > fidl::encoding::Encode<ClosedTargetByteVectorSizeRequest, D> for (T0,)
1088    {
1089        #[inline]
1090        unsafe fn encode(
1091            self,
1092            encoder: &mut fidl::encoding::Encoder<'_, D>,
1093            offset: usize,
1094            depth: fidl::encoding::Depth,
1095        ) -> fidl::Result<()> {
1096            encoder.debug_check_bounds::<ClosedTargetByteVectorSizeRequest>(offset);
1097            // Zero out padding regions. There's no need to apply masks
1098            // because the unmasked parts will be overwritten by fields.
1099            // Write the fields.
1100            self.0.encode(encoder, offset + 0, depth)?;
1101            Ok(())
1102        }
1103    }
1104
1105    impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1106        for ClosedTargetByteVectorSizeRequest
1107    {
1108        #[inline(always)]
1109        fn new_empty() -> Self {
1110            Self { vec: fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D) }
1111        }
1112
1113        #[inline]
1114        unsafe fn decode(
1115            &mut self,
1116            decoder: &mut fidl::encoding::Decoder<'_, D>,
1117            offset: usize,
1118            _depth: fidl::encoding::Depth,
1119        ) -> fidl::Result<()> {
1120            decoder.debug_check_bounds::<Self>(offset);
1121            // Verify that padding bytes are zero.
1122            fidl::decode!(
1123                fidl::encoding::UnboundedVector<u8>,
1124                D,
1125                &mut self.vec,
1126                decoder,
1127                offset + 0,
1128                _depth
1129            )?;
1130            Ok(())
1131        }
1132    }
1133
1134    impl fidl::encoding::ValueTypeMarker for ClosedTargetByteVectorSizeResponse {
1135        type Borrowed<'a> = &'a Self;
1136        fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1137            value
1138        }
1139    }
1140
1141    unsafe impl fidl::encoding::TypeMarker for ClosedTargetByteVectorSizeResponse {
1142        type Owned = Self;
1143
1144        #[inline(always)]
1145        fn inline_align(_context: fidl::encoding::Context) -> usize {
1146            4
1147        }
1148
1149        #[inline(always)]
1150        fn inline_size(_context: fidl::encoding::Context) -> usize {
1151            4
1152        }
1153        #[inline(always)]
1154        fn encode_is_copy() -> bool {
1155            true
1156        }
1157
1158        #[inline(always)]
1159        fn decode_is_copy() -> bool {
1160            true
1161        }
1162    }
1163
1164    unsafe impl<D: fidl::encoding::ResourceDialect>
1165        fidl::encoding::Encode<ClosedTargetByteVectorSizeResponse, D>
1166        for &ClosedTargetByteVectorSizeResponse
1167    {
1168        #[inline]
1169        unsafe fn encode(
1170            self,
1171            encoder: &mut fidl::encoding::Encoder<'_, D>,
1172            offset: usize,
1173            _depth: fidl::encoding::Depth,
1174        ) -> fidl::Result<()> {
1175            encoder.debug_check_bounds::<ClosedTargetByteVectorSizeResponse>(offset);
1176            unsafe {
1177                // Copy the object into the buffer.
1178                let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
1179                (buf_ptr as *mut ClosedTargetByteVectorSizeResponse)
1180                    .write_unaligned((self as *const ClosedTargetByteVectorSizeResponse).read());
1181                // Zero out padding regions. Unlike `fidl_struct_impl_noncopy!`, this must be
1182                // done second because the memcpy will write garbage to these bytes.
1183            }
1184            Ok(())
1185        }
1186    }
1187    unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<u32, D>>
1188        fidl::encoding::Encode<ClosedTargetByteVectorSizeResponse, D> for (T0,)
1189    {
1190        #[inline]
1191        unsafe fn encode(
1192            self,
1193            encoder: &mut fidl::encoding::Encoder<'_, D>,
1194            offset: usize,
1195            depth: fidl::encoding::Depth,
1196        ) -> fidl::Result<()> {
1197            encoder.debug_check_bounds::<ClosedTargetByteVectorSizeResponse>(offset);
1198            // Zero out padding regions. There's no need to apply masks
1199            // because the unmasked parts will be overwritten by fields.
1200            // Write the fields.
1201            self.0.encode(encoder, offset + 0, depth)?;
1202            Ok(())
1203        }
1204    }
1205
1206    impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1207        for ClosedTargetByteVectorSizeResponse
1208    {
1209        #[inline(always)]
1210        fn new_empty() -> Self {
1211            Self { n: fidl::new_empty!(u32, D) }
1212        }
1213
1214        #[inline]
1215        unsafe fn decode(
1216            &mut self,
1217            decoder: &mut fidl::encoding::Decoder<'_, D>,
1218            offset: usize,
1219            _depth: fidl::encoding::Depth,
1220        ) -> fidl::Result<()> {
1221            decoder.debug_check_bounds::<Self>(offset);
1222            let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
1223            // Verify that padding bytes are zero.
1224            // Copy from the buffer into the object.
1225            unsafe {
1226                std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 4);
1227            }
1228            Ok(())
1229        }
1230    }
1231
1232    impl fidl::encoding::ValueTypeMarker for ClosedTargetCreateNByteVectorRequest {
1233        type Borrowed<'a> = &'a Self;
1234        fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1235            value
1236        }
1237    }
1238
1239    unsafe impl fidl::encoding::TypeMarker for ClosedTargetCreateNByteVectorRequest {
1240        type Owned = Self;
1241
1242        #[inline(always)]
1243        fn inline_align(_context: fidl::encoding::Context) -> usize {
1244            4
1245        }
1246
1247        #[inline(always)]
1248        fn inline_size(_context: fidl::encoding::Context) -> usize {
1249            4
1250        }
1251        #[inline(always)]
1252        fn encode_is_copy() -> bool {
1253            true
1254        }
1255
1256        #[inline(always)]
1257        fn decode_is_copy() -> bool {
1258            true
1259        }
1260    }
1261
1262    unsafe impl<D: fidl::encoding::ResourceDialect>
1263        fidl::encoding::Encode<ClosedTargetCreateNByteVectorRequest, D>
1264        for &ClosedTargetCreateNByteVectorRequest
1265    {
1266        #[inline]
1267        unsafe fn encode(
1268            self,
1269            encoder: &mut fidl::encoding::Encoder<'_, D>,
1270            offset: usize,
1271            _depth: fidl::encoding::Depth,
1272        ) -> fidl::Result<()> {
1273            encoder.debug_check_bounds::<ClosedTargetCreateNByteVectorRequest>(offset);
1274            unsafe {
1275                // Copy the object into the buffer.
1276                let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
1277                (buf_ptr as *mut ClosedTargetCreateNByteVectorRequest)
1278                    .write_unaligned((self as *const ClosedTargetCreateNByteVectorRequest).read());
1279                // Zero out padding regions. Unlike `fidl_struct_impl_noncopy!`, this must be
1280                // done second because the memcpy will write garbage to these bytes.
1281            }
1282            Ok(())
1283        }
1284    }
1285    unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<u32, D>>
1286        fidl::encoding::Encode<ClosedTargetCreateNByteVectorRequest, D> for (T0,)
1287    {
1288        #[inline]
1289        unsafe fn encode(
1290            self,
1291            encoder: &mut fidl::encoding::Encoder<'_, D>,
1292            offset: usize,
1293            depth: fidl::encoding::Depth,
1294        ) -> fidl::Result<()> {
1295            encoder.debug_check_bounds::<ClosedTargetCreateNByteVectorRequest>(offset);
1296            // Zero out padding regions. There's no need to apply masks
1297            // because the unmasked parts will be overwritten by fields.
1298            // Write the fields.
1299            self.0.encode(encoder, offset + 0, depth)?;
1300            Ok(())
1301        }
1302    }
1303
1304    impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1305        for ClosedTargetCreateNByteVectorRequest
1306    {
1307        #[inline(always)]
1308        fn new_empty() -> Self {
1309            Self { n: fidl::new_empty!(u32, D) }
1310        }
1311
1312        #[inline]
1313        unsafe fn decode(
1314            &mut self,
1315            decoder: &mut fidl::encoding::Decoder<'_, D>,
1316            offset: usize,
1317            _depth: fidl::encoding::Depth,
1318        ) -> fidl::Result<()> {
1319            decoder.debug_check_bounds::<Self>(offset);
1320            let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
1321            // Verify that padding bytes are zero.
1322            // Copy from the buffer into the object.
1323            unsafe {
1324                std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 4);
1325            }
1326            Ok(())
1327        }
1328    }
1329
1330    impl fidl::encoding::ValueTypeMarker for ClosedTargetCreateNByteVectorResponse {
1331        type Borrowed<'a> = &'a Self;
1332        fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1333            value
1334        }
1335    }
1336
1337    unsafe impl fidl::encoding::TypeMarker for ClosedTargetCreateNByteVectorResponse {
1338        type Owned = Self;
1339
1340        #[inline(always)]
1341        fn inline_align(_context: fidl::encoding::Context) -> usize {
1342            8
1343        }
1344
1345        #[inline(always)]
1346        fn inline_size(_context: fidl::encoding::Context) -> usize {
1347            16
1348        }
1349    }
1350
1351    unsafe impl<D: fidl::encoding::ResourceDialect>
1352        fidl::encoding::Encode<ClosedTargetCreateNByteVectorResponse, D>
1353        for &ClosedTargetCreateNByteVectorResponse
1354    {
1355        #[inline]
1356        unsafe fn encode(
1357            self,
1358            encoder: &mut fidl::encoding::Encoder<'_, D>,
1359            offset: usize,
1360            _depth: fidl::encoding::Depth,
1361        ) -> fidl::Result<()> {
1362            encoder.debug_check_bounds::<ClosedTargetCreateNByteVectorResponse>(offset);
1363            // Delegate to tuple encoding.
1364            fidl::encoding::Encode::<ClosedTargetCreateNByteVectorResponse, D>::encode(
1365                (<fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow(
1366                    &self.vec,
1367                ),),
1368                encoder,
1369                offset,
1370                _depth,
1371            )
1372        }
1373    }
1374    unsafe impl<
1375            D: fidl::encoding::ResourceDialect,
1376            T0: fidl::encoding::Encode<fidl::encoding::UnboundedVector<u8>, D>,
1377        > fidl::encoding::Encode<ClosedTargetCreateNByteVectorResponse, D> for (T0,)
1378    {
1379        #[inline]
1380        unsafe fn encode(
1381            self,
1382            encoder: &mut fidl::encoding::Encoder<'_, D>,
1383            offset: usize,
1384            depth: fidl::encoding::Depth,
1385        ) -> fidl::Result<()> {
1386            encoder.debug_check_bounds::<ClosedTargetCreateNByteVectorResponse>(offset);
1387            // Zero out padding regions. There's no need to apply masks
1388            // because the unmasked parts will be overwritten by fields.
1389            // Write the fields.
1390            self.0.encode(encoder, offset + 0, depth)?;
1391            Ok(())
1392        }
1393    }
1394
1395    impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1396        for ClosedTargetCreateNByteVectorResponse
1397    {
1398        #[inline(always)]
1399        fn new_empty() -> Self {
1400            Self { vec: fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D) }
1401        }
1402
1403        #[inline]
1404        unsafe fn decode(
1405            &mut self,
1406            decoder: &mut fidl::encoding::Decoder<'_, D>,
1407            offset: usize,
1408            _depth: fidl::encoding::Depth,
1409        ) -> fidl::Result<()> {
1410            decoder.debug_check_bounds::<Self>(offset);
1411            // Verify that padding bytes are zero.
1412            fidl::decode!(
1413                fidl::encoding::UnboundedVector<u8>,
1414                D,
1415                &mut self.vec,
1416                decoder,
1417                offset + 0,
1418                _depth
1419            )?;
1420            Ok(())
1421        }
1422    }
1423
1424    impl fidl::encoding::ValueTypeMarker for ClosedTargetGetHandleRightsResponse {
1425        type Borrowed<'a> = &'a Self;
1426        fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1427            value
1428        }
1429    }
1430
1431    unsafe impl fidl::encoding::TypeMarker for ClosedTargetGetHandleRightsResponse {
1432        type Owned = Self;
1433
1434        #[inline(always)]
1435        fn inline_align(_context: fidl::encoding::Context) -> usize {
1436            4
1437        }
1438
1439        #[inline(always)]
1440        fn inline_size(_context: fidl::encoding::Context) -> usize {
1441            4
1442        }
1443    }
1444
1445    unsafe impl<D: fidl::encoding::ResourceDialect>
1446        fidl::encoding::Encode<ClosedTargetGetHandleRightsResponse, D>
1447        for &ClosedTargetGetHandleRightsResponse
1448    {
1449        #[inline]
1450        unsafe fn encode(
1451            self,
1452            encoder: &mut fidl::encoding::Encoder<'_, D>,
1453            offset: usize,
1454            _depth: fidl::encoding::Depth,
1455        ) -> fidl::Result<()> {
1456            encoder.debug_check_bounds::<ClosedTargetGetHandleRightsResponse>(offset);
1457            // Delegate to tuple encoding.
1458            fidl::encoding::Encode::<ClosedTargetGetHandleRightsResponse, D>::encode(
1459                (<fidl::Rights as fidl::encoding::ValueTypeMarker>::borrow(&self.rights),),
1460                encoder,
1461                offset,
1462                _depth,
1463            )
1464        }
1465    }
1466    unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<fidl::Rights, D>>
1467        fidl::encoding::Encode<ClosedTargetGetHandleRightsResponse, D> for (T0,)
1468    {
1469        #[inline]
1470        unsafe fn encode(
1471            self,
1472            encoder: &mut fidl::encoding::Encoder<'_, D>,
1473            offset: usize,
1474            depth: fidl::encoding::Depth,
1475        ) -> fidl::Result<()> {
1476            encoder.debug_check_bounds::<ClosedTargetGetHandleRightsResponse>(offset);
1477            // Zero out padding regions. There's no need to apply masks
1478            // because the unmasked parts will be overwritten by fields.
1479            // Write the fields.
1480            self.0.encode(encoder, offset + 0, depth)?;
1481            Ok(())
1482        }
1483    }
1484
1485    impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1486        for ClosedTargetGetHandleRightsResponse
1487    {
1488        #[inline(always)]
1489        fn new_empty() -> Self {
1490            Self { rights: fidl::new_empty!(fidl::Rights, D) }
1491        }
1492
1493        #[inline]
1494        unsafe fn decode(
1495            &mut self,
1496            decoder: &mut fidl::encoding::Decoder<'_, D>,
1497            offset: usize,
1498            _depth: fidl::encoding::Depth,
1499        ) -> fidl::Result<()> {
1500            decoder.debug_check_bounds::<Self>(offset);
1501            // Verify that padding bytes are zero.
1502            fidl::decode!(fidl::Rights, D, &mut self.rights, decoder, offset + 0, _depth)?;
1503            Ok(())
1504        }
1505    }
1506
1507    impl fidl::encoding::ValueTypeMarker for ClosedTargetGetSignalableEventRightsResponse {
1508        type Borrowed<'a> = &'a Self;
1509        fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1510            value
1511        }
1512    }
1513
1514    unsafe impl fidl::encoding::TypeMarker for ClosedTargetGetSignalableEventRightsResponse {
1515        type Owned = Self;
1516
1517        #[inline(always)]
1518        fn inline_align(_context: fidl::encoding::Context) -> usize {
1519            4
1520        }
1521
1522        #[inline(always)]
1523        fn inline_size(_context: fidl::encoding::Context) -> usize {
1524            4
1525        }
1526    }
1527
1528    unsafe impl<D: fidl::encoding::ResourceDialect>
1529        fidl::encoding::Encode<ClosedTargetGetSignalableEventRightsResponse, D>
1530        for &ClosedTargetGetSignalableEventRightsResponse
1531    {
1532        #[inline]
1533        unsafe fn encode(
1534            self,
1535            encoder: &mut fidl::encoding::Encoder<'_, D>,
1536            offset: usize,
1537            _depth: fidl::encoding::Depth,
1538        ) -> fidl::Result<()> {
1539            encoder.debug_check_bounds::<ClosedTargetGetSignalableEventRightsResponse>(offset);
1540            // Delegate to tuple encoding.
1541            fidl::encoding::Encode::<ClosedTargetGetSignalableEventRightsResponse, D>::encode(
1542                (<fidl::Rights as fidl::encoding::ValueTypeMarker>::borrow(&self.rights),),
1543                encoder,
1544                offset,
1545                _depth,
1546            )
1547        }
1548    }
1549    unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<fidl::Rights, D>>
1550        fidl::encoding::Encode<ClosedTargetGetSignalableEventRightsResponse, D> for (T0,)
1551    {
1552        #[inline]
1553        unsafe fn encode(
1554            self,
1555            encoder: &mut fidl::encoding::Encoder<'_, D>,
1556            offset: usize,
1557            depth: fidl::encoding::Depth,
1558        ) -> fidl::Result<()> {
1559            encoder.debug_check_bounds::<ClosedTargetGetSignalableEventRightsResponse>(offset);
1560            // Zero out padding regions. There's no need to apply masks
1561            // because the unmasked parts will be overwritten by fields.
1562            // Write the fields.
1563            self.0.encode(encoder, offset + 0, depth)?;
1564            Ok(())
1565        }
1566    }
1567
1568    impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1569        for ClosedTargetGetSignalableEventRightsResponse
1570    {
1571        #[inline(always)]
1572        fn new_empty() -> Self {
1573            Self { rights: fidl::new_empty!(fidl::Rights, D) }
1574        }
1575
1576        #[inline]
1577        unsafe fn decode(
1578            &mut self,
1579            decoder: &mut fidl::encoding::Decoder<'_, D>,
1580            offset: usize,
1581            _depth: fidl::encoding::Depth,
1582        ) -> fidl::Result<()> {
1583            decoder.debug_check_bounds::<Self>(offset);
1584            // Verify that padding bytes are zero.
1585            fidl::decode!(fidl::Rights, D, &mut self.rights, decoder, offset + 0, _depth)?;
1586            Ok(())
1587        }
1588    }
1589
1590    impl fidl::encoding::ValueTypeMarker for ClosedTargetHandleVectorSizeResponse {
1591        type Borrowed<'a> = &'a Self;
1592        fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1593            value
1594        }
1595    }
1596
1597    unsafe impl fidl::encoding::TypeMarker for ClosedTargetHandleVectorSizeResponse {
1598        type Owned = Self;
1599
1600        #[inline(always)]
1601        fn inline_align(_context: fidl::encoding::Context) -> usize {
1602            4
1603        }
1604
1605        #[inline(always)]
1606        fn inline_size(_context: fidl::encoding::Context) -> usize {
1607            4
1608        }
1609        #[inline(always)]
1610        fn encode_is_copy() -> bool {
1611            true
1612        }
1613
1614        #[inline(always)]
1615        fn decode_is_copy() -> bool {
1616            true
1617        }
1618    }
1619
1620    unsafe impl<D: fidl::encoding::ResourceDialect>
1621        fidl::encoding::Encode<ClosedTargetHandleVectorSizeResponse, D>
1622        for &ClosedTargetHandleVectorSizeResponse
1623    {
1624        #[inline]
1625        unsafe fn encode(
1626            self,
1627            encoder: &mut fidl::encoding::Encoder<'_, D>,
1628            offset: usize,
1629            _depth: fidl::encoding::Depth,
1630        ) -> fidl::Result<()> {
1631            encoder.debug_check_bounds::<ClosedTargetHandleVectorSizeResponse>(offset);
1632            unsafe {
1633                // Copy the object into the buffer.
1634                let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
1635                (buf_ptr as *mut ClosedTargetHandleVectorSizeResponse)
1636                    .write_unaligned((self as *const ClosedTargetHandleVectorSizeResponse).read());
1637                // Zero out padding regions. Unlike `fidl_struct_impl_noncopy!`, this must be
1638                // done second because the memcpy will write garbage to these bytes.
1639            }
1640            Ok(())
1641        }
1642    }
1643    unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<u32, D>>
1644        fidl::encoding::Encode<ClosedTargetHandleVectorSizeResponse, D> for (T0,)
1645    {
1646        #[inline]
1647        unsafe fn encode(
1648            self,
1649            encoder: &mut fidl::encoding::Encoder<'_, D>,
1650            offset: usize,
1651            depth: fidl::encoding::Depth,
1652        ) -> fidl::Result<()> {
1653            encoder.debug_check_bounds::<ClosedTargetHandleVectorSizeResponse>(offset);
1654            // Zero out padding regions. There's no need to apply masks
1655            // because the unmasked parts will be overwritten by fields.
1656            // Write the fields.
1657            self.0.encode(encoder, offset + 0, depth)?;
1658            Ok(())
1659        }
1660    }
1661
1662    impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1663        for ClosedTargetHandleVectorSizeResponse
1664    {
1665        #[inline(always)]
1666        fn new_empty() -> Self {
1667            Self { n: fidl::new_empty!(u32, D) }
1668        }
1669
1670        #[inline]
1671        unsafe fn decode(
1672            &mut self,
1673            decoder: &mut fidl::encoding::Decoder<'_, D>,
1674            offset: usize,
1675            _depth: fidl::encoding::Depth,
1676        ) -> fidl::Result<()> {
1677            decoder.debug_check_bounds::<Self>(offset);
1678            let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
1679            // Verify that padding bytes are zero.
1680            // Copy from the buffer into the object.
1681            unsafe {
1682                std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 4);
1683            }
1684            Ok(())
1685        }
1686    }
1687
1688    impl fidl::encoding::ValueTypeMarker for ClosedTargetTwoWayStructPayloadRequest {
1689        type Borrowed<'a> = &'a Self;
1690        fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1691            value
1692        }
1693    }
1694
1695    unsafe impl fidl::encoding::TypeMarker for ClosedTargetTwoWayStructPayloadRequest {
1696        type Owned = Self;
1697
1698        #[inline(always)]
1699        fn inline_align(_context: fidl::encoding::Context) -> usize {
1700            1
1701        }
1702
1703        #[inline(always)]
1704        fn inline_size(_context: fidl::encoding::Context) -> usize {
1705            1
1706        }
1707        #[inline(always)]
1708        fn encode_is_copy() -> bool {
1709            true
1710        }
1711
1712        #[inline(always)]
1713        fn decode_is_copy() -> bool {
1714            true
1715        }
1716    }
1717
1718    unsafe impl<D: fidl::encoding::ResourceDialect>
1719        fidl::encoding::Encode<ClosedTargetTwoWayStructPayloadRequest, D>
1720        for &ClosedTargetTwoWayStructPayloadRequest
1721    {
1722        #[inline]
1723        unsafe fn encode(
1724            self,
1725            encoder: &mut fidl::encoding::Encoder<'_, D>,
1726            offset: usize,
1727            _depth: fidl::encoding::Depth,
1728        ) -> fidl::Result<()> {
1729            encoder.debug_check_bounds::<ClosedTargetTwoWayStructPayloadRequest>(offset);
1730            unsafe {
1731                // Copy the object into the buffer.
1732                let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
1733                (buf_ptr as *mut ClosedTargetTwoWayStructPayloadRequest).write_unaligned(
1734                    (self as *const ClosedTargetTwoWayStructPayloadRequest).read(),
1735                );
1736                // Zero out padding regions. Unlike `fidl_struct_impl_noncopy!`, this must be
1737                // done second because the memcpy will write garbage to these bytes.
1738            }
1739            Ok(())
1740        }
1741    }
1742    unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<i8, D>>
1743        fidl::encoding::Encode<ClosedTargetTwoWayStructPayloadRequest, D> for (T0,)
1744    {
1745        #[inline]
1746        unsafe fn encode(
1747            self,
1748            encoder: &mut fidl::encoding::Encoder<'_, D>,
1749            offset: usize,
1750            depth: fidl::encoding::Depth,
1751        ) -> fidl::Result<()> {
1752            encoder.debug_check_bounds::<ClosedTargetTwoWayStructPayloadRequest>(offset);
1753            // Zero out padding regions. There's no need to apply masks
1754            // because the unmasked parts will be overwritten by fields.
1755            // Write the fields.
1756            self.0.encode(encoder, offset + 0, depth)?;
1757            Ok(())
1758        }
1759    }
1760
1761    impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1762        for ClosedTargetTwoWayStructPayloadRequest
1763    {
1764        #[inline(always)]
1765        fn new_empty() -> Self {
1766            Self { v: fidl::new_empty!(i8, D) }
1767        }
1768
1769        #[inline]
1770        unsafe fn decode(
1771            &mut self,
1772            decoder: &mut fidl::encoding::Decoder<'_, D>,
1773            offset: usize,
1774            _depth: fidl::encoding::Depth,
1775        ) -> fidl::Result<()> {
1776            decoder.debug_check_bounds::<Self>(offset);
1777            let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
1778            // Verify that padding bytes are zero.
1779            // Copy from the buffer into the object.
1780            unsafe {
1781                std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 1);
1782            }
1783            Ok(())
1784        }
1785    }
1786
1787    impl fidl::encoding::ValueTypeMarker for ClosedTargetTwoWayStructPayloadResponse {
1788        type Borrowed<'a> = &'a Self;
1789        fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1790            value
1791        }
1792    }
1793
1794    unsafe impl fidl::encoding::TypeMarker for ClosedTargetTwoWayStructPayloadResponse {
1795        type Owned = Self;
1796
1797        #[inline(always)]
1798        fn inline_align(_context: fidl::encoding::Context) -> usize {
1799            1
1800        }
1801
1802        #[inline(always)]
1803        fn inline_size(_context: fidl::encoding::Context) -> usize {
1804            1
1805        }
1806        #[inline(always)]
1807        fn encode_is_copy() -> bool {
1808            true
1809        }
1810
1811        #[inline(always)]
1812        fn decode_is_copy() -> bool {
1813            true
1814        }
1815    }
1816
1817    unsafe impl<D: fidl::encoding::ResourceDialect>
1818        fidl::encoding::Encode<ClosedTargetTwoWayStructPayloadResponse, D>
1819        for &ClosedTargetTwoWayStructPayloadResponse
1820    {
1821        #[inline]
1822        unsafe fn encode(
1823            self,
1824            encoder: &mut fidl::encoding::Encoder<'_, D>,
1825            offset: usize,
1826            _depth: fidl::encoding::Depth,
1827        ) -> fidl::Result<()> {
1828            encoder.debug_check_bounds::<ClosedTargetTwoWayStructPayloadResponse>(offset);
1829            unsafe {
1830                // Copy the object into the buffer.
1831                let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
1832                (buf_ptr as *mut ClosedTargetTwoWayStructPayloadResponse).write_unaligned(
1833                    (self as *const ClosedTargetTwoWayStructPayloadResponse).read(),
1834                );
1835                // Zero out padding regions. Unlike `fidl_struct_impl_noncopy!`, this must be
1836                // done second because the memcpy will write garbage to these bytes.
1837            }
1838            Ok(())
1839        }
1840    }
1841    unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<i8, D>>
1842        fidl::encoding::Encode<ClosedTargetTwoWayStructPayloadResponse, D> for (T0,)
1843    {
1844        #[inline]
1845        unsafe fn encode(
1846            self,
1847            encoder: &mut fidl::encoding::Encoder<'_, D>,
1848            offset: usize,
1849            depth: fidl::encoding::Depth,
1850        ) -> fidl::Result<()> {
1851            encoder.debug_check_bounds::<ClosedTargetTwoWayStructPayloadResponse>(offset);
1852            // Zero out padding regions. There's no need to apply masks
1853            // because the unmasked parts will be overwritten by fields.
1854            // Write the fields.
1855            self.0.encode(encoder, offset + 0, depth)?;
1856            Ok(())
1857        }
1858    }
1859
1860    impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1861        for ClosedTargetTwoWayStructPayloadResponse
1862    {
1863        #[inline(always)]
1864        fn new_empty() -> Self {
1865            Self { v: fidl::new_empty!(i8, D) }
1866        }
1867
1868        #[inline]
1869        unsafe fn decode(
1870            &mut self,
1871            decoder: &mut fidl::encoding::Decoder<'_, D>,
1872            offset: usize,
1873            _depth: fidl::encoding::Depth,
1874        ) -> fidl::Result<()> {
1875            decoder.debug_check_bounds::<Self>(offset);
1876            let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
1877            // Verify that padding bytes are zero.
1878            // Copy from the buffer into the object.
1879            unsafe {
1880                std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 1);
1881            }
1882            Ok(())
1883        }
1884    }
1885
1886    impl fidl::encoding::ValueTypeMarker for ClosedTargetTwoWayResultResponse {
1887        type Borrowed<'a> = &'a Self;
1888        fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1889            value
1890        }
1891    }
1892
1893    unsafe impl fidl::encoding::TypeMarker for ClosedTargetTwoWayResultResponse {
1894        type Owned = Self;
1895
1896        #[inline(always)]
1897        fn inline_align(_context: fidl::encoding::Context) -> usize {
1898            8
1899        }
1900
1901        #[inline(always)]
1902        fn inline_size(_context: fidl::encoding::Context) -> usize {
1903            16
1904        }
1905    }
1906
1907    unsafe impl<D: fidl::encoding::ResourceDialect>
1908        fidl::encoding::Encode<ClosedTargetTwoWayResultResponse, D>
1909        for &ClosedTargetTwoWayResultResponse
1910    {
1911        #[inline]
1912        unsafe fn encode(
1913            self,
1914            encoder: &mut fidl::encoding::Encoder<'_, D>,
1915            offset: usize,
1916            _depth: fidl::encoding::Depth,
1917        ) -> fidl::Result<()> {
1918            encoder.debug_check_bounds::<ClosedTargetTwoWayResultResponse>(offset);
1919            // Delegate to tuple encoding.
1920            fidl::encoding::Encode::<ClosedTargetTwoWayResultResponse, D>::encode(
1921                (<fidl::encoding::UnboundedString as fidl::encoding::ValueTypeMarker>::borrow(
1922                    &self.payload,
1923                ),),
1924                encoder,
1925                offset,
1926                _depth,
1927            )
1928        }
1929    }
1930    unsafe impl<
1931            D: fidl::encoding::ResourceDialect,
1932            T0: fidl::encoding::Encode<fidl::encoding::UnboundedString, D>,
1933        > fidl::encoding::Encode<ClosedTargetTwoWayResultResponse, D> for (T0,)
1934    {
1935        #[inline]
1936        unsafe fn encode(
1937            self,
1938            encoder: &mut fidl::encoding::Encoder<'_, D>,
1939            offset: usize,
1940            depth: fidl::encoding::Depth,
1941        ) -> fidl::Result<()> {
1942            encoder.debug_check_bounds::<ClosedTargetTwoWayResultResponse>(offset);
1943            // Zero out padding regions. There's no need to apply masks
1944            // because the unmasked parts will be overwritten by fields.
1945            // Write the fields.
1946            self.0.encode(encoder, offset + 0, depth)?;
1947            Ok(())
1948        }
1949    }
1950
1951    impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1952        for ClosedTargetTwoWayResultResponse
1953    {
1954        #[inline(always)]
1955        fn new_empty() -> Self {
1956            Self { payload: fidl::new_empty!(fidl::encoding::UnboundedString, D) }
1957        }
1958
1959        #[inline]
1960        unsafe fn decode(
1961            &mut self,
1962            decoder: &mut fidl::encoding::Decoder<'_, D>,
1963            offset: usize,
1964            _depth: fidl::encoding::Depth,
1965        ) -> fidl::Result<()> {
1966            decoder.debug_check_bounds::<Self>(offset);
1967            // Verify that padding bytes are zero.
1968            fidl::decode!(
1969                fidl::encoding::UnboundedString,
1970                D,
1971                &mut self.payload,
1972                decoder,
1973                offset + 0,
1974                _depth
1975            )?;
1976            Ok(())
1977        }
1978    }
1979
1980    impl fidl::encoding::ValueTypeMarker for Empty {
1981        type Borrowed<'a> = &'a Self;
1982        fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1983            value
1984        }
1985    }
1986
1987    unsafe impl fidl::encoding::TypeMarker for Empty {
1988        type Owned = Self;
1989
1990        #[inline(always)]
1991        fn inline_align(_context: fidl::encoding::Context) -> usize {
1992            1
1993        }
1994
1995        #[inline(always)]
1996        fn inline_size(_context: fidl::encoding::Context) -> usize {
1997            1
1998        }
1999    }
2000
2001    unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Empty, D> for &Empty {
2002        #[inline]
2003        unsafe fn encode(
2004            self,
2005            encoder: &mut fidl::encoding::Encoder<'_, D>,
2006            offset: usize,
2007            _depth: fidl::encoding::Depth,
2008        ) -> fidl::Result<()> {
2009            encoder.debug_check_bounds::<Empty>(offset);
2010            encoder.write_num(0u8, offset);
2011            Ok(())
2012        }
2013    }
2014
2015    impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Empty {
2016        #[inline(always)]
2017        fn new_empty() -> Self {
2018            Self
2019        }
2020
2021        #[inline]
2022        unsafe fn decode(
2023            &mut self,
2024            decoder: &mut fidl::encoding::Decoder<'_, D>,
2025            offset: usize,
2026            _depth: fidl::encoding::Depth,
2027        ) -> fidl::Result<()> {
2028            decoder.debug_check_bounds::<Self>(offset);
2029            match decoder.read_num::<u8>(offset) {
2030                0 => Ok(()),
2031                _ => Err(fidl::Error::Invalid),
2032            }
2033        }
2034    }
2035
2036    impl fidl::encoding::ValueTypeMarker for OpenTargetFlexibleTwoWayFieldsRequest {
2037        type Borrowed<'a> = &'a Self;
2038        fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2039            value
2040        }
2041    }
2042
2043    unsafe impl fidl::encoding::TypeMarker for OpenTargetFlexibleTwoWayFieldsRequest {
2044        type Owned = Self;
2045
2046        #[inline(always)]
2047        fn inline_align(_context: fidl::encoding::Context) -> usize {
2048            4
2049        }
2050
2051        #[inline(always)]
2052        fn inline_size(_context: fidl::encoding::Context) -> usize {
2053            4
2054        }
2055        #[inline(always)]
2056        fn encode_is_copy() -> bool {
2057            true
2058        }
2059
2060        #[inline(always)]
2061        fn decode_is_copy() -> bool {
2062            true
2063        }
2064    }
2065
2066    unsafe impl<D: fidl::encoding::ResourceDialect>
2067        fidl::encoding::Encode<OpenTargetFlexibleTwoWayFieldsRequest, D>
2068        for &OpenTargetFlexibleTwoWayFieldsRequest
2069    {
2070        #[inline]
2071        unsafe fn encode(
2072            self,
2073            encoder: &mut fidl::encoding::Encoder<'_, D>,
2074            offset: usize,
2075            _depth: fidl::encoding::Depth,
2076        ) -> fidl::Result<()> {
2077            encoder.debug_check_bounds::<OpenTargetFlexibleTwoWayFieldsRequest>(offset);
2078            unsafe {
2079                // Copy the object into the buffer.
2080                let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
2081                (buf_ptr as *mut OpenTargetFlexibleTwoWayFieldsRequest)
2082                    .write_unaligned((self as *const OpenTargetFlexibleTwoWayFieldsRequest).read());
2083                // Zero out padding regions. Unlike `fidl_struct_impl_noncopy!`, this must be
2084                // done second because the memcpy will write garbage to these bytes.
2085            }
2086            Ok(())
2087        }
2088    }
2089    unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<i32, D>>
2090        fidl::encoding::Encode<OpenTargetFlexibleTwoWayFieldsRequest, D> for (T0,)
2091    {
2092        #[inline]
2093        unsafe fn encode(
2094            self,
2095            encoder: &mut fidl::encoding::Encoder<'_, D>,
2096            offset: usize,
2097            depth: fidl::encoding::Depth,
2098        ) -> fidl::Result<()> {
2099            encoder.debug_check_bounds::<OpenTargetFlexibleTwoWayFieldsRequest>(offset);
2100            // Zero out padding regions. There's no need to apply masks
2101            // because the unmasked parts will be overwritten by fields.
2102            // Write the fields.
2103            self.0.encode(encoder, offset + 0, depth)?;
2104            Ok(())
2105        }
2106    }
2107
2108    impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2109        for OpenTargetFlexibleTwoWayFieldsRequest
2110    {
2111        #[inline(always)]
2112        fn new_empty() -> Self {
2113            Self { reply_with: fidl::new_empty!(i32, D) }
2114        }
2115
2116        #[inline]
2117        unsafe fn decode(
2118            &mut self,
2119            decoder: &mut fidl::encoding::Decoder<'_, D>,
2120            offset: usize,
2121            _depth: fidl::encoding::Depth,
2122        ) -> fidl::Result<()> {
2123            decoder.debug_check_bounds::<Self>(offset);
2124            let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
2125            // Verify that padding bytes are zero.
2126            // Copy from the buffer into the object.
2127            unsafe {
2128                std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 4);
2129            }
2130            Ok(())
2131        }
2132    }
2133
2134    impl fidl::encoding::ValueTypeMarker for OpenTargetStrictTwoWayFieldsRequest {
2135        type Borrowed<'a> = &'a Self;
2136        fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2137            value
2138        }
2139    }
2140
2141    unsafe impl fidl::encoding::TypeMarker for OpenTargetStrictTwoWayFieldsRequest {
2142        type Owned = Self;
2143
2144        #[inline(always)]
2145        fn inline_align(_context: fidl::encoding::Context) -> usize {
2146            4
2147        }
2148
2149        #[inline(always)]
2150        fn inline_size(_context: fidl::encoding::Context) -> usize {
2151            4
2152        }
2153        #[inline(always)]
2154        fn encode_is_copy() -> bool {
2155            true
2156        }
2157
2158        #[inline(always)]
2159        fn decode_is_copy() -> bool {
2160            true
2161        }
2162    }
2163
2164    unsafe impl<D: fidl::encoding::ResourceDialect>
2165        fidl::encoding::Encode<OpenTargetStrictTwoWayFieldsRequest, D>
2166        for &OpenTargetStrictTwoWayFieldsRequest
2167    {
2168        #[inline]
2169        unsafe fn encode(
2170            self,
2171            encoder: &mut fidl::encoding::Encoder<'_, D>,
2172            offset: usize,
2173            _depth: fidl::encoding::Depth,
2174        ) -> fidl::Result<()> {
2175            encoder.debug_check_bounds::<OpenTargetStrictTwoWayFieldsRequest>(offset);
2176            unsafe {
2177                // Copy the object into the buffer.
2178                let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
2179                (buf_ptr as *mut OpenTargetStrictTwoWayFieldsRequest)
2180                    .write_unaligned((self as *const OpenTargetStrictTwoWayFieldsRequest).read());
2181                // Zero out padding regions. Unlike `fidl_struct_impl_noncopy!`, this must be
2182                // done second because the memcpy will write garbage to these bytes.
2183            }
2184            Ok(())
2185        }
2186    }
2187    unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<i32, D>>
2188        fidl::encoding::Encode<OpenTargetStrictTwoWayFieldsRequest, D> for (T0,)
2189    {
2190        #[inline]
2191        unsafe fn encode(
2192            self,
2193            encoder: &mut fidl::encoding::Encoder<'_, D>,
2194            offset: usize,
2195            depth: fidl::encoding::Depth,
2196        ) -> fidl::Result<()> {
2197            encoder.debug_check_bounds::<OpenTargetStrictTwoWayFieldsRequest>(offset);
2198            // Zero out padding regions. There's no need to apply masks
2199            // because the unmasked parts will be overwritten by fields.
2200            // Write the fields.
2201            self.0.encode(encoder, offset + 0, depth)?;
2202            Ok(())
2203        }
2204    }
2205
2206    impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2207        for OpenTargetStrictTwoWayFieldsRequest
2208    {
2209        #[inline(always)]
2210        fn new_empty() -> Self {
2211            Self { reply_with: fidl::new_empty!(i32, D) }
2212        }
2213
2214        #[inline]
2215        unsafe fn decode(
2216            &mut self,
2217            decoder: &mut fidl::encoding::Decoder<'_, D>,
2218            offset: usize,
2219            _depth: fidl::encoding::Depth,
2220        ) -> fidl::Result<()> {
2221            decoder.debug_check_bounds::<Self>(offset);
2222            let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
2223            // Verify that padding bytes are zero.
2224            // Copy from the buffer into the object.
2225            unsafe {
2226                std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 4);
2227            }
2228            Ok(())
2229        }
2230    }
2231
2232    impl fidl::encoding::ValueTypeMarker for OpenTargetStrictTwoWayFieldsResponse {
2233        type Borrowed<'a> = &'a Self;
2234        fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2235            value
2236        }
2237    }
2238
2239    unsafe impl fidl::encoding::TypeMarker for OpenTargetStrictTwoWayFieldsResponse {
2240        type Owned = Self;
2241
2242        #[inline(always)]
2243        fn inline_align(_context: fidl::encoding::Context) -> usize {
2244            4
2245        }
2246
2247        #[inline(always)]
2248        fn inline_size(_context: fidl::encoding::Context) -> usize {
2249            4
2250        }
2251        #[inline(always)]
2252        fn encode_is_copy() -> bool {
2253            true
2254        }
2255
2256        #[inline(always)]
2257        fn decode_is_copy() -> bool {
2258            true
2259        }
2260    }
2261
2262    unsafe impl<D: fidl::encoding::ResourceDialect>
2263        fidl::encoding::Encode<OpenTargetStrictTwoWayFieldsResponse, D>
2264        for &OpenTargetStrictTwoWayFieldsResponse
2265    {
2266        #[inline]
2267        unsafe fn encode(
2268            self,
2269            encoder: &mut fidl::encoding::Encoder<'_, D>,
2270            offset: usize,
2271            _depth: fidl::encoding::Depth,
2272        ) -> fidl::Result<()> {
2273            encoder.debug_check_bounds::<OpenTargetStrictTwoWayFieldsResponse>(offset);
2274            unsafe {
2275                // Copy the object into the buffer.
2276                let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
2277                (buf_ptr as *mut OpenTargetStrictTwoWayFieldsResponse)
2278                    .write_unaligned((self as *const OpenTargetStrictTwoWayFieldsResponse).read());
2279                // Zero out padding regions. Unlike `fidl_struct_impl_noncopy!`, this must be
2280                // done second because the memcpy will write garbage to these bytes.
2281            }
2282            Ok(())
2283        }
2284    }
2285    unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<i32, D>>
2286        fidl::encoding::Encode<OpenTargetStrictTwoWayFieldsResponse, D> for (T0,)
2287    {
2288        #[inline]
2289        unsafe fn encode(
2290            self,
2291            encoder: &mut fidl::encoding::Encoder<'_, D>,
2292            offset: usize,
2293            depth: fidl::encoding::Depth,
2294        ) -> fidl::Result<()> {
2295            encoder.debug_check_bounds::<OpenTargetStrictTwoWayFieldsResponse>(offset);
2296            // Zero out padding regions. There's no need to apply masks
2297            // because the unmasked parts will be overwritten by fields.
2298            // Write the fields.
2299            self.0.encode(encoder, offset + 0, depth)?;
2300            Ok(())
2301        }
2302    }
2303
2304    impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2305        for OpenTargetStrictTwoWayFieldsResponse
2306    {
2307        #[inline(always)]
2308        fn new_empty() -> Self {
2309            Self { some_field: fidl::new_empty!(i32, D) }
2310        }
2311
2312        #[inline]
2313        unsafe fn decode(
2314            &mut self,
2315            decoder: &mut fidl::encoding::Decoder<'_, D>,
2316            offset: usize,
2317            _depth: fidl::encoding::Depth,
2318        ) -> fidl::Result<()> {
2319            decoder.debug_check_bounds::<Self>(offset);
2320            let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
2321            // Verify that padding bytes are zero.
2322            // Copy from the buffer into the object.
2323            unsafe {
2324                std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 4);
2325            }
2326            Ok(())
2327        }
2328    }
2329
2330    impl fidl::encoding::ValueTypeMarker for OpenTargetFlexibleTwoWayFieldsErrResponse {
2331        type Borrowed<'a> = &'a Self;
2332        fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2333            value
2334        }
2335    }
2336
2337    unsafe impl fidl::encoding::TypeMarker for OpenTargetFlexibleTwoWayFieldsErrResponse {
2338        type Owned = Self;
2339
2340        #[inline(always)]
2341        fn inline_align(_context: fidl::encoding::Context) -> usize {
2342            4
2343        }
2344
2345        #[inline(always)]
2346        fn inline_size(_context: fidl::encoding::Context) -> usize {
2347            4
2348        }
2349        #[inline(always)]
2350        fn encode_is_copy() -> bool {
2351            true
2352        }
2353
2354        #[inline(always)]
2355        fn decode_is_copy() -> bool {
2356            true
2357        }
2358    }
2359
2360    unsafe impl<D: fidl::encoding::ResourceDialect>
2361        fidl::encoding::Encode<OpenTargetFlexibleTwoWayFieldsErrResponse, D>
2362        for &OpenTargetFlexibleTwoWayFieldsErrResponse
2363    {
2364        #[inline]
2365        unsafe fn encode(
2366            self,
2367            encoder: &mut fidl::encoding::Encoder<'_, D>,
2368            offset: usize,
2369            _depth: fidl::encoding::Depth,
2370        ) -> fidl::Result<()> {
2371            encoder.debug_check_bounds::<OpenTargetFlexibleTwoWayFieldsErrResponse>(offset);
2372            unsafe {
2373                // Copy the object into the buffer.
2374                let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
2375                (buf_ptr as *mut OpenTargetFlexibleTwoWayFieldsErrResponse).write_unaligned(
2376                    (self as *const OpenTargetFlexibleTwoWayFieldsErrResponse).read(),
2377                );
2378                // Zero out padding regions. Unlike `fidl_struct_impl_noncopy!`, this must be
2379                // done second because the memcpy will write garbage to these bytes.
2380            }
2381            Ok(())
2382        }
2383    }
2384    unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<i32, D>>
2385        fidl::encoding::Encode<OpenTargetFlexibleTwoWayFieldsErrResponse, D> for (T0,)
2386    {
2387        #[inline]
2388        unsafe fn encode(
2389            self,
2390            encoder: &mut fidl::encoding::Encoder<'_, D>,
2391            offset: usize,
2392            depth: fidl::encoding::Depth,
2393        ) -> fidl::Result<()> {
2394            encoder.debug_check_bounds::<OpenTargetFlexibleTwoWayFieldsErrResponse>(offset);
2395            // Zero out padding regions. There's no need to apply masks
2396            // because the unmasked parts will be overwritten by fields.
2397            // Write the fields.
2398            self.0.encode(encoder, offset + 0, depth)?;
2399            Ok(())
2400        }
2401    }
2402
2403    impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2404        for OpenTargetFlexibleTwoWayFieldsErrResponse
2405    {
2406        #[inline(always)]
2407        fn new_empty() -> Self {
2408            Self { some_field: fidl::new_empty!(i32, D) }
2409        }
2410
2411        #[inline]
2412        unsafe fn decode(
2413            &mut self,
2414            decoder: &mut fidl::encoding::Decoder<'_, D>,
2415            offset: usize,
2416            _depth: fidl::encoding::Depth,
2417        ) -> fidl::Result<()> {
2418            decoder.debug_check_bounds::<Self>(offset);
2419            let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
2420            // Verify that padding bytes are zero.
2421            // Copy from the buffer into the object.
2422            unsafe {
2423                std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 4);
2424            }
2425            Ok(())
2426        }
2427    }
2428
2429    impl fidl::encoding::ValueTypeMarker for OpenTargetFlexibleTwoWayFieldsResponse {
2430        type Borrowed<'a> = &'a Self;
2431        fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2432            value
2433        }
2434    }
2435
2436    unsafe impl fidl::encoding::TypeMarker for OpenTargetFlexibleTwoWayFieldsResponse {
2437        type Owned = Self;
2438
2439        #[inline(always)]
2440        fn inline_align(_context: fidl::encoding::Context) -> usize {
2441            4
2442        }
2443
2444        #[inline(always)]
2445        fn inline_size(_context: fidl::encoding::Context) -> usize {
2446            4
2447        }
2448        #[inline(always)]
2449        fn encode_is_copy() -> bool {
2450            true
2451        }
2452
2453        #[inline(always)]
2454        fn decode_is_copy() -> bool {
2455            true
2456        }
2457    }
2458
2459    unsafe impl<D: fidl::encoding::ResourceDialect>
2460        fidl::encoding::Encode<OpenTargetFlexibleTwoWayFieldsResponse, D>
2461        for &OpenTargetFlexibleTwoWayFieldsResponse
2462    {
2463        #[inline]
2464        unsafe fn encode(
2465            self,
2466            encoder: &mut fidl::encoding::Encoder<'_, D>,
2467            offset: usize,
2468            _depth: fidl::encoding::Depth,
2469        ) -> fidl::Result<()> {
2470            encoder.debug_check_bounds::<OpenTargetFlexibleTwoWayFieldsResponse>(offset);
2471            unsafe {
2472                // Copy the object into the buffer.
2473                let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
2474                (buf_ptr as *mut OpenTargetFlexibleTwoWayFieldsResponse).write_unaligned(
2475                    (self as *const OpenTargetFlexibleTwoWayFieldsResponse).read(),
2476                );
2477                // Zero out padding regions. Unlike `fidl_struct_impl_noncopy!`, this must be
2478                // done second because the memcpy will write garbage to these bytes.
2479            }
2480            Ok(())
2481        }
2482    }
2483    unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<i32, D>>
2484        fidl::encoding::Encode<OpenTargetFlexibleTwoWayFieldsResponse, D> for (T0,)
2485    {
2486        #[inline]
2487        unsafe fn encode(
2488            self,
2489            encoder: &mut fidl::encoding::Encoder<'_, D>,
2490            offset: usize,
2491            depth: fidl::encoding::Depth,
2492        ) -> fidl::Result<()> {
2493            encoder.debug_check_bounds::<OpenTargetFlexibleTwoWayFieldsResponse>(offset);
2494            // Zero out padding regions. There's no need to apply masks
2495            // because the unmasked parts will be overwritten by fields.
2496            // Write the fields.
2497            self.0.encode(encoder, offset + 0, depth)?;
2498            Ok(())
2499        }
2500    }
2501
2502    impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2503        for OpenTargetFlexibleTwoWayFieldsResponse
2504    {
2505        #[inline(always)]
2506        fn new_empty() -> Self {
2507            Self { some_field: fidl::new_empty!(i32, D) }
2508        }
2509
2510        #[inline]
2511        unsafe fn decode(
2512            &mut self,
2513            decoder: &mut fidl::encoding::Decoder<'_, D>,
2514            offset: usize,
2515            _depth: fidl::encoding::Depth,
2516        ) -> fidl::Result<()> {
2517            decoder.debug_check_bounds::<Self>(offset);
2518            let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
2519            // Verify that padding bytes are zero.
2520            // Copy from the buffer into the object.
2521            unsafe {
2522                std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 4);
2523            }
2524            Ok(())
2525        }
2526    }
2527
2528    impl fidl::encoding::ValueTypeMarker for OpenTargetStrictTwoWayFieldsErrResponse {
2529        type Borrowed<'a> = &'a Self;
2530        fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2531            value
2532        }
2533    }
2534
2535    unsafe impl fidl::encoding::TypeMarker for OpenTargetStrictTwoWayFieldsErrResponse {
2536        type Owned = Self;
2537
2538        #[inline(always)]
2539        fn inline_align(_context: fidl::encoding::Context) -> usize {
2540            4
2541        }
2542
2543        #[inline(always)]
2544        fn inline_size(_context: fidl::encoding::Context) -> usize {
2545            4
2546        }
2547        #[inline(always)]
2548        fn encode_is_copy() -> bool {
2549            true
2550        }
2551
2552        #[inline(always)]
2553        fn decode_is_copy() -> bool {
2554            true
2555        }
2556    }
2557
2558    unsafe impl<D: fidl::encoding::ResourceDialect>
2559        fidl::encoding::Encode<OpenTargetStrictTwoWayFieldsErrResponse, D>
2560        for &OpenTargetStrictTwoWayFieldsErrResponse
2561    {
2562        #[inline]
2563        unsafe fn encode(
2564            self,
2565            encoder: &mut fidl::encoding::Encoder<'_, D>,
2566            offset: usize,
2567            _depth: fidl::encoding::Depth,
2568        ) -> fidl::Result<()> {
2569            encoder.debug_check_bounds::<OpenTargetStrictTwoWayFieldsErrResponse>(offset);
2570            unsafe {
2571                // Copy the object into the buffer.
2572                let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
2573                (buf_ptr as *mut OpenTargetStrictTwoWayFieldsErrResponse).write_unaligned(
2574                    (self as *const OpenTargetStrictTwoWayFieldsErrResponse).read(),
2575                );
2576                // Zero out padding regions. Unlike `fidl_struct_impl_noncopy!`, this must be
2577                // done second because the memcpy will write garbage to these bytes.
2578            }
2579            Ok(())
2580        }
2581    }
2582    unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<i32, D>>
2583        fidl::encoding::Encode<OpenTargetStrictTwoWayFieldsErrResponse, D> for (T0,)
2584    {
2585        #[inline]
2586        unsafe fn encode(
2587            self,
2588            encoder: &mut fidl::encoding::Encoder<'_, D>,
2589            offset: usize,
2590            depth: fidl::encoding::Depth,
2591        ) -> fidl::Result<()> {
2592            encoder.debug_check_bounds::<OpenTargetStrictTwoWayFieldsErrResponse>(offset);
2593            // Zero out padding regions. There's no need to apply masks
2594            // because the unmasked parts will be overwritten by fields.
2595            // Write the fields.
2596            self.0.encode(encoder, offset + 0, depth)?;
2597            Ok(())
2598        }
2599    }
2600
2601    impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2602        for OpenTargetStrictTwoWayFieldsErrResponse
2603    {
2604        #[inline(always)]
2605        fn new_empty() -> Self {
2606            Self { some_field: fidl::new_empty!(i32, D) }
2607        }
2608
2609        #[inline]
2610        unsafe fn decode(
2611            &mut self,
2612            decoder: &mut fidl::encoding::Decoder<'_, D>,
2613            offset: usize,
2614            _depth: fidl::encoding::Depth,
2615        ) -> fidl::Result<()> {
2616            decoder.debug_check_bounds::<Self>(offset);
2617            let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
2618            // Verify that padding bytes are zero.
2619            // Copy from the buffer into the object.
2620            unsafe {
2621                std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 4);
2622            }
2623            Ok(())
2624        }
2625    }
2626
2627    impl fidl::encoding::ValueTypeMarker for RunnerGetVersionResponse {
2628        type Borrowed<'a> = &'a Self;
2629        fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2630            value
2631        }
2632    }
2633
2634    unsafe impl fidl::encoding::TypeMarker for RunnerGetVersionResponse {
2635        type Owned = Self;
2636
2637        #[inline(always)]
2638        fn inline_align(_context: fidl::encoding::Context) -> usize {
2639            8
2640        }
2641
2642        #[inline(always)]
2643        fn inline_size(_context: fidl::encoding::Context) -> usize {
2644            8
2645        }
2646        #[inline(always)]
2647        fn encode_is_copy() -> bool {
2648            true
2649        }
2650
2651        #[inline(always)]
2652        fn decode_is_copy() -> bool {
2653            true
2654        }
2655    }
2656
2657    unsafe impl<D: fidl::encoding::ResourceDialect>
2658        fidl::encoding::Encode<RunnerGetVersionResponse, D> for &RunnerGetVersionResponse
2659    {
2660        #[inline]
2661        unsafe fn encode(
2662            self,
2663            encoder: &mut fidl::encoding::Encoder<'_, D>,
2664            offset: usize,
2665            _depth: fidl::encoding::Depth,
2666        ) -> fidl::Result<()> {
2667            encoder.debug_check_bounds::<RunnerGetVersionResponse>(offset);
2668            unsafe {
2669                // Copy the object into the buffer.
2670                let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
2671                (buf_ptr as *mut RunnerGetVersionResponse)
2672                    .write_unaligned((self as *const RunnerGetVersionResponse).read());
2673                // Zero out padding regions. Unlike `fidl_struct_impl_noncopy!`, this must be
2674                // done second because the memcpy will write garbage to these bytes.
2675            }
2676            Ok(())
2677        }
2678    }
2679    unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<u64, D>>
2680        fidl::encoding::Encode<RunnerGetVersionResponse, D> for (T0,)
2681    {
2682        #[inline]
2683        unsafe fn encode(
2684            self,
2685            encoder: &mut fidl::encoding::Encoder<'_, D>,
2686            offset: usize,
2687            depth: fidl::encoding::Depth,
2688        ) -> fidl::Result<()> {
2689            encoder.debug_check_bounds::<RunnerGetVersionResponse>(offset);
2690            // Zero out padding regions. There's no need to apply masks
2691            // because the unmasked parts will be overwritten by fields.
2692            // Write the fields.
2693            self.0.encode(encoder, offset + 0, depth)?;
2694            Ok(())
2695        }
2696    }
2697
2698    impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2699        for RunnerGetVersionResponse
2700    {
2701        #[inline(always)]
2702        fn new_empty() -> Self {
2703            Self { version: fidl::new_empty!(u64, D) }
2704        }
2705
2706        #[inline]
2707        unsafe fn decode(
2708            &mut self,
2709            decoder: &mut fidl::encoding::Decoder<'_, D>,
2710            offset: usize,
2711            _depth: fidl::encoding::Depth,
2712        ) -> fidl::Result<()> {
2713            decoder.debug_check_bounds::<Self>(offset);
2714            let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
2715            // Verify that padding bytes are zero.
2716            // Copy from the buffer into the object.
2717            unsafe {
2718                std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 8);
2719            }
2720            Ok(())
2721        }
2722    }
2723
2724    impl fidl::encoding::ValueTypeMarker for RunnerOnTeardownRequest {
2725        type Borrowed<'a> = &'a Self;
2726        fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2727            value
2728        }
2729    }
2730
2731    unsafe impl fidl::encoding::TypeMarker for RunnerOnTeardownRequest {
2732        type Owned = Self;
2733
2734        #[inline(always)]
2735        fn inline_align(_context: fidl::encoding::Context) -> usize {
2736            4
2737        }
2738
2739        #[inline(always)]
2740        fn inline_size(_context: fidl::encoding::Context) -> usize {
2741            4
2742        }
2743    }
2744
2745    unsafe impl<D: fidl::encoding::ResourceDialect>
2746        fidl::encoding::Encode<RunnerOnTeardownRequest, D> for &RunnerOnTeardownRequest
2747    {
2748        #[inline]
2749        unsafe fn encode(
2750            self,
2751            encoder: &mut fidl::encoding::Encoder<'_, D>,
2752            offset: usize,
2753            _depth: fidl::encoding::Depth,
2754        ) -> fidl::Result<()> {
2755            encoder.debug_check_bounds::<RunnerOnTeardownRequest>(offset);
2756            // Delegate to tuple encoding.
2757            fidl::encoding::Encode::<RunnerOnTeardownRequest, D>::encode(
2758                (<TeardownReason as fidl::encoding::ValueTypeMarker>::borrow(&self.reason),),
2759                encoder,
2760                offset,
2761                _depth,
2762            )
2763        }
2764    }
2765    unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<TeardownReason, D>>
2766        fidl::encoding::Encode<RunnerOnTeardownRequest, D> for (T0,)
2767    {
2768        #[inline]
2769        unsafe fn encode(
2770            self,
2771            encoder: &mut fidl::encoding::Encoder<'_, D>,
2772            offset: usize,
2773            depth: fidl::encoding::Depth,
2774        ) -> fidl::Result<()> {
2775            encoder.debug_check_bounds::<RunnerOnTeardownRequest>(offset);
2776            // Zero out padding regions. There's no need to apply masks
2777            // because the unmasked parts will be overwritten by fields.
2778            // Write the fields.
2779            self.0.encode(encoder, offset + 0, depth)?;
2780            Ok(())
2781        }
2782    }
2783
2784    impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2785        for RunnerOnTeardownRequest
2786    {
2787        #[inline(always)]
2788        fn new_empty() -> Self {
2789            Self { reason: fidl::new_empty!(TeardownReason, D) }
2790        }
2791
2792        #[inline]
2793        unsafe fn decode(
2794            &mut self,
2795            decoder: &mut fidl::encoding::Decoder<'_, D>,
2796            offset: usize,
2797            _depth: fidl::encoding::Depth,
2798        ) -> fidl::Result<()> {
2799            decoder.debug_check_bounds::<Self>(offset);
2800            // Verify that padding bytes are zero.
2801            fidl::decode!(TeardownReason, D, &mut self.reason, decoder, offset + 0, _depth)?;
2802            Ok(())
2803        }
2804    }
2805
2806    impl fidl::encoding::ValueTypeMarker for RunnerShutdownWithEpitaphRequest {
2807        type Borrowed<'a> = &'a Self;
2808        fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2809            value
2810        }
2811    }
2812
2813    unsafe impl fidl::encoding::TypeMarker for RunnerShutdownWithEpitaphRequest {
2814        type Owned = Self;
2815
2816        #[inline(always)]
2817        fn inline_align(_context: fidl::encoding::Context) -> usize {
2818            4
2819        }
2820
2821        #[inline(always)]
2822        fn inline_size(_context: fidl::encoding::Context) -> usize {
2823            4
2824        }
2825        #[inline(always)]
2826        fn encode_is_copy() -> bool {
2827            true
2828        }
2829
2830        #[inline(always)]
2831        fn decode_is_copy() -> bool {
2832            true
2833        }
2834    }
2835
2836    unsafe impl<D: fidl::encoding::ResourceDialect>
2837        fidl::encoding::Encode<RunnerShutdownWithEpitaphRequest, D>
2838        for &RunnerShutdownWithEpitaphRequest
2839    {
2840        #[inline]
2841        unsafe fn encode(
2842            self,
2843            encoder: &mut fidl::encoding::Encoder<'_, D>,
2844            offset: usize,
2845            _depth: fidl::encoding::Depth,
2846        ) -> fidl::Result<()> {
2847            encoder.debug_check_bounds::<RunnerShutdownWithEpitaphRequest>(offset);
2848            unsafe {
2849                // Copy the object into the buffer.
2850                let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
2851                (buf_ptr as *mut RunnerShutdownWithEpitaphRequest)
2852                    .write_unaligned((self as *const RunnerShutdownWithEpitaphRequest).read());
2853                // Zero out padding regions. Unlike `fidl_struct_impl_noncopy!`, this must be
2854                // done second because the memcpy will write garbage to these bytes.
2855            }
2856            Ok(())
2857        }
2858    }
2859    unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<i32, D>>
2860        fidl::encoding::Encode<RunnerShutdownWithEpitaphRequest, D> for (T0,)
2861    {
2862        #[inline]
2863        unsafe fn encode(
2864            self,
2865            encoder: &mut fidl::encoding::Encoder<'_, D>,
2866            offset: usize,
2867            depth: fidl::encoding::Depth,
2868        ) -> fidl::Result<()> {
2869            encoder.debug_check_bounds::<RunnerShutdownWithEpitaphRequest>(offset);
2870            // Zero out padding regions. There's no need to apply masks
2871            // because the unmasked parts will be overwritten by fields.
2872            // Write the fields.
2873            self.0.encode(encoder, offset + 0, depth)?;
2874            Ok(())
2875        }
2876    }
2877
2878    impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2879        for RunnerShutdownWithEpitaphRequest
2880    {
2881        #[inline(always)]
2882        fn new_empty() -> Self {
2883            Self { epitaph_status: fidl::new_empty!(i32, D) }
2884        }
2885
2886        #[inline]
2887        unsafe fn decode(
2888            &mut self,
2889            decoder: &mut fidl::encoding::Decoder<'_, D>,
2890            offset: usize,
2891            _depth: fidl::encoding::Depth,
2892        ) -> fidl::Result<()> {
2893            decoder.debug_check_bounds::<Self>(offset);
2894            let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
2895            // Verify that padding bytes are zero.
2896            // Copy from the buffer into the object.
2897            unsafe {
2898                std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 4);
2899            }
2900            Ok(())
2901        }
2902    }
2903
2904    impl fidl::encoding::ValueTypeMarker for UnknownMethodInfo {
2905        type Borrowed<'a> = &'a Self;
2906        fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2907            value
2908        }
2909    }
2910
2911    unsafe impl fidl::encoding::TypeMarker for UnknownMethodInfo {
2912        type Owned = Self;
2913
2914        #[inline(always)]
2915        fn inline_align(_context: fidl::encoding::Context) -> usize {
2916            8
2917        }
2918
2919        #[inline(always)]
2920        fn inline_size(_context: fidl::encoding::Context) -> usize {
2921            16
2922        }
2923    }
2924
2925    unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<UnknownMethodInfo, D>
2926        for &UnknownMethodInfo
2927    {
2928        #[inline]
2929        unsafe fn encode(
2930            self,
2931            encoder: &mut fidl::encoding::Encoder<'_, D>,
2932            offset: usize,
2933            _depth: fidl::encoding::Depth,
2934        ) -> fidl::Result<()> {
2935            encoder.debug_check_bounds::<UnknownMethodInfo>(offset);
2936            // Delegate to tuple encoding.
2937            fidl::encoding::Encode::<UnknownMethodInfo, D>::encode(
2938                (
2939                    <u64 as fidl::encoding::ValueTypeMarker>::borrow(&self.ordinal),
2940                    <UnknownMethodType as fidl::encoding::ValueTypeMarker>::borrow(
2941                        &self.unknown_method_type,
2942                    ),
2943                ),
2944                encoder,
2945                offset,
2946                _depth,
2947            )
2948        }
2949    }
2950    unsafe impl<
2951            D: fidl::encoding::ResourceDialect,
2952            T0: fidl::encoding::Encode<u64, D>,
2953            T1: fidl::encoding::Encode<UnknownMethodType, D>,
2954        > fidl::encoding::Encode<UnknownMethodInfo, D> for (T0, T1)
2955    {
2956        #[inline]
2957        unsafe fn encode(
2958            self,
2959            encoder: &mut fidl::encoding::Encoder<'_, D>,
2960            offset: usize,
2961            depth: fidl::encoding::Depth,
2962        ) -> fidl::Result<()> {
2963            encoder.debug_check_bounds::<UnknownMethodInfo>(offset);
2964            // Zero out padding regions. There's no need to apply masks
2965            // because the unmasked parts will be overwritten by fields.
2966            unsafe {
2967                let ptr = encoder.buf.as_mut_ptr().add(offset).offset(8);
2968                (ptr as *mut u64).write_unaligned(0);
2969            }
2970            // Write the fields.
2971            self.0.encode(encoder, offset + 0, depth)?;
2972            self.1.encode(encoder, offset + 8, depth)?;
2973            Ok(())
2974        }
2975    }
2976
2977    impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for UnknownMethodInfo {
2978        #[inline(always)]
2979        fn new_empty() -> Self {
2980            Self {
2981                ordinal: fidl::new_empty!(u64, D),
2982                unknown_method_type: fidl::new_empty!(UnknownMethodType, D),
2983            }
2984        }
2985
2986        #[inline]
2987        unsafe fn decode(
2988            &mut self,
2989            decoder: &mut fidl::encoding::Decoder<'_, D>,
2990            offset: usize,
2991            _depth: fidl::encoding::Depth,
2992        ) -> fidl::Result<()> {
2993            decoder.debug_check_bounds::<Self>(offset);
2994            // Verify that padding bytes are zero.
2995            let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(8) };
2996            let padval = unsafe { (ptr as *const u64).read_unaligned() };
2997            let mask = 0xffffffff00000000u64;
2998            let maskedval = padval & mask;
2999            if maskedval != 0 {
3000                return Err(fidl::Error::NonZeroPadding {
3001                    padding_start: offset + 8 + ((mask as u64).trailing_zeros() / 8) as usize,
3002                });
3003            }
3004            fidl::decode!(u64, D, &mut self.ordinal, decoder, offset + 0, _depth)?;
3005            fidl::decode!(
3006                UnknownMethodType,
3007                D,
3008                &mut self.unknown_method_type,
3009                decoder,
3010                offset + 8,
3011                _depth
3012            )?;
3013            Ok(())
3014        }
3015    }
3016
3017    impl ClosedTargetTwoWayTablePayloadRequest {
3018        #[inline(always)]
3019        fn max_ordinal_present(&self) -> u64 {
3020            if let Some(_) = self.v {
3021                return 1;
3022            }
3023            0
3024        }
3025    }
3026
3027    impl fidl::encoding::ValueTypeMarker for ClosedTargetTwoWayTablePayloadRequest {
3028        type Borrowed<'a> = &'a Self;
3029        fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3030            value
3031        }
3032    }
3033
3034    unsafe impl fidl::encoding::TypeMarker for ClosedTargetTwoWayTablePayloadRequest {
3035        type Owned = Self;
3036
3037        #[inline(always)]
3038        fn inline_align(_context: fidl::encoding::Context) -> usize {
3039            8
3040        }
3041
3042        #[inline(always)]
3043        fn inline_size(_context: fidl::encoding::Context) -> usize {
3044            16
3045        }
3046    }
3047
3048    unsafe impl<D: fidl::encoding::ResourceDialect>
3049        fidl::encoding::Encode<ClosedTargetTwoWayTablePayloadRequest, D>
3050        for &ClosedTargetTwoWayTablePayloadRequest
3051    {
3052        unsafe fn encode(
3053            self,
3054            encoder: &mut fidl::encoding::Encoder<'_, D>,
3055            offset: usize,
3056            mut depth: fidl::encoding::Depth,
3057        ) -> fidl::Result<()> {
3058            encoder.debug_check_bounds::<ClosedTargetTwoWayTablePayloadRequest>(offset);
3059            // Vector header
3060            let max_ordinal: u64 = self.max_ordinal_present();
3061            encoder.write_num(max_ordinal, offset);
3062            encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
3063            // Calling encoder.out_of_line_offset(0) is not allowed.
3064            if max_ordinal == 0 {
3065                return Ok(());
3066            }
3067            depth.increment()?;
3068            let envelope_size = 8;
3069            let bytes_len = max_ordinal as usize * envelope_size;
3070            #[allow(unused_variables)]
3071            let offset = encoder.out_of_line_offset(bytes_len);
3072            let mut _prev_end_offset: usize = 0;
3073            if 1 > max_ordinal {
3074                return Ok(());
3075            }
3076
3077            // Write at offset+(ordinal-1)*envelope_size, since ordinals are one-based and envelopes
3078            // are envelope_size bytes.
3079            let cur_offset: usize = (1 - 1) * envelope_size;
3080
3081            // Zero reserved fields.
3082            encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3083
3084            // Safety:
3085            // - bytes_len is calculated to fit envelope_size*max(member.ordinal).
3086            // - Since cur_offset is envelope_size*(member.ordinal - 1) and the envelope takes
3087            //   envelope_size bytes, there is always sufficient room.
3088            fidl::encoding::encode_in_envelope_optional::<i8, D>(
3089                self.v.as_ref().map(<i8 as fidl::encoding::ValueTypeMarker>::borrow),
3090                encoder,
3091                offset + cur_offset,
3092                depth,
3093            )?;
3094
3095            _prev_end_offset = cur_offset + envelope_size;
3096
3097            Ok(())
3098        }
3099    }
3100
3101    impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3102        for ClosedTargetTwoWayTablePayloadRequest
3103    {
3104        #[inline(always)]
3105        fn new_empty() -> Self {
3106            Self::default()
3107        }
3108
3109        unsafe fn decode(
3110            &mut self,
3111            decoder: &mut fidl::encoding::Decoder<'_, D>,
3112            offset: usize,
3113            mut depth: fidl::encoding::Depth,
3114        ) -> fidl::Result<()> {
3115            decoder.debug_check_bounds::<Self>(offset);
3116            let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
3117                None => return Err(fidl::Error::NotNullable),
3118                Some(len) => len,
3119            };
3120            // Calling decoder.out_of_line_offset(0) is not allowed.
3121            if len == 0 {
3122                return Ok(());
3123            };
3124            depth.increment()?;
3125            let envelope_size = 8;
3126            let bytes_len = len * envelope_size;
3127            let offset = decoder.out_of_line_offset(bytes_len)?;
3128            // Decode the envelope for each type.
3129            let mut _next_ordinal_to_read = 0;
3130            let mut next_offset = offset;
3131            let end_offset = offset + bytes_len;
3132            _next_ordinal_to_read += 1;
3133            if next_offset >= end_offset {
3134                return Ok(());
3135            }
3136
3137            // Decode unknown envelopes for gaps in ordinals.
3138            while _next_ordinal_to_read < 1 {
3139                fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3140                _next_ordinal_to_read += 1;
3141                next_offset += envelope_size;
3142            }
3143
3144            let next_out_of_line = decoder.next_out_of_line();
3145            let handles_before = decoder.remaining_handles();
3146            if let Some((inlined, num_bytes, num_handles)) =
3147                fidl::encoding::decode_envelope_header(decoder, next_offset)?
3148            {
3149                let member_inline_size =
3150                    <i8 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3151                if inlined != (member_inline_size <= 4) {
3152                    return Err(fidl::Error::InvalidInlineBitInEnvelope);
3153                }
3154                let inner_offset;
3155                let mut inner_depth = depth.clone();
3156                if inlined {
3157                    decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3158                    inner_offset = next_offset;
3159                } else {
3160                    inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3161                    inner_depth.increment()?;
3162                }
3163                let val_ref = self.v.get_or_insert_with(|| fidl::new_empty!(i8, D));
3164                fidl::decode!(i8, D, val_ref, decoder, inner_offset, inner_depth)?;
3165                if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3166                {
3167                    return Err(fidl::Error::InvalidNumBytesInEnvelope);
3168                }
3169                if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3170                    return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3171                }
3172            }
3173
3174            next_offset += envelope_size;
3175
3176            // Decode the remaining unknown envelopes.
3177            while next_offset < end_offset {
3178                _next_ordinal_to_read += 1;
3179                fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3180                next_offset += envelope_size;
3181            }
3182
3183            Ok(())
3184        }
3185    }
3186
3187    impl ClosedTargetTwoWayTablePayloadResponse {
3188        #[inline(always)]
3189        fn max_ordinal_present(&self) -> u64 {
3190            if let Some(_) = self.v {
3191                return 1;
3192            }
3193            0
3194        }
3195    }
3196
3197    impl fidl::encoding::ValueTypeMarker for ClosedTargetTwoWayTablePayloadResponse {
3198        type Borrowed<'a> = &'a Self;
3199        fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3200            value
3201        }
3202    }
3203
3204    unsafe impl fidl::encoding::TypeMarker for ClosedTargetTwoWayTablePayloadResponse {
3205        type Owned = Self;
3206
3207        #[inline(always)]
3208        fn inline_align(_context: fidl::encoding::Context) -> usize {
3209            8
3210        }
3211
3212        #[inline(always)]
3213        fn inline_size(_context: fidl::encoding::Context) -> usize {
3214            16
3215        }
3216    }
3217
3218    unsafe impl<D: fidl::encoding::ResourceDialect>
3219        fidl::encoding::Encode<ClosedTargetTwoWayTablePayloadResponse, D>
3220        for &ClosedTargetTwoWayTablePayloadResponse
3221    {
3222        unsafe fn encode(
3223            self,
3224            encoder: &mut fidl::encoding::Encoder<'_, D>,
3225            offset: usize,
3226            mut depth: fidl::encoding::Depth,
3227        ) -> fidl::Result<()> {
3228            encoder.debug_check_bounds::<ClosedTargetTwoWayTablePayloadResponse>(offset);
3229            // Vector header
3230            let max_ordinal: u64 = self.max_ordinal_present();
3231            encoder.write_num(max_ordinal, offset);
3232            encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
3233            // Calling encoder.out_of_line_offset(0) is not allowed.
3234            if max_ordinal == 0 {
3235                return Ok(());
3236            }
3237            depth.increment()?;
3238            let envelope_size = 8;
3239            let bytes_len = max_ordinal as usize * envelope_size;
3240            #[allow(unused_variables)]
3241            let offset = encoder.out_of_line_offset(bytes_len);
3242            let mut _prev_end_offset: usize = 0;
3243            if 1 > max_ordinal {
3244                return Ok(());
3245            }
3246
3247            // Write at offset+(ordinal-1)*envelope_size, since ordinals are one-based and envelopes
3248            // are envelope_size bytes.
3249            let cur_offset: usize = (1 - 1) * envelope_size;
3250
3251            // Zero reserved fields.
3252            encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3253
3254            // Safety:
3255            // - bytes_len is calculated to fit envelope_size*max(member.ordinal).
3256            // - Since cur_offset is envelope_size*(member.ordinal - 1) and the envelope takes
3257            //   envelope_size bytes, there is always sufficient room.
3258            fidl::encoding::encode_in_envelope_optional::<i8, D>(
3259                self.v.as_ref().map(<i8 as fidl::encoding::ValueTypeMarker>::borrow),
3260                encoder,
3261                offset + cur_offset,
3262                depth,
3263            )?;
3264
3265            _prev_end_offset = cur_offset + envelope_size;
3266
3267            Ok(())
3268        }
3269    }
3270
3271    impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3272        for ClosedTargetTwoWayTablePayloadResponse
3273    {
3274        #[inline(always)]
3275        fn new_empty() -> Self {
3276            Self::default()
3277        }
3278
3279        unsafe fn decode(
3280            &mut self,
3281            decoder: &mut fidl::encoding::Decoder<'_, D>,
3282            offset: usize,
3283            mut depth: fidl::encoding::Depth,
3284        ) -> fidl::Result<()> {
3285            decoder.debug_check_bounds::<Self>(offset);
3286            let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
3287                None => return Err(fidl::Error::NotNullable),
3288                Some(len) => len,
3289            };
3290            // Calling decoder.out_of_line_offset(0) is not allowed.
3291            if len == 0 {
3292                return Ok(());
3293            };
3294            depth.increment()?;
3295            let envelope_size = 8;
3296            let bytes_len = len * envelope_size;
3297            let offset = decoder.out_of_line_offset(bytes_len)?;
3298            // Decode the envelope for each type.
3299            let mut _next_ordinal_to_read = 0;
3300            let mut next_offset = offset;
3301            let end_offset = offset + bytes_len;
3302            _next_ordinal_to_read += 1;
3303            if next_offset >= end_offset {
3304                return Ok(());
3305            }
3306
3307            // Decode unknown envelopes for gaps in ordinals.
3308            while _next_ordinal_to_read < 1 {
3309                fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3310                _next_ordinal_to_read += 1;
3311                next_offset += envelope_size;
3312            }
3313
3314            let next_out_of_line = decoder.next_out_of_line();
3315            let handles_before = decoder.remaining_handles();
3316            if let Some((inlined, num_bytes, num_handles)) =
3317                fidl::encoding::decode_envelope_header(decoder, next_offset)?
3318            {
3319                let member_inline_size =
3320                    <i8 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3321                if inlined != (member_inline_size <= 4) {
3322                    return Err(fidl::Error::InvalidInlineBitInEnvelope);
3323                }
3324                let inner_offset;
3325                let mut inner_depth = depth.clone();
3326                if inlined {
3327                    decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3328                    inner_offset = next_offset;
3329                } else {
3330                    inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3331                    inner_depth.increment()?;
3332                }
3333                let val_ref = self.v.get_or_insert_with(|| fidl::new_empty!(i8, D));
3334                fidl::decode!(i8, D, val_ref, decoder, inner_offset, inner_depth)?;
3335                if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3336                {
3337                    return Err(fidl::Error::InvalidNumBytesInEnvelope);
3338                }
3339                if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3340                    return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3341                }
3342            }
3343
3344            next_offset += envelope_size;
3345
3346            // Decode the remaining unknown envelopes.
3347            while next_offset < end_offset {
3348                _next_ordinal_to_read += 1;
3349                fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3350                next_offset += envelope_size;
3351            }
3352
3353            Ok(())
3354        }
3355    }
3356
3357    impl fidl::encoding::ValueTypeMarker for ClosedTargetTwoWayResultRequest {
3358        type Borrowed<'a> = &'a Self;
3359        fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3360            value
3361        }
3362    }
3363
3364    unsafe impl fidl::encoding::TypeMarker for ClosedTargetTwoWayResultRequest {
3365        type Owned = Self;
3366
3367        #[inline(always)]
3368        fn inline_align(_context: fidl::encoding::Context) -> usize {
3369            8
3370        }
3371
3372        #[inline(always)]
3373        fn inline_size(_context: fidl::encoding::Context) -> usize {
3374            16
3375        }
3376    }
3377
3378    unsafe impl<D: fidl::encoding::ResourceDialect>
3379        fidl::encoding::Encode<ClosedTargetTwoWayResultRequest, D>
3380        for &ClosedTargetTwoWayResultRequest
3381    {
3382        #[inline]
3383        unsafe fn encode(
3384            self,
3385            encoder: &mut fidl::encoding::Encoder<'_, D>,
3386            offset: usize,
3387            _depth: fidl::encoding::Depth,
3388        ) -> fidl::Result<()> {
3389            encoder.debug_check_bounds::<ClosedTargetTwoWayResultRequest>(offset);
3390            encoder.write_num::<u64>(self.ordinal(), offset);
3391            match self {
3392            ClosedTargetTwoWayResultRequest::Payload(ref val) => {
3393                fidl::encoding::encode_in_envelope::<fidl::encoding::UnboundedString, D>(
3394                    <fidl::encoding::UnboundedString as fidl::encoding::ValueTypeMarker>::borrow(val),
3395                    encoder, offset + 8, _depth
3396                )
3397            }
3398            ClosedTargetTwoWayResultRequest::Error(ref val) => {
3399                fidl::encoding::encode_in_envelope::<u32, D>(
3400                    <u32 as fidl::encoding::ValueTypeMarker>::borrow(val),
3401                    encoder, offset + 8, _depth
3402                )
3403            }
3404        }
3405        }
3406    }
3407
3408    impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3409        for ClosedTargetTwoWayResultRequest
3410    {
3411        #[inline(always)]
3412        fn new_empty() -> Self {
3413            Self::Payload(fidl::new_empty!(fidl::encoding::UnboundedString, D))
3414        }
3415
3416        #[inline]
3417        unsafe fn decode(
3418            &mut self,
3419            decoder: &mut fidl::encoding::Decoder<'_, D>,
3420            offset: usize,
3421            mut depth: fidl::encoding::Depth,
3422        ) -> fidl::Result<()> {
3423            decoder.debug_check_bounds::<Self>(offset);
3424            #[allow(unused_variables)]
3425            let next_out_of_line = decoder.next_out_of_line();
3426            let handles_before = decoder.remaining_handles();
3427            let (ordinal, inlined, num_bytes, num_handles) =
3428                fidl::encoding::decode_union_inline_portion(decoder, offset)?;
3429
3430            let member_inline_size = match ordinal {
3431                1 => <fidl::encoding::UnboundedString as fidl::encoding::TypeMarker>::inline_size(
3432                    decoder.context,
3433                ),
3434                2 => <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context),
3435                _ => return Err(fidl::Error::UnknownUnionTag),
3436            };
3437
3438            if inlined != (member_inline_size <= 4) {
3439                return Err(fidl::Error::InvalidInlineBitInEnvelope);
3440            }
3441            let _inner_offset;
3442            if inlined {
3443                decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
3444                _inner_offset = offset + 8;
3445            } else {
3446                depth.increment()?;
3447                _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3448            }
3449            match ordinal {
3450                1 => {
3451                    #[allow(irrefutable_let_patterns)]
3452                    if let ClosedTargetTwoWayResultRequest::Payload(_) = self {
3453                        // Do nothing, read the value into the object
3454                    } else {
3455                        // Initialize `self` to the right variant
3456                        *self = ClosedTargetTwoWayResultRequest::Payload(fidl::new_empty!(
3457                            fidl::encoding::UnboundedString,
3458                            D
3459                        ));
3460                    }
3461                    #[allow(irrefutable_let_patterns)]
3462                    if let ClosedTargetTwoWayResultRequest::Payload(ref mut val) = self {
3463                        fidl::decode!(
3464                            fidl::encoding::UnboundedString,
3465                            D,
3466                            val,
3467                            decoder,
3468                            _inner_offset,
3469                            depth
3470                        )?;
3471                    } else {
3472                        unreachable!()
3473                    }
3474                }
3475                2 => {
3476                    #[allow(irrefutable_let_patterns)]
3477                    if let ClosedTargetTwoWayResultRequest::Error(_) = self {
3478                        // Do nothing, read the value into the object
3479                    } else {
3480                        // Initialize `self` to the right variant
3481                        *self = ClosedTargetTwoWayResultRequest::Error(fidl::new_empty!(u32, D));
3482                    }
3483                    #[allow(irrefutable_let_patterns)]
3484                    if let ClosedTargetTwoWayResultRequest::Error(ref mut val) = self {
3485                        fidl::decode!(u32, D, val, decoder, _inner_offset, depth)?;
3486                    } else {
3487                        unreachable!()
3488                    }
3489                }
3490                ordinal => panic!("unexpected ordinal {:?}", ordinal),
3491            }
3492            if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
3493                return Err(fidl::Error::InvalidNumBytesInEnvelope);
3494            }
3495            if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3496                return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3497            }
3498            Ok(())
3499        }
3500    }
3501
3502    impl fidl::encoding::ValueTypeMarker for ClosedTargetTwoWayUnionPayloadRequest {
3503        type Borrowed<'a> = &'a Self;
3504        fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3505            value
3506        }
3507    }
3508
3509    unsafe impl fidl::encoding::TypeMarker for ClosedTargetTwoWayUnionPayloadRequest {
3510        type Owned = Self;
3511
3512        #[inline(always)]
3513        fn inline_align(_context: fidl::encoding::Context) -> usize {
3514            8
3515        }
3516
3517        #[inline(always)]
3518        fn inline_size(_context: fidl::encoding::Context) -> usize {
3519            16
3520        }
3521    }
3522
3523    unsafe impl<D: fidl::encoding::ResourceDialect>
3524        fidl::encoding::Encode<ClosedTargetTwoWayUnionPayloadRequest, D>
3525        for &ClosedTargetTwoWayUnionPayloadRequest
3526    {
3527        #[inline]
3528        unsafe fn encode(
3529            self,
3530            encoder: &mut fidl::encoding::Encoder<'_, D>,
3531            offset: usize,
3532            _depth: fidl::encoding::Depth,
3533        ) -> fidl::Result<()> {
3534            encoder.debug_check_bounds::<ClosedTargetTwoWayUnionPayloadRequest>(offset);
3535            encoder.write_num::<u64>(self.ordinal(), offset);
3536            match self {
3537                ClosedTargetTwoWayUnionPayloadRequest::V(ref val) => {
3538                    fidl::encoding::encode_in_envelope::<i8, D>(
3539                        <i8 as fidl::encoding::ValueTypeMarker>::borrow(val),
3540                        encoder,
3541                        offset + 8,
3542                        _depth,
3543                    )
3544                }
3545                ClosedTargetTwoWayUnionPayloadRequest::__SourceBreaking { .. } => {
3546                    Err(fidl::Error::UnknownUnionTag)
3547                }
3548            }
3549        }
3550    }
3551
3552    impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3553        for ClosedTargetTwoWayUnionPayloadRequest
3554    {
3555        #[inline(always)]
3556        fn new_empty() -> Self {
3557            Self::__SourceBreaking { unknown_ordinal: 0 }
3558        }
3559
3560        #[inline]
3561        unsafe fn decode(
3562            &mut self,
3563            decoder: &mut fidl::encoding::Decoder<'_, D>,
3564            offset: usize,
3565            mut depth: fidl::encoding::Depth,
3566        ) -> fidl::Result<()> {
3567            decoder.debug_check_bounds::<Self>(offset);
3568            #[allow(unused_variables)]
3569            let next_out_of_line = decoder.next_out_of_line();
3570            let handles_before = decoder.remaining_handles();
3571            let (ordinal, inlined, num_bytes, num_handles) =
3572                fidl::encoding::decode_union_inline_portion(decoder, offset)?;
3573
3574            let member_inline_size = match ordinal {
3575                1 => <i8 as fidl::encoding::TypeMarker>::inline_size(decoder.context),
3576                0 => return Err(fidl::Error::UnknownUnionTag),
3577                _ => num_bytes as usize,
3578            };
3579
3580            if inlined != (member_inline_size <= 4) {
3581                return Err(fidl::Error::InvalidInlineBitInEnvelope);
3582            }
3583            let _inner_offset;
3584            if inlined {
3585                decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
3586                _inner_offset = offset + 8;
3587            } else {
3588                depth.increment()?;
3589                _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3590            }
3591            match ordinal {
3592                1 => {
3593                    #[allow(irrefutable_let_patterns)]
3594                    if let ClosedTargetTwoWayUnionPayloadRequest::V(_) = self {
3595                        // Do nothing, read the value into the object
3596                    } else {
3597                        // Initialize `self` to the right variant
3598                        *self = ClosedTargetTwoWayUnionPayloadRequest::V(fidl::new_empty!(i8, D));
3599                    }
3600                    #[allow(irrefutable_let_patterns)]
3601                    if let ClosedTargetTwoWayUnionPayloadRequest::V(ref mut val) = self {
3602                        fidl::decode!(i8, D, val, decoder, _inner_offset, depth)?;
3603                    } else {
3604                        unreachable!()
3605                    }
3606                }
3607                #[allow(deprecated)]
3608                ordinal => {
3609                    for _ in 0..num_handles {
3610                        decoder.drop_next_handle()?;
3611                    }
3612                    *self = ClosedTargetTwoWayUnionPayloadRequest::__SourceBreaking {
3613                        unknown_ordinal: ordinal,
3614                    };
3615                }
3616            }
3617            if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
3618                return Err(fidl::Error::InvalidNumBytesInEnvelope);
3619            }
3620            if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3621                return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3622            }
3623            Ok(())
3624        }
3625    }
3626
3627    impl fidl::encoding::ValueTypeMarker for ClosedTargetTwoWayUnionPayloadResponse {
3628        type Borrowed<'a> = &'a Self;
3629        fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3630            value
3631        }
3632    }
3633
3634    unsafe impl fidl::encoding::TypeMarker for ClosedTargetTwoWayUnionPayloadResponse {
3635        type Owned = Self;
3636
3637        #[inline(always)]
3638        fn inline_align(_context: fidl::encoding::Context) -> usize {
3639            8
3640        }
3641
3642        #[inline(always)]
3643        fn inline_size(_context: fidl::encoding::Context) -> usize {
3644            16
3645        }
3646    }
3647
3648    unsafe impl<D: fidl::encoding::ResourceDialect>
3649        fidl::encoding::Encode<ClosedTargetTwoWayUnionPayloadResponse, D>
3650        for &ClosedTargetTwoWayUnionPayloadResponse
3651    {
3652        #[inline]
3653        unsafe fn encode(
3654            self,
3655            encoder: &mut fidl::encoding::Encoder<'_, D>,
3656            offset: usize,
3657            _depth: fidl::encoding::Depth,
3658        ) -> fidl::Result<()> {
3659            encoder.debug_check_bounds::<ClosedTargetTwoWayUnionPayloadResponse>(offset);
3660            encoder.write_num::<u64>(self.ordinal(), offset);
3661            match self {
3662                ClosedTargetTwoWayUnionPayloadResponse::V(ref val) => {
3663                    fidl::encoding::encode_in_envelope::<i8, D>(
3664                        <i8 as fidl::encoding::ValueTypeMarker>::borrow(val),
3665                        encoder,
3666                        offset + 8,
3667                        _depth,
3668                    )
3669                }
3670                ClosedTargetTwoWayUnionPayloadResponse::__SourceBreaking { .. } => {
3671                    Err(fidl::Error::UnknownUnionTag)
3672                }
3673            }
3674        }
3675    }
3676
3677    impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3678        for ClosedTargetTwoWayUnionPayloadResponse
3679    {
3680        #[inline(always)]
3681        fn new_empty() -> Self {
3682            Self::__SourceBreaking { unknown_ordinal: 0 }
3683        }
3684
3685        #[inline]
3686        unsafe fn decode(
3687            &mut self,
3688            decoder: &mut fidl::encoding::Decoder<'_, D>,
3689            offset: usize,
3690            mut depth: fidl::encoding::Depth,
3691        ) -> fidl::Result<()> {
3692            decoder.debug_check_bounds::<Self>(offset);
3693            #[allow(unused_variables)]
3694            let next_out_of_line = decoder.next_out_of_line();
3695            let handles_before = decoder.remaining_handles();
3696            let (ordinal, inlined, num_bytes, num_handles) =
3697                fidl::encoding::decode_union_inline_portion(decoder, offset)?;
3698
3699            let member_inline_size = match ordinal {
3700                1 => <i8 as fidl::encoding::TypeMarker>::inline_size(decoder.context),
3701                0 => return Err(fidl::Error::UnknownUnionTag),
3702                _ => num_bytes as usize,
3703            };
3704
3705            if inlined != (member_inline_size <= 4) {
3706                return Err(fidl::Error::InvalidInlineBitInEnvelope);
3707            }
3708            let _inner_offset;
3709            if inlined {
3710                decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
3711                _inner_offset = offset + 8;
3712            } else {
3713                depth.increment()?;
3714                _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3715            }
3716            match ordinal {
3717                1 => {
3718                    #[allow(irrefutable_let_patterns)]
3719                    if let ClosedTargetTwoWayUnionPayloadResponse::V(_) = self {
3720                        // Do nothing, read the value into the object
3721                    } else {
3722                        // Initialize `self` to the right variant
3723                        *self = ClosedTargetTwoWayUnionPayloadResponse::V(fidl::new_empty!(i8, D));
3724                    }
3725                    #[allow(irrefutable_let_patterns)]
3726                    if let ClosedTargetTwoWayUnionPayloadResponse::V(ref mut val) = self {
3727                        fidl::decode!(i8, D, val, decoder, _inner_offset, depth)?;
3728                    } else {
3729                        unreachable!()
3730                    }
3731                }
3732                #[allow(deprecated)]
3733                ordinal => {
3734                    for _ in 0..num_handles {
3735                        decoder.drop_next_handle()?;
3736                    }
3737                    *self = ClosedTargetTwoWayUnionPayloadResponse::__SourceBreaking {
3738                        unknown_ordinal: ordinal,
3739                    };
3740                }
3741            }
3742            if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
3743                return Err(fidl::Error::InvalidNumBytesInEnvelope);
3744            }
3745            if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3746                return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3747            }
3748            Ok(())
3749        }
3750    }
3751
3752    impl fidl::encoding::ValueTypeMarker for OpenTargetFlexibleTwoWayErrRequest {
3753        type Borrowed<'a> = &'a Self;
3754        fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3755            value
3756        }
3757    }
3758
3759    unsafe impl fidl::encoding::TypeMarker for OpenTargetFlexibleTwoWayErrRequest {
3760        type Owned = Self;
3761
3762        #[inline(always)]
3763        fn inline_align(_context: fidl::encoding::Context) -> usize {
3764            8
3765        }
3766
3767        #[inline(always)]
3768        fn inline_size(_context: fidl::encoding::Context) -> usize {
3769            16
3770        }
3771    }
3772
3773    unsafe impl<D: fidl::encoding::ResourceDialect>
3774        fidl::encoding::Encode<OpenTargetFlexibleTwoWayErrRequest, D>
3775        for &OpenTargetFlexibleTwoWayErrRequest
3776    {
3777        #[inline]
3778        unsafe fn encode(
3779            self,
3780            encoder: &mut fidl::encoding::Encoder<'_, D>,
3781            offset: usize,
3782            _depth: fidl::encoding::Depth,
3783        ) -> fidl::Result<()> {
3784            encoder.debug_check_bounds::<OpenTargetFlexibleTwoWayErrRequest>(offset);
3785            encoder.write_num::<u64>(self.ordinal(), offset);
3786            match self {
3787                OpenTargetFlexibleTwoWayErrRequest::ReplySuccess(ref val) => {
3788                    fidl::encoding::encode_in_envelope::<Empty, D>(
3789                        <Empty as fidl::encoding::ValueTypeMarker>::borrow(val),
3790                        encoder,
3791                        offset + 8,
3792                        _depth,
3793                    )
3794                }
3795                OpenTargetFlexibleTwoWayErrRequest::ReplyError(ref val) => {
3796                    fidl::encoding::encode_in_envelope::<i32, D>(
3797                        <i32 as fidl::encoding::ValueTypeMarker>::borrow(val),
3798                        encoder,
3799                        offset + 8,
3800                        _depth,
3801                    )
3802                }
3803            }
3804        }
3805    }
3806
3807    impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3808        for OpenTargetFlexibleTwoWayErrRequest
3809    {
3810        #[inline(always)]
3811        fn new_empty() -> Self {
3812            Self::ReplySuccess(fidl::new_empty!(Empty, D))
3813        }
3814
3815        #[inline]
3816        unsafe fn decode(
3817            &mut self,
3818            decoder: &mut fidl::encoding::Decoder<'_, D>,
3819            offset: usize,
3820            mut depth: fidl::encoding::Depth,
3821        ) -> fidl::Result<()> {
3822            decoder.debug_check_bounds::<Self>(offset);
3823            #[allow(unused_variables)]
3824            let next_out_of_line = decoder.next_out_of_line();
3825            let handles_before = decoder.remaining_handles();
3826            let (ordinal, inlined, num_bytes, num_handles) =
3827                fidl::encoding::decode_union_inline_portion(decoder, offset)?;
3828
3829            let member_inline_size = match ordinal {
3830                1 => <Empty as fidl::encoding::TypeMarker>::inline_size(decoder.context),
3831                2 => <i32 as fidl::encoding::TypeMarker>::inline_size(decoder.context),
3832                _ => return Err(fidl::Error::UnknownUnionTag),
3833            };
3834
3835            if inlined != (member_inline_size <= 4) {
3836                return Err(fidl::Error::InvalidInlineBitInEnvelope);
3837            }
3838            let _inner_offset;
3839            if inlined {
3840                decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
3841                _inner_offset = offset + 8;
3842            } else {
3843                depth.increment()?;
3844                _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3845            }
3846            match ordinal {
3847                1 => {
3848                    #[allow(irrefutable_let_patterns)]
3849                    if let OpenTargetFlexibleTwoWayErrRequest::ReplySuccess(_) = self {
3850                        // Do nothing, read the value into the object
3851                    } else {
3852                        // Initialize `self` to the right variant
3853                        *self = OpenTargetFlexibleTwoWayErrRequest::ReplySuccess(fidl::new_empty!(
3854                            Empty, D
3855                        ));
3856                    }
3857                    #[allow(irrefutable_let_patterns)]
3858                    if let OpenTargetFlexibleTwoWayErrRequest::ReplySuccess(ref mut val) = self {
3859                        fidl::decode!(Empty, D, val, decoder, _inner_offset, depth)?;
3860                    } else {
3861                        unreachable!()
3862                    }
3863                }
3864                2 => {
3865                    #[allow(irrefutable_let_patterns)]
3866                    if let OpenTargetFlexibleTwoWayErrRequest::ReplyError(_) = self {
3867                        // Do nothing, read the value into the object
3868                    } else {
3869                        // Initialize `self` to the right variant
3870                        *self = OpenTargetFlexibleTwoWayErrRequest::ReplyError(fidl::new_empty!(
3871                            i32, D
3872                        ));
3873                    }
3874                    #[allow(irrefutable_let_patterns)]
3875                    if let OpenTargetFlexibleTwoWayErrRequest::ReplyError(ref mut val) = self {
3876                        fidl::decode!(i32, D, val, decoder, _inner_offset, depth)?;
3877                    } else {
3878                        unreachable!()
3879                    }
3880                }
3881                ordinal => panic!("unexpected ordinal {:?}", ordinal),
3882            }
3883            if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
3884                return Err(fidl::Error::InvalidNumBytesInEnvelope);
3885            }
3886            if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3887                return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3888            }
3889            Ok(())
3890        }
3891    }
3892
3893    impl fidl::encoding::ValueTypeMarker for OpenTargetFlexibleTwoWayFieldsErrRequest {
3894        type Borrowed<'a> = &'a Self;
3895        fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3896            value
3897        }
3898    }
3899
3900    unsafe impl fidl::encoding::TypeMarker for OpenTargetFlexibleTwoWayFieldsErrRequest {
3901        type Owned = Self;
3902
3903        #[inline(always)]
3904        fn inline_align(_context: fidl::encoding::Context) -> usize {
3905            8
3906        }
3907
3908        #[inline(always)]
3909        fn inline_size(_context: fidl::encoding::Context) -> usize {
3910            16
3911        }
3912    }
3913
3914    unsafe impl<D: fidl::encoding::ResourceDialect>
3915        fidl::encoding::Encode<OpenTargetFlexibleTwoWayFieldsErrRequest, D>
3916        for &OpenTargetFlexibleTwoWayFieldsErrRequest
3917    {
3918        #[inline]
3919        unsafe fn encode(
3920            self,
3921            encoder: &mut fidl::encoding::Encoder<'_, D>,
3922            offset: usize,
3923            _depth: fidl::encoding::Depth,
3924        ) -> fidl::Result<()> {
3925            encoder.debug_check_bounds::<OpenTargetFlexibleTwoWayFieldsErrRequest>(offset);
3926            encoder.write_num::<u64>(self.ordinal(), offset);
3927            match self {
3928                OpenTargetFlexibleTwoWayFieldsErrRequest::ReplySuccess(ref val) => {
3929                    fidl::encoding::encode_in_envelope::<i32, D>(
3930                        <i32 as fidl::encoding::ValueTypeMarker>::borrow(val),
3931                        encoder,
3932                        offset + 8,
3933                        _depth,
3934                    )
3935                }
3936                OpenTargetFlexibleTwoWayFieldsErrRequest::ReplyError(ref val) => {
3937                    fidl::encoding::encode_in_envelope::<i32, D>(
3938                        <i32 as fidl::encoding::ValueTypeMarker>::borrow(val),
3939                        encoder,
3940                        offset + 8,
3941                        _depth,
3942                    )
3943                }
3944            }
3945        }
3946    }
3947
3948    impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3949        for OpenTargetFlexibleTwoWayFieldsErrRequest
3950    {
3951        #[inline(always)]
3952        fn new_empty() -> Self {
3953            Self::ReplySuccess(fidl::new_empty!(i32, D))
3954        }
3955
3956        #[inline]
3957        unsafe fn decode(
3958            &mut self,
3959            decoder: &mut fidl::encoding::Decoder<'_, D>,
3960            offset: usize,
3961            mut depth: fidl::encoding::Depth,
3962        ) -> fidl::Result<()> {
3963            decoder.debug_check_bounds::<Self>(offset);
3964            #[allow(unused_variables)]
3965            let next_out_of_line = decoder.next_out_of_line();
3966            let handles_before = decoder.remaining_handles();
3967            let (ordinal, inlined, num_bytes, num_handles) =
3968                fidl::encoding::decode_union_inline_portion(decoder, offset)?;
3969
3970            let member_inline_size = match ordinal {
3971                1 => <i32 as fidl::encoding::TypeMarker>::inline_size(decoder.context),
3972                2 => <i32 as fidl::encoding::TypeMarker>::inline_size(decoder.context),
3973                _ => return Err(fidl::Error::UnknownUnionTag),
3974            };
3975
3976            if inlined != (member_inline_size <= 4) {
3977                return Err(fidl::Error::InvalidInlineBitInEnvelope);
3978            }
3979            let _inner_offset;
3980            if inlined {
3981                decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
3982                _inner_offset = offset + 8;
3983            } else {
3984                depth.increment()?;
3985                _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3986            }
3987            match ordinal {
3988                1 => {
3989                    #[allow(irrefutable_let_patterns)]
3990                    if let OpenTargetFlexibleTwoWayFieldsErrRequest::ReplySuccess(_) = self {
3991                        // Do nothing, read the value into the object
3992                    } else {
3993                        // Initialize `self` to the right variant
3994                        *self = OpenTargetFlexibleTwoWayFieldsErrRequest::ReplySuccess(
3995                            fidl::new_empty!(i32, D),
3996                        );
3997                    }
3998                    #[allow(irrefutable_let_patterns)]
3999                    if let OpenTargetFlexibleTwoWayFieldsErrRequest::ReplySuccess(ref mut val) =
4000                        self
4001                    {
4002                        fidl::decode!(i32, D, val, decoder, _inner_offset, depth)?;
4003                    } else {
4004                        unreachable!()
4005                    }
4006                }
4007                2 => {
4008                    #[allow(irrefutable_let_patterns)]
4009                    if let OpenTargetFlexibleTwoWayFieldsErrRequest::ReplyError(_) = self {
4010                        // Do nothing, read the value into the object
4011                    } else {
4012                        // Initialize `self` to the right variant
4013                        *self = OpenTargetFlexibleTwoWayFieldsErrRequest::ReplyError(
4014                            fidl::new_empty!(i32, D),
4015                        );
4016                    }
4017                    #[allow(irrefutable_let_patterns)]
4018                    if let OpenTargetFlexibleTwoWayFieldsErrRequest::ReplyError(ref mut val) = self
4019                    {
4020                        fidl::decode!(i32, D, val, decoder, _inner_offset, depth)?;
4021                    } else {
4022                        unreachable!()
4023                    }
4024                }
4025                ordinal => panic!("unexpected ordinal {:?}", ordinal),
4026            }
4027            if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
4028                return Err(fidl::Error::InvalidNumBytesInEnvelope);
4029            }
4030            if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4031                return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4032            }
4033            Ok(())
4034        }
4035    }
4036
4037    impl fidl::encoding::ValueTypeMarker for OpenTargetStrictTwoWayErrRequest {
4038        type Borrowed<'a> = &'a Self;
4039        fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4040            value
4041        }
4042    }
4043
4044    unsafe impl fidl::encoding::TypeMarker for OpenTargetStrictTwoWayErrRequest {
4045        type Owned = Self;
4046
4047        #[inline(always)]
4048        fn inline_align(_context: fidl::encoding::Context) -> usize {
4049            8
4050        }
4051
4052        #[inline(always)]
4053        fn inline_size(_context: fidl::encoding::Context) -> usize {
4054            16
4055        }
4056    }
4057
4058    unsafe impl<D: fidl::encoding::ResourceDialect>
4059        fidl::encoding::Encode<OpenTargetStrictTwoWayErrRequest, D>
4060        for &OpenTargetStrictTwoWayErrRequest
4061    {
4062        #[inline]
4063        unsafe fn encode(
4064            self,
4065            encoder: &mut fidl::encoding::Encoder<'_, D>,
4066            offset: usize,
4067            _depth: fidl::encoding::Depth,
4068        ) -> fidl::Result<()> {
4069            encoder.debug_check_bounds::<OpenTargetStrictTwoWayErrRequest>(offset);
4070            encoder.write_num::<u64>(self.ordinal(), offset);
4071            match self {
4072                OpenTargetStrictTwoWayErrRequest::ReplySuccess(ref val) => {
4073                    fidl::encoding::encode_in_envelope::<Empty, D>(
4074                        <Empty as fidl::encoding::ValueTypeMarker>::borrow(val),
4075                        encoder,
4076                        offset + 8,
4077                        _depth,
4078                    )
4079                }
4080                OpenTargetStrictTwoWayErrRequest::ReplyError(ref val) => {
4081                    fidl::encoding::encode_in_envelope::<i32, D>(
4082                        <i32 as fidl::encoding::ValueTypeMarker>::borrow(val),
4083                        encoder,
4084                        offset + 8,
4085                        _depth,
4086                    )
4087                }
4088            }
4089        }
4090    }
4091
4092    impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
4093        for OpenTargetStrictTwoWayErrRequest
4094    {
4095        #[inline(always)]
4096        fn new_empty() -> Self {
4097            Self::ReplySuccess(fidl::new_empty!(Empty, D))
4098        }
4099
4100        #[inline]
4101        unsafe fn decode(
4102            &mut self,
4103            decoder: &mut fidl::encoding::Decoder<'_, D>,
4104            offset: usize,
4105            mut depth: fidl::encoding::Depth,
4106        ) -> fidl::Result<()> {
4107            decoder.debug_check_bounds::<Self>(offset);
4108            #[allow(unused_variables)]
4109            let next_out_of_line = decoder.next_out_of_line();
4110            let handles_before = decoder.remaining_handles();
4111            let (ordinal, inlined, num_bytes, num_handles) =
4112                fidl::encoding::decode_union_inline_portion(decoder, offset)?;
4113
4114            let member_inline_size = match ordinal {
4115                1 => <Empty as fidl::encoding::TypeMarker>::inline_size(decoder.context),
4116                2 => <i32 as fidl::encoding::TypeMarker>::inline_size(decoder.context),
4117                _ => return Err(fidl::Error::UnknownUnionTag),
4118            };
4119
4120            if inlined != (member_inline_size <= 4) {
4121                return Err(fidl::Error::InvalidInlineBitInEnvelope);
4122            }
4123            let _inner_offset;
4124            if inlined {
4125                decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
4126                _inner_offset = offset + 8;
4127            } else {
4128                depth.increment()?;
4129                _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4130            }
4131            match ordinal {
4132                1 => {
4133                    #[allow(irrefutable_let_patterns)]
4134                    if let OpenTargetStrictTwoWayErrRequest::ReplySuccess(_) = self {
4135                        // Do nothing, read the value into the object
4136                    } else {
4137                        // Initialize `self` to the right variant
4138                        *self = OpenTargetStrictTwoWayErrRequest::ReplySuccess(fidl::new_empty!(
4139                            Empty, D
4140                        ));
4141                    }
4142                    #[allow(irrefutable_let_patterns)]
4143                    if let OpenTargetStrictTwoWayErrRequest::ReplySuccess(ref mut val) = self {
4144                        fidl::decode!(Empty, D, val, decoder, _inner_offset, depth)?;
4145                    } else {
4146                        unreachable!()
4147                    }
4148                }
4149                2 => {
4150                    #[allow(irrefutable_let_patterns)]
4151                    if let OpenTargetStrictTwoWayErrRequest::ReplyError(_) = self {
4152                        // Do nothing, read the value into the object
4153                    } else {
4154                        // Initialize `self` to the right variant
4155                        *self =
4156                            OpenTargetStrictTwoWayErrRequest::ReplyError(fidl::new_empty!(i32, D));
4157                    }
4158                    #[allow(irrefutable_let_patterns)]
4159                    if let OpenTargetStrictTwoWayErrRequest::ReplyError(ref mut val) = self {
4160                        fidl::decode!(i32, D, val, decoder, _inner_offset, depth)?;
4161                    } else {
4162                        unreachable!()
4163                    }
4164                }
4165                ordinal => panic!("unexpected ordinal {:?}", ordinal),
4166            }
4167            if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
4168                return Err(fidl::Error::InvalidNumBytesInEnvelope);
4169            }
4170            if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4171                return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4172            }
4173            Ok(())
4174        }
4175    }
4176
4177    impl fidl::encoding::ValueTypeMarker for OpenTargetStrictTwoWayFieldsErrRequest {
4178        type Borrowed<'a> = &'a Self;
4179        fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4180            value
4181        }
4182    }
4183
4184    unsafe impl fidl::encoding::TypeMarker for OpenTargetStrictTwoWayFieldsErrRequest {
4185        type Owned = Self;
4186
4187        #[inline(always)]
4188        fn inline_align(_context: fidl::encoding::Context) -> usize {
4189            8
4190        }
4191
4192        #[inline(always)]
4193        fn inline_size(_context: fidl::encoding::Context) -> usize {
4194            16
4195        }
4196    }
4197
4198    unsafe impl<D: fidl::encoding::ResourceDialect>
4199        fidl::encoding::Encode<OpenTargetStrictTwoWayFieldsErrRequest, D>
4200        for &OpenTargetStrictTwoWayFieldsErrRequest
4201    {
4202        #[inline]
4203        unsafe fn encode(
4204            self,
4205            encoder: &mut fidl::encoding::Encoder<'_, D>,
4206            offset: usize,
4207            _depth: fidl::encoding::Depth,
4208        ) -> fidl::Result<()> {
4209            encoder.debug_check_bounds::<OpenTargetStrictTwoWayFieldsErrRequest>(offset);
4210            encoder.write_num::<u64>(self.ordinal(), offset);
4211            match self {
4212                OpenTargetStrictTwoWayFieldsErrRequest::ReplySuccess(ref val) => {
4213                    fidl::encoding::encode_in_envelope::<i32, D>(
4214                        <i32 as fidl::encoding::ValueTypeMarker>::borrow(val),
4215                        encoder,
4216                        offset + 8,
4217                        _depth,
4218                    )
4219                }
4220                OpenTargetStrictTwoWayFieldsErrRequest::ReplyError(ref val) => {
4221                    fidl::encoding::encode_in_envelope::<i32, D>(
4222                        <i32 as fidl::encoding::ValueTypeMarker>::borrow(val),
4223                        encoder,
4224                        offset + 8,
4225                        _depth,
4226                    )
4227                }
4228            }
4229        }
4230    }
4231
4232    impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
4233        for OpenTargetStrictTwoWayFieldsErrRequest
4234    {
4235        #[inline(always)]
4236        fn new_empty() -> Self {
4237            Self::ReplySuccess(fidl::new_empty!(i32, D))
4238        }
4239
4240        #[inline]
4241        unsafe fn decode(
4242            &mut self,
4243            decoder: &mut fidl::encoding::Decoder<'_, D>,
4244            offset: usize,
4245            mut depth: fidl::encoding::Depth,
4246        ) -> fidl::Result<()> {
4247            decoder.debug_check_bounds::<Self>(offset);
4248            #[allow(unused_variables)]
4249            let next_out_of_line = decoder.next_out_of_line();
4250            let handles_before = decoder.remaining_handles();
4251            let (ordinal, inlined, num_bytes, num_handles) =
4252                fidl::encoding::decode_union_inline_portion(decoder, offset)?;
4253
4254            let member_inline_size = match ordinal {
4255                1 => <i32 as fidl::encoding::TypeMarker>::inline_size(decoder.context),
4256                2 => <i32 as fidl::encoding::TypeMarker>::inline_size(decoder.context),
4257                _ => return Err(fidl::Error::UnknownUnionTag),
4258            };
4259
4260            if inlined != (member_inline_size <= 4) {
4261                return Err(fidl::Error::InvalidInlineBitInEnvelope);
4262            }
4263            let _inner_offset;
4264            if inlined {
4265                decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
4266                _inner_offset = offset + 8;
4267            } else {
4268                depth.increment()?;
4269                _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4270            }
4271            match ordinal {
4272                1 => {
4273                    #[allow(irrefutable_let_patterns)]
4274                    if let OpenTargetStrictTwoWayFieldsErrRequest::ReplySuccess(_) = self {
4275                        // Do nothing, read the value into the object
4276                    } else {
4277                        // Initialize `self` to the right variant
4278                        *self = OpenTargetStrictTwoWayFieldsErrRequest::ReplySuccess(
4279                            fidl::new_empty!(i32, D),
4280                        );
4281                    }
4282                    #[allow(irrefutable_let_patterns)]
4283                    if let OpenTargetStrictTwoWayFieldsErrRequest::ReplySuccess(ref mut val) = self
4284                    {
4285                        fidl::decode!(i32, D, val, decoder, _inner_offset, depth)?;
4286                    } else {
4287                        unreachable!()
4288                    }
4289                }
4290                2 => {
4291                    #[allow(irrefutable_let_patterns)]
4292                    if let OpenTargetStrictTwoWayFieldsErrRequest::ReplyError(_) = self {
4293                        // Do nothing, read the value into the object
4294                    } else {
4295                        // Initialize `self` to the right variant
4296                        *self = OpenTargetStrictTwoWayFieldsErrRequest::ReplyError(
4297                            fidl::new_empty!(i32, D),
4298                        );
4299                    }
4300                    #[allow(irrefutable_let_patterns)]
4301                    if let OpenTargetStrictTwoWayFieldsErrRequest::ReplyError(ref mut val) = self {
4302                        fidl::decode!(i32, D, val, decoder, _inner_offset, depth)?;
4303                    } else {
4304                        unreachable!()
4305                    }
4306                }
4307                ordinal => panic!("unexpected ordinal {:?}", ordinal),
4308            }
4309            if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
4310                return Err(fidl::Error::InvalidNumBytesInEnvelope);
4311            }
4312            if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4313                return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4314            }
4315            Ok(())
4316        }
4317    }
4318}