1#![warn(clippy::all)]
7#![allow(unused_parens, unused_mut, unused_imports, nonstandard_style)]
8
9use bitflags::bitflags;
10use fidl::encoding::{MessageBufFor, ProxyChannelBox, ResourceDialect};
11use futures::future::{self, MaybeDone, TryFutureExt};
12use zx_status;
13
14#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
15pub enum SocketDisposition {
16 NoChange,
17 WriteEnabled,
18 WriteDisabled,
19 #[doc(hidden)]
20 __SourceBreaking {
21 unknown_ordinal: u32,
22 },
23}
24
25#[macro_export]
27macro_rules! SocketDispositionUnknown {
28 () => {
29 _
30 };
31}
32
33impl SocketDisposition {
34 #[inline]
35 pub fn from_primitive(prim: u32) -> Option<Self> {
36 match prim {
37 0 => Some(Self::NoChange),
38 1 => Some(Self::WriteEnabled),
39 2 => Some(Self::WriteDisabled),
40 _ => None,
41 }
42 }
43
44 #[inline]
45 pub fn from_primitive_allow_unknown(prim: u32) -> Self {
46 match prim {
47 0 => Self::NoChange,
48 1 => Self::WriteEnabled,
49 2 => Self::WriteDisabled,
50 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
51 }
52 }
53
54 #[inline]
55 pub fn unknown() -> Self {
56 Self::__SourceBreaking { unknown_ordinal: 0xffffffff }
57 }
58
59 #[inline]
60 pub const fn into_primitive(self) -> u32 {
61 match self {
62 Self::NoChange => 0,
63 Self::WriteEnabled => 1,
64 Self::WriteDisabled => 2,
65 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
66 }
67 }
68
69 #[inline]
70 pub fn is_unknown(&self) -> bool {
71 match self {
72 Self::__SourceBreaking { unknown_ordinal: _ } => true,
73 _ => false,
74 }
75 }
76}
77
78#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
79pub enum SocketType {
80 Stream,
81 Datagram,
82 #[doc(hidden)]
83 __SourceBreaking {
84 unknown_ordinal: u32,
85 },
86}
87
88#[macro_export]
90macro_rules! SocketTypeUnknown {
91 () => {
92 _
93 };
94}
95
96impl SocketType {
97 #[inline]
98 pub fn from_primitive(prim: u32) -> Option<Self> {
99 match prim {
100 0 => Some(Self::Stream),
101 1 => Some(Self::Datagram),
102 _ => None,
103 }
104 }
105
106 #[inline]
107 pub fn from_primitive_allow_unknown(prim: u32) -> Self {
108 match prim {
109 0 => Self::Stream,
110 1 => Self::Datagram,
111 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
112 }
113 }
114
115 #[inline]
116 pub fn unknown() -> Self {
117 Self::__SourceBreaking { unknown_ordinal: 0xffffffff }
118 }
119
120 #[inline]
121 pub const fn into_primitive(self) -> u32 {
122 match self {
123 Self::Stream => 0,
124 Self::Datagram => 1,
125 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
126 }
127 }
128
129 #[inline]
130 pub fn is_unknown(&self) -> bool {
131 match self {
132 Self::__SourceBreaking { unknown_ordinal: _ } => true,
133 _ => false,
134 }
135 }
136}
137
138#[derive(Clone, Debug, PartialEq)]
139pub struct AioStopped {
140 pub error: Option<Box<Error>>,
141}
142
143impl fidl::Persistable for AioStopped {}
144
145#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
146#[repr(C)]
147pub struct BadHandleId {
148 pub id: u32,
149}
150
151impl fidl::Persistable for BadHandleId {}
152
153#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
154#[repr(C)]
155pub struct ChannelCreateChannelRequest {
156 pub handles: [NewHandleId; 2],
157}
158
159impl fidl::Persistable for ChannelCreateChannelRequest {}
160
161#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
162pub struct ChannelMessage {
163 pub data: Vec<u8>,
164 pub handles: Vec<HandleInfo>,
165}
166
167impl fidl::Persistable for ChannelMessage {}
168
169#[derive(Clone, Debug, PartialEq)]
170pub struct ChannelOnChannelStreamingDataRequest {
171 pub handle: HandleId,
172 pub channel_sent: ChannelSent,
173}
174
175impl fidl::Persistable for ChannelOnChannelStreamingDataRequest {}
176
177#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
178#[repr(C)]
179pub struct ChannelReadChannelRequest {
180 pub handle: HandleId,
181}
182
183impl fidl::Persistable for ChannelReadChannelRequest {}
184
185#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
186#[repr(C)]
187pub struct ChannelReadChannelStreamingStartRequest {
188 pub handle: HandleId,
189}
190
191impl fidl::Persistable for ChannelReadChannelStreamingStartRequest {}
192
193#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
194#[repr(C)]
195pub struct ChannelReadChannelStreamingStopRequest {
196 pub handle: HandleId,
197}
198
199impl fidl::Persistable for ChannelReadChannelStreamingStopRequest {}
200
201#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
202pub struct ChannelWriteChannelRequest {
203 pub handle: HandleId,
204 pub data: Vec<u8>,
205 pub handles: Handles,
206}
207
208impl fidl::Persistable for ChannelWriteChannelRequest {}
209
210#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
211pub struct ClosedDuringRead;
212
213impl fidl::Persistable for ClosedDuringRead {}
214
215#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
216#[repr(C)]
217pub struct EventCreateEventRequest {
218 pub handle: NewHandleId,
219}
220
221impl fidl::Persistable for EventCreateEventRequest {}
222
223#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
224#[repr(C)]
225pub struct EventPairCreateEventPairRequest {
226 pub handles: [NewHandleId; 2],
227}
228
229impl fidl::Persistable for EventPairCreateEventPairRequest {}
230
231#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
232pub struct FDomainCloseRequest {
233 pub handles: Vec<HandleId>,
234}
235
236impl fidl::Persistable for FDomainCloseRequest {}
237
238#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
239pub struct FDomainDuplicateRequest {
240 pub handle: HandleId,
241 pub new_handle: NewHandleId,
242 pub rights: fidl::Rights,
243}
244
245impl fidl::Persistable for FDomainDuplicateRequest {}
246
247#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
248#[repr(C)]
249pub struct FDomainGetKoidRequest {
250 pub handle: HandleId,
251}
252
253impl fidl::Persistable for FDomainGetKoidRequest {}
254
255#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
256#[repr(C)]
257pub struct FDomainGetNamespaceRequest {
258 pub new_handle: NewHandleId,
259}
260
261impl fidl::Persistable for FDomainGetNamespaceRequest {}
262
263#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
264pub struct FDomainReplaceRequest {
265 pub handle: HandleId,
266 pub new_handle: NewHandleId,
267 pub rights: fidl::Rights,
268}
269
270impl fidl::Persistable for FDomainReplaceRequest {}
271
272#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
273#[repr(C)]
274pub struct FDomainSignalPeerRequest {
275 pub handle: HandleId,
276 pub set: u32,
277 pub clear: u32,
278}
279
280impl fidl::Persistable for FDomainSignalPeerRequest {}
281
282#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
283#[repr(C)]
284pub struct FDomainSignalRequest {
285 pub handle: HandleId,
286 pub set: u32,
287 pub clear: u32,
288}
289
290impl fidl::Persistable for FDomainSignalRequest {}
291
292#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
293#[repr(C)]
294pub struct FDomainWaitForSignalsRequest {
295 pub handle: HandleId,
296 pub signals: u32,
297}
298
299impl fidl::Persistable for FDomainWaitForSignalsRequest {}
300
301#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
302#[repr(C)]
303pub struct FDomainGetKoidResponse {
304 pub koid: u64,
305}
306
307impl fidl::Persistable for FDomainGetKoidResponse {}
308
309#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
310#[repr(C)]
311pub struct FDomainWaitForSignalsResponse {
312 pub signals: u32,
313}
314
315impl fidl::Persistable for FDomainWaitForSignalsResponse {}
316
317#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
318pub struct HandleDisposition {
319 pub handle: HandleOp,
320 pub rights: fidl::Rights,
321}
322
323impl fidl::Persistable for HandleDisposition {}
324
325#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
326#[repr(C)]
327pub struct HandleId {
328 pub id: u32,
329}
330
331impl fidl::Persistable for HandleId {}
332
333#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
334pub struct HandleInfo {
335 pub handle: HandleId,
336 pub type_: fidl::ObjectType,
337 pub rights: fidl::Rights,
338}
339
340impl fidl::Persistable for HandleInfo {}
341
342#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
343#[repr(C)]
344pub struct NewHandleId {
345 pub id: u32,
346}
347
348impl fidl::Persistable for NewHandleId {}
349
350#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
351#[repr(C)]
352pub struct NewHandleIdOutOfRange {
353 pub id: u32,
354}
355
356impl fidl::Persistable for NewHandleIdOutOfRange {}
357
358#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
359pub struct NewHandleIdReused {
360 pub id: u32,
361 pub same_call: bool,
362}
363
364impl fidl::Persistable for NewHandleIdReused {}
365
366#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
367pub struct NoReadInProgress;
368
369impl fidl::Persistable for NoReadInProgress {}
370
371#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
372pub struct RightsUnknown {
373 pub rights: fidl::Rights,
374}
375
376impl fidl::Persistable for RightsUnknown {}
377
378#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
379#[repr(C)]
380pub struct SignalsUnknown {
381 pub signals: u32,
382}
383
384impl fidl::Persistable for SignalsUnknown {}
385
386#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
387pub struct SocketCreateSocketRequest {
388 pub options: SocketType,
389 pub handles: [NewHandleId; 2],
390}
391
392impl fidl::Persistable for SocketCreateSocketRequest {}
393
394#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
395pub struct SocketData {
396 pub data: Vec<u8>,
397 pub is_datagram: bool,
398}
399
400impl fidl::Persistable for SocketData {}
401
402#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
403pub struct SocketDispositionUnknown {
404 pub disposition: SocketDisposition,
405}
406
407impl fidl::Persistable for SocketDispositionUnknown {}
408
409#[derive(Clone, Debug, PartialEq)]
410pub struct SocketOnSocketStreamingDataRequest {
411 pub handle: HandleId,
412 pub socket_message: SocketMessage,
413}
414
415impl fidl::Persistable for SocketOnSocketStreamingDataRequest {}
416
417#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
418#[repr(C)]
419pub struct SocketReadSocketRequest {
420 pub handle: HandleId,
421 pub max_bytes: u64,
422}
423
424impl fidl::Persistable for SocketReadSocketRequest {}
425
426#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
427#[repr(C)]
428pub struct SocketReadSocketStreamingStartRequest {
429 pub handle: HandleId,
430}
431
432impl fidl::Persistable for SocketReadSocketStreamingStartRequest {}
433
434#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
435#[repr(C)]
436pub struct SocketReadSocketStreamingStopRequest {
437 pub handle: HandleId,
438}
439
440impl fidl::Persistable for SocketReadSocketStreamingStopRequest {}
441
442#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
443pub struct SocketSetSocketDispositionRequest {
444 pub handle: HandleId,
445 pub disposition: SocketDisposition,
446 pub disposition_peer: SocketDisposition,
447}
448
449impl fidl::Persistable for SocketSetSocketDispositionRequest {}
450
451#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
452pub struct SocketTypeUnknown {
453 pub type_: SocketType,
454}
455
456impl fidl::Persistable for SocketTypeUnknown {}
457
458#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
459pub struct SocketWriteSocketRequest {
460 pub handle: HandleId,
461 pub data: Vec<u8>,
462}
463
464impl fidl::Persistable for SocketWriteSocketRequest {}
465
466#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
467#[repr(C)]
468pub struct SocketWriteSocketResponse {
469 pub wrote: u64,
470}
471
472impl fidl::Persistable for SocketWriteSocketResponse {}
473
474#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
475pub struct StreamingReadInProgress;
476
477impl fidl::Persistable for StreamingReadInProgress {}
478
479#[derive(Clone, Debug, PartialEq)]
480pub struct WriteSocketError {
481 pub error: Error,
482 pub wrote: u64,
483}
484
485impl fidl::Persistable for WriteSocketError {}
486
487#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
488pub struct WrongHandleType {
489 pub expected: fidl::ObjectType,
490 pub got: fidl::ObjectType,
491}
492
493impl fidl::Persistable for WrongHandleType {}
494
495#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
496pub struct WroteToSelf;
497
498impl fidl::Persistable for WroteToSelf {}
499
500#[derive(Clone, Debug)]
501pub enum ChannelSent {
502 Message(ChannelMessage),
503 Stopped(AioStopped),
504 #[doc(hidden)]
505 __SourceBreaking {
506 unknown_ordinal: u64,
507 },
508}
509
510#[macro_export]
512macro_rules! ChannelSentUnknown {
513 () => {
514 _
515 };
516}
517
518impl PartialEq for ChannelSent {
520 fn eq(&self, other: &Self) -> bool {
521 match (self, other) {
522 (Self::Message(x), Self::Message(y)) => *x == *y,
523 (Self::Stopped(x), Self::Stopped(y)) => *x == *y,
524 _ => false,
525 }
526 }
527}
528
529impl ChannelSent {
530 #[inline]
531 pub fn ordinal(&self) -> u64 {
532 match *self {
533 Self::Message(_) => 1,
534 Self::Stopped(_) => 2,
535 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
536 }
537 }
538
539 #[inline]
540 pub fn unknown_variant_for_testing() -> Self {
541 Self::__SourceBreaking { unknown_ordinal: 0 }
542 }
543
544 #[inline]
545 pub fn is_unknown(&self) -> bool {
546 match self {
547 Self::__SourceBreaking { .. } => true,
548 _ => false,
549 }
550 }
551}
552
553impl fidl::Persistable for ChannelSent {}
554
555#[derive(Clone, Debug)]
556pub enum Error {
557 TargetError(i32),
558 BadHandleId(BadHandleId),
559 NewHandleIdOutOfRange(NewHandleIdOutOfRange),
560 NewHandleIdReused(NewHandleIdReused),
561 WrongHandleType(WrongHandleType),
562 StreamingReadInProgress(StreamingReadInProgress),
563 NoReadInProgress(NoReadInProgress),
564 WroteToSelf(WroteToSelf),
565 ClosedDuringRead(ClosedDuringRead),
566 SignalsUnknown(SignalsUnknown),
567 RightsUnknown(RightsUnknown),
568 SocketDispositionUnknown(SocketDispositionUnknown),
569 SocketTypeUnknown(SocketTypeUnknown),
570 #[doc(hidden)]
571 __SourceBreaking {
572 unknown_ordinal: u64,
573 },
574}
575
576#[macro_export]
578macro_rules! ErrorUnknown {
579 () => {
580 _
581 };
582}
583
584impl PartialEq for Error {
586 fn eq(&self, other: &Self) -> bool {
587 match (self, other) {
588 (Self::TargetError(x), Self::TargetError(y)) => *x == *y,
589 (Self::BadHandleId(x), Self::BadHandleId(y)) => *x == *y,
590 (Self::NewHandleIdOutOfRange(x), Self::NewHandleIdOutOfRange(y)) => *x == *y,
591 (Self::NewHandleIdReused(x), Self::NewHandleIdReused(y)) => *x == *y,
592 (Self::WrongHandleType(x), Self::WrongHandleType(y)) => *x == *y,
593 (Self::StreamingReadInProgress(x), Self::StreamingReadInProgress(y)) => *x == *y,
594 (Self::NoReadInProgress(x), Self::NoReadInProgress(y)) => *x == *y,
595 (Self::WroteToSelf(x), Self::WroteToSelf(y)) => *x == *y,
596 (Self::ClosedDuringRead(x), Self::ClosedDuringRead(y)) => *x == *y,
597 (Self::SignalsUnknown(x), Self::SignalsUnknown(y)) => *x == *y,
598 (Self::RightsUnknown(x), Self::RightsUnknown(y)) => *x == *y,
599 (Self::SocketDispositionUnknown(x), Self::SocketDispositionUnknown(y)) => *x == *y,
600 (Self::SocketTypeUnknown(x), Self::SocketTypeUnknown(y)) => *x == *y,
601 _ => false,
602 }
603 }
604}
605
606impl Error {
607 #[inline]
608 pub fn ordinal(&self) -> u64 {
609 match *self {
610 Self::TargetError(_) => 1,
611 Self::BadHandleId(_) => 2,
612 Self::NewHandleIdOutOfRange(_) => 3,
613 Self::NewHandleIdReused(_) => 4,
614 Self::WrongHandleType(_) => 5,
615 Self::StreamingReadInProgress(_) => 6,
616 Self::NoReadInProgress(_) => 7,
617 Self::WroteToSelf(_) => 8,
618 Self::ClosedDuringRead(_) => 9,
619 Self::SignalsUnknown(_) => 10,
620 Self::RightsUnknown(_) => 11,
621 Self::SocketDispositionUnknown(_) => 12,
622 Self::SocketTypeUnknown(_) => 13,
623 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
624 }
625 }
626
627 #[inline]
628 pub fn unknown_variant_for_testing() -> Self {
629 Self::__SourceBreaking { unknown_ordinal: 0 }
630 }
631
632 #[inline]
633 pub fn is_unknown(&self) -> bool {
634 match self {
635 Self::__SourceBreaking { .. } => true,
636 _ => false,
637 }
638 }
639}
640
641impl fidl::Persistable for Error {}
642
643#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
644pub enum HandleOp {
645 Move_(HandleId),
646 Duplicate(HandleId),
647}
648
649impl HandleOp {
650 #[inline]
651 pub fn ordinal(&self) -> u64 {
652 match *self {
653 Self::Move_(_) => 1,
654 Self::Duplicate(_) => 2,
655 }
656 }
657}
658
659impl fidl::Persistable for HandleOp {}
660
661#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
662pub enum Handles {
663 Handles(Vec<HandleId>),
664 Dispositions(Vec<HandleDisposition>),
665}
666
667impl Handles {
668 #[inline]
669 pub fn ordinal(&self) -> u64 {
670 match *self {
671 Self::Handles(_) => 1,
672 Self::Dispositions(_) => 2,
673 }
674 }
675}
676
677impl fidl::Persistable for Handles {}
678
679#[derive(Clone, Debug)]
680pub enum SocketMessage {
681 Data(SocketData),
682 Stopped(AioStopped),
683 #[doc(hidden)]
684 __SourceBreaking {
685 unknown_ordinal: u64,
686 },
687}
688
689#[macro_export]
691macro_rules! SocketMessageUnknown {
692 () => {
693 _
694 };
695}
696
697impl PartialEq for SocketMessage {
699 fn eq(&self, other: &Self) -> bool {
700 match (self, other) {
701 (Self::Data(x), Self::Data(y)) => *x == *y,
702 (Self::Stopped(x), Self::Stopped(y)) => *x == *y,
703 _ => false,
704 }
705 }
706}
707
708impl SocketMessage {
709 #[inline]
710 pub fn ordinal(&self) -> u64 {
711 match *self {
712 Self::Data(_) => 1,
713 Self::Stopped(_) => 2,
714 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
715 }
716 }
717
718 #[inline]
719 pub fn unknown_variant_for_testing() -> Self {
720 Self::__SourceBreaking { unknown_ordinal: 0 }
721 }
722
723 #[inline]
724 pub fn is_unknown(&self) -> bool {
725 match self {
726 Self::__SourceBreaking { .. } => true,
727 _ => false,
728 }
729 }
730}
731
732impl fidl::Persistable for SocketMessage {}
733
734#[derive(Clone, Debug, PartialEq)]
735pub enum WriteChannelError {
736 Error(Error),
737 OpErrors(Vec<Option<Box<Error>>>),
738}
739
740impl WriteChannelError {
741 #[inline]
742 pub fn ordinal(&self) -> u64 {
743 match *self {
744 Self::Error(_) => 1,
745 Self::OpErrors(_) => 2,
746 }
747 }
748}
749
750impl fidl::Persistable for WriteChannelError {}
751
752pub mod channel_ordinals {
753 pub const CREATE_CHANNEL: u64 = 0x182d38bfe88673b5;
754 pub const READ_CHANNEL: u64 = 0x6ef47bf27bf7d050;
755 pub const WRITE_CHANNEL: u64 = 0x75a2559b945d5eb5;
756 pub const READ_CHANNEL_STREAMING_START: u64 = 0x3c73e85476a203df;
757 pub const READ_CHANNEL_STREAMING_STOP: u64 = 0x56f21d6ed68186e0;
758 pub const ON_CHANNEL_STREAMING_DATA: u64 = 0x7d4431805202dfe1;
759}
760
761pub mod event_ordinals {
762 pub const CREATE_EVENT: u64 = 0x7b05b3f262635987;
763}
764
765pub mod event_pair_ordinals {
766 pub const CREATE_EVENT_PAIR: u64 = 0x7aef61effa65656d;
767}
768
769pub mod f_domain_ordinals {
770 pub const CREATE_CHANNEL: u64 = 0x182d38bfe88673b5;
771 pub const READ_CHANNEL: u64 = 0x6ef47bf27bf7d050;
772 pub const WRITE_CHANNEL: u64 = 0x75a2559b945d5eb5;
773 pub const READ_CHANNEL_STREAMING_START: u64 = 0x3c73e85476a203df;
774 pub const READ_CHANNEL_STREAMING_STOP: u64 = 0x56f21d6ed68186e0;
775 pub const ON_CHANNEL_STREAMING_DATA: u64 = 0x7d4431805202dfe1;
776 pub const CREATE_EVENT: u64 = 0x7b05b3f262635987;
777 pub const CREATE_EVENT_PAIR: u64 = 0x7aef61effa65656d;
778 pub const CREATE_SOCKET: u64 = 0x200bf0ea21932de0;
779 pub const SET_SOCKET_DISPOSITION: u64 = 0x60d3c7ccb17f9bdf;
780 pub const READ_SOCKET: u64 = 0x1da8aabec249c02e;
781 pub const WRITE_SOCKET: u64 = 0x5b541623cbbbf683;
782 pub const READ_SOCKET_STREAMING_START: u64 = 0x2a592748d5f33445;
783 pub const READ_SOCKET_STREAMING_STOP: u64 = 0x53e5cade5f4d22e7;
784 pub const ON_SOCKET_STREAMING_DATA: u64 = 0x998b5e66b3c80a2;
785 pub const GET_NAMESPACE: u64 = 0x74f2e74d9f53e11e;
786 pub const CLOSE: u64 = 0x5ef8c24362964257;
787 pub const DUPLICATE: u64 = 0x7a85b94bd1777ab9;
788 pub const REPLACE: u64 = 0x32fa64625a5bd3be;
789 pub const SIGNAL: u64 = 0xe8352fb978996d9;
790 pub const SIGNAL_PEER: u64 = 0x7e84ec8ca7eabaf8;
791 pub const WAIT_FOR_SIGNALS: u64 = 0x8f72d9b4b85c1eb;
792 pub const GET_KOID: u64 = 0x437db979a63402c3;
793}
794
795pub mod socket_ordinals {
796 pub const CREATE_SOCKET: u64 = 0x200bf0ea21932de0;
797 pub const SET_SOCKET_DISPOSITION: u64 = 0x60d3c7ccb17f9bdf;
798 pub const READ_SOCKET: u64 = 0x1da8aabec249c02e;
799 pub const WRITE_SOCKET: u64 = 0x5b541623cbbbf683;
800 pub const READ_SOCKET_STREAMING_START: u64 = 0x2a592748d5f33445;
801 pub const READ_SOCKET_STREAMING_STOP: u64 = 0x53e5cade5f4d22e7;
802 pub const ON_SOCKET_STREAMING_DATA: u64 = 0x998b5e66b3c80a2;
803}
804
805mod internal {
806 use super::*;
807 unsafe impl fidl::encoding::TypeMarker for SocketDisposition {
808 type Owned = Self;
809
810 #[inline(always)]
811 fn inline_align(_context: fidl::encoding::Context) -> usize {
812 std::mem::align_of::<u32>()
813 }
814
815 #[inline(always)]
816 fn inline_size(_context: fidl::encoding::Context) -> usize {
817 std::mem::size_of::<u32>()
818 }
819
820 #[inline(always)]
821 fn encode_is_copy() -> bool {
822 false
823 }
824
825 #[inline(always)]
826 fn decode_is_copy() -> bool {
827 false
828 }
829 }
830
831 impl fidl::encoding::ValueTypeMarker for SocketDisposition {
832 type Borrowed<'a> = Self;
833 #[inline(always)]
834 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
835 *value
836 }
837 }
838
839 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
840 for SocketDisposition
841 {
842 #[inline]
843 unsafe fn encode(
844 self,
845 encoder: &mut fidl::encoding::Encoder<'_, D>,
846 offset: usize,
847 _depth: fidl::encoding::Depth,
848 ) -> fidl::Result<()> {
849 encoder.debug_check_bounds::<Self>(offset);
850 encoder.write_num(self.into_primitive(), offset);
851 Ok(())
852 }
853 }
854
855 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for SocketDisposition {
856 #[inline(always)]
857 fn new_empty() -> Self {
858 Self::unknown()
859 }
860
861 #[inline]
862 unsafe fn decode(
863 &mut self,
864 decoder: &mut fidl::encoding::Decoder<'_, D>,
865 offset: usize,
866 _depth: fidl::encoding::Depth,
867 ) -> fidl::Result<()> {
868 decoder.debug_check_bounds::<Self>(offset);
869 let prim = decoder.read_num::<u32>(offset);
870
871 *self = Self::from_primitive_allow_unknown(prim);
872 Ok(())
873 }
874 }
875 unsafe impl fidl::encoding::TypeMarker for SocketType {
876 type Owned = Self;
877
878 #[inline(always)]
879 fn inline_align(_context: fidl::encoding::Context) -> usize {
880 std::mem::align_of::<u32>()
881 }
882
883 #[inline(always)]
884 fn inline_size(_context: fidl::encoding::Context) -> usize {
885 std::mem::size_of::<u32>()
886 }
887
888 #[inline(always)]
889 fn encode_is_copy() -> bool {
890 false
891 }
892
893 #[inline(always)]
894 fn decode_is_copy() -> bool {
895 false
896 }
897 }
898
899 impl fidl::encoding::ValueTypeMarker for SocketType {
900 type Borrowed<'a> = Self;
901 #[inline(always)]
902 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
903 *value
904 }
905 }
906
907 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for SocketType {
908 #[inline]
909 unsafe fn encode(
910 self,
911 encoder: &mut fidl::encoding::Encoder<'_, D>,
912 offset: usize,
913 _depth: fidl::encoding::Depth,
914 ) -> fidl::Result<()> {
915 encoder.debug_check_bounds::<Self>(offset);
916 encoder.write_num(self.into_primitive(), offset);
917 Ok(())
918 }
919 }
920
921 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for SocketType {
922 #[inline(always)]
923 fn new_empty() -> Self {
924 Self::unknown()
925 }
926
927 #[inline]
928 unsafe fn decode(
929 &mut self,
930 decoder: &mut fidl::encoding::Decoder<'_, D>,
931 offset: usize,
932 _depth: fidl::encoding::Depth,
933 ) -> fidl::Result<()> {
934 decoder.debug_check_bounds::<Self>(offset);
935 let prim = decoder.read_num::<u32>(offset);
936
937 *self = Self::from_primitive_allow_unknown(prim);
938 Ok(())
939 }
940 }
941
942 impl fidl::encoding::ValueTypeMarker for AioStopped {
943 type Borrowed<'a> = &'a Self;
944 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
945 value
946 }
947 }
948
949 unsafe impl fidl::encoding::TypeMarker for AioStopped {
950 type Owned = Self;
951
952 #[inline(always)]
953 fn inline_align(_context: fidl::encoding::Context) -> usize {
954 8
955 }
956
957 #[inline(always)]
958 fn inline_size(_context: fidl::encoding::Context) -> usize {
959 16
960 }
961 }
962
963 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<AioStopped, D>
964 for &AioStopped
965 {
966 #[inline]
967 unsafe fn encode(
968 self,
969 encoder: &mut fidl::encoding::Encoder<'_, D>,
970 offset: usize,
971 _depth: fidl::encoding::Depth,
972 ) -> fidl::Result<()> {
973 encoder.debug_check_bounds::<AioStopped>(offset);
974 fidl::encoding::Encode::<AioStopped, D>::encode(
976 (
977 <fidl::encoding::OptionalUnion<Error> as fidl::encoding::ValueTypeMarker>::borrow(&self.error),
978 ),
979 encoder, offset, _depth
980 )
981 }
982 }
983 unsafe impl<
984 D: fidl::encoding::ResourceDialect,
985 T0: fidl::encoding::Encode<fidl::encoding::OptionalUnion<Error>, D>,
986 > fidl::encoding::Encode<AioStopped, D> for (T0,)
987 {
988 #[inline]
989 unsafe fn encode(
990 self,
991 encoder: &mut fidl::encoding::Encoder<'_, D>,
992 offset: usize,
993 depth: fidl::encoding::Depth,
994 ) -> fidl::Result<()> {
995 encoder.debug_check_bounds::<AioStopped>(offset);
996 self.0.encode(encoder, offset + 0, depth)?;
1000 Ok(())
1001 }
1002 }
1003
1004 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for AioStopped {
1005 #[inline(always)]
1006 fn new_empty() -> Self {
1007 Self { error: fidl::new_empty!(fidl::encoding::OptionalUnion<Error>, D) }
1008 }
1009
1010 #[inline]
1011 unsafe fn decode(
1012 &mut self,
1013 decoder: &mut fidl::encoding::Decoder<'_, D>,
1014 offset: usize,
1015 _depth: fidl::encoding::Depth,
1016 ) -> fidl::Result<()> {
1017 decoder.debug_check_bounds::<Self>(offset);
1018 fidl::decode!(
1020 fidl::encoding::OptionalUnion<Error>,
1021 D,
1022 &mut self.error,
1023 decoder,
1024 offset + 0,
1025 _depth
1026 )?;
1027 Ok(())
1028 }
1029 }
1030
1031 impl fidl::encoding::ValueTypeMarker for BadHandleId {
1032 type Borrowed<'a> = &'a Self;
1033 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1034 value
1035 }
1036 }
1037
1038 unsafe impl fidl::encoding::TypeMarker for BadHandleId {
1039 type Owned = Self;
1040
1041 #[inline(always)]
1042 fn inline_align(_context: fidl::encoding::Context) -> usize {
1043 4
1044 }
1045
1046 #[inline(always)]
1047 fn inline_size(_context: fidl::encoding::Context) -> usize {
1048 4
1049 }
1050 #[inline(always)]
1051 fn encode_is_copy() -> bool {
1052 true
1053 }
1054
1055 #[inline(always)]
1056 fn decode_is_copy() -> bool {
1057 true
1058 }
1059 }
1060
1061 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<BadHandleId, D>
1062 for &BadHandleId
1063 {
1064 #[inline]
1065 unsafe fn encode(
1066 self,
1067 encoder: &mut fidl::encoding::Encoder<'_, D>,
1068 offset: usize,
1069 _depth: fidl::encoding::Depth,
1070 ) -> fidl::Result<()> {
1071 encoder.debug_check_bounds::<BadHandleId>(offset);
1072 unsafe {
1073 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
1075 (buf_ptr as *mut BadHandleId).write_unaligned((self as *const BadHandleId).read());
1076 }
1079 Ok(())
1080 }
1081 }
1082 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<u32, D>>
1083 fidl::encoding::Encode<BadHandleId, D> for (T0,)
1084 {
1085 #[inline]
1086 unsafe fn encode(
1087 self,
1088 encoder: &mut fidl::encoding::Encoder<'_, D>,
1089 offset: usize,
1090 depth: fidl::encoding::Depth,
1091 ) -> fidl::Result<()> {
1092 encoder.debug_check_bounds::<BadHandleId>(offset);
1093 self.0.encode(encoder, offset + 0, depth)?;
1097 Ok(())
1098 }
1099 }
1100
1101 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for BadHandleId {
1102 #[inline(always)]
1103 fn new_empty() -> Self {
1104 Self { id: fidl::new_empty!(u32, D) }
1105 }
1106
1107 #[inline]
1108 unsafe fn decode(
1109 &mut self,
1110 decoder: &mut fidl::encoding::Decoder<'_, D>,
1111 offset: usize,
1112 _depth: fidl::encoding::Depth,
1113 ) -> fidl::Result<()> {
1114 decoder.debug_check_bounds::<Self>(offset);
1115 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
1116 unsafe {
1119 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 4);
1120 }
1121 Ok(())
1122 }
1123 }
1124
1125 impl fidl::encoding::ValueTypeMarker for ChannelCreateChannelRequest {
1126 type Borrowed<'a> = &'a Self;
1127 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1128 value
1129 }
1130 }
1131
1132 unsafe impl fidl::encoding::TypeMarker for ChannelCreateChannelRequest {
1133 type Owned = Self;
1134
1135 #[inline(always)]
1136 fn inline_align(_context: fidl::encoding::Context) -> usize {
1137 4
1138 }
1139
1140 #[inline(always)]
1141 fn inline_size(_context: fidl::encoding::Context) -> usize {
1142 8
1143 }
1144 #[inline(always)]
1145 fn encode_is_copy() -> bool {
1146 true
1147 }
1148
1149 #[inline(always)]
1150 fn decode_is_copy() -> bool {
1151 true
1152 }
1153 }
1154
1155 unsafe impl<D: fidl::encoding::ResourceDialect>
1156 fidl::encoding::Encode<ChannelCreateChannelRequest, D> for &ChannelCreateChannelRequest
1157 {
1158 #[inline]
1159 unsafe fn encode(
1160 self,
1161 encoder: &mut fidl::encoding::Encoder<'_, D>,
1162 offset: usize,
1163 _depth: fidl::encoding::Depth,
1164 ) -> fidl::Result<()> {
1165 encoder.debug_check_bounds::<ChannelCreateChannelRequest>(offset);
1166 unsafe {
1167 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
1169 (buf_ptr as *mut ChannelCreateChannelRequest)
1170 .write_unaligned((self as *const ChannelCreateChannelRequest).read());
1171 }
1174 Ok(())
1175 }
1176 }
1177 unsafe impl<
1178 D: fidl::encoding::ResourceDialect,
1179 T0: fidl::encoding::Encode<fidl::encoding::Array<NewHandleId, 2>, D>,
1180 > fidl::encoding::Encode<ChannelCreateChannelRequest, D> for (T0,)
1181 {
1182 #[inline]
1183 unsafe fn encode(
1184 self,
1185 encoder: &mut fidl::encoding::Encoder<'_, D>,
1186 offset: usize,
1187 depth: fidl::encoding::Depth,
1188 ) -> fidl::Result<()> {
1189 encoder.debug_check_bounds::<ChannelCreateChannelRequest>(offset);
1190 self.0.encode(encoder, offset + 0, depth)?;
1194 Ok(())
1195 }
1196 }
1197
1198 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1199 for ChannelCreateChannelRequest
1200 {
1201 #[inline(always)]
1202 fn new_empty() -> Self {
1203 Self { handles: fidl::new_empty!(fidl::encoding::Array<NewHandleId, 2>, D) }
1204 }
1205
1206 #[inline]
1207 unsafe fn decode(
1208 &mut self,
1209 decoder: &mut fidl::encoding::Decoder<'_, D>,
1210 offset: usize,
1211 _depth: fidl::encoding::Depth,
1212 ) -> fidl::Result<()> {
1213 decoder.debug_check_bounds::<Self>(offset);
1214 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
1215 unsafe {
1218 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 8);
1219 }
1220 Ok(())
1221 }
1222 }
1223
1224 impl fidl::encoding::ValueTypeMarker for ChannelMessage {
1225 type Borrowed<'a> = &'a Self;
1226 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1227 value
1228 }
1229 }
1230
1231 unsafe impl fidl::encoding::TypeMarker for ChannelMessage {
1232 type Owned = Self;
1233
1234 #[inline(always)]
1235 fn inline_align(_context: fidl::encoding::Context) -> usize {
1236 8
1237 }
1238
1239 #[inline(always)]
1240 fn inline_size(_context: fidl::encoding::Context) -> usize {
1241 32
1242 }
1243 }
1244
1245 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ChannelMessage, D>
1246 for &ChannelMessage
1247 {
1248 #[inline]
1249 unsafe fn encode(
1250 self,
1251 encoder: &mut fidl::encoding::Encoder<'_, D>,
1252 offset: usize,
1253 _depth: fidl::encoding::Depth,
1254 ) -> fidl::Result<()> {
1255 encoder.debug_check_bounds::<ChannelMessage>(offset);
1256 fidl::encoding::Encode::<ChannelMessage, D>::encode(
1258 (
1259 <fidl::encoding::Vector<u8, 65536> as fidl::encoding::ValueTypeMarker>::borrow(&self.data),
1260 <fidl::encoding::Vector<HandleInfo, 64> as fidl::encoding::ValueTypeMarker>::borrow(&self.handles),
1261 ),
1262 encoder, offset, _depth
1263 )
1264 }
1265 }
1266 unsafe impl<
1267 D: fidl::encoding::ResourceDialect,
1268 T0: fidl::encoding::Encode<fidl::encoding::Vector<u8, 65536>, D>,
1269 T1: fidl::encoding::Encode<fidl::encoding::Vector<HandleInfo, 64>, D>,
1270 > fidl::encoding::Encode<ChannelMessage, D> for (T0, T1)
1271 {
1272 #[inline]
1273 unsafe fn encode(
1274 self,
1275 encoder: &mut fidl::encoding::Encoder<'_, D>,
1276 offset: usize,
1277 depth: fidl::encoding::Depth,
1278 ) -> fidl::Result<()> {
1279 encoder.debug_check_bounds::<ChannelMessage>(offset);
1280 self.0.encode(encoder, offset + 0, depth)?;
1284 self.1.encode(encoder, offset + 16, depth)?;
1285 Ok(())
1286 }
1287 }
1288
1289 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ChannelMessage {
1290 #[inline(always)]
1291 fn new_empty() -> Self {
1292 Self {
1293 data: fidl::new_empty!(fidl::encoding::Vector<u8, 65536>, D),
1294 handles: fidl::new_empty!(fidl::encoding::Vector<HandleInfo, 64>, D),
1295 }
1296 }
1297
1298 #[inline]
1299 unsafe fn decode(
1300 &mut self,
1301 decoder: &mut fidl::encoding::Decoder<'_, D>,
1302 offset: usize,
1303 _depth: fidl::encoding::Depth,
1304 ) -> fidl::Result<()> {
1305 decoder.debug_check_bounds::<Self>(offset);
1306 fidl::decode!(fidl::encoding::Vector<u8, 65536>, D, &mut self.data, decoder, offset + 0, _depth)?;
1308 fidl::decode!(fidl::encoding::Vector<HandleInfo, 64>, D, &mut self.handles, decoder, offset + 16, _depth)?;
1309 Ok(())
1310 }
1311 }
1312
1313 impl fidl::encoding::ValueTypeMarker for ChannelOnChannelStreamingDataRequest {
1314 type Borrowed<'a> = &'a Self;
1315 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1316 value
1317 }
1318 }
1319
1320 unsafe impl fidl::encoding::TypeMarker for ChannelOnChannelStreamingDataRequest {
1321 type Owned = Self;
1322
1323 #[inline(always)]
1324 fn inline_align(_context: fidl::encoding::Context) -> usize {
1325 8
1326 }
1327
1328 #[inline(always)]
1329 fn inline_size(_context: fidl::encoding::Context) -> usize {
1330 24
1331 }
1332 }
1333
1334 unsafe impl<D: fidl::encoding::ResourceDialect>
1335 fidl::encoding::Encode<ChannelOnChannelStreamingDataRequest, D>
1336 for &ChannelOnChannelStreamingDataRequest
1337 {
1338 #[inline]
1339 unsafe fn encode(
1340 self,
1341 encoder: &mut fidl::encoding::Encoder<'_, D>,
1342 offset: usize,
1343 _depth: fidl::encoding::Depth,
1344 ) -> fidl::Result<()> {
1345 encoder.debug_check_bounds::<ChannelOnChannelStreamingDataRequest>(offset);
1346 fidl::encoding::Encode::<ChannelOnChannelStreamingDataRequest, D>::encode(
1348 (
1349 <HandleId as fidl::encoding::ValueTypeMarker>::borrow(&self.handle),
1350 <ChannelSent as fidl::encoding::ValueTypeMarker>::borrow(&self.channel_sent),
1351 ),
1352 encoder,
1353 offset,
1354 _depth,
1355 )
1356 }
1357 }
1358 unsafe impl<
1359 D: fidl::encoding::ResourceDialect,
1360 T0: fidl::encoding::Encode<HandleId, D>,
1361 T1: fidl::encoding::Encode<ChannelSent, D>,
1362 > fidl::encoding::Encode<ChannelOnChannelStreamingDataRequest, D> for (T0, T1)
1363 {
1364 #[inline]
1365 unsafe fn encode(
1366 self,
1367 encoder: &mut fidl::encoding::Encoder<'_, D>,
1368 offset: usize,
1369 depth: fidl::encoding::Depth,
1370 ) -> fidl::Result<()> {
1371 encoder.debug_check_bounds::<ChannelOnChannelStreamingDataRequest>(offset);
1372 unsafe {
1375 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(0);
1376 (ptr as *mut u64).write_unaligned(0);
1377 }
1378 self.0.encode(encoder, offset + 0, depth)?;
1380 self.1.encode(encoder, offset + 8, depth)?;
1381 Ok(())
1382 }
1383 }
1384
1385 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1386 for ChannelOnChannelStreamingDataRequest
1387 {
1388 #[inline(always)]
1389 fn new_empty() -> Self {
1390 Self {
1391 handle: fidl::new_empty!(HandleId, D),
1392 channel_sent: fidl::new_empty!(ChannelSent, D),
1393 }
1394 }
1395
1396 #[inline]
1397 unsafe fn decode(
1398 &mut self,
1399 decoder: &mut fidl::encoding::Decoder<'_, D>,
1400 offset: usize,
1401 _depth: fidl::encoding::Depth,
1402 ) -> fidl::Result<()> {
1403 decoder.debug_check_bounds::<Self>(offset);
1404 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(0) };
1406 let padval = unsafe { (ptr as *const u64).read_unaligned() };
1407 let mask = 0xffffffff00000000u64;
1408 let maskedval = padval & mask;
1409 if maskedval != 0 {
1410 return Err(fidl::Error::NonZeroPadding {
1411 padding_start: offset + 0 + ((mask as u64).trailing_zeros() / 8) as usize,
1412 });
1413 }
1414 fidl::decode!(HandleId, D, &mut self.handle, decoder, offset + 0, _depth)?;
1415 fidl::decode!(ChannelSent, D, &mut self.channel_sent, decoder, offset + 8, _depth)?;
1416 Ok(())
1417 }
1418 }
1419
1420 impl fidl::encoding::ValueTypeMarker for ChannelReadChannelRequest {
1421 type Borrowed<'a> = &'a Self;
1422 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1423 value
1424 }
1425 }
1426
1427 unsafe impl fidl::encoding::TypeMarker for ChannelReadChannelRequest {
1428 type Owned = Self;
1429
1430 #[inline(always)]
1431 fn inline_align(_context: fidl::encoding::Context) -> usize {
1432 4
1433 }
1434
1435 #[inline(always)]
1436 fn inline_size(_context: fidl::encoding::Context) -> usize {
1437 4
1438 }
1439 #[inline(always)]
1440 fn encode_is_copy() -> bool {
1441 true
1442 }
1443
1444 #[inline(always)]
1445 fn decode_is_copy() -> bool {
1446 true
1447 }
1448 }
1449
1450 unsafe impl<D: fidl::encoding::ResourceDialect>
1451 fidl::encoding::Encode<ChannelReadChannelRequest, D> for &ChannelReadChannelRequest
1452 {
1453 #[inline]
1454 unsafe fn encode(
1455 self,
1456 encoder: &mut fidl::encoding::Encoder<'_, D>,
1457 offset: usize,
1458 _depth: fidl::encoding::Depth,
1459 ) -> fidl::Result<()> {
1460 encoder.debug_check_bounds::<ChannelReadChannelRequest>(offset);
1461 unsafe {
1462 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
1464 (buf_ptr as *mut ChannelReadChannelRequest)
1465 .write_unaligned((self as *const ChannelReadChannelRequest).read());
1466 }
1469 Ok(())
1470 }
1471 }
1472 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<HandleId, D>>
1473 fidl::encoding::Encode<ChannelReadChannelRequest, D> for (T0,)
1474 {
1475 #[inline]
1476 unsafe fn encode(
1477 self,
1478 encoder: &mut fidl::encoding::Encoder<'_, D>,
1479 offset: usize,
1480 depth: fidl::encoding::Depth,
1481 ) -> fidl::Result<()> {
1482 encoder.debug_check_bounds::<ChannelReadChannelRequest>(offset);
1483 self.0.encode(encoder, offset + 0, depth)?;
1487 Ok(())
1488 }
1489 }
1490
1491 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1492 for ChannelReadChannelRequest
1493 {
1494 #[inline(always)]
1495 fn new_empty() -> Self {
1496 Self { handle: fidl::new_empty!(HandleId, D) }
1497 }
1498
1499 #[inline]
1500 unsafe fn decode(
1501 &mut self,
1502 decoder: &mut fidl::encoding::Decoder<'_, D>,
1503 offset: usize,
1504 _depth: fidl::encoding::Depth,
1505 ) -> fidl::Result<()> {
1506 decoder.debug_check_bounds::<Self>(offset);
1507 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
1508 unsafe {
1511 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 4);
1512 }
1513 Ok(())
1514 }
1515 }
1516
1517 impl fidl::encoding::ValueTypeMarker for ChannelReadChannelStreamingStartRequest {
1518 type Borrowed<'a> = &'a Self;
1519 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1520 value
1521 }
1522 }
1523
1524 unsafe impl fidl::encoding::TypeMarker for ChannelReadChannelStreamingStartRequest {
1525 type Owned = Self;
1526
1527 #[inline(always)]
1528 fn inline_align(_context: fidl::encoding::Context) -> usize {
1529 4
1530 }
1531
1532 #[inline(always)]
1533 fn inline_size(_context: fidl::encoding::Context) -> usize {
1534 4
1535 }
1536 #[inline(always)]
1537 fn encode_is_copy() -> bool {
1538 true
1539 }
1540
1541 #[inline(always)]
1542 fn decode_is_copy() -> bool {
1543 true
1544 }
1545 }
1546
1547 unsafe impl<D: fidl::encoding::ResourceDialect>
1548 fidl::encoding::Encode<ChannelReadChannelStreamingStartRequest, D>
1549 for &ChannelReadChannelStreamingStartRequest
1550 {
1551 #[inline]
1552 unsafe fn encode(
1553 self,
1554 encoder: &mut fidl::encoding::Encoder<'_, D>,
1555 offset: usize,
1556 _depth: fidl::encoding::Depth,
1557 ) -> fidl::Result<()> {
1558 encoder.debug_check_bounds::<ChannelReadChannelStreamingStartRequest>(offset);
1559 unsafe {
1560 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
1562 (buf_ptr as *mut ChannelReadChannelStreamingStartRequest).write_unaligned(
1563 (self as *const ChannelReadChannelStreamingStartRequest).read(),
1564 );
1565 }
1568 Ok(())
1569 }
1570 }
1571 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<HandleId, D>>
1572 fidl::encoding::Encode<ChannelReadChannelStreamingStartRequest, D> for (T0,)
1573 {
1574 #[inline]
1575 unsafe fn encode(
1576 self,
1577 encoder: &mut fidl::encoding::Encoder<'_, D>,
1578 offset: usize,
1579 depth: fidl::encoding::Depth,
1580 ) -> fidl::Result<()> {
1581 encoder.debug_check_bounds::<ChannelReadChannelStreamingStartRequest>(offset);
1582 self.0.encode(encoder, offset + 0, depth)?;
1586 Ok(())
1587 }
1588 }
1589
1590 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1591 for ChannelReadChannelStreamingStartRequest
1592 {
1593 #[inline(always)]
1594 fn new_empty() -> Self {
1595 Self { handle: fidl::new_empty!(HandleId, D) }
1596 }
1597
1598 #[inline]
1599 unsafe fn decode(
1600 &mut self,
1601 decoder: &mut fidl::encoding::Decoder<'_, D>,
1602 offset: usize,
1603 _depth: fidl::encoding::Depth,
1604 ) -> fidl::Result<()> {
1605 decoder.debug_check_bounds::<Self>(offset);
1606 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
1607 unsafe {
1610 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 4);
1611 }
1612 Ok(())
1613 }
1614 }
1615
1616 impl fidl::encoding::ValueTypeMarker for ChannelReadChannelStreamingStopRequest {
1617 type Borrowed<'a> = &'a Self;
1618 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1619 value
1620 }
1621 }
1622
1623 unsafe impl fidl::encoding::TypeMarker for ChannelReadChannelStreamingStopRequest {
1624 type Owned = Self;
1625
1626 #[inline(always)]
1627 fn inline_align(_context: fidl::encoding::Context) -> usize {
1628 4
1629 }
1630
1631 #[inline(always)]
1632 fn inline_size(_context: fidl::encoding::Context) -> usize {
1633 4
1634 }
1635 #[inline(always)]
1636 fn encode_is_copy() -> bool {
1637 true
1638 }
1639
1640 #[inline(always)]
1641 fn decode_is_copy() -> bool {
1642 true
1643 }
1644 }
1645
1646 unsafe impl<D: fidl::encoding::ResourceDialect>
1647 fidl::encoding::Encode<ChannelReadChannelStreamingStopRequest, D>
1648 for &ChannelReadChannelStreamingStopRequest
1649 {
1650 #[inline]
1651 unsafe fn encode(
1652 self,
1653 encoder: &mut fidl::encoding::Encoder<'_, D>,
1654 offset: usize,
1655 _depth: fidl::encoding::Depth,
1656 ) -> fidl::Result<()> {
1657 encoder.debug_check_bounds::<ChannelReadChannelStreamingStopRequest>(offset);
1658 unsafe {
1659 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
1661 (buf_ptr as *mut ChannelReadChannelStreamingStopRequest).write_unaligned(
1662 (self as *const ChannelReadChannelStreamingStopRequest).read(),
1663 );
1664 }
1667 Ok(())
1668 }
1669 }
1670 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<HandleId, D>>
1671 fidl::encoding::Encode<ChannelReadChannelStreamingStopRequest, D> for (T0,)
1672 {
1673 #[inline]
1674 unsafe fn encode(
1675 self,
1676 encoder: &mut fidl::encoding::Encoder<'_, D>,
1677 offset: usize,
1678 depth: fidl::encoding::Depth,
1679 ) -> fidl::Result<()> {
1680 encoder.debug_check_bounds::<ChannelReadChannelStreamingStopRequest>(offset);
1681 self.0.encode(encoder, offset + 0, depth)?;
1685 Ok(())
1686 }
1687 }
1688
1689 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1690 for ChannelReadChannelStreamingStopRequest
1691 {
1692 #[inline(always)]
1693 fn new_empty() -> Self {
1694 Self { handle: fidl::new_empty!(HandleId, D) }
1695 }
1696
1697 #[inline]
1698 unsafe fn decode(
1699 &mut self,
1700 decoder: &mut fidl::encoding::Decoder<'_, D>,
1701 offset: usize,
1702 _depth: fidl::encoding::Depth,
1703 ) -> fidl::Result<()> {
1704 decoder.debug_check_bounds::<Self>(offset);
1705 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
1706 unsafe {
1709 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 4);
1710 }
1711 Ok(())
1712 }
1713 }
1714
1715 impl fidl::encoding::ValueTypeMarker for ChannelWriteChannelRequest {
1716 type Borrowed<'a> = &'a Self;
1717 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1718 value
1719 }
1720 }
1721
1722 unsafe impl fidl::encoding::TypeMarker for ChannelWriteChannelRequest {
1723 type Owned = Self;
1724
1725 #[inline(always)]
1726 fn inline_align(_context: fidl::encoding::Context) -> usize {
1727 8
1728 }
1729
1730 #[inline(always)]
1731 fn inline_size(_context: fidl::encoding::Context) -> usize {
1732 40
1733 }
1734 }
1735
1736 unsafe impl<D: fidl::encoding::ResourceDialect>
1737 fidl::encoding::Encode<ChannelWriteChannelRequest, D> for &ChannelWriteChannelRequest
1738 {
1739 #[inline]
1740 unsafe fn encode(
1741 self,
1742 encoder: &mut fidl::encoding::Encoder<'_, D>,
1743 offset: usize,
1744 _depth: fidl::encoding::Depth,
1745 ) -> fidl::Result<()> {
1746 encoder.debug_check_bounds::<ChannelWriteChannelRequest>(offset);
1747 fidl::encoding::Encode::<ChannelWriteChannelRequest, D>::encode(
1749 (
1750 <HandleId as fidl::encoding::ValueTypeMarker>::borrow(&self.handle),
1751 <fidl::encoding::Vector<u8, 65536> as fidl::encoding::ValueTypeMarker>::borrow(
1752 &self.data,
1753 ),
1754 <Handles as fidl::encoding::ValueTypeMarker>::borrow(&self.handles),
1755 ),
1756 encoder,
1757 offset,
1758 _depth,
1759 )
1760 }
1761 }
1762 unsafe impl<
1763 D: fidl::encoding::ResourceDialect,
1764 T0: fidl::encoding::Encode<HandleId, D>,
1765 T1: fidl::encoding::Encode<fidl::encoding::Vector<u8, 65536>, D>,
1766 T2: fidl::encoding::Encode<Handles, D>,
1767 > fidl::encoding::Encode<ChannelWriteChannelRequest, D> for (T0, T1, T2)
1768 {
1769 #[inline]
1770 unsafe fn encode(
1771 self,
1772 encoder: &mut fidl::encoding::Encoder<'_, D>,
1773 offset: usize,
1774 depth: fidl::encoding::Depth,
1775 ) -> fidl::Result<()> {
1776 encoder.debug_check_bounds::<ChannelWriteChannelRequest>(offset);
1777 unsafe {
1780 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(0);
1781 (ptr as *mut u64).write_unaligned(0);
1782 }
1783 self.0.encode(encoder, offset + 0, depth)?;
1785 self.1.encode(encoder, offset + 8, depth)?;
1786 self.2.encode(encoder, offset + 24, depth)?;
1787 Ok(())
1788 }
1789 }
1790
1791 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1792 for ChannelWriteChannelRequest
1793 {
1794 #[inline(always)]
1795 fn new_empty() -> Self {
1796 Self {
1797 handle: fidl::new_empty!(HandleId, D),
1798 data: fidl::new_empty!(fidl::encoding::Vector<u8, 65536>, D),
1799 handles: fidl::new_empty!(Handles, D),
1800 }
1801 }
1802
1803 #[inline]
1804 unsafe fn decode(
1805 &mut self,
1806 decoder: &mut fidl::encoding::Decoder<'_, D>,
1807 offset: usize,
1808 _depth: fidl::encoding::Depth,
1809 ) -> fidl::Result<()> {
1810 decoder.debug_check_bounds::<Self>(offset);
1811 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(0) };
1813 let padval = unsafe { (ptr as *const u64).read_unaligned() };
1814 let mask = 0xffffffff00000000u64;
1815 let maskedval = padval & mask;
1816 if maskedval != 0 {
1817 return Err(fidl::Error::NonZeroPadding {
1818 padding_start: offset + 0 + ((mask as u64).trailing_zeros() / 8) as usize,
1819 });
1820 }
1821 fidl::decode!(HandleId, D, &mut self.handle, decoder, offset + 0, _depth)?;
1822 fidl::decode!(fidl::encoding::Vector<u8, 65536>, D, &mut self.data, decoder, offset + 8, _depth)?;
1823 fidl::decode!(Handles, D, &mut self.handles, decoder, offset + 24, _depth)?;
1824 Ok(())
1825 }
1826 }
1827
1828 impl fidl::encoding::ValueTypeMarker for ClosedDuringRead {
1829 type Borrowed<'a> = &'a Self;
1830 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1831 value
1832 }
1833 }
1834
1835 unsafe impl fidl::encoding::TypeMarker for ClosedDuringRead {
1836 type Owned = Self;
1837
1838 #[inline(always)]
1839 fn inline_align(_context: fidl::encoding::Context) -> usize {
1840 1
1841 }
1842
1843 #[inline(always)]
1844 fn inline_size(_context: fidl::encoding::Context) -> usize {
1845 1
1846 }
1847 }
1848
1849 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ClosedDuringRead, D>
1850 for &ClosedDuringRead
1851 {
1852 #[inline]
1853 unsafe fn encode(
1854 self,
1855 encoder: &mut fidl::encoding::Encoder<'_, D>,
1856 offset: usize,
1857 _depth: fidl::encoding::Depth,
1858 ) -> fidl::Result<()> {
1859 encoder.debug_check_bounds::<ClosedDuringRead>(offset);
1860 encoder.write_num(0u8, offset);
1861 Ok(())
1862 }
1863 }
1864
1865 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ClosedDuringRead {
1866 #[inline(always)]
1867 fn new_empty() -> Self {
1868 Self
1869 }
1870
1871 #[inline]
1872 unsafe fn decode(
1873 &mut self,
1874 decoder: &mut fidl::encoding::Decoder<'_, D>,
1875 offset: usize,
1876 _depth: fidl::encoding::Depth,
1877 ) -> fidl::Result<()> {
1878 decoder.debug_check_bounds::<Self>(offset);
1879 match decoder.read_num::<u8>(offset) {
1880 0 => Ok(()),
1881 _ => Err(fidl::Error::Invalid),
1882 }
1883 }
1884 }
1885
1886 impl fidl::encoding::ValueTypeMarker for EventCreateEventRequest {
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 EventCreateEventRequest {
1894 type Owned = Self;
1895
1896 #[inline(always)]
1897 fn inline_align(_context: fidl::encoding::Context) -> usize {
1898 4
1899 }
1900
1901 #[inline(always)]
1902 fn inline_size(_context: fidl::encoding::Context) -> usize {
1903 4
1904 }
1905 #[inline(always)]
1906 fn encode_is_copy() -> bool {
1907 true
1908 }
1909
1910 #[inline(always)]
1911 fn decode_is_copy() -> bool {
1912 true
1913 }
1914 }
1915
1916 unsafe impl<D: fidl::encoding::ResourceDialect>
1917 fidl::encoding::Encode<EventCreateEventRequest, D> for &EventCreateEventRequest
1918 {
1919 #[inline]
1920 unsafe fn encode(
1921 self,
1922 encoder: &mut fidl::encoding::Encoder<'_, D>,
1923 offset: usize,
1924 _depth: fidl::encoding::Depth,
1925 ) -> fidl::Result<()> {
1926 encoder.debug_check_bounds::<EventCreateEventRequest>(offset);
1927 unsafe {
1928 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
1930 (buf_ptr as *mut EventCreateEventRequest)
1931 .write_unaligned((self as *const EventCreateEventRequest).read());
1932 }
1935 Ok(())
1936 }
1937 }
1938 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<NewHandleId, D>>
1939 fidl::encoding::Encode<EventCreateEventRequest, D> for (T0,)
1940 {
1941 #[inline]
1942 unsafe fn encode(
1943 self,
1944 encoder: &mut fidl::encoding::Encoder<'_, D>,
1945 offset: usize,
1946 depth: fidl::encoding::Depth,
1947 ) -> fidl::Result<()> {
1948 encoder.debug_check_bounds::<EventCreateEventRequest>(offset);
1949 self.0.encode(encoder, offset + 0, depth)?;
1953 Ok(())
1954 }
1955 }
1956
1957 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1958 for EventCreateEventRequest
1959 {
1960 #[inline(always)]
1961 fn new_empty() -> Self {
1962 Self { handle: fidl::new_empty!(NewHandleId, D) }
1963 }
1964
1965 #[inline]
1966 unsafe fn decode(
1967 &mut self,
1968 decoder: &mut fidl::encoding::Decoder<'_, D>,
1969 offset: usize,
1970 _depth: fidl::encoding::Depth,
1971 ) -> fidl::Result<()> {
1972 decoder.debug_check_bounds::<Self>(offset);
1973 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
1974 unsafe {
1977 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 4);
1978 }
1979 Ok(())
1980 }
1981 }
1982
1983 impl fidl::encoding::ValueTypeMarker for EventPairCreateEventPairRequest {
1984 type Borrowed<'a> = &'a Self;
1985 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1986 value
1987 }
1988 }
1989
1990 unsafe impl fidl::encoding::TypeMarker for EventPairCreateEventPairRequest {
1991 type Owned = Self;
1992
1993 #[inline(always)]
1994 fn inline_align(_context: fidl::encoding::Context) -> usize {
1995 4
1996 }
1997
1998 #[inline(always)]
1999 fn inline_size(_context: fidl::encoding::Context) -> usize {
2000 8
2001 }
2002 #[inline(always)]
2003 fn encode_is_copy() -> bool {
2004 true
2005 }
2006
2007 #[inline(always)]
2008 fn decode_is_copy() -> bool {
2009 true
2010 }
2011 }
2012
2013 unsafe impl<D: fidl::encoding::ResourceDialect>
2014 fidl::encoding::Encode<EventPairCreateEventPairRequest, D>
2015 for &EventPairCreateEventPairRequest
2016 {
2017 #[inline]
2018 unsafe fn encode(
2019 self,
2020 encoder: &mut fidl::encoding::Encoder<'_, D>,
2021 offset: usize,
2022 _depth: fidl::encoding::Depth,
2023 ) -> fidl::Result<()> {
2024 encoder.debug_check_bounds::<EventPairCreateEventPairRequest>(offset);
2025 unsafe {
2026 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
2028 (buf_ptr as *mut EventPairCreateEventPairRequest)
2029 .write_unaligned((self as *const EventPairCreateEventPairRequest).read());
2030 }
2033 Ok(())
2034 }
2035 }
2036 unsafe impl<
2037 D: fidl::encoding::ResourceDialect,
2038 T0: fidl::encoding::Encode<fidl::encoding::Array<NewHandleId, 2>, D>,
2039 > fidl::encoding::Encode<EventPairCreateEventPairRequest, D> for (T0,)
2040 {
2041 #[inline]
2042 unsafe fn encode(
2043 self,
2044 encoder: &mut fidl::encoding::Encoder<'_, D>,
2045 offset: usize,
2046 depth: fidl::encoding::Depth,
2047 ) -> fidl::Result<()> {
2048 encoder.debug_check_bounds::<EventPairCreateEventPairRequest>(offset);
2049 self.0.encode(encoder, offset + 0, depth)?;
2053 Ok(())
2054 }
2055 }
2056
2057 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2058 for EventPairCreateEventPairRequest
2059 {
2060 #[inline(always)]
2061 fn new_empty() -> Self {
2062 Self { handles: fidl::new_empty!(fidl::encoding::Array<NewHandleId, 2>, D) }
2063 }
2064
2065 #[inline]
2066 unsafe fn decode(
2067 &mut self,
2068 decoder: &mut fidl::encoding::Decoder<'_, D>,
2069 offset: usize,
2070 _depth: fidl::encoding::Depth,
2071 ) -> fidl::Result<()> {
2072 decoder.debug_check_bounds::<Self>(offset);
2073 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
2074 unsafe {
2077 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 8);
2078 }
2079 Ok(())
2080 }
2081 }
2082
2083 impl fidl::encoding::ValueTypeMarker for FDomainCloseRequest {
2084 type Borrowed<'a> = &'a Self;
2085 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2086 value
2087 }
2088 }
2089
2090 unsafe impl fidl::encoding::TypeMarker for FDomainCloseRequest {
2091 type Owned = Self;
2092
2093 #[inline(always)]
2094 fn inline_align(_context: fidl::encoding::Context) -> usize {
2095 8
2096 }
2097
2098 #[inline(always)]
2099 fn inline_size(_context: fidl::encoding::Context) -> usize {
2100 16
2101 }
2102 }
2103
2104 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<FDomainCloseRequest, D>
2105 for &FDomainCloseRequest
2106 {
2107 #[inline]
2108 unsafe fn encode(
2109 self,
2110 encoder: &mut fidl::encoding::Encoder<'_, D>,
2111 offset: usize,
2112 _depth: fidl::encoding::Depth,
2113 ) -> fidl::Result<()> {
2114 encoder.debug_check_bounds::<FDomainCloseRequest>(offset);
2115 fidl::encoding::Encode::<FDomainCloseRequest, D>::encode(
2117 (
2118 <fidl::encoding::UnboundedVector<HandleId> as fidl::encoding::ValueTypeMarker>::borrow(&self.handles),
2119 ),
2120 encoder, offset, _depth
2121 )
2122 }
2123 }
2124 unsafe impl<
2125 D: fidl::encoding::ResourceDialect,
2126 T0: fidl::encoding::Encode<fidl::encoding::UnboundedVector<HandleId>, D>,
2127 > fidl::encoding::Encode<FDomainCloseRequest, D> for (T0,)
2128 {
2129 #[inline]
2130 unsafe fn encode(
2131 self,
2132 encoder: &mut fidl::encoding::Encoder<'_, D>,
2133 offset: usize,
2134 depth: fidl::encoding::Depth,
2135 ) -> fidl::Result<()> {
2136 encoder.debug_check_bounds::<FDomainCloseRequest>(offset);
2137 self.0.encode(encoder, offset + 0, depth)?;
2141 Ok(())
2142 }
2143 }
2144
2145 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for FDomainCloseRequest {
2146 #[inline(always)]
2147 fn new_empty() -> Self {
2148 Self { handles: fidl::new_empty!(fidl::encoding::UnboundedVector<HandleId>, D) }
2149 }
2150
2151 #[inline]
2152 unsafe fn decode(
2153 &mut self,
2154 decoder: &mut fidl::encoding::Decoder<'_, D>,
2155 offset: usize,
2156 _depth: fidl::encoding::Depth,
2157 ) -> fidl::Result<()> {
2158 decoder.debug_check_bounds::<Self>(offset);
2159 fidl::decode!(
2161 fidl::encoding::UnboundedVector<HandleId>,
2162 D,
2163 &mut self.handles,
2164 decoder,
2165 offset + 0,
2166 _depth
2167 )?;
2168 Ok(())
2169 }
2170 }
2171
2172 impl fidl::encoding::ValueTypeMarker for FDomainDuplicateRequest {
2173 type Borrowed<'a> = &'a Self;
2174 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2175 value
2176 }
2177 }
2178
2179 unsafe impl fidl::encoding::TypeMarker for FDomainDuplicateRequest {
2180 type Owned = Self;
2181
2182 #[inline(always)]
2183 fn inline_align(_context: fidl::encoding::Context) -> usize {
2184 4
2185 }
2186
2187 #[inline(always)]
2188 fn inline_size(_context: fidl::encoding::Context) -> usize {
2189 12
2190 }
2191 }
2192
2193 unsafe impl<D: fidl::encoding::ResourceDialect>
2194 fidl::encoding::Encode<FDomainDuplicateRequest, D> for &FDomainDuplicateRequest
2195 {
2196 #[inline]
2197 unsafe fn encode(
2198 self,
2199 encoder: &mut fidl::encoding::Encoder<'_, D>,
2200 offset: usize,
2201 _depth: fidl::encoding::Depth,
2202 ) -> fidl::Result<()> {
2203 encoder.debug_check_bounds::<FDomainDuplicateRequest>(offset);
2204 fidl::encoding::Encode::<FDomainDuplicateRequest, D>::encode(
2206 (
2207 <HandleId as fidl::encoding::ValueTypeMarker>::borrow(&self.handle),
2208 <NewHandleId as fidl::encoding::ValueTypeMarker>::borrow(&self.new_handle),
2209 <fidl::Rights as fidl::encoding::ValueTypeMarker>::borrow(&self.rights),
2210 ),
2211 encoder,
2212 offset,
2213 _depth,
2214 )
2215 }
2216 }
2217 unsafe impl<
2218 D: fidl::encoding::ResourceDialect,
2219 T0: fidl::encoding::Encode<HandleId, D>,
2220 T1: fidl::encoding::Encode<NewHandleId, D>,
2221 T2: fidl::encoding::Encode<fidl::Rights, D>,
2222 > fidl::encoding::Encode<FDomainDuplicateRequest, D> for (T0, T1, T2)
2223 {
2224 #[inline]
2225 unsafe fn encode(
2226 self,
2227 encoder: &mut fidl::encoding::Encoder<'_, D>,
2228 offset: usize,
2229 depth: fidl::encoding::Depth,
2230 ) -> fidl::Result<()> {
2231 encoder.debug_check_bounds::<FDomainDuplicateRequest>(offset);
2232 self.0.encode(encoder, offset + 0, depth)?;
2236 self.1.encode(encoder, offset + 4, depth)?;
2237 self.2.encode(encoder, offset + 8, depth)?;
2238 Ok(())
2239 }
2240 }
2241
2242 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2243 for FDomainDuplicateRequest
2244 {
2245 #[inline(always)]
2246 fn new_empty() -> Self {
2247 Self {
2248 handle: fidl::new_empty!(HandleId, D),
2249 new_handle: fidl::new_empty!(NewHandleId, D),
2250 rights: fidl::new_empty!(fidl::Rights, D),
2251 }
2252 }
2253
2254 #[inline]
2255 unsafe fn decode(
2256 &mut self,
2257 decoder: &mut fidl::encoding::Decoder<'_, D>,
2258 offset: usize,
2259 _depth: fidl::encoding::Depth,
2260 ) -> fidl::Result<()> {
2261 decoder.debug_check_bounds::<Self>(offset);
2262 fidl::decode!(HandleId, D, &mut self.handle, decoder, offset + 0, _depth)?;
2264 fidl::decode!(NewHandleId, D, &mut self.new_handle, decoder, offset + 4, _depth)?;
2265 fidl::decode!(fidl::Rights, D, &mut self.rights, decoder, offset + 8, _depth)?;
2266 Ok(())
2267 }
2268 }
2269
2270 impl fidl::encoding::ValueTypeMarker for FDomainGetKoidRequest {
2271 type Borrowed<'a> = &'a Self;
2272 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2273 value
2274 }
2275 }
2276
2277 unsafe impl fidl::encoding::TypeMarker for FDomainGetKoidRequest {
2278 type Owned = Self;
2279
2280 #[inline(always)]
2281 fn inline_align(_context: fidl::encoding::Context) -> usize {
2282 4
2283 }
2284
2285 #[inline(always)]
2286 fn inline_size(_context: fidl::encoding::Context) -> usize {
2287 4
2288 }
2289 #[inline(always)]
2290 fn encode_is_copy() -> bool {
2291 true
2292 }
2293
2294 #[inline(always)]
2295 fn decode_is_copy() -> bool {
2296 true
2297 }
2298 }
2299
2300 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<FDomainGetKoidRequest, D>
2301 for &FDomainGetKoidRequest
2302 {
2303 #[inline]
2304 unsafe fn encode(
2305 self,
2306 encoder: &mut fidl::encoding::Encoder<'_, D>,
2307 offset: usize,
2308 _depth: fidl::encoding::Depth,
2309 ) -> fidl::Result<()> {
2310 encoder.debug_check_bounds::<FDomainGetKoidRequest>(offset);
2311 unsafe {
2312 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
2314 (buf_ptr as *mut FDomainGetKoidRequest)
2315 .write_unaligned((self as *const FDomainGetKoidRequest).read());
2316 }
2319 Ok(())
2320 }
2321 }
2322 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<HandleId, D>>
2323 fidl::encoding::Encode<FDomainGetKoidRequest, D> for (T0,)
2324 {
2325 #[inline]
2326 unsafe fn encode(
2327 self,
2328 encoder: &mut fidl::encoding::Encoder<'_, D>,
2329 offset: usize,
2330 depth: fidl::encoding::Depth,
2331 ) -> fidl::Result<()> {
2332 encoder.debug_check_bounds::<FDomainGetKoidRequest>(offset);
2333 self.0.encode(encoder, offset + 0, depth)?;
2337 Ok(())
2338 }
2339 }
2340
2341 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for FDomainGetKoidRequest {
2342 #[inline(always)]
2343 fn new_empty() -> Self {
2344 Self { handle: fidl::new_empty!(HandleId, D) }
2345 }
2346
2347 #[inline]
2348 unsafe fn decode(
2349 &mut self,
2350 decoder: &mut fidl::encoding::Decoder<'_, D>,
2351 offset: usize,
2352 _depth: fidl::encoding::Depth,
2353 ) -> fidl::Result<()> {
2354 decoder.debug_check_bounds::<Self>(offset);
2355 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
2356 unsafe {
2359 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 4);
2360 }
2361 Ok(())
2362 }
2363 }
2364
2365 impl fidl::encoding::ValueTypeMarker for FDomainGetNamespaceRequest {
2366 type Borrowed<'a> = &'a Self;
2367 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2368 value
2369 }
2370 }
2371
2372 unsafe impl fidl::encoding::TypeMarker for FDomainGetNamespaceRequest {
2373 type Owned = Self;
2374
2375 #[inline(always)]
2376 fn inline_align(_context: fidl::encoding::Context) -> usize {
2377 4
2378 }
2379
2380 #[inline(always)]
2381 fn inline_size(_context: fidl::encoding::Context) -> usize {
2382 4
2383 }
2384 #[inline(always)]
2385 fn encode_is_copy() -> bool {
2386 true
2387 }
2388
2389 #[inline(always)]
2390 fn decode_is_copy() -> bool {
2391 true
2392 }
2393 }
2394
2395 unsafe impl<D: fidl::encoding::ResourceDialect>
2396 fidl::encoding::Encode<FDomainGetNamespaceRequest, D> for &FDomainGetNamespaceRequest
2397 {
2398 #[inline]
2399 unsafe fn encode(
2400 self,
2401 encoder: &mut fidl::encoding::Encoder<'_, D>,
2402 offset: usize,
2403 _depth: fidl::encoding::Depth,
2404 ) -> fidl::Result<()> {
2405 encoder.debug_check_bounds::<FDomainGetNamespaceRequest>(offset);
2406 unsafe {
2407 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
2409 (buf_ptr as *mut FDomainGetNamespaceRequest)
2410 .write_unaligned((self as *const FDomainGetNamespaceRequest).read());
2411 }
2414 Ok(())
2415 }
2416 }
2417 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<NewHandleId, D>>
2418 fidl::encoding::Encode<FDomainGetNamespaceRequest, D> for (T0,)
2419 {
2420 #[inline]
2421 unsafe fn encode(
2422 self,
2423 encoder: &mut fidl::encoding::Encoder<'_, D>,
2424 offset: usize,
2425 depth: fidl::encoding::Depth,
2426 ) -> fidl::Result<()> {
2427 encoder.debug_check_bounds::<FDomainGetNamespaceRequest>(offset);
2428 self.0.encode(encoder, offset + 0, depth)?;
2432 Ok(())
2433 }
2434 }
2435
2436 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2437 for FDomainGetNamespaceRequest
2438 {
2439 #[inline(always)]
2440 fn new_empty() -> Self {
2441 Self { new_handle: fidl::new_empty!(NewHandleId, D) }
2442 }
2443
2444 #[inline]
2445 unsafe fn decode(
2446 &mut self,
2447 decoder: &mut fidl::encoding::Decoder<'_, D>,
2448 offset: usize,
2449 _depth: fidl::encoding::Depth,
2450 ) -> fidl::Result<()> {
2451 decoder.debug_check_bounds::<Self>(offset);
2452 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
2453 unsafe {
2456 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 4);
2457 }
2458 Ok(())
2459 }
2460 }
2461
2462 impl fidl::encoding::ValueTypeMarker for FDomainReplaceRequest {
2463 type Borrowed<'a> = &'a Self;
2464 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2465 value
2466 }
2467 }
2468
2469 unsafe impl fidl::encoding::TypeMarker for FDomainReplaceRequest {
2470 type Owned = Self;
2471
2472 #[inline(always)]
2473 fn inline_align(_context: fidl::encoding::Context) -> usize {
2474 4
2475 }
2476
2477 #[inline(always)]
2478 fn inline_size(_context: fidl::encoding::Context) -> usize {
2479 12
2480 }
2481 }
2482
2483 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<FDomainReplaceRequest, D>
2484 for &FDomainReplaceRequest
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::<FDomainReplaceRequest>(offset);
2494 fidl::encoding::Encode::<FDomainReplaceRequest, D>::encode(
2496 (
2497 <HandleId as fidl::encoding::ValueTypeMarker>::borrow(&self.handle),
2498 <NewHandleId as fidl::encoding::ValueTypeMarker>::borrow(&self.new_handle),
2499 <fidl::Rights as fidl::encoding::ValueTypeMarker>::borrow(&self.rights),
2500 ),
2501 encoder,
2502 offset,
2503 _depth,
2504 )
2505 }
2506 }
2507 unsafe impl<
2508 D: fidl::encoding::ResourceDialect,
2509 T0: fidl::encoding::Encode<HandleId, D>,
2510 T1: fidl::encoding::Encode<NewHandleId, D>,
2511 T2: fidl::encoding::Encode<fidl::Rights, D>,
2512 > fidl::encoding::Encode<FDomainReplaceRequest, D> for (T0, T1, T2)
2513 {
2514 #[inline]
2515 unsafe fn encode(
2516 self,
2517 encoder: &mut fidl::encoding::Encoder<'_, D>,
2518 offset: usize,
2519 depth: fidl::encoding::Depth,
2520 ) -> fidl::Result<()> {
2521 encoder.debug_check_bounds::<FDomainReplaceRequest>(offset);
2522 self.0.encode(encoder, offset + 0, depth)?;
2526 self.1.encode(encoder, offset + 4, depth)?;
2527 self.2.encode(encoder, offset + 8, depth)?;
2528 Ok(())
2529 }
2530 }
2531
2532 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for FDomainReplaceRequest {
2533 #[inline(always)]
2534 fn new_empty() -> Self {
2535 Self {
2536 handle: fidl::new_empty!(HandleId, D),
2537 new_handle: fidl::new_empty!(NewHandleId, D),
2538 rights: fidl::new_empty!(fidl::Rights, D),
2539 }
2540 }
2541
2542 #[inline]
2543 unsafe fn decode(
2544 &mut self,
2545 decoder: &mut fidl::encoding::Decoder<'_, D>,
2546 offset: usize,
2547 _depth: fidl::encoding::Depth,
2548 ) -> fidl::Result<()> {
2549 decoder.debug_check_bounds::<Self>(offset);
2550 fidl::decode!(HandleId, D, &mut self.handle, decoder, offset + 0, _depth)?;
2552 fidl::decode!(NewHandleId, D, &mut self.new_handle, decoder, offset + 4, _depth)?;
2553 fidl::decode!(fidl::Rights, D, &mut self.rights, decoder, offset + 8, _depth)?;
2554 Ok(())
2555 }
2556 }
2557
2558 impl fidl::encoding::ValueTypeMarker for FDomainSignalPeerRequest {
2559 type Borrowed<'a> = &'a Self;
2560 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2561 value
2562 }
2563 }
2564
2565 unsafe impl fidl::encoding::TypeMarker for FDomainSignalPeerRequest {
2566 type Owned = Self;
2567
2568 #[inline(always)]
2569 fn inline_align(_context: fidl::encoding::Context) -> usize {
2570 4
2571 }
2572
2573 #[inline(always)]
2574 fn inline_size(_context: fidl::encoding::Context) -> usize {
2575 12
2576 }
2577 #[inline(always)]
2578 fn encode_is_copy() -> bool {
2579 true
2580 }
2581
2582 #[inline(always)]
2583 fn decode_is_copy() -> bool {
2584 true
2585 }
2586 }
2587
2588 unsafe impl<D: fidl::encoding::ResourceDialect>
2589 fidl::encoding::Encode<FDomainSignalPeerRequest, D> for &FDomainSignalPeerRequest
2590 {
2591 #[inline]
2592 unsafe fn encode(
2593 self,
2594 encoder: &mut fidl::encoding::Encoder<'_, D>,
2595 offset: usize,
2596 _depth: fidl::encoding::Depth,
2597 ) -> fidl::Result<()> {
2598 encoder.debug_check_bounds::<FDomainSignalPeerRequest>(offset);
2599 unsafe {
2600 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
2602 (buf_ptr as *mut FDomainSignalPeerRequest)
2603 .write_unaligned((self as *const FDomainSignalPeerRequest).read());
2604 }
2607 Ok(())
2608 }
2609 }
2610 unsafe impl<
2611 D: fidl::encoding::ResourceDialect,
2612 T0: fidl::encoding::Encode<HandleId, D>,
2613 T1: fidl::encoding::Encode<u32, D>,
2614 T2: fidl::encoding::Encode<u32, D>,
2615 > fidl::encoding::Encode<FDomainSignalPeerRequest, D> for (T0, T1, T2)
2616 {
2617 #[inline]
2618 unsafe fn encode(
2619 self,
2620 encoder: &mut fidl::encoding::Encoder<'_, D>,
2621 offset: usize,
2622 depth: fidl::encoding::Depth,
2623 ) -> fidl::Result<()> {
2624 encoder.debug_check_bounds::<FDomainSignalPeerRequest>(offset);
2625 self.0.encode(encoder, offset + 0, depth)?;
2629 self.1.encode(encoder, offset + 4, depth)?;
2630 self.2.encode(encoder, offset + 8, depth)?;
2631 Ok(())
2632 }
2633 }
2634
2635 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2636 for FDomainSignalPeerRequest
2637 {
2638 #[inline(always)]
2639 fn new_empty() -> Self {
2640 Self {
2641 handle: fidl::new_empty!(HandleId, D),
2642 set: fidl::new_empty!(u32, D),
2643 clear: fidl::new_empty!(u32, D),
2644 }
2645 }
2646
2647 #[inline]
2648 unsafe fn decode(
2649 &mut self,
2650 decoder: &mut fidl::encoding::Decoder<'_, D>,
2651 offset: usize,
2652 _depth: fidl::encoding::Depth,
2653 ) -> fidl::Result<()> {
2654 decoder.debug_check_bounds::<Self>(offset);
2655 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
2656 unsafe {
2659 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 12);
2660 }
2661 Ok(())
2662 }
2663 }
2664
2665 impl fidl::encoding::ValueTypeMarker for FDomainSignalRequest {
2666 type Borrowed<'a> = &'a Self;
2667 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2668 value
2669 }
2670 }
2671
2672 unsafe impl fidl::encoding::TypeMarker for FDomainSignalRequest {
2673 type Owned = Self;
2674
2675 #[inline(always)]
2676 fn inline_align(_context: fidl::encoding::Context) -> usize {
2677 4
2678 }
2679
2680 #[inline(always)]
2681 fn inline_size(_context: fidl::encoding::Context) -> usize {
2682 12
2683 }
2684 #[inline(always)]
2685 fn encode_is_copy() -> bool {
2686 true
2687 }
2688
2689 #[inline(always)]
2690 fn decode_is_copy() -> bool {
2691 true
2692 }
2693 }
2694
2695 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<FDomainSignalRequest, D>
2696 for &FDomainSignalRequest
2697 {
2698 #[inline]
2699 unsafe fn encode(
2700 self,
2701 encoder: &mut fidl::encoding::Encoder<'_, D>,
2702 offset: usize,
2703 _depth: fidl::encoding::Depth,
2704 ) -> fidl::Result<()> {
2705 encoder.debug_check_bounds::<FDomainSignalRequest>(offset);
2706 unsafe {
2707 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
2709 (buf_ptr as *mut FDomainSignalRequest)
2710 .write_unaligned((self as *const FDomainSignalRequest).read());
2711 }
2714 Ok(())
2715 }
2716 }
2717 unsafe impl<
2718 D: fidl::encoding::ResourceDialect,
2719 T0: fidl::encoding::Encode<HandleId, D>,
2720 T1: fidl::encoding::Encode<u32, D>,
2721 T2: fidl::encoding::Encode<u32, D>,
2722 > fidl::encoding::Encode<FDomainSignalRequest, D> for (T0, T1, T2)
2723 {
2724 #[inline]
2725 unsafe fn encode(
2726 self,
2727 encoder: &mut fidl::encoding::Encoder<'_, D>,
2728 offset: usize,
2729 depth: fidl::encoding::Depth,
2730 ) -> fidl::Result<()> {
2731 encoder.debug_check_bounds::<FDomainSignalRequest>(offset);
2732 self.0.encode(encoder, offset + 0, depth)?;
2736 self.1.encode(encoder, offset + 4, depth)?;
2737 self.2.encode(encoder, offset + 8, depth)?;
2738 Ok(())
2739 }
2740 }
2741
2742 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for FDomainSignalRequest {
2743 #[inline(always)]
2744 fn new_empty() -> Self {
2745 Self {
2746 handle: fidl::new_empty!(HandleId, D),
2747 set: fidl::new_empty!(u32, D),
2748 clear: fidl::new_empty!(u32, D),
2749 }
2750 }
2751
2752 #[inline]
2753 unsafe fn decode(
2754 &mut self,
2755 decoder: &mut fidl::encoding::Decoder<'_, D>,
2756 offset: usize,
2757 _depth: fidl::encoding::Depth,
2758 ) -> fidl::Result<()> {
2759 decoder.debug_check_bounds::<Self>(offset);
2760 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
2761 unsafe {
2764 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 12);
2765 }
2766 Ok(())
2767 }
2768 }
2769
2770 impl fidl::encoding::ValueTypeMarker for FDomainWaitForSignalsRequest {
2771 type Borrowed<'a> = &'a Self;
2772 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2773 value
2774 }
2775 }
2776
2777 unsafe impl fidl::encoding::TypeMarker for FDomainWaitForSignalsRequest {
2778 type Owned = Self;
2779
2780 #[inline(always)]
2781 fn inline_align(_context: fidl::encoding::Context) -> usize {
2782 4
2783 }
2784
2785 #[inline(always)]
2786 fn inline_size(_context: fidl::encoding::Context) -> usize {
2787 8
2788 }
2789 #[inline(always)]
2790 fn encode_is_copy() -> bool {
2791 true
2792 }
2793
2794 #[inline(always)]
2795 fn decode_is_copy() -> bool {
2796 true
2797 }
2798 }
2799
2800 unsafe impl<D: fidl::encoding::ResourceDialect>
2801 fidl::encoding::Encode<FDomainWaitForSignalsRequest, D> for &FDomainWaitForSignalsRequest
2802 {
2803 #[inline]
2804 unsafe fn encode(
2805 self,
2806 encoder: &mut fidl::encoding::Encoder<'_, D>,
2807 offset: usize,
2808 _depth: fidl::encoding::Depth,
2809 ) -> fidl::Result<()> {
2810 encoder.debug_check_bounds::<FDomainWaitForSignalsRequest>(offset);
2811 unsafe {
2812 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
2814 (buf_ptr as *mut FDomainWaitForSignalsRequest)
2815 .write_unaligned((self as *const FDomainWaitForSignalsRequest).read());
2816 }
2819 Ok(())
2820 }
2821 }
2822 unsafe impl<
2823 D: fidl::encoding::ResourceDialect,
2824 T0: fidl::encoding::Encode<HandleId, D>,
2825 T1: fidl::encoding::Encode<u32, D>,
2826 > fidl::encoding::Encode<FDomainWaitForSignalsRequest, D> for (T0, T1)
2827 {
2828 #[inline]
2829 unsafe fn encode(
2830 self,
2831 encoder: &mut fidl::encoding::Encoder<'_, D>,
2832 offset: usize,
2833 depth: fidl::encoding::Depth,
2834 ) -> fidl::Result<()> {
2835 encoder.debug_check_bounds::<FDomainWaitForSignalsRequest>(offset);
2836 self.0.encode(encoder, offset + 0, depth)?;
2840 self.1.encode(encoder, offset + 4, depth)?;
2841 Ok(())
2842 }
2843 }
2844
2845 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2846 for FDomainWaitForSignalsRequest
2847 {
2848 #[inline(always)]
2849 fn new_empty() -> Self {
2850 Self { handle: fidl::new_empty!(HandleId, D), signals: fidl::new_empty!(u32, D) }
2851 }
2852
2853 #[inline]
2854 unsafe fn decode(
2855 &mut self,
2856 decoder: &mut fidl::encoding::Decoder<'_, D>,
2857 offset: usize,
2858 _depth: fidl::encoding::Depth,
2859 ) -> fidl::Result<()> {
2860 decoder.debug_check_bounds::<Self>(offset);
2861 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
2862 unsafe {
2865 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 8);
2866 }
2867 Ok(())
2868 }
2869 }
2870
2871 impl fidl::encoding::ValueTypeMarker for FDomainGetKoidResponse {
2872 type Borrowed<'a> = &'a Self;
2873 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2874 value
2875 }
2876 }
2877
2878 unsafe impl fidl::encoding::TypeMarker for FDomainGetKoidResponse {
2879 type Owned = Self;
2880
2881 #[inline(always)]
2882 fn inline_align(_context: fidl::encoding::Context) -> usize {
2883 8
2884 }
2885
2886 #[inline(always)]
2887 fn inline_size(_context: fidl::encoding::Context) -> usize {
2888 8
2889 }
2890 #[inline(always)]
2891 fn encode_is_copy() -> bool {
2892 true
2893 }
2894
2895 #[inline(always)]
2896 fn decode_is_copy() -> bool {
2897 true
2898 }
2899 }
2900
2901 unsafe impl<D: fidl::encoding::ResourceDialect>
2902 fidl::encoding::Encode<FDomainGetKoidResponse, D> for &FDomainGetKoidResponse
2903 {
2904 #[inline]
2905 unsafe fn encode(
2906 self,
2907 encoder: &mut fidl::encoding::Encoder<'_, D>,
2908 offset: usize,
2909 _depth: fidl::encoding::Depth,
2910 ) -> fidl::Result<()> {
2911 encoder.debug_check_bounds::<FDomainGetKoidResponse>(offset);
2912 unsafe {
2913 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
2915 (buf_ptr as *mut FDomainGetKoidResponse)
2916 .write_unaligned((self as *const FDomainGetKoidResponse).read());
2917 }
2920 Ok(())
2921 }
2922 }
2923 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<u64, D>>
2924 fidl::encoding::Encode<FDomainGetKoidResponse, D> for (T0,)
2925 {
2926 #[inline]
2927 unsafe fn encode(
2928 self,
2929 encoder: &mut fidl::encoding::Encoder<'_, D>,
2930 offset: usize,
2931 depth: fidl::encoding::Depth,
2932 ) -> fidl::Result<()> {
2933 encoder.debug_check_bounds::<FDomainGetKoidResponse>(offset);
2934 self.0.encode(encoder, offset + 0, depth)?;
2938 Ok(())
2939 }
2940 }
2941
2942 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2943 for FDomainGetKoidResponse
2944 {
2945 #[inline(always)]
2946 fn new_empty() -> Self {
2947 Self { koid: fidl::new_empty!(u64, D) }
2948 }
2949
2950 #[inline]
2951 unsafe fn decode(
2952 &mut self,
2953 decoder: &mut fidl::encoding::Decoder<'_, D>,
2954 offset: usize,
2955 _depth: fidl::encoding::Depth,
2956 ) -> fidl::Result<()> {
2957 decoder.debug_check_bounds::<Self>(offset);
2958 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
2959 unsafe {
2962 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 8);
2963 }
2964 Ok(())
2965 }
2966 }
2967
2968 impl fidl::encoding::ValueTypeMarker for FDomainWaitForSignalsResponse {
2969 type Borrowed<'a> = &'a Self;
2970 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2971 value
2972 }
2973 }
2974
2975 unsafe impl fidl::encoding::TypeMarker for FDomainWaitForSignalsResponse {
2976 type Owned = Self;
2977
2978 #[inline(always)]
2979 fn inline_align(_context: fidl::encoding::Context) -> usize {
2980 4
2981 }
2982
2983 #[inline(always)]
2984 fn inline_size(_context: fidl::encoding::Context) -> usize {
2985 4
2986 }
2987 #[inline(always)]
2988 fn encode_is_copy() -> bool {
2989 true
2990 }
2991
2992 #[inline(always)]
2993 fn decode_is_copy() -> bool {
2994 true
2995 }
2996 }
2997
2998 unsafe impl<D: fidl::encoding::ResourceDialect>
2999 fidl::encoding::Encode<FDomainWaitForSignalsResponse, D>
3000 for &FDomainWaitForSignalsResponse
3001 {
3002 #[inline]
3003 unsafe fn encode(
3004 self,
3005 encoder: &mut fidl::encoding::Encoder<'_, D>,
3006 offset: usize,
3007 _depth: fidl::encoding::Depth,
3008 ) -> fidl::Result<()> {
3009 encoder.debug_check_bounds::<FDomainWaitForSignalsResponse>(offset);
3010 unsafe {
3011 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
3013 (buf_ptr as *mut FDomainWaitForSignalsResponse)
3014 .write_unaligned((self as *const FDomainWaitForSignalsResponse).read());
3015 }
3018 Ok(())
3019 }
3020 }
3021 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<u32, D>>
3022 fidl::encoding::Encode<FDomainWaitForSignalsResponse, D> for (T0,)
3023 {
3024 #[inline]
3025 unsafe fn encode(
3026 self,
3027 encoder: &mut fidl::encoding::Encoder<'_, D>,
3028 offset: usize,
3029 depth: fidl::encoding::Depth,
3030 ) -> fidl::Result<()> {
3031 encoder.debug_check_bounds::<FDomainWaitForSignalsResponse>(offset);
3032 self.0.encode(encoder, offset + 0, depth)?;
3036 Ok(())
3037 }
3038 }
3039
3040 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3041 for FDomainWaitForSignalsResponse
3042 {
3043 #[inline(always)]
3044 fn new_empty() -> Self {
3045 Self { signals: fidl::new_empty!(u32, D) }
3046 }
3047
3048 #[inline]
3049 unsafe fn decode(
3050 &mut self,
3051 decoder: &mut fidl::encoding::Decoder<'_, D>,
3052 offset: usize,
3053 _depth: fidl::encoding::Depth,
3054 ) -> fidl::Result<()> {
3055 decoder.debug_check_bounds::<Self>(offset);
3056 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
3057 unsafe {
3060 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 4);
3061 }
3062 Ok(())
3063 }
3064 }
3065
3066 impl fidl::encoding::ValueTypeMarker for HandleDisposition {
3067 type Borrowed<'a> = &'a Self;
3068 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3069 value
3070 }
3071 }
3072
3073 unsafe impl fidl::encoding::TypeMarker for HandleDisposition {
3074 type Owned = Self;
3075
3076 #[inline(always)]
3077 fn inline_align(_context: fidl::encoding::Context) -> usize {
3078 8
3079 }
3080
3081 #[inline(always)]
3082 fn inline_size(_context: fidl::encoding::Context) -> usize {
3083 24
3084 }
3085 }
3086
3087 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<HandleDisposition, D>
3088 for &HandleDisposition
3089 {
3090 #[inline]
3091 unsafe fn encode(
3092 self,
3093 encoder: &mut fidl::encoding::Encoder<'_, D>,
3094 offset: usize,
3095 _depth: fidl::encoding::Depth,
3096 ) -> fidl::Result<()> {
3097 encoder.debug_check_bounds::<HandleDisposition>(offset);
3098 fidl::encoding::Encode::<HandleDisposition, D>::encode(
3100 (
3101 <HandleOp as fidl::encoding::ValueTypeMarker>::borrow(&self.handle),
3102 <fidl::Rights as fidl::encoding::ValueTypeMarker>::borrow(&self.rights),
3103 ),
3104 encoder,
3105 offset,
3106 _depth,
3107 )
3108 }
3109 }
3110 unsafe impl<
3111 D: fidl::encoding::ResourceDialect,
3112 T0: fidl::encoding::Encode<HandleOp, D>,
3113 T1: fidl::encoding::Encode<fidl::Rights, D>,
3114 > fidl::encoding::Encode<HandleDisposition, D> for (T0, T1)
3115 {
3116 #[inline]
3117 unsafe fn encode(
3118 self,
3119 encoder: &mut fidl::encoding::Encoder<'_, D>,
3120 offset: usize,
3121 depth: fidl::encoding::Depth,
3122 ) -> fidl::Result<()> {
3123 encoder.debug_check_bounds::<HandleDisposition>(offset);
3124 unsafe {
3127 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(16);
3128 (ptr as *mut u64).write_unaligned(0);
3129 }
3130 self.0.encode(encoder, offset + 0, depth)?;
3132 self.1.encode(encoder, offset + 16, depth)?;
3133 Ok(())
3134 }
3135 }
3136
3137 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for HandleDisposition {
3138 #[inline(always)]
3139 fn new_empty() -> Self {
3140 Self {
3141 handle: fidl::new_empty!(HandleOp, D),
3142 rights: fidl::new_empty!(fidl::Rights, D),
3143 }
3144 }
3145
3146 #[inline]
3147 unsafe fn decode(
3148 &mut self,
3149 decoder: &mut fidl::encoding::Decoder<'_, D>,
3150 offset: usize,
3151 _depth: fidl::encoding::Depth,
3152 ) -> fidl::Result<()> {
3153 decoder.debug_check_bounds::<Self>(offset);
3154 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(16) };
3156 let padval = unsafe { (ptr as *const u64).read_unaligned() };
3157 let mask = 0xffffffff00000000u64;
3158 let maskedval = padval & mask;
3159 if maskedval != 0 {
3160 return Err(fidl::Error::NonZeroPadding {
3161 padding_start: offset + 16 + ((mask as u64).trailing_zeros() / 8) as usize,
3162 });
3163 }
3164 fidl::decode!(HandleOp, D, &mut self.handle, decoder, offset + 0, _depth)?;
3165 fidl::decode!(fidl::Rights, D, &mut self.rights, decoder, offset + 16, _depth)?;
3166 Ok(())
3167 }
3168 }
3169
3170 impl fidl::encoding::ValueTypeMarker for HandleId {
3171 type Borrowed<'a> = &'a Self;
3172 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3173 value
3174 }
3175 }
3176
3177 unsafe impl fidl::encoding::TypeMarker for HandleId {
3178 type Owned = Self;
3179
3180 #[inline(always)]
3181 fn inline_align(_context: fidl::encoding::Context) -> usize {
3182 4
3183 }
3184
3185 #[inline(always)]
3186 fn inline_size(_context: fidl::encoding::Context) -> usize {
3187 4
3188 }
3189 #[inline(always)]
3190 fn encode_is_copy() -> bool {
3191 true
3192 }
3193
3194 #[inline(always)]
3195 fn decode_is_copy() -> bool {
3196 true
3197 }
3198 }
3199
3200 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<HandleId, D> for &HandleId {
3201 #[inline]
3202 unsafe fn encode(
3203 self,
3204 encoder: &mut fidl::encoding::Encoder<'_, D>,
3205 offset: usize,
3206 _depth: fidl::encoding::Depth,
3207 ) -> fidl::Result<()> {
3208 encoder.debug_check_bounds::<HandleId>(offset);
3209 unsafe {
3210 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
3212 (buf_ptr as *mut HandleId).write_unaligned((self as *const HandleId).read());
3213 }
3216 Ok(())
3217 }
3218 }
3219 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<u32, D>>
3220 fidl::encoding::Encode<HandleId, D> for (T0,)
3221 {
3222 #[inline]
3223 unsafe fn encode(
3224 self,
3225 encoder: &mut fidl::encoding::Encoder<'_, D>,
3226 offset: usize,
3227 depth: fidl::encoding::Depth,
3228 ) -> fidl::Result<()> {
3229 encoder.debug_check_bounds::<HandleId>(offset);
3230 self.0.encode(encoder, offset + 0, depth)?;
3234 Ok(())
3235 }
3236 }
3237
3238 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for HandleId {
3239 #[inline(always)]
3240 fn new_empty() -> Self {
3241 Self { id: fidl::new_empty!(u32, D) }
3242 }
3243
3244 #[inline]
3245 unsafe fn decode(
3246 &mut self,
3247 decoder: &mut fidl::encoding::Decoder<'_, D>,
3248 offset: usize,
3249 _depth: fidl::encoding::Depth,
3250 ) -> fidl::Result<()> {
3251 decoder.debug_check_bounds::<Self>(offset);
3252 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
3253 unsafe {
3256 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 4);
3257 }
3258 Ok(())
3259 }
3260 }
3261
3262 impl fidl::encoding::ValueTypeMarker for HandleInfo {
3263 type Borrowed<'a> = &'a Self;
3264 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3265 value
3266 }
3267 }
3268
3269 unsafe impl fidl::encoding::TypeMarker for HandleInfo {
3270 type Owned = Self;
3271
3272 #[inline(always)]
3273 fn inline_align(_context: fidl::encoding::Context) -> usize {
3274 4
3275 }
3276
3277 #[inline(always)]
3278 fn inline_size(_context: fidl::encoding::Context) -> usize {
3279 12
3280 }
3281 }
3282
3283 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<HandleInfo, D>
3284 for &HandleInfo
3285 {
3286 #[inline]
3287 unsafe fn encode(
3288 self,
3289 encoder: &mut fidl::encoding::Encoder<'_, D>,
3290 offset: usize,
3291 _depth: fidl::encoding::Depth,
3292 ) -> fidl::Result<()> {
3293 encoder.debug_check_bounds::<HandleInfo>(offset);
3294 fidl::encoding::Encode::<HandleInfo, D>::encode(
3296 (
3297 <HandleId as fidl::encoding::ValueTypeMarker>::borrow(&self.handle),
3298 <fidl::ObjectType as fidl::encoding::ValueTypeMarker>::borrow(&self.type_),
3299 <fidl::Rights as fidl::encoding::ValueTypeMarker>::borrow(&self.rights),
3300 ),
3301 encoder,
3302 offset,
3303 _depth,
3304 )
3305 }
3306 }
3307 unsafe impl<
3308 D: fidl::encoding::ResourceDialect,
3309 T0: fidl::encoding::Encode<HandleId, D>,
3310 T1: fidl::encoding::Encode<fidl::ObjectType, D>,
3311 T2: fidl::encoding::Encode<fidl::Rights, D>,
3312 > fidl::encoding::Encode<HandleInfo, D> for (T0, T1, T2)
3313 {
3314 #[inline]
3315 unsafe fn encode(
3316 self,
3317 encoder: &mut fidl::encoding::Encoder<'_, D>,
3318 offset: usize,
3319 depth: fidl::encoding::Depth,
3320 ) -> fidl::Result<()> {
3321 encoder.debug_check_bounds::<HandleInfo>(offset);
3322 self.0.encode(encoder, offset + 0, depth)?;
3326 self.1.encode(encoder, offset + 4, depth)?;
3327 self.2.encode(encoder, offset + 8, depth)?;
3328 Ok(())
3329 }
3330 }
3331
3332 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for HandleInfo {
3333 #[inline(always)]
3334 fn new_empty() -> Self {
3335 Self {
3336 handle: fidl::new_empty!(HandleId, D),
3337 type_: fidl::new_empty!(fidl::ObjectType, D),
3338 rights: fidl::new_empty!(fidl::Rights, D),
3339 }
3340 }
3341
3342 #[inline]
3343 unsafe fn decode(
3344 &mut self,
3345 decoder: &mut fidl::encoding::Decoder<'_, D>,
3346 offset: usize,
3347 _depth: fidl::encoding::Depth,
3348 ) -> fidl::Result<()> {
3349 decoder.debug_check_bounds::<Self>(offset);
3350 fidl::decode!(HandleId, D, &mut self.handle, decoder, offset + 0, _depth)?;
3352 fidl::decode!(fidl::ObjectType, D, &mut self.type_, decoder, offset + 4, _depth)?;
3353 fidl::decode!(fidl::Rights, D, &mut self.rights, decoder, offset + 8, _depth)?;
3354 Ok(())
3355 }
3356 }
3357
3358 impl fidl::encoding::ValueTypeMarker for NewHandleId {
3359 type Borrowed<'a> = &'a Self;
3360 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3361 value
3362 }
3363 }
3364
3365 unsafe impl fidl::encoding::TypeMarker for NewHandleId {
3366 type Owned = Self;
3367
3368 #[inline(always)]
3369 fn inline_align(_context: fidl::encoding::Context) -> usize {
3370 4
3371 }
3372
3373 #[inline(always)]
3374 fn inline_size(_context: fidl::encoding::Context) -> usize {
3375 4
3376 }
3377 #[inline(always)]
3378 fn encode_is_copy() -> bool {
3379 true
3380 }
3381
3382 #[inline(always)]
3383 fn decode_is_copy() -> bool {
3384 true
3385 }
3386 }
3387
3388 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<NewHandleId, D>
3389 for &NewHandleId
3390 {
3391 #[inline]
3392 unsafe fn encode(
3393 self,
3394 encoder: &mut fidl::encoding::Encoder<'_, D>,
3395 offset: usize,
3396 _depth: fidl::encoding::Depth,
3397 ) -> fidl::Result<()> {
3398 encoder.debug_check_bounds::<NewHandleId>(offset);
3399 unsafe {
3400 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
3402 (buf_ptr as *mut NewHandleId).write_unaligned((self as *const NewHandleId).read());
3403 }
3406 Ok(())
3407 }
3408 }
3409 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<u32, D>>
3410 fidl::encoding::Encode<NewHandleId, D> for (T0,)
3411 {
3412 #[inline]
3413 unsafe fn encode(
3414 self,
3415 encoder: &mut fidl::encoding::Encoder<'_, D>,
3416 offset: usize,
3417 depth: fidl::encoding::Depth,
3418 ) -> fidl::Result<()> {
3419 encoder.debug_check_bounds::<NewHandleId>(offset);
3420 self.0.encode(encoder, offset + 0, depth)?;
3424 Ok(())
3425 }
3426 }
3427
3428 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for NewHandleId {
3429 #[inline(always)]
3430 fn new_empty() -> Self {
3431 Self { id: fidl::new_empty!(u32, D) }
3432 }
3433
3434 #[inline]
3435 unsafe fn decode(
3436 &mut self,
3437 decoder: &mut fidl::encoding::Decoder<'_, D>,
3438 offset: usize,
3439 _depth: fidl::encoding::Depth,
3440 ) -> fidl::Result<()> {
3441 decoder.debug_check_bounds::<Self>(offset);
3442 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
3443 unsafe {
3446 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 4);
3447 }
3448 Ok(())
3449 }
3450 }
3451
3452 impl fidl::encoding::ValueTypeMarker for NewHandleIdOutOfRange {
3453 type Borrowed<'a> = &'a Self;
3454 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3455 value
3456 }
3457 }
3458
3459 unsafe impl fidl::encoding::TypeMarker for NewHandleIdOutOfRange {
3460 type Owned = Self;
3461
3462 #[inline(always)]
3463 fn inline_align(_context: fidl::encoding::Context) -> usize {
3464 4
3465 }
3466
3467 #[inline(always)]
3468 fn inline_size(_context: fidl::encoding::Context) -> usize {
3469 4
3470 }
3471 #[inline(always)]
3472 fn encode_is_copy() -> bool {
3473 true
3474 }
3475
3476 #[inline(always)]
3477 fn decode_is_copy() -> bool {
3478 true
3479 }
3480 }
3481
3482 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<NewHandleIdOutOfRange, D>
3483 for &NewHandleIdOutOfRange
3484 {
3485 #[inline]
3486 unsafe fn encode(
3487 self,
3488 encoder: &mut fidl::encoding::Encoder<'_, D>,
3489 offset: usize,
3490 _depth: fidl::encoding::Depth,
3491 ) -> fidl::Result<()> {
3492 encoder.debug_check_bounds::<NewHandleIdOutOfRange>(offset);
3493 unsafe {
3494 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
3496 (buf_ptr as *mut NewHandleIdOutOfRange)
3497 .write_unaligned((self as *const NewHandleIdOutOfRange).read());
3498 }
3501 Ok(())
3502 }
3503 }
3504 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<u32, D>>
3505 fidl::encoding::Encode<NewHandleIdOutOfRange, D> for (T0,)
3506 {
3507 #[inline]
3508 unsafe fn encode(
3509 self,
3510 encoder: &mut fidl::encoding::Encoder<'_, D>,
3511 offset: usize,
3512 depth: fidl::encoding::Depth,
3513 ) -> fidl::Result<()> {
3514 encoder.debug_check_bounds::<NewHandleIdOutOfRange>(offset);
3515 self.0.encode(encoder, offset + 0, depth)?;
3519 Ok(())
3520 }
3521 }
3522
3523 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for NewHandleIdOutOfRange {
3524 #[inline(always)]
3525 fn new_empty() -> Self {
3526 Self { id: fidl::new_empty!(u32, D) }
3527 }
3528
3529 #[inline]
3530 unsafe fn decode(
3531 &mut self,
3532 decoder: &mut fidl::encoding::Decoder<'_, D>,
3533 offset: usize,
3534 _depth: fidl::encoding::Depth,
3535 ) -> fidl::Result<()> {
3536 decoder.debug_check_bounds::<Self>(offset);
3537 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
3538 unsafe {
3541 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 4);
3542 }
3543 Ok(())
3544 }
3545 }
3546
3547 impl fidl::encoding::ValueTypeMarker for NewHandleIdReused {
3548 type Borrowed<'a> = &'a Self;
3549 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3550 value
3551 }
3552 }
3553
3554 unsafe impl fidl::encoding::TypeMarker for NewHandleIdReused {
3555 type Owned = Self;
3556
3557 #[inline(always)]
3558 fn inline_align(_context: fidl::encoding::Context) -> usize {
3559 4
3560 }
3561
3562 #[inline(always)]
3563 fn inline_size(_context: fidl::encoding::Context) -> usize {
3564 8
3565 }
3566 }
3567
3568 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<NewHandleIdReused, D>
3569 for &NewHandleIdReused
3570 {
3571 #[inline]
3572 unsafe fn encode(
3573 self,
3574 encoder: &mut fidl::encoding::Encoder<'_, D>,
3575 offset: usize,
3576 _depth: fidl::encoding::Depth,
3577 ) -> fidl::Result<()> {
3578 encoder.debug_check_bounds::<NewHandleIdReused>(offset);
3579 fidl::encoding::Encode::<NewHandleIdReused, D>::encode(
3581 (
3582 <u32 as fidl::encoding::ValueTypeMarker>::borrow(&self.id),
3583 <bool as fidl::encoding::ValueTypeMarker>::borrow(&self.same_call),
3584 ),
3585 encoder,
3586 offset,
3587 _depth,
3588 )
3589 }
3590 }
3591 unsafe impl<
3592 D: fidl::encoding::ResourceDialect,
3593 T0: fidl::encoding::Encode<u32, D>,
3594 T1: fidl::encoding::Encode<bool, D>,
3595 > fidl::encoding::Encode<NewHandleIdReused, D> for (T0, T1)
3596 {
3597 #[inline]
3598 unsafe fn encode(
3599 self,
3600 encoder: &mut fidl::encoding::Encoder<'_, D>,
3601 offset: usize,
3602 depth: fidl::encoding::Depth,
3603 ) -> fidl::Result<()> {
3604 encoder.debug_check_bounds::<NewHandleIdReused>(offset);
3605 unsafe {
3608 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(4);
3609 (ptr as *mut u32).write_unaligned(0);
3610 }
3611 self.0.encode(encoder, offset + 0, depth)?;
3613 self.1.encode(encoder, offset + 4, depth)?;
3614 Ok(())
3615 }
3616 }
3617
3618 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for NewHandleIdReused {
3619 #[inline(always)]
3620 fn new_empty() -> Self {
3621 Self { id: fidl::new_empty!(u32, D), same_call: fidl::new_empty!(bool, D) }
3622 }
3623
3624 #[inline]
3625 unsafe fn decode(
3626 &mut self,
3627 decoder: &mut fidl::encoding::Decoder<'_, D>,
3628 offset: usize,
3629 _depth: fidl::encoding::Depth,
3630 ) -> fidl::Result<()> {
3631 decoder.debug_check_bounds::<Self>(offset);
3632 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(4) };
3634 let padval = unsafe { (ptr as *const u32).read_unaligned() };
3635 let mask = 0xffffff00u32;
3636 let maskedval = padval & mask;
3637 if maskedval != 0 {
3638 return Err(fidl::Error::NonZeroPadding {
3639 padding_start: offset + 4 + ((mask as u64).trailing_zeros() / 8) as usize,
3640 });
3641 }
3642 fidl::decode!(u32, D, &mut self.id, decoder, offset + 0, _depth)?;
3643 fidl::decode!(bool, D, &mut self.same_call, decoder, offset + 4, _depth)?;
3644 Ok(())
3645 }
3646 }
3647
3648 impl fidl::encoding::ValueTypeMarker for NoReadInProgress {
3649 type Borrowed<'a> = &'a Self;
3650 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3651 value
3652 }
3653 }
3654
3655 unsafe impl fidl::encoding::TypeMarker for NoReadInProgress {
3656 type Owned = Self;
3657
3658 #[inline(always)]
3659 fn inline_align(_context: fidl::encoding::Context) -> usize {
3660 1
3661 }
3662
3663 #[inline(always)]
3664 fn inline_size(_context: fidl::encoding::Context) -> usize {
3665 1
3666 }
3667 }
3668
3669 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<NoReadInProgress, D>
3670 for &NoReadInProgress
3671 {
3672 #[inline]
3673 unsafe fn encode(
3674 self,
3675 encoder: &mut fidl::encoding::Encoder<'_, D>,
3676 offset: usize,
3677 _depth: fidl::encoding::Depth,
3678 ) -> fidl::Result<()> {
3679 encoder.debug_check_bounds::<NoReadInProgress>(offset);
3680 encoder.write_num(0u8, offset);
3681 Ok(())
3682 }
3683 }
3684
3685 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for NoReadInProgress {
3686 #[inline(always)]
3687 fn new_empty() -> Self {
3688 Self
3689 }
3690
3691 #[inline]
3692 unsafe fn decode(
3693 &mut self,
3694 decoder: &mut fidl::encoding::Decoder<'_, D>,
3695 offset: usize,
3696 _depth: fidl::encoding::Depth,
3697 ) -> fidl::Result<()> {
3698 decoder.debug_check_bounds::<Self>(offset);
3699 match decoder.read_num::<u8>(offset) {
3700 0 => Ok(()),
3701 _ => Err(fidl::Error::Invalid),
3702 }
3703 }
3704 }
3705
3706 impl fidl::encoding::ValueTypeMarker for RightsUnknown {
3707 type Borrowed<'a> = &'a Self;
3708 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3709 value
3710 }
3711 }
3712
3713 unsafe impl fidl::encoding::TypeMarker for RightsUnknown {
3714 type Owned = Self;
3715
3716 #[inline(always)]
3717 fn inline_align(_context: fidl::encoding::Context) -> usize {
3718 4
3719 }
3720
3721 #[inline(always)]
3722 fn inline_size(_context: fidl::encoding::Context) -> usize {
3723 4
3724 }
3725 }
3726
3727 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<RightsUnknown, D>
3728 for &RightsUnknown
3729 {
3730 #[inline]
3731 unsafe fn encode(
3732 self,
3733 encoder: &mut fidl::encoding::Encoder<'_, D>,
3734 offset: usize,
3735 _depth: fidl::encoding::Depth,
3736 ) -> fidl::Result<()> {
3737 encoder.debug_check_bounds::<RightsUnknown>(offset);
3738 fidl::encoding::Encode::<RightsUnknown, D>::encode(
3740 (<fidl::Rights as fidl::encoding::ValueTypeMarker>::borrow(&self.rights),),
3741 encoder,
3742 offset,
3743 _depth,
3744 )
3745 }
3746 }
3747 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<fidl::Rights, D>>
3748 fidl::encoding::Encode<RightsUnknown, D> for (T0,)
3749 {
3750 #[inline]
3751 unsafe fn encode(
3752 self,
3753 encoder: &mut fidl::encoding::Encoder<'_, D>,
3754 offset: usize,
3755 depth: fidl::encoding::Depth,
3756 ) -> fidl::Result<()> {
3757 encoder.debug_check_bounds::<RightsUnknown>(offset);
3758 self.0.encode(encoder, offset + 0, depth)?;
3762 Ok(())
3763 }
3764 }
3765
3766 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for RightsUnknown {
3767 #[inline(always)]
3768 fn new_empty() -> Self {
3769 Self { rights: fidl::new_empty!(fidl::Rights, D) }
3770 }
3771
3772 #[inline]
3773 unsafe fn decode(
3774 &mut self,
3775 decoder: &mut fidl::encoding::Decoder<'_, D>,
3776 offset: usize,
3777 _depth: fidl::encoding::Depth,
3778 ) -> fidl::Result<()> {
3779 decoder.debug_check_bounds::<Self>(offset);
3780 fidl::decode!(fidl::Rights, D, &mut self.rights, decoder, offset + 0, _depth)?;
3782 Ok(())
3783 }
3784 }
3785
3786 impl fidl::encoding::ValueTypeMarker for SignalsUnknown {
3787 type Borrowed<'a> = &'a Self;
3788 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3789 value
3790 }
3791 }
3792
3793 unsafe impl fidl::encoding::TypeMarker for SignalsUnknown {
3794 type Owned = Self;
3795
3796 #[inline(always)]
3797 fn inline_align(_context: fidl::encoding::Context) -> usize {
3798 4
3799 }
3800
3801 #[inline(always)]
3802 fn inline_size(_context: fidl::encoding::Context) -> usize {
3803 4
3804 }
3805 #[inline(always)]
3806 fn encode_is_copy() -> bool {
3807 true
3808 }
3809
3810 #[inline(always)]
3811 fn decode_is_copy() -> bool {
3812 true
3813 }
3814 }
3815
3816 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<SignalsUnknown, D>
3817 for &SignalsUnknown
3818 {
3819 #[inline]
3820 unsafe fn encode(
3821 self,
3822 encoder: &mut fidl::encoding::Encoder<'_, D>,
3823 offset: usize,
3824 _depth: fidl::encoding::Depth,
3825 ) -> fidl::Result<()> {
3826 encoder.debug_check_bounds::<SignalsUnknown>(offset);
3827 unsafe {
3828 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
3830 (buf_ptr as *mut SignalsUnknown)
3831 .write_unaligned((self as *const SignalsUnknown).read());
3832 }
3835 Ok(())
3836 }
3837 }
3838 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<u32, D>>
3839 fidl::encoding::Encode<SignalsUnknown, D> for (T0,)
3840 {
3841 #[inline]
3842 unsafe fn encode(
3843 self,
3844 encoder: &mut fidl::encoding::Encoder<'_, D>,
3845 offset: usize,
3846 depth: fidl::encoding::Depth,
3847 ) -> fidl::Result<()> {
3848 encoder.debug_check_bounds::<SignalsUnknown>(offset);
3849 self.0.encode(encoder, offset + 0, depth)?;
3853 Ok(())
3854 }
3855 }
3856
3857 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for SignalsUnknown {
3858 #[inline(always)]
3859 fn new_empty() -> Self {
3860 Self { signals: fidl::new_empty!(u32, D) }
3861 }
3862
3863 #[inline]
3864 unsafe fn decode(
3865 &mut self,
3866 decoder: &mut fidl::encoding::Decoder<'_, D>,
3867 offset: usize,
3868 _depth: fidl::encoding::Depth,
3869 ) -> fidl::Result<()> {
3870 decoder.debug_check_bounds::<Self>(offset);
3871 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
3872 unsafe {
3875 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 4);
3876 }
3877 Ok(())
3878 }
3879 }
3880
3881 impl fidl::encoding::ValueTypeMarker for SocketCreateSocketRequest {
3882 type Borrowed<'a> = &'a Self;
3883 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3884 value
3885 }
3886 }
3887
3888 unsafe impl fidl::encoding::TypeMarker for SocketCreateSocketRequest {
3889 type Owned = Self;
3890
3891 #[inline(always)]
3892 fn inline_align(_context: fidl::encoding::Context) -> usize {
3893 4
3894 }
3895
3896 #[inline(always)]
3897 fn inline_size(_context: fidl::encoding::Context) -> usize {
3898 12
3899 }
3900 }
3901
3902 unsafe impl<D: fidl::encoding::ResourceDialect>
3903 fidl::encoding::Encode<SocketCreateSocketRequest, D> for &SocketCreateSocketRequest
3904 {
3905 #[inline]
3906 unsafe fn encode(
3907 self,
3908 encoder: &mut fidl::encoding::Encoder<'_, D>,
3909 offset: usize,
3910 _depth: fidl::encoding::Depth,
3911 ) -> fidl::Result<()> {
3912 encoder.debug_check_bounds::<SocketCreateSocketRequest>(offset);
3913 fidl::encoding::Encode::<SocketCreateSocketRequest, D>::encode(
3915 (
3916 <SocketType as fidl::encoding::ValueTypeMarker>::borrow(&self.options),
3917 <fidl::encoding::Array<NewHandleId, 2> as fidl::encoding::ValueTypeMarker>::borrow(&self.handles),
3918 ),
3919 encoder, offset, _depth
3920 )
3921 }
3922 }
3923 unsafe impl<
3924 D: fidl::encoding::ResourceDialect,
3925 T0: fidl::encoding::Encode<SocketType, D>,
3926 T1: fidl::encoding::Encode<fidl::encoding::Array<NewHandleId, 2>, D>,
3927 > fidl::encoding::Encode<SocketCreateSocketRequest, D> for (T0, T1)
3928 {
3929 #[inline]
3930 unsafe fn encode(
3931 self,
3932 encoder: &mut fidl::encoding::Encoder<'_, D>,
3933 offset: usize,
3934 depth: fidl::encoding::Depth,
3935 ) -> fidl::Result<()> {
3936 encoder.debug_check_bounds::<SocketCreateSocketRequest>(offset);
3937 self.0.encode(encoder, offset + 0, depth)?;
3941 self.1.encode(encoder, offset + 4, depth)?;
3942 Ok(())
3943 }
3944 }
3945
3946 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3947 for SocketCreateSocketRequest
3948 {
3949 #[inline(always)]
3950 fn new_empty() -> Self {
3951 Self {
3952 options: fidl::new_empty!(SocketType, D),
3953 handles: fidl::new_empty!(fidl::encoding::Array<NewHandleId, 2>, D),
3954 }
3955 }
3956
3957 #[inline]
3958 unsafe fn decode(
3959 &mut self,
3960 decoder: &mut fidl::encoding::Decoder<'_, D>,
3961 offset: usize,
3962 _depth: fidl::encoding::Depth,
3963 ) -> fidl::Result<()> {
3964 decoder.debug_check_bounds::<Self>(offset);
3965 fidl::decode!(SocketType, D, &mut self.options, decoder, offset + 0, _depth)?;
3967 fidl::decode!(fidl::encoding::Array<NewHandleId, 2>, D, &mut self.handles, decoder, offset + 4, _depth)?;
3968 Ok(())
3969 }
3970 }
3971
3972 impl fidl::encoding::ValueTypeMarker for SocketData {
3973 type Borrowed<'a> = &'a Self;
3974 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3975 value
3976 }
3977 }
3978
3979 unsafe impl fidl::encoding::TypeMarker for SocketData {
3980 type Owned = Self;
3981
3982 #[inline(always)]
3983 fn inline_align(_context: fidl::encoding::Context) -> usize {
3984 8
3985 }
3986
3987 #[inline(always)]
3988 fn inline_size(_context: fidl::encoding::Context) -> usize {
3989 24
3990 }
3991 }
3992
3993 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<SocketData, D>
3994 for &SocketData
3995 {
3996 #[inline]
3997 unsafe fn encode(
3998 self,
3999 encoder: &mut fidl::encoding::Encoder<'_, D>,
4000 offset: usize,
4001 _depth: fidl::encoding::Depth,
4002 ) -> fidl::Result<()> {
4003 encoder.debug_check_bounds::<SocketData>(offset);
4004 fidl::encoding::Encode::<SocketData, D>::encode(
4006 (
4007 <fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow(&self.data),
4008 <bool as fidl::encoding::ValueTypeMarker>::borrow(&self.is_datagram),
4009 ),
4010 encoder, offset, _depth
4011 )
4012 }
4013 }
4014 unsafe impl<
4015 D: fidl::encoding::ResourceDialect,
4016 T0: fidl::encoding::Encode<fidl::encoding::UnboundedVector<u8>, D>,
4017 T1: fidl::encoding::Encode<bool, D>,
4018 > fidl::encoding::Encode<SocketData, D> for (T0, T1)
4019 {
4020 #[inline]
4021 unsafe fn encode(
4022 self,
4023 encoder: &mut fidl::encoding::Encoder<'_, D>,
4024 offset: usize,
4025 depth: fidl::encoding::Depth,
4026 ) -> fidl::Result<()> {
4027 encoder.debug_check_bounds::<SocketData>(offset);
4028 unsafe {
4031 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(16);
4032 (ptr as *mut u64).write_unaligned(0);
4033 }
4034 self.0.encode(encoder, offset + 0, depth)?;
4036 self.1.encode(encoder, offset + 16, depth)?;
4037 Ok(())
4038 }
4039 }
4040
4041 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for SocketData {
4042 #[inline(always)]
4043 fn new_empty() -> Self {
4044 Self {
4045 data: fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D),
4046 is_datagram: fidl::new_empty!(bool, D),
4047 }
4048 }
4049
4050 #[inline]
4051 unsafe fn decode(
4052 &mut self,
4053 decoder: &mut fidl::encoding::Decoder<'_, D>,
4054 offset: usize,
4055 _depth: fidl::encoding::Depth,
4056 ) -> fidl::Result<()> {
4057 decoder.debug_check_bounds::<Self>(offset);
4058 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(16) };
4060 let padval = unsafe { (ptr as *const u64).read_unaligned() };
4061 let mask = 0xffffffffffffff00u64;
4062 let maskedval = padval & mask;
4063 if maskedval != 0 {
4064 return Err(fidl::Error::NonZeroPadding {
4065 padding_start: offset + 16 + ((mask as u64).trailing_zeros() / 8) as usize,
4066 });
4067 }
4068 fidl::decode!(
4069 fidl::encoding::UnboundedVector<u8>,
4070 D,
4071 &mut self.data,
4072 decoder,
4073 offset + 0,
4074 _depth
4075 )?;
4076 fidl::decode!(bool, D, &mut self.is_datagram, decoder, offset + 16, _depth)?;
4077 Ok(())
4078 }
4079 }
4080
4081 impl fidl::encoding::ValueTypeMarker for SocketDispositionUnknown {
4082 type Borrowed<'a> = &'a Self;
4083 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4084 value
4085 }
4086 }
4087
4088 unsafe impl fidl::encoding::TypeMarker for SocketDispositionUnknown {
4089 type Owned = Self;
4090
4091 #[inline(always)]
4092 fn inline_align(_context: fidl::encoding::Context) -> usize {
4093 4
4094 }
4095
4096 #[inline(always)]
4097 fn inline_size(_context: fidl::encoding::Context) -> usize {
4098 4
4099 }
4100 }
4101
4102 unsafe impl<D: fidl::encoding::ResourceDialect>
4103 fidl::encoding::Encode<SocketDispositionUnknown, D> for &SocketDispositionUnknown
4104 {
4105 #[inline]
4106 unsafe fn encode(
4107 self,
4108 encoder: &mut fidl::encoding::Encoder<'_, D>,
4109 offset: usize,
4110 _depth: fidl::encoding::Depth,
4111 ) -> fidl::Result<()> {
4112 encoder.debug_check_bounds::<SocketDispositionUnknown>(offset);
4113 fidl::encoding::Encode::<SocketDispositionUnknown, D>::encode(
4115 (<SocketDisposition as fidl::encoding::ValueTypeMarker>::borrow(&self.disposition),),
4116 encoder,
4117 offset,
4118 _depth,
4119 )
4120 }
4121 }
4122 unsafe impl<
4123 D: fidl::encoding::ResourceDialect,
4124 T0: fidl::encoding::Encode<SocketDisposition, D>,
4125 > fidl::encoding::Encode<SocketDispositionUnknown, D> for (T0,)
4126 {
4127 #[inline]
4128 unsafe fn encode(
4129 self,
4130 encoder: &mut fidl::encoding::Encoder<'_, D>,
4131 offset: usize,
4132 depth: fidl::encoding::Depth,
4133 ) -> fidl::Result<()> {
4134 encoder.debug_check_bounds::<SocketDispositionUnknown>(offset);
4135 self.0.encode(encoder, offset + 0, depth)?;
4139 Ok(())
4140 }
4141 }
4142
4143 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
4144 for SocketDispositionUnknown
4145 {
4146 #[inline(always)]
4147 fn new_empty() -> Self {
4148 Self { disposition: fidl::new_empty!(SocketDisposition, D) }
4149 }
4150
4151 #[inline]
4152 unsafe fn decode(
4153 &mut self,
4154 decoder: &mut fidl::encoding::Decoder<'_, D>,
4155 offset: usize,
4156 _depth: fidl::encoding::Depth,
4157 ) -> fidl::Result<()> {
4158 decoder.debug_check_bounds::<Self>(offset);
4159 fidl::decode!(
4161 SocketDisposition,
4162 D,
4163 &mut self.disposition,
4164 decoder,
4165 offset + 0,
4166 _depth
4167 )?;
4168 Ok(())
4169 }
4170 }
4171
4172 impl fidl::encoding::ValueTypeMarker for SocketOnSocketStreamingDataRequest {
4173 type Borrowed<'a> = &'a Self;
4174 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4175 value
4176 }
4177 }
4178
4179 unsafe impl fidl::encoding::TypeMarker for SocketOnSocketStreamingDataRequest {
4180 type Owned = Self;
4181
4182 #[inline(always)]
4183 fn inline_align(_context: fidl::encoding::Context) -> usize {
4184 8
4185 }
4186
4187 #[inline(always)]
4188 fn inline_size(_context: fidl::encoding::Context) -> usize {
4189 24
4190 }
4191 }
4192
4193 unsafe impl<D: fidl::encoding::ResourceDialect>
4194 fidl::encoding::Encode<SocketOnSocketStreamingDataRequest, D>
4195 for &SocketOnSocketStreamingDataRequest
4196 {
4197 #[inline]
4198 unsafe fn encode(
4199 self,
4200 encoder: &mut fidl::encoding::Encoder<'_, D>,
4201 offset: usize,
4202 _depth: fidl::encoding::Depth,
4203 ) -> fidl::Result<()> {
4204 encoder.debug_check_bounds::<SocketOnSocketStreamingDataRequest>(offset);
4205 fidl::encoding::Encode::<SocketOnSocketStreamingDataRequest, D>::encode(
4207 (
4208 <HandleId as fidl::encoding::ValueTypeMarker>::borrow(&self.handle),
4209 <SocketMessage as fidl::encoding::ValueTypeMarker>::borrow(
4210 &self.socket_message,
4211 ),
4212 ),
4213 encoder,
4214 offset,
4215 _depth,
4216 )
4217 }
4218 }
4219 unsafe impl<
4220 D: fidl::encoding::ResourceDialect,
4221 T0: fidl::encoding::Encode<HandleId, D>,
4222 T1: fidl::encoding::Encode<SocketMessage, D>,
4223 > fidl::encoding::Encode<SocketOnSocketStreamingDataRequest, D> for (T0, T1)
4224 {
4225 #[inline]
4226 unsafe fn encode(
4227 self,
4228 encoder: &mut fidl::encoding::Encoder<'_, D>,
4229 offset: usize,
4230 depth: fidl::encoding::Depth,
4231 ) -> fidl::Result<()> {
4232 encoder.debug_check_bounds::<SocketOnSocketStreamingDataRequest>(offset);
4233 unsafe {
4236 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(0);
4237 (ptr as *mut u64).write_unaligned(0);
4238 }
4239 self.0.encode(encoder, offset + 0, depth)?;
4241 self.1.encode(encoder, offset + 8, depth)?;
4242 Ok(())
4243 }
4244 }
4245
4246 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
4247 for SocketOnSocketStreamingDataRequest
4248 {
4249 #[inline(always)]
4250 fn new_empty() -> Self {
4251 Self {
4252 handle: fidl::new_empty!(HandleId, D),
4253 socket_message: fidl::new_empty!(SocketMessage, D),
4254 }
4255 }
4256
4257 #[inline]
4258 unsafe fn decode(
4259 &mut self,
4260 decoder: &mut fidl::encoding::Decoder<'_, D>,
4261 offset: usize,
4262 _depth: fidl::encoding::Depth,
4263 ) -> fidl::Result<()> {
4264 decoder.debug_check_bounds::<Self>(offset);
4265 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(0) };
4267 let padval = unsafe { (ptr as *const u64).read_unaligned() };
4268 let mask = 0xffffffff00000000u64;
4269 let maskedval = padval & mask;
4270 if maskedval != 0 {
4271 return Err(fidl::Error::NonZeroPadding {
4272 padding_start: offset + 0 + ((mask as u64).trailing_zeros() / 8) as usize,
4273 });
4274 }
4275 fidl::decode!(HandleId, D, &mut self.handle, decoder, offset + 0, _depth)?;
4276 fidl::decode!(SocketMessage, D, &mut self.socket_message, decoder, offset + 8, _depth)?;
4277 Ok(())
4278 }
4279 }
4280
4281 impl fidl::encoding::ValueTypeMarker for SocketReadSocketRequest {
4282 type Borrowed<'a> = &'a Self;
4283 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4284 value
4285 }
4286 }
4287
4288 unsafe impl fidl::encoding::TypeMarker for SocketReadSocketRequest {
4289 type Owned = Self;
4290
4291 #[inline(always)]
4292 fn inline_align(_context: fidl::encoding::Context) -> usize {
4293 8
4294 }
4295
4296 #[inline(always)]
4297 fn inline_size(_context: fidl::encoding::Context) -> usize {
4298 16
4299 }
4300 }
4301
4302 unsafe impl<D: fidl::encoding::ResourceDialect>
4303 fidl::encoding::Encode<SocketReadSocketRequest, D> for &SocketReadSocketRequest
4304 {
4305 #[inline]
4306 unsafe fn encode(
4307 self,
4308 encoder: &mut fidl::encoding::Encoder<'_, D>,
4309 offset: usize,
4310 _depth: fidl::encoding::Depth,
4311 ) -> fidl::Result<()> {
4312 encoder.debug_check_bounds::<SocketReadSocketRequest>(offset);
4313 unsafe {
4314 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
4316 (buf_ptr as *mut SocketReadSocketRequest)
4317 .write_unaligned((self as *const SocketReadSocketRequest).read());
4318 let padding_ptr = buf_ptr.offset(0) as *mut u64;
4321 let padding_mask = 0xffffffff00000000u64;
4322 padding_ptr.write_unaligned(padding_ptr.read_unaligned() & !padding_mask);
4323 }
4324 Ok(())
4325 }
4326 }
4327 unsafe impl<
4328 D: fidl::encoding::ResourceDialect,
4329 T0: fidl::encoding::Encode<HandleId, D>,
4330 T1: fidl::encoding::Encode<u64, D>,
4331 > fidl::encoding::Encode<SocketReadSocketRequest, D> for (T0, T1)
4332 {
4333 #[inline]
4334 unsafe fn encode(
4335 self,
4336 encoder: &mut fidl::encoding::Encoder<'_, D>,
4337 offset: usize,
4338 depth: fidl::encoding::Depth,
4339 ) -> fidl::Result<()> {
4340 encoder.debug_check_bounds::<SocketReadSocketRequest>(offset);
4341 unsafe {
4344 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(0);
4345 (ptr as *mut u64).write_unaligned(0);
4346 }
4347 self.0.encode(encoder, offset + 0, depth)?;
4349 self.1.encode(encoder, offset + 8, depth)?;
4350 Ok(())
4351 }
4352 }
4353
4354 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
4355 for SocketReadSocketRequest
4356 {
4357 #[inline(always)]
4358 fn new_empty() -> Self {
4359 Self { handle: fidl::new_empty!(HandleId, D), max_bytes: fidl::new_empty!(u64, D) }
4360 }
4361
4362 #[inline]
4363 unsafe fn decode(
4364 &mut self,
4365 decoder: &mut fidl::encoding::Decoder<'_, D>,
4366 offset: usize,
4367 _depth: fidl::encoding::Depth,
4368 ) -> fidl::Result<()> {
4369 decoder.debug_check_bounds::<Self>(offset);
4370 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
4371 let ptr = unsafe { buf_ptr.offset(0) };
4373 let padval = unsafe { (ptr as *const u64).read_unaligned() };
4374 let mask = 0xffffffff00000000u64;
4375 let maskedval = padval & mask;
4376 if maskedval != 0 {
4377 return Err(fidl::Error::NonZeroPadding {
4378 padding_start: offset + 0 + ((mask as u64).trailing_zeros() / 8) as usize,
4379 });
4380 }
4381 unsafe {
4383 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 16);
4384 }
4385 Ok(())
4386 }
4387 }
4388
4389 impl fidl::encoding::ValueTypeMarker for SocketReadSocketStreamingStartRequest {
4390 type Borrowed<'a> = &'a Self;
4391 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4392 value
4393 }
4394 }
4395
4396 unsafe impl fidl::encoding::TypeMarker for SocketReadSocketStreamingStartRequest {
4397 type Owned = Self;
4398
4399 #[inline(always)]
4400 fn inline_align(_context: fidl::encoding::Context) -> usize {
4401 4
4402 }
4403
4404 #[inline(always)]
4405 fn inline_size(_context: fidl::encoding::Context) -> usize {
4406 4
4407 }
4408 #[inline(always)]
4409 fn encode_is_copy() -> bool {
4410 true
4411 }
4412
4413 #[inline(always)]
4414 fn decode_is_copy() -> bool {
4415 true
4416 }
4417 }
4418
4419 unsafe impl<D: fidl::encoding::ResourceDialect>
4420 fidl::encoding::Encode<SocketReadSocketStreamingStartRequest, D>
4421 for &SocketReadSocketStreamingStartRequest
4422 {
4423 #[inline]
4424 unsafe fn encode(
4425 self,
4426 encoder: &mut fidl::encoding::Encoder<'_, D>,
4427 offset: usize,
4428 _depth: fidl::encoding::Depth,
4429 ) -> fidl::Result<()> {
4430 encoder.debug_check_bounds::<SocketReadSocketStreamingStartRequest>(offset);
4431 unsafe {
4432 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
4434 (buf_ptr as *mut SocketReadSocketStreamingStartRequest)
4435 .write_unaligned((self as *const SocketReadSocketStreamingStartRequest).read());
4436 }
4439 Ok(())
4440 }
4441 }
4442 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<HandleId, D>>
4443 fidl::encoding::Encode<SocketReadSocketStreamingStartRequest, D> for (T0,)
4444 {
4445 #[inline]
4446 unsafe fn encode(
4447 self,
4448 encoder: &mut fidl::encoding::Encoder<'_, D>,
4449 offset: usize,
4450 depth: fidl::encoding::Depth,
4451 ) -> fidl::Result<()> {
4452 encoder.debug_check_bounds::<SocketReadSocketStreamingStartRequest>(offset);
4453 self.0.encode(encoder, offset + 0, depth)?;
4457 Ok(())
4458 }
4459 }
4460
4461 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
4462 for SocketReadSocketStreamingStartRequest
4463 {
4464 #[inline(always)]
4465 fn new_empty() -> Self {
4466 Self { handle: fidl::new_empty!(HandleId, D) }
4467 }
4468
4469 #[inline]
4470 unsafe fn decode(
4471 &mut self,
4472 decoder: &mut fidl::encoding::Decoder<'_, D>,
4473 offset: usize,
4474 _depth: fidl::encoding::Depth,
4475 ) -> fidl::Result<()> {
4476 decoder.debug_check_bounds::<Self>(offset);
4477 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
4478 unsafe {
4481 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 4);
4482 }
4483 Ok(())
4484 }
4485 }
4486
4487 impl fidl::encoding::ValueTypeMarker for SocketReadSocketStreamingStopRequest {
4488 type Borrowed<'a> = &'a Self;
4489 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4490 value
4491 }
4492 }
4493
4494 unsafe impl fidl::encoding::TypeMarker for SocketReadSocketStreamingStopRequest {
4495 type Owned = Self;
4496
4497 #[inline(always)]
4498 fn inline_align(_context: fidl::encoding::Context) -> usize {
4499 4
4500 }
4501
4502 #[inline(always)]
4503 fn inline_size(_context: fidl::encoding::Context) -> usize {
4504 4
4505 }
4506 #[inline(always)]
4507 fn encode_is_copy() -> bool {
4508 true
4509 }
4510
4511 #[inline(always)]
4512 fn decode_is_copy() -> bool {
4513 true
4514 }
4515 }
4516
4517 unsafe impl<D: fidl::encoding::ResourceDialect>
4518 fidl::encoding::Encode<SocketReadSocketStreamingStopRequest, D>
4519 for &SocketReadSocketStreamingStopRequest
4520 {
4521 #[inline]
4522 unsafe fn encode(
4523 self,
4524 encoder: &mut fidl::encoding::Encoder<'_, D>,
4525 offset: usize,
4526 _depth: fidl::encoding::Depth,
4527 ) -> fidl::Result<()> {
4528 encoder.debug_check_bounds::<SocketReadSocketStreamingStopRequest>(offset);
4529 unsafe {
4530 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
4532 (buf_ptr as *mut SocketReadSocketStreamingStopRequest)
4533 .write_unaligned((self as *const SocketReadSocketStreamingStopRequest).read());
4534 }
4537 Ok(())
4538 }
4539 }
4540 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<HandleId, D>>
4541 fidl::encoding::Encode<SocketReadSocketStreamingStopRequest, D> for (T0,)
4542 {
4543 #[inline]
4544 unsafe fn encode(
4545 self,
4546 encoder: &mut fidl::encoding::Encoder<'_, D>,
4547 offset: usize,
4548 depth: fidl::encoding::Depth,
4549 ) -> fidl::Result<()> {
4550 encoder.debug_check_bounds::<SocketReadSocketStreamingStopRequest>(offset);
4551 self.0.encode(encoder, offset + 0, depth)?;
4555 Ok(())
4556 }
4557 }
4558
4559 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
4560 for SocketReadSocketStreamingStopRequest
4561 {
4562 #[inline(always)]
4563 fn new_empty() -> Self {
4564 Self { handle: fidl::new_empty!(HandleId, D) }
4565 }
4566
4567 #[inline]
4568 unsafe fn decode(
4569 &mut self,
4570 decoder: &mut fidl::encoding::Decoder<'_, D>,
4571 offset: usize,
4572 _depth: fidl::encoding::Depth,
4573 ) -> fidl::Result<()> {
4574 decoder.debug_check_bounds::<Self>(offset);
4575 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
4576 unsafe {
4579 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 4);
4580 }
4581 Ok(())
4582 }
4583 }
4584
4585 impl fidl::encoding::ValueTypeMarker for SocketSetSocketDispositionRequest {
4586 type Borrowed<'a> = &'a Self;
4587 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4588 value
4589 }
4590 }
4591
4592 unsafe impl fidl::encoding::TypeMarker for SocketSetSocketDispositionRequest {
4593 type Owned = Self;
4594
4595 #[inline(always)]
4596 fn inline_align(_context: fidl::encoding::Context) -> usize {
4597 4
4598 }
4599
4600 #[inline(always)]
4601 fn inline_size(_context: fidl::encoding::Context) -> usize {
4602 12
4603 }
4604 }
4605
4606 unsafe impl<D: fidl::encoding::ResourceDialect>
4607 fidl::encoding::Encode<SocketSetSocketDispositionRequest, D>
4608 for &SocketSetSocketDispositionRequest
4609 {
4610 #[inline]
4611 unsafe fn encode(
4612 self,
4613 encoder: &mut fidl::encoding::Encoder<'_, D>,
4614 offset: usize,
4615 _depth: fidl::encoding::Depth,
4616 ) -> fidl::Result<()> {
4617 encoder.debug_check_bounds::<SocketSetSocketDispositionRequest>(offset);
4618 fidl::encoding::Encode::<SocketSetSocketDispositionRequest, D>::encode(
4620 (
4621 <HandleId as fidl::encoding::ValueTypeMarker>::borrow(&self.handle),
4622 <SocketDisposition as fidl::encoding::ValueTypeMarker>::borrow(
4623 &self.disposition,
4624 ),
4625 <SocketDisposition as fidl::encoding::ValueTypeMarker>::borrow(
4626 &self.disposition_peer,
4627 ),
4628 ),
4629 encoder,
4630 offset,
4631 _depth,
4632 )
4633 }
4634 }
4635 unsafe impl<
4636 D: fidl::encoding::ResourceDialect,
4637 T0: fidl::encoding::Encode<HandleId, D>,
4638 T1: fidl::encoding::Encode<SocketDisposition, D>,
4639 T2: fidl::encoding::Encode<SocketDisposition, D>,
4640 > fidl::encoding::Encode<SocketSetSocketDispositionRequest, D> for (T0, T1, T2)
4641 {
4642 #[inline]
4643 unsafe fn encode(
4644 self,
4645 encoder: &mut fidl::encoding::Encoder<'_, D>,
4646 offset: usize,
4647 depth: fidl::encoding::Depth,
4648 ) -> fidl::Result<()> {
4649 encoder.debug_check_bounds::<SocketSetSocketDispositionRequest>(offset);
4650 self.0.encode(encoder, offset + 0, depth)?;
4654 self.1.encode(encoder, offset + 4, depth)?;
4655 self.2.encode(encoder, offset + 8, depth)?;
4656 Ok(())
4657 }
4658 }
4659
4660 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
4661 for SocketSetSocketDispositionRequest
4662 {
4663 #[inline(always)]
4664 fn new_empty() -> Self {
4665 Self {
4666 handle: fidl::new_empty!(HandleId, D),
4667 disposition: fidl::new_empty!(SocketDisposition, D),
4668 disposition_peer: fidl::new_empty!(SocketDisposition, D),
4669 }
4670 }
4671
4672 #[inline]
4673 unsafe fn decode(
4674 &mut self,
4675 decoder: &mut fidl::encoding::Decoder<'_, D>,
4676 offset: usize,
4677 _depth: fidl::encoding::Depth,
4678 ) -> fidl::Result<()> {
4679 decoder.debug_check_bounds::<Self>(offset);
4680 fidl::decode!(HandleId, D, &mut self.handle, decoder, offset + 0, _depth)?;
4682 fidl::decode!(
4683 SocketDisposition,
4684 D,
4685 &mut self.disposition,
4686 decoder,
4687 offset + 4,
4688 _depth
4689 )?;
4690 fidl::decode!(
4691 SocketDisposition,
4692 D,
4693 &mut self.disposition_peer,
4694 decoder,
4695 offset + 8,
4696 _depth
4697 )?;
4698 Ok(())
4699 }
4700 }
4701
4702 impl fidl::encoding::ValueTypeMarker for SocketTypeUnknown {
4703 type Borrowed<'a> = &'a Self;
4704 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4705 value
4706 }
4707 }
4708
4709 unsafe impl fidl::encoding::TypeMarker for SocketTypeUnknown {
4710 type Owned = Self;
4711
4712 #[inline(always)]
4713 fn inline_align(_context: fidl::encoding::Context) -> usize {
4714 4
4715 }
4716
4717 #[inline(always)]
4718 fn inline_size(_context: fidl::encoding::Context) -> usize {
4719 4
4720 }
4721 }
4722
4723 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<SocketTypeUnknown, D>
4724 for &SocketTypeUnknown
4725 {
4726 #[inline]
4727 unsafe fn encode(
4728 self,
4729 encoder: &mut fidl::encoding::Encoder<'_, D>,
4730 offset: usize,
4731 _depth: fidl::encoding::Depth,
4732 ) -> fidl::Result<()> {
4733 encoder.debug_check_bounds::<SocketTypeUnknown>(offset);
4734 fidl::encoding::Encode::<SocketTypeUnknown, D>::encode(
4736 (<SocketType as fidl::encoding::ValueTypeMarker>::borrow(&self.type_),),
4737 encoder,
4738 offset,
4739 _depth,
4740 )
4741 }
4742 }
4743 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<SocketType, D>>
4744 fidl::encoding::Encode<SocketTypeUnknown, D> for (T0,)
4745 {
4746 #[inline]
4747 unsafe fn encode(
4748 self,
4749 encoder: &mut fidl::encoding::Encoder<'_, D>,
4750 offset: usize,
4751 depth: fidl::encoding::Depth,
4752 ) -> fidl::Result<()> {
4753 encoder.debug_check_bounds::<SocketTypeUnknown>(offset);
4754 self.0.encode(encoder, offset + 0, depth)?;
4758 Ok(())
4759 }
4760 }
4761
4762 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for SocketTypeUnknown {
4763 #[inline(always)]
4764 fn new_empty() -> Self {
4765 Self { type_: fidl::new_empty!(SocketType, D) }
4766 }
4767
4768 #[inline]
4769 unsafe fn decode(
4770 &mut self,
4771 decoder: &mut fidl::encoding::Decoder<'_, D>,
4772 offset: usize,
4773 _depth: fidl::encoding::Depth,
4774 ) -> fidl::Result<()> {
4775 decoder.debug_check_bounds::<Self>(offset);
4776 fidl::decode!(SocketType, D, &mut self.type_, decoder, offset + 0, _depth)?;
4778 Ok(())
4779 }
4780 }
4781
4782 impl fidl::encoding::ValueTypeMarker for SocketWriteSocketRequest {
4783 type Borrowed<'a> = &'a Self;
4784 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4785 value
4786 }
4787 }
4788
4789 unsafe impl fidl::encoding::TypeMarker for SocketWriteSocketRequest {
4790 type Owned = Self;
4791
4792 #[inline(always)]
4793 fn inline_align(_context: fidl::encoding::Context) -> usize {
4794 8
4795 }
4796
4797 #[inline(always)]
4798 fn inline_size(_context: fidl::encoding::Context) -> usize {
4799 24
4800 }
4801 }
4802
4803 unsafe impl<D: fidl::encoding::ResourceDialect>
4804 fidl::encoding::Encode<SocketWriteSocketRequest, D> for &SocketWriteSocketRequest
4805 {
4806 #[inline]
4807 unsafe fn encode(
4808 self,
4809 encoder: &mut fidl::encoding::Encoder<'_, D>,
4810 offset: usize,
4811 _depth: fidl::encoding::Depth,
4812 ) -> fidl::Result<()> {
4813 encoder.debug_check_bounds::<SocketWriteSocketRequest>(offset);
4814 fidl::encoding::Encode::<SocketWriteSocketRequest, D>::encode(
4816 (
4817 <HandleId as fidl::encoding::ValueTypeMarker>::borrow(&self.handle),
4818 <fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow(&self.data),
4819 ),
4820 encoder, offset, _depth
4821 )
4822 }
4823 }
4824 unsafe impl<
4825 D: fidl::encoding::ResourceDialect,
4826 T0: fidl::encoding::Encode<HandleId, D>,
4827 T1: fidl::encoding::Encode<fidl::encoding::UnboundedVector<u8>, D>,
4828 > fidl::encoding::Encode<SocketWriteSocketRequest, D> for (T0, T1)
4829 {
4830 #[inline]
4831 unsafe fn encode(
4832 self,
4833 encoder: &mut fidl::encoding::Encoder<'_, D>,
4834 offset: usize,
4835 depth: fidl::encoding::Depth,
4836 ) -> fidl::Result<()> {
4837 encoder.debug_check_bounds::<SocketWriteSocketRequest>(offset);
4838 unsafe {
4841 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(0);
4842 (ptr as *mut u64).write_unaligned(0);
4843 }
4844 self.0.encode(encoder, offset + 0, depth)?;
4846 self.1.encode(encoder, offset + 8, depth)?;
4847 Ok(())
4848 }
4849 }
4850
4851 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
4852 for SocketWriteSocketRequest
4853 {
4854 #[inline(always)]
4855 fn new_empty() -> Self {
4856 Self {
4857 handle: fidl::new_empty!(HandleId, D),
4858 data: fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D),
4859 }
4860 }
4861
4862 #[inline]
4863 unsafe fn decode(
4864 &mut self,
4865 decoder: &mut fidl::encoding::Decoder<'_, D>,
4866 offset: usize,
4867 _depth: fidl::encoding::Depth,
4868 ) -> fidl::Result<()> {
4869 decoder.debug_check_bounds::<Self>(offset);
4870 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(0) };
4872 let padval = unsafe { (ptr as *const u64).read_unaligned() };
4873 let mask = 0xffffffff00000000u64;
4874 let maskedval = padval & mask;
4875 if maskedval != 0 {
4876 return Err(fidl::Error::NonZeroPadding {
4877 padding_start: offset + 0 + ((mask as u64).trailing_zeros() / 8) as usize,
4878 });
4879 }
4880 fidl::decode!(HandleId, D, &mut self.handle, decoder, offset + 0, _depth)?;
4881 fidl::decode!(
4882 fidl::encoding::UnboundedVector<u8>,
4883 D,
4884 &mut self.data,
4885 decoder,
4886 offset + 8,
4887 _depth
4888 )?;
4889 Ok(())
4890 }
4891 }
4892
4893 impl fidl::encoding::ValueTypeMarker for SocketWriteSocketResponse {
4894 type Borrowed<'a> = &'a Self;
4895 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4896 value
4897 }
4898 }
4899
4900 unsafe impl fidl::encoding::TypeMarker for SocketWriteSocketResponse {
4901 type Owned = Self;
4902
4903 #[inline(always)]
4904 fn inline_align(_context: fidl::encoding::Context) -> usize {
4905 8
4906 }
4907
4908 #[inline(always)]
4909 fn inline_size(_context: fidl::encoding::Context) -> usize {
4910 8
4911 }
4912 #[inline(always)]
4913 fn encode_is_copy() -> bool {
4914 true
4915 }
4916
4917 #[inline(always)]
4918 fn decode_is_copy() -> bool {
4919 true
4920 }
4921 }
4922
4923 unsafe impl<D: fidl::encoding::ResourceDialect>
4924 fidl::encoding::Encode<SocketWriteSocketResponse, D> for &SocketWriteSocketResponse
4925 {
4926 #[inline]
4927 unsafe fn encode(
4928 self,
4929 encoder: &mut fidl::encoding::Encoder<'_, D>,
4930 offset: usize,
4931 _depth: fidl::encoding::Depth,
4932 ) -> fidl::Result<()> {
4933 encoder.debug_check_bounds::<SocketWriteSocketResponse>(offset);
4934 unsafe {
4935 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
4937 (buf_ptr as *mut SocketWriteSocketResponse)
4938 .write_unaligned((self as *const SocketWriteSocketResponse).read());
4939 }
4942 Ok(())
4943 }
4944 }
4945 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<u64, D>>
4946 fidl::encoding::Encode<SocketWriteSocketResponse, D> for (T0,)
4947 {
4948 #[inline]
4949 unsafe fn encode(
4950 self,
4951 encoder: &mut fidl::encoding::Encoder<'_, D>,
4952 offset: usize,
4953 depth: fidl::encoding::Depth,
4954 ) -> fidl::Result<()> {
4955 encoder.debug_check_bounds::<SocketWriteSocketResponse>(offset);
4956 self.0.encode(encoder, offset + 0, depth)?;
4960 Ok(())
4961 }
4962 }
4963
4964 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
4965 for SocketWriteSocketResponse
4966 {
4967 #[inline(always)]
4968 fn new_empty() -> Self {
4969 Self { wrote: fidl::new_empty!(u64, D) }
4970 }
4971
4972 #[inline]
4973 unsafe fn decode(
4974 &mut self,
4975 decoder: &mut fidl::encoding::Decoder<'_, D>,
4976 offset: usize,
4977 _depth: fidl::encoding::Depth,
4978 ) -> fidl::Result<()> {
4979 decoder.debug_check_bounds::<Self>(offset);
4980 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
4981 unsafe {
4984 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 8);
4985 }
4986 Ok(())
4987 }
4988 }
4989
4990 impl fidl::encoding::ValueTypeMarker for StreamingReadInProgress {
4991 type Borrowed<'a> = &'a Self;
4992 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4993 value
4994 }
4995 }
4996
4997 unsafe impl fidl::encoding::TypeMarker for StreamingReadInProgress {
4998 type Owned = Self;
4999
5000 #[inline(always)]
5001 fn inline_align(_context: fidl::encoding::Context) -> usize {
5002 1
5003 }
5004
5005 #[inline(always)]
5006 fn inline_size(_context: fidl::encoding::Context) -> usize {
5007 1
5008 }
5009 }
5010
5011 unsafe impl<D: fidl::encoding::ResourceDialect>
5012 fidl::encoding::Encode<StreamingReadInProgress, D> for &StreamingReadInProgress
5013 {
5014 #[inline]
5015 unsafe fn encode(
5016 self,
5017 encoder: &mut fidl::encoding::Encoder<'_, D>,
5018 offset: usize,
5019 _depth: fidl::encoding::Depth,
5020 ) -> fidl::Result<()> {
5021 encoder.debug_check_bounds::<StreamingReadInProgress>(offset);
5022 encoder.write_num(0u8, offset);
5023 Ok(())
5024 }
5025 }
5026
5027 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
5028 for StreamingReadInProgress
5029 {
5030 #[inline(always)]
5031 fn new_empty() -> Self {
5032 Self
5033 }
5034
5035 #[inline]
5036 unsafe fn decode(
5037 &mut self,
5038 decoder: &mut fidl::encoding::Decoder<'_, D>,
5039 offset: usize,
5040 _depth: fidl::encoding::Depth,
5041 ) -> fidl::Result<()> {
5042 decoder.debug_check_bounds::<Self>(offset);
5043 match decoder.read_num::<u8>(offset) {
5044 0 => Ok(()),
5045 _ => Err(fidl::Error::Invalid),
5046 }
5047 }
5048 }
5049
5050 impl fidl::encoding::ValueTypeMarker for WriteSocketError {
5051 type Borrowed<'a> = &'a Self;
5052 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5053 value
5054 }
5055 }
5056
5057 unsafe impl fidl::encoding::TypeMarker for WriteSocketError {
5058 type Owned = Self;
5059
5060 #[inline(always)]
5061 fn inline_align(_context: fidl::encoding::Context) -> usize {
5062 8
5063 }
5064
5065 #[inline(always)]
5066 fn inline_size(_context: fidl::encoding::Context) -> usize {
5067 24
5068 }
5069 }
5070
5071 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<WriteSocketError, D>
5072 for &WriteSocketError
5073 {
5074 #[inline]
5075 unsafe fn encode(
5076 self,
5077 encoder: &mut fidl::encoding::Encoder<'_, D>,
5078 offset: usize,
5079 _depth: fidl::encoding::Depth,
5080 ) -> fidl::Result<()> {
5081 encoder.debug_check_bounds::<WriteSocketError>(offset);
5082 fidl::encoding::Encode::<WriteSocketError, D>::encode(
5084 (
5085 <Error as fidl::encoding::ValueTypeMarker>::borrow(&self.error),
5086 <u64 as fidl::encoding::ValueTypeMarker>::borrow(&self.wrote),
5087 ),
5088 encoder,
5089 offset,
5090 _depth,
5091 )
5092 }
5093 }
5094 unsafe impl<
5095 D: fidl::encoding::ResourceDialect,
5096 T0: fidl::encoding::Encode<Error, D>,
5097 T1: fidl::encoding::Encode<u64, D>,
5098 > fidl::encoding::Encode<WriteSocketError, D> for (T0, T1)
5099 {
5100 #[inline]
5101 unsafe fn encode(
5102 self,
5103 encoder: &mut fidl::encoding::Encoder<'_, D>,
5104 offset: usize,
5105 depth: fidl::encoding::Depth,
5106 ) -> fidl::Result<()> {
5107 encoder.debug_check_bounds::<WriteSocketError>(offset);
5108 self.0.encode(encoder, offset + 0, depth)?;
5112 self.1.encode(encoder, offset + 16, depth)?;
5113 Ok(())
5114 }
5115 }
5116
5117 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for WriteSocketError {
5118 #[inline(always)]
5119 fn new_empty() -> Self {
5120 Self { error: fidl::new_empty!(Error, D), wrote: fidl::new_empty!(u64, D) }
5121 }
5122
5123 #[inline]
5124 unsafe fn decode(
5125 &mut self,
5126 decoder: &mut fidl::encoding::Decoder<'_, D>,
5127 offset: usize,
5128 _depth: fidl::encoding::Depth,
5129 ) -> fidl::Result<()> {
5130 decoder.debug_check_bounds::<Self>(offset);
5131 fidl::decode!(Error, D, &mut self.error, decoder, offset + 0, _depth)?;
5133 fidl::decode!(u64, D, &mut self.wrote, decoder, offset + 16, _depth)?;
5134 Ok(())
5135 }
5136 }
5137
5138 impl fidl::encoding::ValueTypeMarker for WrongHandleType {
5139 type Borrowed<'a> = &'a Self;
5140 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5141 value
5142 }
5143 }
5144
5145 unsafe impl fidl::encoding::TypeMarker for WrongHandleType {
5146 type Owned = Self;
5147
5148 #[inline(always)]
5149 fn inline_align(_context: fidl::encoding::Context) -> usize {
5150 4
5151 }
5152
5153 #[inline(always)]
5154 fn inline_size(_context: fidl::encoding::Context) -> usize {
5155 8
5156 }
5157 }
5158
5159 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<WrongHandleType, D>
5160 for &WrongHandleType
5161 {
5162 #[inline]
5163 unsafe fn encode(
5164 self,
5165 encoder: &mut fidl::encoding::Encoder<'_, D>,
5166 offset: usize,
5167 _depth: fidl::encoding::Depth,
5168 ) -> fidl::Result<()> {
5169 encoder.debug_check_bounds::<WrongHandleType>(offset);
5170 fidl::encoding::Encode::<WrongHandleType, D>::encode(
5172 (
5173 <fidl::ObjectType as fidl::encoding::ValueTypeMarker>::borrow(&self.expected),
5174 <fidl::ObjectType as fidl::encoding::ValueTypeMarker>::borrow(&self.got),
5175 ),
5176 encoder,
5177 offset,
5178 _depth,
5179 )
5180 }
5181 }
5182 unsafe impl<
5183 D: fidl::encoding::ResourceDialect,
5184 T0: fidl::encoding::Encode<fidl::ObjectType, D>,
5185 T1: fidl::encoding::Encode<fidl::ObjectType, D>,
5186 > fidl::encoding::Encode<WrongHandleType, D> for (T0, T1)
5187 {
5188 #[inline]
5189 unsafe fn encode(
5190 self,
5191 encoder: &mut fidl::encoding::Encoder<'_, D>,
5192 offset: usize,
5193 depth: fidl::encoding::Depth,
5194 ) -> fidl::Result<()> {
5195 encoder.debug_check_bounds::<WrongHandleType>(offset);
5196 self.0.encode(encoder, offset + 0, depth)?;
5200 self.1.encode(encoder, offset + 4, depth)?;
5201 Ok(())
5202 }
5203 }
5204
5205 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for WrongHandleType {
5206 #[inline(always)]
5207 fn new_empty() -> Self {
5208 Self {
5209 expected: fidl::new_empty!(fidl::ObjectType, D),
5210 got: fidl::new_empty!(fidl::ObjectType, D),
5211 }
5212 }
5213
5214 #[inline]
5215 unsafe fn decode(
5216 &mut self,
5217 decoder: &mut fidl::encoding::Decoder<'_, D>,
5218 offset: usize,
5219 _depth: fidl::encoding::Depth,
5220 ) -> fidl::Result<()> {
5221 decoder.debug_check_bounds::<Self>(offset);
5222 fidl::decode!(fidl::ObjectType, D, &mut self.expected, decoder, offset + 0, _depth)?;
5224 fidl::decode!(fidl::ObjectType, D, &mut self.got, decoder, offset + 4, _depth)?;
5225 Ok(())
5226 }
5227 }
5228
5229 impl fidl::encoding::ValueTypeMarker for WroteToSelf {
5230 type Borrowed<'a> = &'a Self;
5231 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5232 value
5233 }
5234 }
5235
5236 unsafe impl fidl::encoding::TypeMarker for WroteToSelf {
5237 type Owned = Self;
5238
5239 #[inline(always)]
5240 fn inline_align(_context: fidl::encoding::Context) -> usize {
5241 1
5242 }
5243
5244 #[inline(always)]
5245 fn inline_size(_context: fidl::encoding::Context) -> usize {
5246 1
5247 }
5248 }
5249
5250 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<WroteToSelf, D>
5251 for &WroteToSelf
5252 {
5253 #[inline]
5254 unsafe fn encode(
5255 self,
5256 encoder: &mut fidl::encoding::Encoder<'_, D>,
5257 offset: usize,
5258 _depth: fidl::encoding::Depth,
5259 ) -> fidl::Result<()> {
5260 encoder.debug_check_bounds::<WroteToSelf>(offset);
5261 encoder.write_num(0u8, offset);
5262 Ok(())
5263 }
5264 }
5265
5266 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for WroteToSelf {
5267 #[inline(always)]
5268 fn new_empty() -> Self {
5269 Self
5270 }
5271
5272 #[inline]
5273 unsafe fn decode(
5274 &mut self,
5275 decoder: &mut fidl::encoding::Decoder<'_, D>,
5276 offset: usize,
5277 _depth: fidl::encoding::Depth,
5278 ) -> fidl::Result<()> {
5279 decoder.debug_check_bounds::<Self>(offset);
5280 match decoder.read_num::<u8>(offset) {
5281 0 => Ok(()),
5282 _ => Err(fidl::Error::Invalid),
5283 }
5284 }
5285 }
5286
5287 impl fidl::encoding::ValueTypeMarker for ChannelSent {
5288 type Borrowed<'a> = &'a Self;
5289 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5290 value
5291 }
5292 }
5293
5294 unsafe impl fidl::encoding::TypeMarker for ChannelSent {
5295 type Owned = Self;
5296
5297 #[inline(always)]
5298 fn inline_align(_context: fidl::encoding::Context) -> usize {
5299 8
5300 }
5301
5302 #[inline(always)]
5303 fn inline_size(_context: fidl::encoding::Context) -> usize {
5304 16
5305 }
5306 }
5307
5308 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ChannelSent, D>
5309 for &ChannelSent
5310 {
5311 #[inline]
5312 unsafe fn encode(
5313 self,
5314 encoder: &mut fidl::encoding::Encoder<'_, D>,
5315 offset: usize,
5316 _depth: fidl::encoding::Depth,
5317 ) -> fidl::Result<()> {
5318 encoder.debug_check_bounds::<ChannelSent>(offset);
5319 encoder.write_num::<u64>(self.ordinal(), offset);
5320 match self {
5321 ChannelSent::Message(ref val) => {
5322 fidl::encoding::encode_in_envelope::<ChannelMessage, D>(
5323 <ChannelMessage as fidl::encoding::ValueTypeMarker>::borrow(val),
5324 encoder,
5325 offset + 8,
5326 _depth,
5327 )
5328 }
5329 ChannelSent::Stopped(ref val) => {
5330 fidl::encoding::encode_in_envelope::<AioStopped, D>(
5331 <AioStopped as fidl::encoding::ValueTypeMarker>::borrow(val),
5332 encoder,
5333 offset + 8,
5334 _depth,
5335 )
5336 }
5337 ChannelSent::__SourceBreaking { .. } => Err(fidl::Error::UnknownUnionTag),
5338 }
5339 }
5340 }
5341
5342 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ChannelSent {
5343 #[inline(always)]
5344 fn new_empty() -> Self {
5345 Self::__SourceBreaking { unknown_ordinal: 0 }
5346 }
5347
5348 #[inline]
5349 unsafe fn decode(
5350 &mut self,
5351 decoder: &mut fidl::encoding::Decoder<'_, D>,
5352 offset: usize,
5353 mut depth: fidl::encoding::Depth,
5354 ) -> fidl::Result<()> {
5355 decoder.debug_check_bounds::<Self>(offset);
5356 #[allow(unused_variables)]
5357 let next_out_of_line = decoder.next_out_of_line();
5358 let handles_before = decoder.remaining_handles();
5359 let (ordinal, inlined, num_bytes, num_handles) =
5360 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
5361
5362 let member_inline_size = match ordinal {
5363 1 => <ChannelMessage as fidl::encoding::TypeMarker>::inline_size(decoder.context),
5364 2 => <AioStopped as fidl::encoding::TypeMarker>::inline_size(decoder.context),
5365 0 => return Err(fidl::Error::UnknownUnionTag),
5366 _ => num_bytes as usize,
5367 };
5368
5369 if inlined != (member_inline_size <= 4) {
5370 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5371 }
5372 let _inner_offset;
5373 if inlined {
5374 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
5375 _inner_offset = offset + 8;
5376 } else {
5377 depth.increment()?;
5378 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5379 }
5380 match ordinal {
5381 1 => {
5382 #[allow(irrefutable_let_patterns)]
5383 if let ChannelSent::Message(_) = self {
5384 } else {
5386 *self = ChannelSent::Message(fidl::new_empty!(ChannelMessage, D));
5388 }
5389 #[allow(irrefutable_let_patterns)]
5390 if let ChannelSent::Message(ref mut val) = self {
5391 fidl::decode!(ChannelMessage, D, val, decoder, _inner_offset, depth)?;
5392 } else {
5393 unreachable!()
5394 }
5395 }
5396 2 => {
5397 #[allow(irrefutable_let_patterns)]
5398 if let ChannelSent::Stopped(_) = self {
5399 } else {
5401 *self = ChannelSent::Stopped(fidl::new_empty!(AioStopped, D));
5403 }
5404 #[allow(irrefutable_let_patterns)]
5405 if let ChannelSent::Stopped(ref mut val) = self {
5406 fidl::decode!(AioStopped, D, val, decoder, _inner_offset, depth)?;
5407 } else {
5408 unreachable!()
5409 }
5410 }
5411 #[allow(deprecated)]
5412 ordinal => {
5413 for _ in 0..num_handles {
5414 decoder.drop_next_handle()?;
5415 }
5416 *self = ChannelSent::__SourceBreaking { unknown_ordinal: ordinal };
5417 }
5418 }
5419 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
5420 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5421 }
5422 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5423 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5424 }
5425 Ok(())
5426 }
5427 }
5428
5429 impl fidl::encoding::ValueTypeMarker for Error {
5430 type Borrowed<'a> = &'a Self;
5431 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5432 value
5433 }
5434 }
5435
5436 unsafe impl fidl::encoding::TypeMarker for Error {
5437 type Owned = Self;
5438
5439 #[inline(always)]
5440 fn inline_align(_context: fidl::encoding::Context) -> usize {
5441 8
5442 }
5443
5444 #[inline(always)]
5445 fn inline_size(_context: fidl::encoding::Context) -> usize {
5446 16
5447 }
5448 }
5449
5450 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Error, D> for &Error {
5451 #[inline]
5452 unsafe fn encode(
5453 self,
5454 encoder: &mut fidl::encoding::Encoder<'_, D>,
5455 offset: usize,
5456 _depth: fidl::encoding::Depth,
5457 ) -> fidl::Result<()> {
5458 encoder.debug_check_bounds::<Error>(offset);
5459 encoder.write_num::<u64>(self.ordinal(), offset);
5460 match self {
5461 Error::TargetError(ref val) => fidl::encoding::encode_in_envelope::<i32, D>(
5462 <i32 as fidl::encoding::ValueTypeMarker>::borrow(val),
5463 encoder,
5464 offset + 8,
5465 _depth,
5466 ),
5467 Error::BadHandleId(ref val) => {
5468 fidl::encoding::encode_in_envelope::<BadHandleId, D>(
5469 <BadHandleId as fidl::encoding::ValueTypeMarker>::borrow(val),
5470 encoder,
5471 offset + 8,
5472 _depth,
5473 )
5474 }
5475 Error::NewHandleIdOutOfRange(ref val) => {
5476 fidl::encoding::encode_in_envelope::<NewHandleIdOutOfRange, D>(
5477 <NewHandleIdOutOfRange as fidl::encoding::ValueTypeMarker>::borrow(val),
5478 encoder,
5479 offset + 8,
5480 _depth,
5481 )
5482 }
5483 Error::NewHandleIdReused(ref val) => {
5484 fidl::encoding::encode_in_envelope::<NewHandleIdReused, D>(
5485 <NewHandleIdReused as fidl::encoding::ValueTypeMarker>::borrow(val),
5486 encoder,
5487 offset + 8,
5488 _depth,
5489 )
5490 }
5491 Error::WrongHandleType(ref val) => {
5492 fidl::encoding::encode_in_envelope::<WrongHandleType, D>(
5493 <WrongHandleType as fidl::encoding::ValueTypeMarker>::borrow(val),
5494 encoder,
5495 offset + 8,
5496 _depth,
5497 )
5498 }
5499 Error::StreamingReadInProgress(ref val) => {
5500 fidl::encoding::encode_in_envelope::<StreamingReadInProgress, D>(
5501 <StreamingReadInProgress as fidl::encoding::ValueTypeMarker>::borrow(val),
5502 encoder,
5503 offset + 8,
5504 _depth,
5505 )
5506 }
5507 Error::NoReadInProgress(ref val) => {
5508 fidl::encoding::encode_in_envelope::<NoReadInProgress, D>(
5509 <NoReadInProgress as fidl::encoding::ValueTypeMarker>::borrow(val),
5510 encoder,
5511 offset + 8,
5512 _depth,
5513 )
5514 }
5515 Error::WroteToSelf(ref val) => {
5516 fidl::encoding::encode_in_envelope::<WroteToSelf, D>(
5517 <WroteToSelf as fidl::encoding::ValueTypeMarker>::borrow(val),
5518 encoder,
5519 offset + 8,
5520 _depth,
5521 )
5522 }
5523 Error::ClosedDuringRead(ref val) => {
5524 fidl::encoding::encode_in_envelope::<ClosedDuringRead, D>(
5525 <ClosedDuringRead as fidl::encoding::ValueTypeMarker>::borrow(val),
5526 encoder,
5527 offset + 8,
5528 _depth,
5529 )
5530 }
5531 Error::SignalsUnknown(ref val) => {
5532 fidl::encoding::encode_in_envelope::<SignalsUnknown, D>(
5533 <SignalsUnknown as fidl::encoding::ValueTypeMarker>::borrow(val),
5534 encoder,
5535 offset + 8,
5536 _depth,
5537 )
5538 }
5539 Error::RightsUnknown(ref val) => {
5540 fidl::encoding::encode_in_envelope::<RightsUnknown, D>(
5541 <RightsUnknown as fidl::encoding::ValueTypeMarker>::borrow(val),
5542 encoder,
5543 offset + 8,
5544 _depth,
5545 )
5546 }
5547 Error::SocketDispositionUnknown(ref val) => {
5548 fidl::encoding::encode_in_envelope::<SocketDispositionUnknown, D>(
5549 <SocketDispositionUnknown as fidl::encoding::ValueTypeMarker>::borrow(val),
5550 encoder,
5551 offset + 8,
5552 _depth,
5553 )
5554 }
5555 Error::SocketTypeUnknown(ref val) => {
5556 fidl::encoding::encode_in_envelope::<SocketTypeUnknown, D>(
5557 <SocketTypeUnknown as fidl::encoding::ValueTypeMarker>::borrow(val),
5558 encoder,
5559 offset + 8,
5560 _depth,
5561 )
5562 }
5563 Error::__SourceBreaking { .. } => Err(fidl::Error::UnknownUnionTag),
5564 }
5565 }
5566 }
5567
5568 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Error {
5569 #[inline(always)]
5570 fn new_empty() -> Self {
5571 Self::__SourceBreaking { unknown_ordinal: 0 }
5572 }
5573
5574 #[inline]
5575 unsafe fn decode(
5576 &mut self,
5577 decoder: &mut fidl::encoding::Decoder<'_, D>,
5578 offset: usize,
5579 mut depth: fidl::encoding::Depth,
5580 ) -> fidl::Result<()> {
5581 decoder.debug_check_bounds::<Self>(offset);
5582 #[allow(unused_variables)]
5583 let next_out_of_line = decoder.next_out_of_line();
5584 let handles_before = decoder.remaining_handles();
5585 let (ordinal, inlined, num_bytes, num_handles) =
5586 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
5587
5588 let member_inline_size = match ordinal {
5589 1 => <i32 as fidl::encoding::TypeMarker>::inline_size(decoder.context),
5590 2 => <BadHandleId as fidl::encoding::TypeMarker>::inline_size(decoder.context),
5591 3 => <NewHandleIdOutOfRange as fidl::encoding::TypeMarker>::inline_size(
5592 decoder.context,
5593 ),
5594 4 => {
5595 <NewHandleIdReused as fidl::encoding::TypeMarker>::inline_size(decoder.context)
5596 }
5597 5 => <WrongHandleType as fidl::encoding::TypeMarker>::inline_size(decoder.context),
5598 6 => <StreamingReadInProgress as fidl::encoding::TypeMarker>::inline_size(
5599 decoder.context,
5600 ),
5601 7 => <NoReadInProgress as fidl::encoding::TypeMarker>::inline_size(decoder.context),
5602 8 => <WroteToSelf as fidl::encoding::TypeMarker>::inline_size(decoder.context),
5603 9 => <ClosedDuringRead as fidl::encoding::TypeMarker>::inline_size(decoder.context),
5604 10 => <SignalsUnknown as fidl::encoding::TypeMarker>::inline_size(decoder.context),
5605 11 => <RightsUnknown as fidl::encoding::TypeMarker>::inline_size(decoder.context),
5606 12 => <SocketDispositionUnknown as fidl::encoding::TypeMarker>::inline_size(
5607 decoder.context,
5608 ),
5609 13 => {
5610 <SocketTypeUnknown as fidl::encoding::TypeMarker>::inline_size(decoder.context)
5611 }
5612 0 => return Err(fidl::Error::UnknownUnionTag),
5613 _ => num_bytes as usize,
5614 };
5615
5616 if inlined != (member_inline_size <= 4) {
5617 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5618 }
5619 let _inner_offset;
5620 if inlined {
5621 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
5622 _inner_offset = offset + 8;
5623 } else {
5624 depth.increment()?;
5625 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5626 }
5627 match ordinal {
5628 1 => {
5629 #[allow(irrefutable_let_patterns)]
5630 if let Error::TargetError(_) = self {
5631 } else {
5633 *self = Error::TargetError(fidl::new_empty!(i32, D));
5635 }
5636 #[allow(irrefutable_let_patterns)]
5637 if let Error::TargetError(ref mut val) = self {
5638 fidl::decode!(i32, D, val, decoder, _inner_offset, depth)?;
5639 } else {
5640 unreachable!()
5641 }
5642 }
5643 2 => {
5644 #[allow(irrefutable_let_patterns)]
5645 if let Error::BadHandleId(_) = self {
5646 } else {
5648 *self = Error::BadHandleId(fidl::new_empty!(BadHandleId, D));
5650 }
5651 #[allow(irrefutable_let_patterns)]
5652 if let Error::BadHandleId(ref mut val) = self {
5653 fidl::decode!(BadHandleId, D, val, decoder, _inner_offset, depth)?;
5654 } else {
5655 unreachable!()
5656 }
5657 }
5658 3 => {
5659 #[allow(irrefutable_let_patterns)]
5660 if let Error::NewHandleIdOutOfRange(_) = self {
5661 } else {
5663 *self = Error::NewHandleIdOutOfRange(fidl::new_empty!(
5665 NewHandleIdOutOfRange,
5666 D
5667 ));
5668 }
5669 #[allow(irrefutable_let_patterns)]
5670 if let Error::NewHandleIdOutOfRange(ref mut val) = self {
5671 fidl::decode!(
5672 NewHandleIdOutOfRange,
5673 D,
5674 val,
5675 decoder,
5676 _inner_offset,
5677 depth
5678 )?;
5679 } else {
5680 unreachable!()
5681 }
5682 }
5683 4 => {
5684 #[allow(irrefutable_let_patterns)]
5685 if let Error::NewHandleIdReused(_) = self {
5686 } else {
5688 *self = Error::NewHandleIdReused(fidl::new_empty!(NewHandleIdReused, D));
5690 }
5691 #[allow(irrefutable_let_patterns)]
5692 if let Error::NewHandleIdReused(ref mut val) = self {
5693 fidl::decode!(NewHandleIdReused, D, val, decoder, _inner_offset, depth)?;
5694 } else {
5695 unreachable!()
5696 }
5697 }
5698 5 => {
5699 #[allow(irrefutable_let_patterns)]
5700 if let Error::WrongHandleType(_) = self {
5701 } else {
5703 *self = Error::WrongHandleType(fidl::new_empty!(WrongHandleType, D));
5705 }
5706 #[allow(irrefutable_let_patterns)]
5707 if let Error::WrongHandleType(ref mut val) = self {
5708 fidl::decode!(WrongHandleType, D, val, decoder, _inner_offset, depth)?;
5709 } else {
5710 unreachable!()
5711 }
5712 }
5713 6 => {
5714 #[allow(irrefutable_let_patterns)]
5715 if let Error::StreamingReadInProgress(_) = self {
5716 } else {
5718 *self = Error::StreamingReadInProgress(fidl::new_empty!(
5720 StreamingReadInProgress,
5721 D
5722 ));
5723 }
5724 #[allow(irrefutable_let_patterns)]
5725 if let Error::StreamingReadInProgress(ref mut val) = self {
5726 fidl::decode!(
5727 StreamingReadInProgress,
5728 D,
5729 val,
5730 decoder,
5731 _inner_offset,
5732 depth
5733 )?;
5734 } else {
5735 unreachable!()
5736 }
5737 }
5738 7 => {
5739 #[allow(irrefutable_let_patterns)]
5740 if let Error::NoReadInProgress(_) = self {
5741 } else {
5743 *self = Error::NoReadInProgress(fidl::new_empty!(NoReadInProgress, D));
5745 }
5746 #[allow(irrefutable_let_patterns)]
5747 if let Error::NoReadInProgress(ref mut val) = self {
5748 fidl::decode!(NoReadInProgress, D, val, decoder, _inner_offset, depth)?;
5749 } else {
5750 unreachable!()
5751 }
5752 }
5753 8 => {
5754 #[allow(irrefutable_let_patterns)]
5755 if let Error::WroteToSelf(_) = self {
5756 } else {
5758 *self = Error::WroteToSelf(fidl::new_empty!(WroteToSelf, D));
5760 }
5761 #[allow(irrefutable_let_patterns)]
5762 if let Error::WroteToSelf(ref mut val) = self {
5763 fidl::decode!(WroteToSelf, D, val, decoder, _inner_offset, depth)?;
5764 } else {
5765 unreachable!()
5766 }
5767 }
5768 9 => {
5769 #[allow(irrefutable_let_patterns)]
5770 if let Error::ClosedDuringRead(_) = self {
5771 } else {
5773 *self = Error::ClosedDuringRead(fidl::new_empty!(ClosedDuringRead, D));
5775 }
5776 #[allow(irrefutable_let_patterns)]
5777 if let Error::ClosedDuringRead(ref mut val) = self {
5778 fidl::decode!(ClosedDuringRead, D, val, decoder, _inner_offset, depth)?;
5779 } else {
5780 unreachable!()
5781 }
5782 }
5783 10 => {
5784 #[allow(irrefutable_let_patterns)]
5785 if let Error::SignalsUnknown(_) = self {
5786 } else {
5788 *self = Error::SignalsUnknown(fidl::new_empty!(SignalsUnknown, D));
5790 }
5791 #[allow(irrefutable_let_patterns)]
5792 if let Error::SignalsUnknown(ref mut val) = self {
5793 fidl::decode!(SignalsUnknown, D, val, decoder, _inner_offset, depth)?;
5794 } else {
5795 unreachable!()
5796 }
5797 }
5798 11 => {
5799 #[allow(irrefutable_let_patterns)]
5800 if let Error::RightsUnknown(_) = self {
5801 } else {
5803 *self = Error::RightsUnknown(fidl::new_empty!(RightsUnknown, D));
5805 }
5806 #[allow(irrefutable_let_patterns)]
5807 if let Error::RightsUnknown(ref mut val) = self {
5808 fidl::decode!(RightsUnknown, D, val, decoder, _inner_offset, depth)?;
5809 } else {
5810 unreachable!()
5811 }
5812 }
5813 12 => {
5814 #[allow(irrefutable_let_patterns)]
5815 if let Error::SocketDispositionUnknown(_) = self {
5816 } else {
5818 *self = Error::SocketDispositionUnknown(fidl::new_empty!(
5820 SocketDispositionUnknown,
5821 D
5822 ));
5823 }
5824 #[allow(irrefutable_let_patterns)]
5825 if let Error::SocketDispositionUnknown(ref mut val) = self {
5826 fidl::decode!(
5827 SocketDispositionUnknown,
5828 D,
5829 val,
5830 decoder,
5831 _inner_offset,
5832 depth
5833 )?;
5834 } else {
5835 unreachable!()
5836 }
5837 }
5838 13 => {
5839 #[allow(irrefutable_let_patterns)]
5840 if let Error::SocketTypeUnknown(_) = self {
5841 } else {
5843 *self = Error::SocketTypeUnknown(fidl::new_empty!(SocketTypeUnknown, D));
5845 }
5846 #[allow(irrefutable_let_patterns)]
5847 if let Error::SocketTypeUnknown(ref mut val) = self {
5848 fidl::decode!(SocketTypeUnknown, D, val, decoder, _inner_offset, depth)?;
5849 } else {
5850 unreachable!()
5851 }
5852 }
5853 #[allow(deprecated)]
5854 ordinal => {
5855 for _ in 0..num_handles {
5856 decoder.drop_next_handle()?;
5857 }
5858 *self = Error::__SourceBreaking { unknown_ordinal: ordinal };
5859 }
5860 }
5861 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
5862 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5863 }
5864 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5865 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5866 }
5867 Ok(())
5868 }
5869 }
5870
5871 impl fidl::encoding::ValueTypeMarker for HandleOp {
5872 type Borrowed<'a> = &'a Self;
5873 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5874 value
5875 }
5876 }
5877
5878 unsafe impl fidl::encoding::TypeMarker for HandleOp {
5879 type Owned = Self;
5880
5881 #[inline(always)]
5882 fn inline_align(_context: fidl::encoding::Context) -> usize {
5883 8
5884 }
5885
5886 #[inline(always)]
5887 fn inline_size(_context: fidl::encoding::Context) -> usize {
5888 16
5889 }
5890 }
5891
5892 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<HandleOp, D> for &HandleOp {
5893 #[inline]
5894 unsafe fn encode(
5895 self,
5896 encoder: &mut fidl::encoding::Encoder<'_, D>,
5897 offset: usize,
5898 _depth: fidl::encoding::Depth,
5899 ) -> fidl::Result<()> {
5900 encoder.debug_check_bounds::<HandleOp>(offset);
5901 encoder.write_num::<u64>(self.ordinal(), offset);
5902 match self {
5903 HandleOp::Move_(ref val) => fidl::encoding::encode_in_envelope::<HandleId, D>(
5904 <HandleId as fidl::encoding::ValueTypeMarker>::borrow(val),
5905 encoder,
5906 offset + 8,
5907 _depth,
5908 ),
5909 HandleOp::Duplicate(ref val) => fidl::encoding::encode_in_envelope::<HandleId, D>(
5910 <HandleId as fidl::encoding::ValueTypeMarker>::borrow(val),
5911 encoder,
5912 offset + 8,
5913 _depth,
5914 ),
5915 }
5916 }
5917 }
5918
5919 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for HandleOp {
5920 #[inline(always)]
5921 fn new_empty() -> Self {
5922 Self::Move_(fidl::new_empty!(HandleId, D))
5923 }
5924
5925 #[inline]
5926 unsafe fn decode(
5927 &mut self,
5928 decoder: &mut fidl::encoding::Decoder<'_, D>,
5929 offset: usize,
5930 mut depth: fidl::encoding::Depth,
5931 ) -> fidl::Result<()> {
5932 decoder.debug_check_bounds::<Self>(offset);
5933 #[allow(unused_variables)]
5934 let next_out_of_line = decoder.next_out_of_line();
5935 let handles_before = decoder.remaining_handles();
5936 let (ordinal, inlined, num_bytes, num_handles) =
5937 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
5938
5939 let member_inline_size = match ordinal {
5940 1 => <HandleId as fidl::encoding::TypeMarker>::inline_size(decoder.context),
5941 2 => <HandleId as fidl::encoding::TypeMarker>::inline_size(decoder.context),
5942 _ => return Err(fidl::Error::UnknownUnionTag),
5943 };
5944
5945 if inlined != (member_inline_size <= 4) {
5946 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5947 }
5948 let _inner_offset;
5949 if inlined {
5950 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
5951 _inner_offset = offset + 8;
5952 } else {
5953 depth.increment()?;
5954 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5955 }
5956 match ordinal {
5957 1 => {
5958 #[allow(irrefutable_let_patterns)]
5959 if let HandleOp::Move_(_) = self {
5960 } else {
5962 *self = HandleOp::Move_(fidl::new_empty!(HandleId, D));
5964 }
5965 #[allow(irrefutable_let_patterns)]
5966 if let HandleOp::Move_(ref mut val) = self {
5967 fidl::decode!(HandleId, D, val, decoder, _inner_offset, depth)?;
5968 } else {
5969 unreachable!()
5970 }
5971 }
5972 2 => {
5973 #[allow(irrefutable_let_patterns)]
5974 if let HandleOp::Duplicate(_) = self {
5975 } else {
5977 *self = HandleOp::Duplicate(fidl::new_empty!(HandleId, D));
5979 }
5980 #[allow(irrefutable_let_patterns)]
5981 if let HandleOp::Duplicate(ref mut val) = self {
5982 fidl::decode!(HandleId, D, val, decoder, _inner_offset, depth)?;
5983 } else {
5984 unreachable!()
5985 }
5986 }
5987 ordinal => panic!("unexpected ordinal {:?}", ordinal),
5988 }
5989 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
5990 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5991 }
5992 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5993 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5994 }
5995 Ok(())
5996 }
5997 }
5998
5999 impl fidl::encoding::ValueTypeMarker for Handles {
6000 type Borrowed<'a> = &'a Self;
6001 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6002 value
6003 }
6004 }
6005
6006 unsafe impl fidl::encoding::TypeMarker for Handles {
6007 type Owned = Self;
6008
6009 #[inline(always)]
6010 fn inline_align(_context: fidl::encoding::Context) -> usize {
6011 8
6012 }
6013
6014 #[inline(always)]
6015 fn inline_size(_context: fidl::encoding::Context) -> usize {
6016 16
6017 }
6018 }
6019
6020 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Handles, D> for &Handles {
6021 #[inline]
6022 unsafe fn encode(
6023 self,
6024 encoder: &mut fidl::encoding::Encoder<'_, D>,
6025 offset: usize,
6026 _depth: fidl::encoding::Depth,
6027 ) -> fidl::Result<()> {
6028 encoder.debug_check_bounds::<Handles>(offset);
6029 encoder.write_num::<u64>(self.ordinal(), offset);
6030 match self {
6031 Handles::Handles(ref val) => {
6032 fidl::encoding::encode_in_envelope::<fidl::encoding::Vector<HandleId, 64>, D>(
6033 <fidl::encoding::Vector<HandleId, 64> as fidl::encoding::ValueTypeMarker>::borrow(val),
6034 encoder, offset + 8, _depth
6035 )
6036 }
6037 Handles::Dispositions(ref val) => {
6038 fidl::encoding::encode_in_envelope::<fidl::encoding::Vector<HandleDisposition, 64>, D>(
6039 <fidl::encoding::Vector<HandleDisposition, 64> as fidl::encoding::ValueTypeMarker>::borrow(val),
6040 encoder, offset + 8, _depth
6041 )
6042 }
6043 }
6044 }
6045 }
6046
6047 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Handles {
6048 #[inline(always)]
6049 fn new_empty() -> Self {
6050 Self::Handles(fidl::new_empty!(fidl::encoding::Vector<HandleId, 64>, D))
6051 }
6052
6053 #[inline]
6054 unsafe fn decode(
6055 &mut self,
6056 decoder: &mut fidl::encoding::Decoder<'_, D>,
6057 offset: usize,
6058 mut depth: fidl::encoding::Depth,
6059 ) -> fidl::Result<()> {
6060 decoder.debug_check_bounds::<Self>(offset);
6061 #[allow(unused_variables)]
6062 let next_out_of_line = decoder.next_out_of_line();
6063 let handles_before = decoder.remaining_handles();
6064 let (ordinal, inlined, num_bytes, num_handles) =
6065 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
6066
6067 let member_inline_size = match ordinal {
6068 1 => <fidl::encoding::Vector<HandleId, 64> as fidl::encoding::TypeMarker>::inline_size(decoder.context),
6069 2 => <fidl::encoding::Vector<HandleDisposition, 64> as fidl::encoding::TypeMarker>::inline_size(decoder.context),
6070 _ => return Err(fidl::Error::UnknownUnionTag),
6071 };
6072
6073 if inlined != (member_inline_size <= 4) {
6074 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6075 }
6076 let _inner_offset;
6077 if inlined {
6078 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
6079 _inner_offset = offset + 8;
6080 } else {
6081 depth.increment()?;
6082 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6083 }
6084 match ordinal {
6085 1 => {
6086 #[allow(irrefutable_let_patterns)]
6087 if let Handles::Handles(_) = self {
6088 } else {
6090 *self = Handles::Handles(
6092 fidl::new_empty!(fidl::encoding::Vector<HandleId, 64>, D),
6093 );
6094 }
6095 #[allow(irrefutable_let_patterns)]
6096 if let Handles::Handles(ref mut val) = self {
6097 fidl::decode!(fidl::encoding::Vector<HandleId, 64>, D, val, decoder, _inner_offset, depth)?;
6098 } else {
6099 unreachable!()
6100 }
6101 }
6102 2 => {
6103 #[allow(irrefutable_let_patterns)]
6104 if let Handles::Dispositions(_) = self {
6105 } else {
6107 *self = Handles::Dispositions(
6109 fidl::new_empty!(fidl::encoding::Vector<HandleDisposition, 64>, D),
6110 );
6111 }
6112 #[allow(irrefutable_let_patterns)]
6113 if let Handles::Dispositions(ref mut val) = self {
6114 fidl::decode!(fidl::encoding::Vector<HandleDisposition, 64>, D, val, decoder, _inner_offset, depth)?;
6115 } else {
6116 unreachable!()
6117 }
6118 }
6119 ordinal => panic!("unexpected ordinal {:?}", ordinal),
6120 }
6121 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
6122 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6123 }
6124 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6125 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6126 }
6127 Ok(())
6128 }
6129 }
6130
6131 impl fidl::encoding::ValueTypeMarker for SocketMessage {
6132 type Borrowed<'a> = &'a Self;
6133 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6134 value
6135 }
6136 }
6137
6138 unsafe impl fidl::encoding::TypeMarker for SocketMessage {
6139 type Owned = Self;
6140
6141 #[inline(always)]
6142 fn inline_align(_context: fidl::encoding::Context) -> usize {
6143 8
6144 }
6145
6146 #[inline(always)]
6147 fn inline_size(_context: fidl::encoding::Context) -> usize {
6148 16
6149 }
6150 }
6151
6152 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<SocketMessage, D>
6153 for &SocketMessage
6154 {
6155 #[inline]
6156 unsafe fn encode(
6157 self,
6158 encoder: &mut fidl::encoding::Encoder<'_, D>,
6159 offset: usize,
6160 _depth: fidl::encoding::Depth,
6161 ) -> fidl::Result<()> {
6162 encoder.debug_check_bounds::<SocketMessage>(offset);
6163 encoder.write_num::<u64>(self.ordinal(), offset);
6164 match self {
6165 SocketMessage::Data(ref val) => {
6166 fidl::encoding::encode_in_envelope::<SocketData, D>(
6167 <SocketData as fidl::encoding::ValueTypeMarker>::borrow(val),
6168 encoder,
6169 offset + 8,
6170 _depth,
6171 )
6172 }
6173 SocketMessage::Stopped(ref val) => {
6174 fidl::encoding::encode_in_envelope::<AioStopped, D>(
6175 <AioStopped as fidl::encoding::ValueTypeMarker>::borrow(val),
6176 encoder,
6177 offset + 8,
6178 _depth,
6179 )
6180 }
6181 SocketMessage::__SourceBreaking { .. } => Err(fidl::Error::UnknownUnionTag),
6182 }
6183 }
6184 }
6185
6186 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for SocketMessage {
6187 #[inline(always)]
6188 fn new_empty() -> Self {
6189 Self::__SourceBreaking { unknown_ordinal: 0 }
6190 }
6191
6192 #[inline]
6193 unsafe fn decode(
6194 &mut self,
6195 decoder: &mut fidl::encoding::Decoder<'_, D>,
6196 offset: usize,
6197 mut depth: fidl::encoding::Depth,
6198 ) -> fidl::Result<()> {
6199 decoder.debug_check_bounds::<Self>(offset);
6200 #[allow(unused_variables)]
6201 let next_out_of_line = decoder.next_out_of_line();
6202 let handles_before = decoder.remaining_handles();
6203 let (ordinal, inlined, num_bytes, num_handles) =
6204 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
6205
6206 let member_inline_size = match ordinal {
6207 1 => <SocketData as fidl::encoding::TypeMarker>::inline_size(decoder.context),
6208 2 => <AioStopped as fidl::encoding::TypeMarker>::inline_size(decoder.context),
6209 0 => return Err(fidl::Error::UnknownUnionTag),
6210 _ => num_bytes as usize,
6211 };
6212
6213 if inlined != (member_inline_size <= 4) {
6214 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6215 }
6216 let _inner_offset;
6217 if inlined {
6218 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
6219 _inner_offset = offset + 8;
6220 } else {
6221 depth.increment()?;
6222 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6223 }
6224 match ordinal {
6225 1 => {
6226 #[allow(irrefutable_let_patterns)]
6227 if let SocketMessage::Data(_) = self {
6228 } else {
6230 *self = SocketMessage::Data(fidl::new_empty!(SocketData, D));
6232 }
6233 #[allow(irrefutable_let_patterns)]
6234 if let SocketMessage::Data(ref mut val) = self {
6235 fidl::decode!(SocketData, D, val, decoder, _inner_offset, depth)?;
6236 } else {
6237 unreachable!()
6238 }
6239 }
6240 2 => {
6241 #[allow(irrefutable_let_patterns)]
6242 if let SocketMessage::Stopped(_) = self {
6243 } else {
6245 *self = SocketMessage::Stopped(fidl::new_empty!(AioStopped, D));
6247 }
6248 #[allow(irrefutable_let_patterns)]
6249 if let SocketMessage::Stopped(ref mut val) = self {
6250 fidl::decode!(AioStopped, D, val, decoder, _inner_offset, depth)?;
6251 } else {
6252 unreachable!()
6253 }
6254 }
6255 #[allow(deprecated)]
6256 ordinal => {
6257 for _ in 0..num_handles {
6258 decoder.drop_next_handle()?;
6259 }
6260 *self = SocketMessage::__SourceBreaking { unknown_ordinal: ordinal };
6261 }
6262 }
6263 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
6264 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6265 }
6266 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6267 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6268 }
6269 Ok(())
6270 }
6271 }
6272
6273 impl fidl::encoding::ValueTypeMarker for WriteChannelError {
6274 type Borrowed<'a> = &'a Self;
6275 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6276 value
6277 }
6278 }
6279
6280 unsafe impl fidl::encoding::TypeMarker for WriteChannelError {
6281 type Owned = Self;
6282
6283 #[inline(always)]
6284 fn inline_align(_context: fidl::encoding::Context) -> usize {
6285 8
6286 }
6287
6288 #[inline(always)]
6289 fn inline_size(_context: fidl::encoding::Context) -> usize {
6290 16
6291 }
6292 }
6293
6294 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<WriteChannelError, D>
6295 for &WriteChannelError
6296 {
6297 #[inline]
6298 unsafe fn encode(
6299 self,
6300 encoder: &mut fidl::encoding::Encoder<'_, D>,
6301 offset: usize,
6302 _depth: fidl::encoding::Depth,
6303 ) -> fidl::Result<()> {
6304 encoder.debug_check_bounds::<WriteChannelError>(offset);
6305 encoder.write_num::<u64>(self.ordinal(), offset);
6306 match self {
6307 WriteChannelError::Error(ref val) => {
6308 fidl::encoding::encode_in_envelope::<Error, D>(
6309 <Error as fidl::encoding::ValueTypeMarker>::borrow(val),
6310 encoder, offset + 8, _depth
6311 )
6312 }
6313 WriteChannelError::OpErrors(ref val) => {
6314 fidl::encoding::encode_in_envelope::<fidl::encoding::UnboundedVector<fidl::encoding::OptionalUnion<Error>>, D>(
6315 <fidl::encoding::UnboundedVector<fidl::encoding::OptionalUnion<Error>> as fidl::encoding::ValueTypeMarker>::borrow(val),
6316 encoder, offset + 8, _depth
6317 )
6318 }
6319 }
6320 }
6321 }
6322
6323 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for WriteChannelError {
6324 #[inline(always)]
6325 fn new_empty() -> Self {
6326 Self::Error(fidl::new_empty!(Error, D))
6327 }
6328
6329 #[inline]
6330 unsafe fn decode(
6331 &mut self,
6332 decoder: &mut fidl::encoding::Decoder<'_, D>,
6333 offset: usize,
6334 mut depth: fidl::encoding::Depth,
6335 ) -> fidl::Result<()> {
6336 decoder.debug_check_bounds::<Self>(offset);
6337 #[allow(unused_variables)]
6338 let next_out_of_line = decoder.next_out_of_line();
6339 let handles_before = decoder.remaining_handles();
6340 let (ordinal, inlined, num_bytes, num_handles) =
6341 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
6342
6343 let member_inline_size = match ordinal {
6344 1 => <Error as fidl::encoding::TypeMarker>::inline_size(decoder.context),
6345 2 => <fidl::encoding::UnboundedVector<fidl::encoding::OptionalUnion<Error>> as fidl::encoding::TypeMarker>::inline_size(decoder.context),
6346 _ => return Err(fidl::Error::UnknownUnionTag),
6347 };
6348
6349 if inlined != (member_inline_size <= 4) {
6350 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6351 }
6352 let _inner_offset;
6353 if inlined {
6354 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
6355 _inner_offset = offset + 8;
6356 } else {
6357 depth.increment()?;
6358 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6359 }
6360 match ordinal {
6361 1 => {
6362 #[allow(irrefutable_let_patterns)]
6363 if let WriteChannelError::Error(_) = self {
6364 } else {
6366 *self = WriteChannelError::Error(fidl::new_empty!(Error, D));
6368 }
6369 #[allow(irrefutable_let_patterns)]
6370 if let WriteChannelError::Error(ref mut val) = self {
6371 fidl::decode!(Error, D, val, decoder, _inner_offset, depth)?;
6372 } else {
6373 unreachable!()
6374 }
6375 }
6376 2 => {
6377 #[allow(irrefutable_let_patterns)]
6378 if let WriteChannelError::OpErrors(_) = self {
6379 } else {
6381 *self = WriteChannelError::OpErrors(fidl::new_empty!(
6383 fidl::encoding::UnboundedVector<fidl::encoding::OptionalUnion<Error>>,
6384 D
6385 ));
6386 }
6387 #[allow(irrefutable_let_patterns)]
6388 if let WriteChannelError::OpErrors(ref mut val) = self {
6389 fidl::decode!(
6390 fidl::encoding::UnboundedVector<fidl::encoding::OptionalUnion<Error>>,
6391 D,
6392 val,
6393 decoder,
6394 _inner_offset,
6395 depth
6396 )?;
6397 } else {
6398 unreachable!()
6399 }
6400 }
6401 ordinal => panic!("unexpected ordinal {:?}", ordinal),
6402 }
6403 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
6404 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6405 }
6406 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6407 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6408 }
6409 Ok(())
6410 }
6411 }
6412}