1#![warn(clippy::all)]
4#![allow(unused_parens, unused_mut, unused_imports, nonstandard_style)]
5
6use bitflags::bitflags;
7use fidl::encoding::{MessageBufFor, ProxyChannelBox, ResourceDialect};
8use futures::future::{self, MaybeDone, TryFutureExt};
9use zx_status;
10
11pub const ACL_PACKET_MAX: u64 = 65539;
12
13pub const BT_VENDOR_MAX_COMMAND_BUFFER_LEN: u16 = 16;
16
17pub const COMMAND_MAX: u64 = 258;
18
19pub const EVENT_MAX: u64 = 257;
20
21pub const ISO_PACKET_MAX: u64 = 16387;
22
23pub const MAX_LEGACY_ADVERTISING_DATA_LENGTH: u8 = 31;
26
27pub const MAX_LOCAL_NAME_LENGTH: u8 = 248;
30
31pub const MAX_NAME_LENGTH: u32 = 32;
32
33pub const MAX_PEER_SERVICES: u8 = 32;
35
36pub const SCO_PACKET_MAX: u64 = 258;
37
38#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
39pub enum ConnectionState {
40 Connected,
41 Disconnected,
42 #[doc(hidden)]
43 __SourceBreaking {
44 unknown_ordinal: u32,
45 },
46}
47
48#[macro_export]
50macro_rules! ConnectionStateUnknown {
51 () => {
52 _
53 };
54}
55
56impl ConnectionState {
57 #[inline]
58 pub fn from_primitive(prim: u32) -> Option<Self> {
59 match prim {
60 1 => Some(Self::Connected),
61 2 => Some(Self::Disconnected),
62 _ => None,
63 }
64 }
65
66 #[inline]
67 pub fn from_primitive_allow_unknown(prim: u32) -> Self {
68 match prim {
69 1 => Self::Connected,
70 2 => Self::Disconnected,
71 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
72 }
73 }
74
75 #[inline]
76 pub fn unknown() -> Self {
77 Self::__SourceBreaking { unknown_ordinal: 0xffffffff }
78 }
79
80 #[inline]
81 pub const fn into_primitive(self) -> u32 {
82 match self {
83 Self::Connected => 1,
84 Self::Disconnected => 2,
85 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
86 }
87 }
88
89 #[inline]
90 pub fn is_unknown(&self) -> bool {
91 match self {
92 Self::__SourceBreaking { unknown_ordinal: _ } => true,
93 _ => false,
94 }
95 }
96}
97
98#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
100pub enum EmulatorError {
101 Failed,
102 HciAlreadyPublished,
103 #[doc(hidden)]
104 __SourceBreaking {
105 unknown_ordinal: u32,
106 },
107}
108
109#[macro_export]
111macro_rules! EmulatorErrorUnknown {
112 () => {
113 _
114 };
115}
116
117impl EmulatorError {
118 #[inline]
119 pub fn from_primitive(prim: u32) -> Option<Self> {
120 match prim {
121 1 => Some(Self::Failed),
122 2 => Some(Self::HciAlreadyPublished),
123 _ => None,
124 }
125 }
126
127 #[inline]
128 pub fn from_primitive_allow_unknown(prim: u32) -> Self {
129 match prim {
130 1 => Self::Failed,
131 2 => Self::HciAlreadyPublished,
132 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
133 }
134 }
135
136 #[inline]
137 pub fn unknown() -> Self {
138 Self::__SourceBreaking { unknown_ordinal: 0xffffffff }
139 }
140
141 #[inline]
142 pub const fn into_primitive(self) -> u32 {
143 match self {
144 Self::Failed => 1,
145 Self::HciAlreadyPublished => 2,
146 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
147 }
148 }
149
150 #[inline]
151 pub fn is_unknown(&self) -> bool {
152 match self {
153 Self::__SourceBreaking { unknown_ordinal: _ } => true,
154 _ => false,
155 }
156 }
157}
158
159#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
161pub enum EmulatorPeerError {
162 AddressRepeated,
163 ParametersInvalid,
164 NotFound,
165 #[doc(hidden)]
166 __SourceBreaking {
167 unknown_ordinal: u32,
168 },
169}
170
171#[macro_export]
173macro_rules! EmulatorPeerErrorUnknown {
174 () => {
175 _
176 };
177}
178
179impl EmulatorPeerError {
180 #[inline]
181 pub fn from_primitive(prim: u32) -> Option<Self> {
182 match prim {
183 1 => Some(Self::AddressRepeated),
184 2 => Some(Self::ParametersInvalid),
185 3 => Some(Self::NotFound),
186 _ => None,
187 }
188 }
189
190 #[inline]
191 pub fn from_primitive_allow_unknown(prim: u32) -> Self {
192 match prim {
193 1 => Self::AddressRepeated,
194 2 => Self::ParametersInvalid,
195 3 => Self::NotFound,
196 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
197 }
198 }
199
200 #[inline]
201 pub fn unknown() -> Self {
202 Self::__SourceBreaking { unknown_ordinal: 0xffffffff }
203 }
204
205 #[inline]
206 pub const fn into_primitive(self) -> u32 {
207 match self {
208 Self::AddressRepeated => 1,
209 Self::ParametersInvalid => 2,
210 Self::NotFound => 3,
211 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
212 }
213 }
214
215 #[inline]
216 pub fn is_unknown(&self) -> bool {
217 match self {
218 Self::__SourceBreaking { unknown_ordinal: _ } => true,
219 _ => false,
220 }
221 }
222}
223
224#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
226pub enum HciConfig {
227 DualMode,
229 LeOnly,
231 #[doc(hidden)]
232 __SourceBreaking { unknown_ordinal: u32 },
233}
234
235#[macro_export]
237macro_rules! HciConfigUnknown {
238 () => {
239 _
240 };
241}
242
243impl HciConfig {
244 #[inline]
245 pub fn from_primitive(prim: u32) -> Option<Self> {
246 match prim {
247 1 => Some(Self::DualMode),
248 2 => Some(Self::LeOnly),
249 _ => None,
250 }
251 }
252
253 #[inline]
254 pub fn from_primitive_allow_unknown(prim: u32) -> Self {
255 match prim {
256 1 => Self::DualMode,
257 2 => Self::LeOnly,
258 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
259 }
260 }
261
262 #[inline]
263 pub fn unknown() -> Self {
264 Self::__SourceBreaking { unknown_ordinal: 0xffffffff }
265 }
266
267 #[inline]
268 pub const fn into_primitive(self) -> u32 {
269 match self {
270 Self::DualMode => 1,
271 Self::LeOnly => 2,
272 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
273 }
274 }
275
276 #[inline]
277 pub fn is_unknown(&self) -> bool {
278 match self {
279 Self::__SourceBreaking { unknown_ordinal: _ } => true,
280 _ => false,
281 }
282 }
283}
284
285#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
288pub enum HciError {
289 Success,
290 UnknownCommand,
291 UnknownConnectionId,
292 HardwareFailure,
293 PageTimeout,
294 AuthenticationFailure,
295 PinOrKeyMissing,
296 MemoryCapacityExceeded,
297 ConnectionTimeout,
298 ConnectionLimitExceeded,
299 SynchronousConnectionLimitExceeded,
300 ConnectionAlreadyExists,
301 CommandDisallowed,
302 ConnectionRejectedLimitedResources,
303 ConnectionRejectedSecurity,
304 ConnectionRejectedBadBdAddr,
305 ConnectionAcceptTimeoutExceeded,
306 UnsupportedFeatureOrParameter,
307 InvalidHcicommandParameters,
308 RemoteUserTerminatedConnection,
309 RemoteDeviceTerminatedConnectionLowResources,
310 RemoteDeviceTerminatedConnectionPowerOff,
311 ConnectionTerminatedByLocalHost,
312 RepeatedAttempts,
313 PairingNotAllowed,
314 UnknownLmpPdu,
315 UnsupportedRemoteFeature,
316 ScoOffsetRejected,
317 ScoIntervalRejected,
318 ScoAirModeRejected,
319 InvalidLmpOrLlParameters,
320 UnspecifiedError,
321 UnsupportedLmpOrLlParameterValue,
322 RoleChangeNotAllowed,
323 LmpOrLlResponseTimeout,
324 LmpErrorTransactionCollision,
325 LmpPduNotAllowed,
326 EncryptionModeNotAcceptable,
327 LinkKeyCannotBeChanged,
328 RequestedQosNotSupported,
329 InstantPassed,
330 PairingWithUnitKeyNotSupported,
331 DifferentTransactionCollision,
332 Reserved0,
333 QosUnacceptableParameter,
334 QosRejected,
335 ChannelClassificationNotSupported,
336 InsufficientSecurity,
337 ParameterOutOfMandatoryRange,
338 Reserved1,
339 RoleSwitchPending,
340 Reserved2,
341 ReservedSlotViolation,
342 RoleSwitchFailed,
343 ExtendedInquiryResponseTooLarge,
344 SecureSimplePairingNotSupportedByHost,
345 HostBusyPairing,
346 ConnectionRejectedNoSuitableChannelFound,
347 ControllerBusy,
348 UnacceptableConnectionParameters,
349 DirectedAdvertisingTimeout,
350 ConnectionTerminatedMicFailure,
351 ConnectionFailedToBeEstablished,
352 MacConnectionFailed,
353 CoarseClockAdjustmentRejected,
354 Type0SubmapNotDefined,
355 UnknownAdvertisingIdentifier,
356 LimitReached,
357 OperationCancelledByHost,
358 PacketTooLong,
359 TooLate,
360 TooEarly,
361 #[doc(hidden)]
362 __SourceBreaking {
363 unknown_ordinal: u8,
364 },
365}
366
367#[macro_export]
369macro_rules! HciErrorUnknown {
370 () => {
371 _
372 };
373}
374
375impl HciError {
376 #[inline]
377 pub fn from_primitive(prim: u8) -> Option<Self> {
378 match prim {
379 0 => Some(Self::Success),
380 1 => Some(Self::UnknownCommand),
381 2 => Some(Self::UnknownConnectionId),
382 3 => Some(Self::HardwareFailure),
383 4 => Some(Self::PageTimeout),
384 5 => Some(Self::AuthenticationFailure),
385 6 => Some(Self::PinOrKeyMissing),
386 7 => Some(Self::MemoryCapacityExceeded),
387 8 => Some(Self::ConnectionTimeout),
388 9 => Some(Self::ConnectionLimitExceeded),
389 10 => Some(Self::SynchronousConnectionLimitExceeded),
390 11 => Some(Self::ConnectionAlreadyExists),
391 12 => Some(Self::CommandDisallowed),
392 13 => Some(Self::ConnectionRejectedLimitedResources),
393 14 => Some(Self::ConnectionRejectedSecurity),
394 15 => Some(Self::ConnectionRejectedBadBdAddr),
395 16 => Some(Self::ConnectionAcceptTimeoutExceeded),
396 17 => Some(Self::UnsupportedFeatureOrParameter),
397 18 => Some(Self::InvalidHcicommandParameters),
398 19 => Some(Self::RemoteUserTerminatedConnection),
399 20 => Some(Self::RemoteDeviceTerminatedConnectionLowResources),
400 21 => Some(Self::RemoteDeviceTerminatedConnectionPowerOff),
401 22 => Some(Self::ConnectionTerminatedByLocalHost),
402 23 => Some(Self::RepeatedAttempts),
403 24 => Some(Self::PairingNotAllowed),
404 25 => Some(Self::UnknownLmpPdu),
405 26 => Some(Self::UnsupportedRemoteFeature),
406 27 => Some(Self::ScoOffsetRejected),
407 28 => Some(Self::ScoIntervalRejected),
408 29 => Some(Self::ScoAirModeRejected),
409 30 => Some(Self::InvalidLmpOrLlParameters),
410 31 => Some(Self::UnspecifiedError),
411 32 => Some(Self::UnsupportedLmpOrLlParameterValue),
412 33 => Some(Self::RoleChangeNotAllowed),
413 34 => Some(Self::LmpOrLlResponseTimeout),
414 35 => Some(Self::LmpErrorTransactionCollision),
415 36 => Some(Self::LmpPduNotAllowed),
416 37 => Some(Self::EncryptionModeNotAcceptable),
417 38 => Some(Self::LinkKeyCannotBeChanged),
418 39 => Some(Self::RequestedQosNotSupported),
419 40 => Some(Self::InstantPassed),
420 41 => Some(Self::PairingWithUnitKeyNotSupported),
421 42 => Some(Self::DifferentTransactionCollision),
422 43 => Some(Self::Reserved0),
423 44 => Some(Self::QosUnacceptableParameter),
424 45 => Some(Self::QosRejected),
425 46 => Some(Self::ChannelClassificationNotSupported),
426 47 => Some(Self::InsufficientSecurity),
427 48 => Some(Self::ParameterOutOfMandatoryRange),
428 49 => Some(Self::Reserved1),
429 50 => Some(Self::RoleSwitchPending),
430 51 => Some(Self::Reserved2),
431 52 => Some(Self::ReservedSlotViolation),
432 53 => Some(Self::RoleSwitchFailed),
433 54 => Some(Self::ExtendedInquiryResponseTooLarge),
434 55 => Some(Self::SecureSimplePairingNotSupportedByHost),
435 56 => Some(Self::HostBusyPairing),
436 57 => Some(Self::ConnectionRejectedNoSuitableChannelFound),
437 58 => Some(Self::ControllerBusy),
438 59 => Some(Self::UnacceptableConnectionParameters),
439 60 => Some(Self::DirectedAdvertisingTimeout),
440 61 => Some(Self::ConnectionTerminatedMicFailure),
441 62 => Some(Self::ConnectionFailedToBeEstablished),
442 63 => Some(Self::MacConnectionFailed),
443 64 => Some(Self::CoarseClockAdjustmentRejected),
444 65 => Some(Self::Type0SubmapNotDefined),
445 66 => Some(Self::UnknownAdvertisingIdentifier),
446 67 => Some(Self::LimitReached),
447 68 => Some(Self::OperationCancelledByHost),
448 69 => Some(Self::PacketTooLong),
449 70 => Some(Self::TooLate),
450 71 => Some(Self::TooEarly),
451 _ => None,
452 }
453 }
454
455 #[inline]
456 pub fn from_primitive_allow_unknown(prim: u8) -> Self {
457 match prim {
458 0 => Self::Success,
459 1 => Self::UnknownCommand,
460 2 => Self::UnknownConnectionId,
461 3 => Self::HardwareFailure,
462 4 => Self::PageTimeout,
463 5 => Self::AuthenticationFailure,
464 6 => Self::PinOrKeyMissing,
465 7 => Self::MemoryCapacityExceeded,
466 8 => Self::ConnectionTimeout,
467 9 => Self::ConnectionLimitExceeded,
468 10 => Self::SynchronousConnectionLimitExceeded,
469 11 => Self::ConnectionAlreadyExists,
470 12 => Self::CommandDisallowed,
471 13 => Self::ConnectionRejectedLimitedResources,
472 14 => Self::ConnectionRejectedSecurity,
473 15 => Self::ConnectionRejectedBadBdAddr,
474 16 => Self::ConnectionAcceptTimeoutExceeded,
475 17 => Self::UnsupportedFeatureOrParameter,
476 18 => Self::InvalidHcicommandParameters,
477 19 => Self::RemoteUserTerminatedConnection,
478 20 => Self::RemoteDeviceTerminatedConnectionLowResources,
479 21 => Self::RemoteDeviceTerminatedConnectionPowerOff,
480 22 => Self::ConnectionTerminatedByLocalHost,
481 23 => Self::RepeatedAttempts,
482 24 => Self::PairingNotAllowed,
483 25 => Self::UnknownLmpPdu,
484 26 => Self::UnsupportedRemoteFeature,
485 27 => Self::ScoOffsetRejected,
486 28 => Self::ScoIntervalRejected,
487 29 => Self::ScoAirModeRejected,
488 30 => Self::InvalidLmpOrLlParameters,
489 31 => Self::UnspecifiedError,
490 32 => Self::UnsupportedLmpOrLlParameterValue,
491 33 => Self::RoleChangeNotAllowed,
492 34 => Self::LmpOrLlResponseTimeout,
493 35 => Self::LmpErrorTransactionCollision,
494 36 => Self::LmpPduNotAllowed,
495 37 => Self::EncryptionModeNotAcceptable,
496 38 => Self::LinkKeyCannotBeChanged,
497 39 => Self::RequestedQosNotSupported,
498 40 => Self::InstantPassed,
499 41 => Self::PairingWithUnitKeyNotSupported,
500 42 => Self::DifferentTransactionCollision,
501 43 => Self::Reserved0,
502 44 => Self::QosUnacceptableParameter,
503 45 => Self::QosRejected,
504 46 => Self::ChannelClassificationNotSupported,
505 47 => Self::InsufficientSecurity,
506 48 => Self::ParameterOutOfMandatoryRange,
507 49 => Self::Reserved1,
508 50 => Self::RoleSwitchPending,
509 51 => Self::Reserved2,
510 52 => Self::ReservedSlotViolation,
511 53 => Self::RoleSwitchFailed,
512 54 => Self::ExtendedInquiryResponseTooLarge,
513 55 => Self::SecureSimplePairingNotSupportedByHost,
514 56 => Self::HostBusyPairing,
515 57 => Self::ConnectionRejectedNoSuitableChannelFound,
516 58 => Self::ControllerBusy,
517 59 => Self::UnacceptableConnectionParameters,
518 60 => Self::DirectedAdvertisingTimeout,
519 61 => Self::ConnectionTerminatedMicFailure,
520 62 => Self::ConnectionFailedToBeEstablished,
521 63 => Self::MacConnectionFailed,
522 64 => Self::CoarseClockAdjustmentRejected,
523 65 => Self::Type0SubmapNotDefined,
524 66 => Self::UnknownAdvertisingIdentifier,
525 67 => Self::LimitReached,
526 68 => Self::OperationCancelledByHost,
527 69 => Self::PacketTooLong,
528 70 => Self::TooLate,
529 71 => Self::TooEarly,
530 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
531 }
532 }
533
534 #[inline]
535 pub fn unknown() -> Self {
536 Self::__SourceBreaking { unknown_ordinal: 0xff }
537 }
538
539 #[inline]
540 pub const fn into_primitive(self) -> u8 {
541 match self {
542 Self::Success => 0,
543 Self::UnknownCommand => 1,
544 Self::UnknownConnectionId => 2,
545 Self::HardwareFailure => 3,
546 Self::PageTimeout => 4,
547 Self::AuthenticationFailure => 5,
548 Self::PinOrKeyMissing => 6,
549 Self::MemoryCapacityExceeded => 7,
550 Self::ConnectionTimeout => 8,
551 Self::ConnectionLimitExceeded => 9,
552 Self::SynchronousConnectionLimitExceeded => 10,
553 Self::ConnectionAlreadyExists => 11,
554 Self::CommandDisallowed => 12,
555 Self::ConnectionRejectedLimitedResources => 13,
556 Self::ConnectionRejectedSecurity => 14,
557 Self::ConnectionRejectedBadBdAddr => 15,
558 Self::ConnectionAcceptTimeoutExceeded => 16,
559 Self::UnsupportedFeatureOrParameter => 17,
560 Self::InvalidHcicommandParameters => 18,
561 Self::RemoteUserTerminatedConnection => 19,
562 Self::RemoteDeviceTerminatedConnectionLowResources => 20,
563 Self::RemoteDeviceTerminatedConnectionPowerOff => 21,
564 Self::ConnectionTerminatedByLocalHost => 22,
565 Self::RepeatedAttempts => 23,
566 Self::PairingNotAllowed => 24,
567 Self::UnknownLmpPdu => 25,
568 Self::UnsupportedRemoteFeature => 26,
569 Self::ScoOffsetRejected => 27,
570 Self::ScoIntervalRejected => 28,
571 Self::ScoAirModeRejected => 29,
572 Self::InvalidLmpOrLlParameters => 30,
573 Self::UnspecifiedError => 31,
574 Self::UnsupportedLmpOrLlParameterValue => 32,
575 Self::RoleChangeNotAllowed => 33,
576 Self::LmpOrLlResponseTimeout => 34,
577 Self::LmpErrorTransactionCollision => 35,
578 Self::LmpPduNotAllowed => 36,
579 Self::EncryptionModeNotAcceptable => 37,
580 Self::LinkKeyCannotBeChanged => 38,
581 Self::RequestedQosNotSupported => 39,
582 Self::InstantPassed => 40,
583 Self::PairingWithUnitKeyNotSupported => 41,
584 Self::DifferentTransactionCollision => 42,
585 Self::Reserved0 => 43,
586 Self::QosUnacceptableParameter => 44,
587 Self::QosRejected => 45,
588 Self::ChannelClassificationNotSupported => 46,
589 Self::InsufficientSecurity => 47,
590 Self::ParameterOutOfMandatoryRange => 48,
591 Self::Reserved1 => 49,
592 Self::RoleSwitchPending => 50,
593 Self::Reserved2 => 51,
594 Self::ReservedSlotViolation => 52,
595 Self::RoleSwitchFailed => 53,
596 Self::ExtendedInquiryResponseTooLarge => 54,
597 Self::SecureSimplePairingNotSupportedByHost => 55,
598 Self::HostBusyPairing => 56,
599 Self::ConnectionRejectedNoSuitableChannelFound => 57,
600 Self::ControllerBusy => 58,
601 Self::UnacceptableConnectionParameters => 59,
602 Self::DirectedAdvertisingTimeout => 60,
603 Self::ConnectionTerminatedMicFailure => 61,
604 Self::ConnectionFailedToBeEstablished => 62,
605 Self::MacConnectionFailed => 63,
606 Self::CoarseClockAdjustmentRejected => 64,
607 Self::Type0SubmapNotDefined => 65,
608 Self::UnknownAdvertisingIdentifier => 66,
609 Self::LimitReached => 67,
610 Self::OperationCancelledByHost => 68,
611 Self::PacketTooLong => 69,
612 Self::TooLate => 70,
613 Self::TooEarly => 71,
614 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
615 }
616 }
617
618 #[inline]
619 pub fn is_unknown(&self) -> bool {
620 match self {
621 Self::__SourceBreaking { unknown_ordinal: _ } => true,
622 _ => false,
623 }
624 }
625}
626
627#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
629#[repr(u8)]
630pub enum LegacyAdvertisingType {
631 AdvInd = 0,
633 AdvDirectInd = 1,
635 AdvScanInd = 2,
637 AdvNonconnInd = 3,
639 ScanRsp = 4,
641}
642
643impl LegacyAdvertisingType {
644 #[inline]
645 pub fn from_primitive(prim: u8) -> Option<Self> {
646 match prim {
647 0 => Some(Self::AdvInd),
648 1 => Some(Self::AdvDirectInd),
649 2 => Some(Self::AdvScanInd),
650 3 => Some(Self::AdvNonconnInd),
651 4 => Some(Self::ScanRsp),
652 _ => None,
653 }
654 }
655
656 #[inline]
657 pub const fn into_primitive(self) -> u8 {
658 self as u8
659 }
660}
661
662#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
663#[repr(u32)]
664pub enum PacketDirection {
665 HostToController = 1,
666 ControllerToHost = 2,
667}
668
669impl PacketDirection {
670 #[inline]
671 pub fn from_primitive(prim: u32) -> Option<Self> {
672 match prim {
673 1 => Some(Self::HostToController),
674 2 => Some(Self::ControllerToHost),
675 _ => None,
676 }
677 }
678
679 #[inline]
680 pub const fn into_primitive(self) -> u32 {
681 self as u32
682 }
683}
684
685#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
686pub enum ScoCodingFormat {
687 Cvsd,
688 Msbc,
689 #[doc(hidden)]
690 __SourceBreaking {
691 unknown_ordinal: u8,
692 },
693}
694
695#[macro_export]
697macro_rules! ScoCodingFormatUnknown {
698 () => {
699 _
700 };
701}
702
703impl ScoCodingFormat {
704 #[inline]
705 pub fn from_primitive(prim: u8) -> Option<Self> {
706 match prim {
707 1 => Some(Self::Cvsd),
708 2 => Some(Self::Msbc),
709 _ => None,
710 }
711 }
712
713 #[inline]
714 pub fn from_primitive_allow_unknown(prim: u8) -> Self {
715 match prim {
716 1 => Self::Cvsd,
717 2 => Self::Msbc,
718 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
719 }
720 }
721
722 #[inline]
723 pub fn unknown() -> Self {
724 Self::__SourceBreaking { unknown_ordinal: 0xff }
725 }
726
727 #[inline]
728 pub const fn into_primitive(self) -> u8 {
729 match self {
730 Self::Cvsd => 1,
731 Self::Msbc => 2,
732 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
733 }
734 }
735
736 #[inline]
737 pub fn is_unknown(&self) -> bool {
738 match self {
739 Self::__SourceBreaking { unknown_ordinal: _ } => true,
740 _ => false,
741 }
742 }
743}
744
745#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
746pub enum ScoEncoding {
747 Bits8,
748 Bits16,
749 #[doc(hidden)]
750 __SourceBreaking {
751 unknown_ordinal: u8,
752 },
753}
754
755#[macro_export]
757macro_rules! ScoEncodingUnknown {
758 () => {
759 _
760 };
761}
762
763impl ScoEncoding {
764 #[inline]
765 pub fn from_primitive(prim: u8) -> Option<Self> {
766 match prim {
767 1 => Some(Self::Bits8),
768 2 => Some(Self::Bits16),
769 _ => None,
770 }
771 }
772
773 #[inline]
774 pub fn from_primitive_allow_unknown(prim: u8) -> Self {
775 match prim {
776 1 => Self::Bits8,
777 2 => Self::Bits16,
778 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
779 }
780 }
781
782 #[inline]
783 pub fn unknown() -> Self {
784 Self::__SourceBreaking { unknown_ordinal: 0xff }
785 }
786
787 #[inline]
788 pub const fn into_primitive(self) -> u8 {
789 match self {
790 Self::Bits8 => 1,
791 Self::Bits16 => 2,
792 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
793 }
794 }
795
796 #[inline]
797 pub fn is_unknown(&self) -> bool {
798 match self {
799 Self::__SourceBreaking { unknown_ordinal: _ } => true,
800 _ => false,
801 }
802 }
803}
804
805#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
806pub enum ScoSampleRate {
807 Khz8,
808 Khz16,
809 #[doc(hidden)]
810 __SourceBreaking {
811 unknown_ordinal: u8,
812 },
813}
814
815#[macro_export]
817macro_rules! ScoSampleRateUnknown {
818 () => {
819 _
820 };
821}
822
823impl ScoSampleRate {
824 #[inline]
825 pub fn from_primitive(prim: u8) -> Option<Self> {
826 match prim {
827 1 => Some(Self::Khz8),
828 2 => Some(Self::Khz16),
829 _ => None,
830 }
831 }
832
833 #[inline]
834 pub fn from_primitive_allow_unknown(prim: u8) -> Self {
835 match prim {
836 1 => Self::Khz8,
837 2 => Self::Khz16,
838 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
839 }
840 }
841
842 #[inline]
843 pub fn unknown() -> Self {
844 Self::__SourceBreaking { unknown_ordinal: 0xff }
845 }
846
847 #[inline]
848 pub const fn into_primitive(self) -> u8 {
849 match self {
850 Self::Khz8 => 1,
851 Self::Khz16 => 2,
852 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
853 }
854 }
855
856 #[inline]
857 pub fn is_unknown(&self) -> bool {
858 match self {
859 Self::__SourceBreaking { unknown_ordinal: _ } => true,
860 _ => false,
861 }
862 }
863}
864
865#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
866pub enum VendorAclDirection {
867 Source,
868 Sink,
869 #[doc(hidden)]
870 __SourceBreaking {
871 unknown_ordinal: u8,
872 },
873}
874
875#[macro_export]
877macro_rules! VendorAclDirectionUnknown {
878 () => {
879 _
880 };
881}
882
883impl VendorAclDirection {
884 #[inline]
885 pub fn from_primitive(prim: u8) -> Option<Self> {
886 match prim {
887 1 => Some(Self::Source),
888 2 => Some(Self::Sink),
889 _ => None,
890 }
891 }
892
893 #[inline]
894 pub fn from_primitive_allow_unknown(prim: u8) -> Self {
895 match prim {
896 1 => Self::Source,
897 2 => Self::Sink,
898 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
899 }
900 }
901
902 #[inline]
903 pub fn unknown() -> Self {
904 Self::__SourceBreaking { unknown_ordinal: 0xff }
905 }
906
907 #[inline]
908 pub const fn into_primitive(self) -> u8 {
909 match self {
910 Self::Source => 1,
911 Self::Sink => 2,
912 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
913 }
914 }
915
916 #[inline]
917 pub fn is_unknown(&self) -> bool {
918 match self {
919 Self::__SourceBreaking { unknown_ordinal: _ } => true,
920 _ => false,
921 }
922 }
923}
924
925#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
926pub enum VendorAclPriority {
927 Normal,
928 High,
929 #[doc(hidden)]
930 __SourceBreaking {
931 unknown_ordinal: u8,
932 },
933}
934
935#[macro_export]
937macro_rules! VendorAclPriorityUnknown {
938 () => {
939 _
940 };
941}
942
943impl VendorAclPriority {
944 #[inline]
945 pub fn from_primitive(prim: u8) -> Option<Self> {
946 match prim {
947 1 => Some(Self::Normal),
948 2 => Some(Self::High),
949 _ => None,
950 }
951 }
952
953 #[inline]
954 pub fn from_primitive_allow_unknown(prim: u8) -> Self {
955 match prim {
956 1 => Self::Normal,
957 2 => Self::High,
958 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
959 }
960 }
961
962 #[inline]
963 pub fn unknown() -> Self {
964 Self::__SourceBreaking { unknown_ordinal: 0xff }
965 }
966
967 #[inline]
968 pub const fn into_primitive(self) -> u8 {
969 match self {
970 Self::Normal => 1,
971 Self::High => 2,
972 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
973 }
974 }
975
976 #[inline]
977 pub fn is_unknown(&self) -> bool {
978 match self {
979 Self::__SourceBreaking { unknown_ordinal: _ } => true,
980 _ => false,
981 }
982 }
983}
984
985#[derive(Clone, Debug, PartialEq)]
986pub struct EmulatorWatchLeScanStatesResponse {
987 pub states: Vec<LeScanState>,
988}
989
990impl fidl::Persistable for EmulatorWatchLeScanStatesResponse {}
991
992#[derive(Clone, Debug, PartialEq)]
993pub struct EmulatorWatchLegacyAdvertisingStatesResponse {
994 pub states: Vec<LegacyAdvertisingState>,
995}
996
997impl fidl::Persistable for EmulatorWatchLegacyAdvertisingStatesResponse {}
998
999#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
1000pub struct HciConfigureScoRequest {
1001 pub coding_format: ScoCodingFormat,
1002 pub encoding: ScoEncoding,
1003 pub sample_rate: ScoSampleRate,
1004}
1005
1006impl fidl::Persistable for HciConfigureScoRequest {}
1007
1008#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
1009pub struct PeerAssignConnectionStatusRequest {
1010 pub status: HciError,
1011}
1012
1013impl fidl::Persistable for PeerAssignConnectionStatusRequest {}
1014
1015#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
1016pub struct PeerEmulateLeConnectionCompleteRequest {
1017 pub role: fidl_fuchsia_bluetooth__common::ConnectionRole,
1018}
1019
1020impl fidl::Persistable for PeerEmulateLeConnectionCompleteRequest {}
1021
1022#[derive(Clone, Debug, PartialEq)]
1023pub struct PeerSetServiceDefinitionsRequest {
1024 pub service_definitions: Vec<fidl_fuchsia_bluetooth_bredr__common::ServiceDefinition>,
1025}
1026
1027impl fidl::Persistable for PeerSetServiceDefinitionsRequest {}
1028
1029#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
1030pub struct PeerWatchConnectionStatesResponse {
1031 pub states: Vec<ConnectionState>,
1032}
1033
1034impl fidl::Persistable for PeerWatchConnectionStatesResponse {}
1035
1036#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
1037pub struct ScoPacket {
1038 pub packet: Vec<u8>,
1039}
1040
1041impl fidl::Persistable for ScoPacket {}
1042
1043#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
1044#[repr(C)]
1045pub struct SnoopAcknowledgePacketsRequest {
1046 pub sequence: u64,
1047}
1048
1049impl fidl::Persistable for SnoopAcknowledgePacketsRequest {}
1050
1051#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
1052pub struct VendorEncodeCommandResponse {
1053 pub encoded: Vec<u8>,
1054}
1055
1056impl fidl::Persistable for VendorEncodeCommandResponse {}
1057
1058#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
1059pub struct VirtualControllerCreateEmulatorResponse {
1060 pub name: Option<String>,
1061}
1062
1063impl fidl::Persistable for VirtualControllerCreateEmulatorResponse {}
1064
1065#[derive(Clone, Debug, Default, PartialEq)]
1067pub struct AclBufferSettings {
1068 pub data_packet_length: Option<u16>,
1070 pub total_num_data_packets: Option<u8>,
1072 #[doc(hidden)]
1073 pub __source_breaking: fidl::marker::SourceBreaking,
1074}
1075
1076impl fidl::Persistable for AclBufferSettings {}
1077
1078#[derive(Clone, Debug, Default, PartialEq)]
1079pub struct AdvertisingData {
1080 pub data: Option<Vec<u8>>,
1081 #[doc(hidden)]
1082 pub __source_breaking: fidl::marker::SourceBreaking,
1083}
1084
1085impl fidl::Persistable for AdvertisingData {}
1086
1087#[derive(Clone, Debug, Default, PartialEq)]
1091pub struct AndroidVendorSupport {
1092 pub major_version: Option<u8>,
1093 pub minor_version: Option<u8>,
1094 #[doc(hidden)]
1095 pub __source_breaking: fidl::marker::SourceBreaking,
1096}
1097
1098impl fidl::Persistable for AndroidVendorSupport {}
1099
1100#[derive(Clone, Debug, Default, PartialEq)]
1103pub struct AudioOffloadSettings {
1104 pub sco_offload_index: Option<u8>,
1106 #[doc(hidden)]
1107 pub __source_breaking: fidl::marker::SourceBreaking,
1108}
1109
1110impl fidl::Persistable for AudioOffloadSettings {}
1111
1112#[derive(Clone, Debug, Default, PartialEq)]
1115pub struct ControllerParameters {
1116 pub local_name: Option<String>,
1120 pub device_class: Option<fidl_fuchsia_bluetooth__common::DeviceClass>,
1122 #[doc(hidden)]
1123 pub __source_breaking: fidl::marker::SourceBreaking,
1124}
1125
1126impl fidl::Persistable for ControllerParameters {}
1127
1128#[derive(Clone, Debug, Default, PartialEq)]
1130pub struct EmulatorSettings {
1131 pub address: Option<fidl_fuchsia_bluetooth__common::Address>,
1133 pub hci_config: Option<HciConfig>,
1135 pub extended_advertising: Option<bool>,
1137 pub acl_buffer_settings: Option<AclBufferSettings>,
1142 pub le_acl_buffer_settings: Option<AclBufferSettings>,
1146 #[doc(hidden)]
1147 pub __source_breaking: fidl::marker::SourceBreaking,
1148}
1149
1150impl fidl::Persistable for EmulatorSettings {}
1151
1152#[derive(Clone, Debug, Default, PartialEq)]
1154pub struct LeScanState {
1155 pub enabled: Option<bool>,
1157 pub active: Option<bool>,
1159 pub interval: Option<u16>,
1163 pub window: Option<u16>,
1164 pub filter_duplicates: Option<bool>,
1166 pub address_type: Option<fidl_fuchsia_bluetooth__common::AddressType>,
1168 #[doc(hidden)]
1169 pub __source_breaking: fidl::marker::SourceBreaking,
1170}
1171
1172impl fidl::Persistable for LeScanState {}
1173
1174#[derive(Clone, Debug, Default, PartialEq)]
1176pub struct LegacyAdvertisingState {
1177 pub enabled: Option<bool>,
1180 pub type_: Option<LegacyAdvertisingType>,
1183 pub address_type: Option<fidl_fuchsia_bluetooth__common::AddressType>,
1186 pub interval_min: Option<u16>,
1188 pub interval_max: Option<u16>,
1189 pub advertising_data: Option<AdvertisingData>,
1191 pub scan_response: Option<AdvertisingData>,
1192 #[doc(hidden)]
1193 pub __source_breaking: fidl::marker::SourceBreaking,
1194}
1195
1196impl fidl::Persistable for LegacyAdvertisingState {}
1197
1198#[derive(Clone, Debug, Default, PartialEq)]
1199pub struct PeerSetLeAdvertisementRequest {
1200 pub le_address: Option<fidl_fuchsia_bluetooth__common::Address>,
1202 pub advertisement: Option<AdvertisingData>,
1205 pub scan_response: Option<AdvertisingData>,
1208 #[doc(hidden)]
1209 pub __source_breaking: fidl::marker::SourceBreaking,
1210}
1211
1212impl fidl::Persistable for PeerSetLeAdvertisementRequest {}
1213
1214#[derive(Clone, Debug, Default, PartialEq)]
1215pub struct SnoopOnDroppedPacketsRequest {
1216 pub sent: Option<u32>,
1217 pub received: Option<u32>,
1218 #[doc(hidden)]
1219 pub __source_breaking: fidl::marker::SourceBreaking,
1220}
1221
1222impl fidl::Persistable for SnoopOnDroppedPacketsRequest {}
1223
1224#[derive(Clone, Debug, Default, PartialEq)]
1225pub struct SnoopOnObservePacketRequest {
1226 pub sequence: Option<u64>,
1229 pub direction: Option<PacketDirection>,
1230 pub packet: Option<SnoopPacket>,
1231 #[doc(hidden)]
1232 pub __source_breaking: fidl::marker::SourceBreaking,
1233}
1234
1235impl fidl::Persistable for SnoopOnObservePacketRequest {}
1236
1237#[derive(Clone, Debug, Default, PartialEq)]
1239pub struct VendorCrashParameters {
1240 pub vendor_subevent_code: Option<u8>,
1243 pub program_name: Option<String>,
1246 pub crash_signature: Option<String>,
1250 #[doc(hidden)]
1251 pub __source_breaking: fidl::marker::SourceBreaking,
1252}
1253
1254impl fidl::Persistable for VendorCrashParameters {}
1255
1256#[derive(Clone, Debug, Default, PartialEq)]
1258pub struct VendorFeatures {
1259 pub acl_priority_command: Option<bool>,
1262 pub android_vendor_extensions: Option<AndroidVendorSupport>,
1265 pub audio_offload_settings: Option<AudioOffloadSettings>,
1268 #[doc(hidden)]
1269 pub __source_breaking: fidl::marker::SourceBreaking,
1270}
1271
1272impl fidl::Persistable for VendorFeatures {}
1273
1274#[derive(Clone, Debug, Default, PartialEq)]
1275pub struct VendorSetAclPriorityParams {
1276 pub connection_handle: Option<u16>,
1278 pub priority: Option<VendorAclPriority>,
1279 pub direction: Option<VendorAclDirection>,
1282 #[doc(hidden)]
1283 pub __source_breaking: fidl::marker::SourceBreaking,
1284}
1285
1286impl fidl::Persistable for VendorSetAclPriorityParams {}
1287
1288#[derive(Clone, Debug)]
1290pub enum ReceivedPacket {
1291 Event(Vec<u8>),
1292 Acl(Vec<u8>),
1293 Iso(Vec<u8>),
1294 #[doc(hidden)]
1295 __SourceBreaking {
1296 unknown_ordinal: u64,
1297 },
1298}
1299
1300#[macro_export]
1302macro_rules! ReceivedPacketUnknown {
1303 () => {
1304 _
1305 };
1306}
1307
1308impl PartialEq for ReceivedPacket {
1310 fn eq(&self, other: &Self) -> bool {
1311 match (self, other) {
1312 (Self::Event(x), Self::Event(y)) => *x == *y,
1313 (Self::Acl(x), Self::Acl(y)) => *x == *y,
1314 (Self::Iso(x), Self::Iso(y)) => *x == *y,
1315 _ => false,
1316 }
1317 }
1318}
1319
1320impl ReceivedPacket {
1321 #[inline]
1322 pub fn ordinal(&self) -> u64 {
1323 match *self {
1324 Self::Event(_) => 1,
1325 Self::Acl(_) => 2,
1326 Self::Iso(_) => 3,
1327 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
1328 }
1329 }
1330
1331 #[inline]
1332 pub fn unknown_variant_for_testing() -> Self {
1333 Self::__SourceBreaking { unknown_ordinal: 0 }
1334 }
1335
1336 #[inline]
1337 pub fn is_unknown(&self) -> bool {
1338 match self {
1339 Self::__SourceBreaking { .. } => true,
1340 _ => false,
1341 }
1342 }
1343}
1344
1345impl fidl::Persistable for ReceivedPacket {}
1346
1347#[derive(Clone, Debug)]
1349pub enum SentPacket {
1350 Command(Vec<u8>),
1351 Acl(Vec<u8>),
1352 Iso(Vec<u8>),
1353 #[doc(hidden)]
1354 __SourceBreaking {
1355 unknown_ordinal: u64,
1356 },
1357}
1358
1359#[macro_export]
1361macro_rules! SentPacketUnknown {
1362 () => {
1363 _
1364 };
1365}
1366
1367impl PartialEq for SentPacket {
1369 fn eq(&self, other: &Self) -> bool {
1370 match (self, other) {
1371 (Self::Command(x), Self::Command(y)) => *x == *y,
1372 (Self::Acl(x), Self::Acl(y)) => *x == *y,
1373 (Self::Iso(x), Self::Iso(y)) => *x == *y,
1374 _ => false,
1375 }
1376 }
1377}
1378
1379impl SentPacket {
1380 #[inline]
1381 pub fn ordinal(&self) -> u64 {
1382 match *self {
1383 Self::Command(_) => 1,
1384 Self::Acl(_) => 2,
1385 Self::Iso(_) => 3,
1386 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
1387 }
1388 }
1389
1390 #[inline]
1391 pub fn unknown_variant_for_testing() -> Self {
1392 Self::__SourceBreaking { unknown_ordinal: 0 }
1393 }
1394
1395 #[inline]
1396 pub fn is_unknown(&self) -> bool {
1397 match self {
1398 Self::__SourceBreaking { .. } => true,
1399 _ => false,
1400 }
1401 }
1402}
1403
1404impl fidl::Persistable for SentPacket {}
1405
1406#[derive(Clone, Debug)]
1407pub enum SnoopPacket {
1408 Event(Vec<u8>),
1409 Command(Vec<u8>),
1410 Acl(Vec<u8>),
1411 Sco(Vec<u8>),
1412 Iso(Vec<u8>),
1413 #[doc(hidden)]
1414 __SourceBreaking {
1415 unknown_ordinal: u64,
1416 },
1417}
1418
1419#[macro_export]
1421macro_rules! SnoopPacketUnknown {
1422 () => {
1423 _
1424 };
1425}
1426
1427impl PartialEq for SnoopPacket {
1429 fn eq(&self, other: &Self) -> bool {
1430 match (self, other) {
1431 (Self::Event(x), Self::Event(y)) => *x == *y,
1432 (Self::Command(x), Self::Command(y)) => *x == *y,
1433 (Self::Acl(x), Self::Acl(y)) => *x == *y,
1434 (Self::Sco(x), Self::Sco(y)) => *x == *y,
1435 (Self::Iso(x), Self::Iso(y)) => *x == *y,
1436 _ => false,
1437 }
1438 }
1439}
1440
1441impl SnoopPacket {
1442 #[inline]
1443 pub fn ordinal(&self) -> u64 {
1444 match *self {
1445 Self::Event(_) => 1,
1446 Self::Command(_) => 2,
1447 Self::Acl(_) => 3,
1448 Self::Sco(_) => 4,
1449 Self::Iso(_) => 5,
1450 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
1451 }
1452 }
1453
1454 #[inline]
1455 pub fn unknown_variant_for_testing() -> Self {
1456 Self::__SourceBreaking { unknown_ordinal: 0 }
1457 }
1458
1459 #[inline]
1460 pub fn is_unknown(&self) -> bool {
1461 match self {
1462 Self::__SourceBreaking { .. } => true,
1463 _ => false,
1464 }
1465 }
1466}
1467
1468impl fidl::Persistable for SnoopPacket {}
1469
1470#[derive(Clone, Debug)]
1471pub enum VendorCommand {
1472 SetAclPriority(VendorSetAclPriorityParams),
1473 #[doc(hidden)]
1474 __SourceBreaking {
1475 unknown_ordinal: u64,
1476 },
1477}
1478
1479#[macro_export]
1481macro_rules! VendorCommandUnknown {
1482 () => {
1483 _
1484 };
1485}
1486
1487impl PartialEq for VendorCommand {
1489 fn eq(&self, other: &Self) -> bool {
1490 match (self, other) {
1491 (Self::SetAclPriority(x), Self::SetAclPriority(y)) => *x == *y,
1492 _ => false,
1493 }
1494 }
1495}
1496
1497impl VendorCommand {
1498 #[inline]
1499 pub fn ordinal(&self) -> u64 {
1500 match *self {
1501 Self::SetAclPriority(_) => 1,
1502 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
1503 }
1504 }
1505
1506 #[inline]
1507 pub fn unknown_variant_for_testing() -> Self {
1508 Self::__SourceBreaking { unknown_ordinal: 0 }
1509 }
1510
1511 #[inline]
1512 pub fn is_unknown(&self) -> bool {
1513 match self {
1514 Self::__SourceBreaking { .. } => true,
1515 _ => false,
1516 }
1517 }
1518}
1519
1520impl fidl::Persistable for VendorCommand {}
1521
1522pub mod emulator_ordinals {
1523 pub const PUBLISH: u64 = 0x5b8aeb2ece853c39;
1524 pub const ADD_LOW_ENERGY_PEER: u64 = 0x4e1fb7adbebc6946;
1525 pub const ADD_BREDR_PEER: u64 = 0x6d15989a0373e07;
1526 pub const WATCH_CONTROLLER_PARAMETERS: u64 = 0x6ed7a918b5800270;
1527 pub const WATCH_LE_SCAN_STATES: u64 = 0x10e6c845831f3b4a;
1528 pub const WATCH_LEGACY_ADVERTISING_STATES: u64 = 0x7067acbe275d0219;
1529}
1530
1531pub mod hci_ordinals {
1532 pub const OPEN_COMMAND_CHANNEL: u64 = 0x2510b52ea3a51ce0;
1533 pub const OPEN_ACL_DATA_CHANNEL: u64 = 0x210c3dd69156385a;
1534 pub const OPEN_SCO_DATA_CHANNEL: u64 = 0x5bcb0bf2cbf35bdf;
1535 pub const CONFIGURE_SCO: u64 = 0x499ec7edfd65fad7;
1536 pub const RESET_SCO: u64 = 0x6ee56dcb2ce23fcb;
1537 pub const OPEN_ISO_DATA_CHANNEL: u64 = 0x9adfa1d466cefd4;
1538 pub const OPEN_SNOOP_CHANNEL: u64 = 0xd31c6d5cbc4e136;
1539}
1540
1541pub mod hci_transport_ordinals {
1542 pub const SEND_: u64 = 0x4793b5e66fd79e0b;
1543 pub const ON_RECEIVE: u64 = 0xcb102e573e5049c;
1544 pub const ACK_RECEIVE: u64 = 0x25de8c1f760f0c89;
1545 pub const CONFIGURE_SCO: u64 = 0x4298072d0498b612;
1546}
1547
1548pub mod peer_ordinals {
1549 pub const ASSIGN_CONNECTION_STATUS: u64 = 0x52810c5ba7a2555c;
1550 pub const EMULATE_LE_CONNECTION_COMPLETE: u64 = 0x3dfba319b8d2fc2a;
1551 pub const EMULATE_DISCONNECTION_COMPLETE: u64 = 0x4d3955084d85a15c;
1552 pub const WATCH_CONNECTION_STATES: u64 = 0x5a5190211980c70f;
1553 pub const SET_DEVICE_CLASS: u64 = 0x3e52fa234758e1ea;
1554 pub const SET_SERVICE_DEFINITIONS: u64 = 0x58ce9f22fce272df;
1555 pub const SET_LE_ADVERTISEMENT: u64 = 0x481b9aea1b39cfb4;
1556}
1557
1558pub mod sco_connection_ordinals {
1559 pub const SEND_: u64 = 0x6e0c000ccd50adec;
1560 pub const ON_RECEIVE: u64 = 0x4d4e96f6f7d1aa12;
1561 pub const ACK_RECEIVE: u64 = 0x7e6af45151224a6a;
1562 pub const STOP: u64 = 0x5df8b0ab265b449d;
1563}
1564
1565pub mod snoop_ordinals {
1566 pub const ON_OBSERVE_PACKET: u64 = 0x34d9f4c9c6bc10ca;
1567 pub const ACKNOWLEDGE_PACKETS: u64 = 0x3336b5082c111286;
1568 pub const ON_DROPPED_PACKETS: u64 = 0x102a8d21278578b9;
1569}
1570
1571pub mod vendor_ordinals {
1572 pub const GET_FEATURES: u64 = 0x102e70164c1dc911;
1573 pub const ENCODE_COMMAND: u64 = 0x75430542c197cbe8;
1574 pub const OPEN_HCI: u64 = 0x7f05862f7ef92ec8;
1575 pub const OPEN_HCI_TRANSPORT: u64 = 0x1f785b656fb00834;
1576 pub const OPEN_SNOOP: u64 = 0xafeca0e3c789043;
1577 pub const GET_CRASH_PARAMETERS: u64 = 0xb16601642b3a567;
1578}
1579
1580pub mod virtual_controller_ordinals {
1581 pub const CREATE_EMULATOR: u64 = 0x130273fc0a35cedb;
1582 pub const CREATE_LOOPBACK_DEVICE: u64 = 0x7525af8edecb6c0c;
1583}
1584
1585mod internal {
1586 use super::*;
1587 unsafe impl fidl::encoding::TypeMarker for ConnectionState {
1588 type Owned = Self;
1589
1590 #[inline(always)]
1591 fn inline_align(_context: fidl::encoding::Context) -> usize {
1592 std::mem::align_of::<u32>()
1593 }
1594
1595 #[inline(always)]
1596 fn inline_size(_context: fidl::encoding::Context) -> usize {
1597 std::mem::size_of::<u32>()
1598 }
1599
1600 #[inline(always)]
1601 fn encode_is_copy() -> bool {
1602 false
1603 }
1604
1605 #[inline(always)]
1606 fn decode_is_copy() -> bool {
1607 false
1608 }
1609 }
1610
1611 impl fidl::encoding::ValueTypeMarker for ConnectionState {
1612 type Borrowed<'a> = Self;
1613 #[inline(always)]
1614 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1615 *value
1616 }
1617 }
1618
1619 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
1620 for ConnectionState
1621 {
1622 #[inline]
1623 unsafe fn encode(
1624 self,
1625 encoder: &mut fidl::encoding::Encoder<'_, D>,
1626 offset: usize,
1627 _depth: fidl::encoding::Depth,
1628 ) -> fidl::Result<()> {
1629 encoder.debug_check_bounds::<Self>(offset);
1630 encoder.write_num(self.into_primitive(), offset);
1631 Ok(())
1632 }
1633 }
1634
1635 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ConnectionState {
1636 #[inline(always)]
1637 fn new_empty() -> Self {
1638 Self::unknown()
1639 }
1640
1641 #[inline]
1642 unsafe fn decode(
1643 &mut self,
1644 decoder: &mut fidl::encoding::Decoder<'_, D>,
1645 offset: usize,
1646 _depth: fidl::encoding::Depth,
1647 ) -> fidl::Result<()> {
1648 decoder.debug_check_bounds::<Self>(offset);
1649 let prim = decoder.read_num::<u32>(offset);
1650
1651 *self = Self::from_primitive_allow_unknown(prim);
1652 Ok(())
1653 }
1654 }
1655 unsafe impl fidl::encoding::TypeMarker for EmulatorError {
1656 type Owned = Self;
1657
1658 #[inline(always)]
1659 fn inline_align(_context: fidl::encoding::Context) -> usize {
1660 std::mem::align_of::<u32>()
1661 }
1662
1663 #[inline(always)]
1664 fn inline_size(_context: fidl::encoding::Context) -> usize {
1665 std::mem::size_of::<u32>()
1666 }
1667
1668 #[inline(always)]
1669 fn encode_is_copy() -> bool {
1670 false
1671 }
1672
1673 #[inline(always)]
1674 fn decode_is_copy() -> bool {
1675 false
1676 }
1677 }
1678
1679 impl fidl::encoding::ValueTypeMarker for EmulatorError {
1680 type Borrowed<'a> = Self;
1681 #[inline(always)]
1682 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1683 *value
1684 }
1685 }
1686
1687 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for EmulatorError {
1688 #[inline]
1689 unsafe fn encode(
1690 self,
1691 encoder: &mut fidl::encoding::Encoder<'_, D>,
1692 offset: usize,
1693 _depth: fidl::encoding::Depth,
1694 ) -> fidl::Result<()> {
1695 encoder.debug_check_bounds::<Self>(offset);
1696 encoder.write_num(self.into_primitive(), offset);
1697 Ok(())
1698 }
1699 }
1700
1701 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for EmulatorError {
1702 #[inline(always)]
1703 fn new_empty() -> Self {
1704 Self::unknown()
1705 }
1706
1707 #[inline]
1708 unsafe fn decode(
1709 &mut self,
1710 decoder: &mut fidl::encoding::Decoder<'_, D>,
1711 offset: usize,
1712 _depth: fidl::encoding::Depth,
1713 ) -> fidl::Result<()> {
1714 decoder.debug_check_bounds::<Self>(offset);
1715 let prim = decoder.read_num::<u32>(offset);
1716
1717 *self = Self::from_primitive_allow_unknown(prim);
1718 Ok(())
1719 }
1720 }
1721 unsafe impl fidl::encoding::TypeMarker for EmulatorPeerError {
1722 type Owned = Self;
1723
1724 #[inline(always)]
1725 fn inline_align(_context: fidl::encoding::Context) -> usize {
1726 std::mem::align_of::<u32>()
1727 }
1728
1729 #[inline(always)]
1730 fn inline_size(_context: fidl::encoding::Context) -> usize {
1731 std::mem::size_of::<u32>()
1732 }
1733
1734 #[inline(always)]
1735 fn encode_is_copy() -> bool {
1736 false
1737 }
1738
1739 #[inline(always)]
1740 fn decode_is_copy() -> bool {
1741 false
1742 }
1743 }
1744
1745 impl fidl::encoding::ValueTypeMarker for EmulatorPeerError {
1746 type Borrowed<'a> = Self;
1747 #[inline(always)]
1748 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1749 *value
1750 }
1751 }
1752
1753 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
1754 for EmulatorPeerError
1755 {
1756 #[inline]
1757 unsafe fn encode(
1758 self,
1759 encoder: &mut fidl::encoding::Encoder<'_, D>,
1760 offset: usize,
1761 _depth: fidl::encoding::Depth,
1762 ) -> fidl::Result<()> {
1763 encoder.debug_check_bounds::<Self>(offset);
1764 encoder.write_num(self.into_primitive(), offset);
1765 Ok(())
1766 }
1767 }
1768
1769 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for EmulatorPeerError {
1770 #[inline(always)]
1771 fn new_empty() -> Self {
1772 Self::unknown()
1773 }
1774
1775 #[inline]
1776 unsafe fn decode(
1777 &mut self,
1778 decoder: &mut fidl::encoding::Decoder<'_, D>,
1779 offset: usize,
1780 _depth: fidl::encoding::Depth,
1781 ) -> fidl::Result<()> {
1782 decoder.debug_check_bounds::<Self>(offset);
1783 let prim = decoder.read_num::<u32>(offset);
1784
1785 *self = Self::from_primitive_allow_unknown(prim);
1786 Ok(())
1787 }
1788 }
1789 unsafe impl fidl::encoding::TypeMarker for HciConfig {
1790 type Owned = Self;
1791
1792 #[inline(always)]
1793 fn inline_align(_context: fidl::encoding::Context) -> usize {
1794 std::mem::align_of::<u32>()
1795 }
1796
1797 #[inline(always)]
1798 fn inline_size(_context: fidl::encoding::Context) -> usize {
1799 std::mem::size_of::<u32>()
1800 }
1801
1802 #[inline(always)]
1803 fn encode_is_copy() -> bool {
1804 false
1805 }
1806
1807 #[inline(always)]
1808 fn decode_is_copy() -> bool {
1809 false
1810 }
1811 }
1812
1813 impl fidl::encoding::ValueTypeMarker for HciConfig {
1814 type Borrowed<'a> = Self;
1815 #[inline(always)]
1816 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1817 *value
1818 }
1819 }
1820
1821 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for HciConfig {
1822 #[inline]
1823 unsafe fn encode(
1824 self,
1825 encoder: &mut fidl::encoding::Encoder<'_, D>,
1826 offset: usize,
1827 _depth: fidl::encoding::Depth,
1828 ) -> fidl::Result<()> {
1829 encoder.debug_check_bounds::<Self>(offset);
1830 encoder.write_num(self.into_primitive(), offset);
1831 Ok(())
1832 }
1833 }
1834
1835 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for HciConfig {
1836 #[inline(always)]
1837 fn new_empty() -> Self {
1838 Self::unknown()
1839 }
1840
1841 #[inline]
1842 unsafe fn decode(
1843 &mut self,
1844 decoder: &mut fidl::encoding::Decoder<'_, D>,
1845 offset: usize,
1846 _depth: fidl::encoding::Depth,
1847 ) -> fidl::Result<()> {
1848 decoder.debug_check_bounds::<Self>(offset);
1849 let prim = decoder.read_num::<u32>(offset);
1850
1851 *self = Self::from_primitive_allow_unknown(prim);
1852 Ok(())
1853 }
1854 }
1855 unsafe impl fidl::encoding::TypeMarker for HciError {
1856 type Owned = Self;
1857
1858 #[inline(always)]
1859 fn inline_align(_context: fidl::encoding::Context) -> usize {
1860 std::mem::align_of::<u8>()
1861 }
1862
1863 #[inline(always)]
1864 fn inline_size(_context: fidl::encoding::Context) -> usize {
1865 std::mem::size_of::<u8>()
1866 }
1867
1868 #[inline(always)]
1869 fn encode_is_copy() -> bool {
1870 false
1871 }
1872
1873 #[inline(always)]
1874 fn decode_is_copy() -> bool {
1875 false
1876 }
1877 }
1878
1879 impl fidl::encoding::ValueTypeMarker for HciError {
1880 type Borrowed<'a> = Self;
1881 #[inline(always)]
1882 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1883 *value
1884 }
1885 }
1886
1887 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for HciError {
1888 #[inline]
1889 unsafe fn encode(
1890 self,
1891 encoder: &mut fidl::encoding::Encoder<'_, D>,
1892 offset: usize,
1893 _depth: fidl::encoding::Depth,
1894 ) -> fidl::Result<()> {
1895 encoder.debug_check_bounds::<Self>(offset);
1896 encoder.write_num(self.into_primitive(), offset);
1897 Ok(())
1898 }
1899 }
1900
1901 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for HciError {
1902 #[inline(always)]
1903 fn new_empty() -> Self {
1904 Self::unknown()
1905 }
1906
1907 #[inline]
1908 unsafe fn decode(
1909 &mut self,
1910 decoder: &mut fidl::encoding::Decoder<'_, D>,
1911 offset: usize,
1912 _depth: fidl::encoding::Depth,
1913 ) -> fidl::Result<()> {
1914 decoder.debug_check_bounds::<Self>(offset);
1915 let prim = decoder.read_num::<u8>(offset);
1916
1917 *self = Self::from_primitive_allow_unknown(prim);
1918 Ok(())
1919 }
1920 }
1921 unsafe impl fidl::encoding::TypeMarker for LegacyAdvertisingType {
1922 type Owned = Self;
1923
1924 #[inline(always)]
1925 fn inline_align(_context: fidl::encoding::Context) -> usize {
1926 std::mem::align_of::<u8>()
1927 }
1928
1929 #[inline(always)]
1930 fn inline_size(_context: fidl::encoding::Context) -> usize {
1931 std::mem::size_of::<u8>()
1932 }
1933
1934 #[inline(always)]
1935 fn encode_is_copy() -> bool {
1936 true
1937 }
1938
1939 #[inline(always)]
1940 fn decode_is_copy() -> bool {
1941 false
1942 }
1943 }
1944
1945 impl fidl::encoding::ValueTypeMarker for LegacyAdvertisingType {
1946 type Borrowed<'a> = Self;
1947 #[inline(always)]
1948 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1949 *value
1950 }
1951 }
1952
1953 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
1954 for LegacyAdvertisingType
1955 {
1956 #[inline]
1957 unsafe fn encode(
1958 self,
1959 encoder: &mut fidl::encoding::Encoder<'_, D>,
1960 offset: usize,
1961 _depth: fidl::encoding::Depth,
1962 ) -> fidl::Result<()> {
1963 encoder.debug_check_bounds::<Self>(offset);
1964 encoder.write_num(self.into_primitive(), offset);
1965 Ok(())
1966 }
1967 }
1968
1969 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for LegacyAdvertisingType {
1970 #[inline(always)]
1971 fn new_empty() -> Self {
1972 Self::AdvInd
1973 }
1974
1975 #[inline]
1976 unsafe fn decode(
1977 &mut self,
1978 decoder: &mut fidl::encoding::Decoder<'_, D>,
1979 offset: usize,
1980 _depth: fidl::encoding::Depth,
1981 ) -> fidl::Result<()> {
1982 decoder.debug_check_bounds::<Self>(offset);
1983 let prim = decoder.read_num::<u8>(offset);
1984
1985 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
1986 Ok(())
1987 }
1988 }
1989 unsafe impl fidl::encoding::TypeMarker for PacketDirection {
1990 type Owned = Self;
1991
1992 #[inline(always)]
1993 fn inline_align(_context: fidl::encoding::Context) -> usize {
1994 std::mem::align_of::<u32>()
1995 }
1996
1997 #[inline(always)]
1998 fn inline_size(_context: fidl::encoding::Context) -> usize {
1999 std::mem::size_of::<u32>()
2000 }
2001
2002 #[inline(always)]
2003 fn encode_is_copy() -> bool {
2004 true
2005 }
2006
2007 #[inline(always)]
2008 fn decode_is_copy() -> bool {
2009 false
2010 }
2011 }
2012
2013 impl fidl::encoding::ValueTypeMarker for PacketDirection {
2014 type Borrowed<'a> = Self;
2015 #[inline(always)]
2016 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2017 *value
2018 }
2019 }
2020
2021 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
2022 for PacketDirection
2023 {
2024 #[inline]
2025 unsafe fn encode(
2026 self,
2027 encoder: &mut fidl::encoding::Encoder<'_, D>,
2028 offset: usize,
2029 _depth: fidl::encoding::Depth,
2030 ) -> fidl::Result<()> {
2031 encoder.debug_check_bounds::<Self>(offset);
2032 encoder.write_num(self.into_primitive(), offset);
2033 Ok(())
2034 }
2035 }
2036
2037 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for PacketDirection {
2038 #[inline(always)]
2039 fn new_empty() -> Self {
2040 Self::HostToController
2041 }
2042
2043 #[inline]
2044 unsafe fn decode(
2045 &mut self,
2046 decoder: &mut fidl::encoding::Decoder<'_, D>,
2047 offset: usize,
2048 _depth: fidl::encoding::Depth,
2049 ) -> fidl::Result<()> {
2050 decoder.debug_check_bounds::<Self>(offset);
2051 let prim = decoder.read_num::<u32>(offset);
2052
2053 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
2054 Ok(())
2055 }
2056 }
2057 unsafe impl fidl::encoding::TypeMarker for ScoCodingFormat {
2058 type Owned = Self;
2059
2060 #[inline(always)]
2061 fn inline_align(_context: fidl::encoding::Context) -> usize {
2062 std::mem::align_of::<u8>()
2063 }
2064
2065 #[inline(always)]
2066 fn inline_size(_context: fidl::encoding::Context) -> usize {
2067 std::mem::size_of::<u8>()
2068 }
2069
2070 #[inline(always)]
2071 fn encode_is_copy() -> bool {
2072 false
2073 }
2074
2075 #[inline(always)]
2076 fn decode_is_copy() -> bool {
2077 false
2078 }
2079 }
2080
2081 impl fidl::encoding::ValueTypeMarker for ScoCodingFormat {
2082 type Borrowed<'a> = Self;
2083 #[inline(always)]
2084 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2085 *value
2086 }
2087 }
2088
2089 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
2090 for ScoCodingFormat
2091 {
2092 #[inline]
2093 unsafe fn encode(
2094 self,
2095 encoder: &mut fidl::encoding::Encoder<'_, D>,
2096 offset: usize,
2097 _depth: fidl::encoding::Depth,
2098 ) -> fidl::Result<()> {
2099 encoder.debug_check_bounds::<Self>(offset);
2100 encoder.write_num(self.into_primitive(), offset);
2101 Ok(())
2102 }
2103 }
2104
2105 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ScoCodingFormat {
2106 #[inline(always)]
2107 fn new_empty() -> Self {
2108 Self::unknown()
2109 }
2110
2111 #[inline]
2112 unsafe fn decode(
2113 &mut self,
2114 decoder: &mut fidl::encoding::Decoder<'_, D>,
2115 offset: usize,
2116 _depth: fidl::encoding::Depth,
2117 ) -> fidl::Result<()> {
2118 decoder.debug_check_bounds::<Self>(offset);
2119 let prim = decoder.read_num::<u8>(offset);
2120
2121 *self = Self::from_primitive_allow_unknown(prim);
2122 Ok(())
2123 }
2124 }
2125 unsafe impl fidl::encoding::TypeMarker for ScoEncoding {
2126 type Owned = Self;
2127
2128 #[inline(always)]
2129 fn inline_align(_context: fidl::encoding::Context) -> usize {
2130 std::mem::align_of::<u8>()
2131 }
2132
2133 #[inline(always)]
2134 fn inline_size(_context: fidl::encoding::Context) -> usize {
2135 std::mem::size_of::<u8>()
2136 }
2137
2138 #[inline(always)]
2139 fn encode_is_copy() -> bool {
2140 false
2141 }
2142
2143 #[inline(always)]
2144 fn decode_is_copy() -> bool {
2145 false
2146 }
2147 }
2148
2149 impl fidl::encoding::ValueTypeMarker for ScoEncoding {
2150 type Borrowed<'a> = Self;
2151 #[inline(always)]
2152 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2153 *value
2154 }
2155 }
2156
2157 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for ScoEncoding {
2158 #[inline]
2159 unsafe fn encode(
2160 self,
2161 encoder: &mut fidl::encoding::Encoder<'_, D>,
2162 offset: usize,
2163 _depth: fidl::encoding::Depth,
2164 ) -> fidl::Result<()> {
2165 encoder.debug_check_bounds::<Self>(offset);
2166 encoder.write_num(self.into_primitive(), offset);
2167 Ok(())
2168 }
2169 }
2170
2171 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ScoEncoding {
2172 #[inline(always)]
2173 fn new_empty() -> Self {
2174 Self::unknown()
2175 }
2176
2177 #[inline]
2178 unsafe fn decode(
2179 &mut self,
2180 decoder: &mut fidl::encoding::Decoder<'_, D>,
2181 offset: usize,
2182 _depth: fidl::encoding::Depth,
2183 ) -> fidl::Result<()> {
2184 decoder.debug_check_bounds::<Self>(offset);
2185 let prim = decoder.read_num::<u8>(offset);
2186
2187 *self = Self::from_primitive_allow_unknown(prim);
2188 Ok(())
2189 }
2190 }
2191 unsafe impl fidl::encoding::TypeMarker for ScoSampleRate {
2192 type Owned = Self;
2193
2194 #[inline(always)]
2195 fn inline_align(_context: fidl::encoding::Context) -> usize {
2196 std::mem::align_of::<u8>()
2197 }
2198
2199 #[inline(always)]
2200 fn inline_size(_context: fidl::encoding::Context) -> usize {
2201 std::mem::size_of::<u8>()
2202 }
2203
2204 #[inline(always)]
2205 fn encode_is_copy() -> bool {
2206 false
2207 }
2208
2209 #[inline(always)]
2210 fn decode_is_copy() -> bool {
2211 false
2212 }
2213 }
2214
2215 impl fidl::encoding::ValueTypeMarker for ScoSampleRate {
2216 type Borrowed<'a> = Self;
2217 #[inline(always)]
2218 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2219 *value
2220 }
2221 }
2222
2223 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for ScoSampleRate {
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::<Self>(offset);
2232 encoder.write_num(self.into_primitive(), offset);
2233 Ok(())
2234 }
2235 }
2236
2237 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ScoSampleRate {
2238 #[inline(always)]
2239 fn new_empty() -> Self {
2240 Self::unknown()
2241 }
2242
2243 #[inline]
2244 unsafe fn decode(
2245 &mut self,
2246 decoder: &mut fidl::encoding::Decoder<'_, D>,
2247 offset: usize,
2248 _depth: fidl::encoding::Depth,
2249 ) -> fidl::Result<()> {
2250 decoder.debug_check_bounds::<Self>(offset);
2251 let prim = decoder.read_num::<u8>(offset);
2252
2253 *self = Self::from_primitive_allow_unknown(prim);
2254 Ok(())
2255 }
2256 }
2257 unsafe impl fidl::encoding::TypeMarker for VendorAclDirection {
2258 type Owned = Self;
2259
2260 #[inline(always)]
2261 fn inline_align(_context: fidl::encoding::Context) -> usize {
2262 std::mem::align_of::<u8>()
2263 }
2264
2265 #[inline(always)]
2266 fn inline_size(_context: fidl::encoding::Context) -> usize {
2267 std::mem::size_of::<u8>()
2268 }
2269
2270 #[inline(always)]
2271 fn encode_is_copy() -> bool {
2272 false
2273 }
2274
2275 #[inline(always)]
2276 fn decode_is_copy() -> bool {
2277 false
2278 }
2279 }
2280
2281 impl fidl::encoding::ValueTypeMarker for VendorAclDirection {
2282 type Borrowed<'a> = Self;
2283 #[inline(always)]
2284 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2285 *value
2286 }
2287 }
2288
2289 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
2290 for VendorAclDirection
2291 {
2292 #[inline]
2293 unsafe fn encode(
2294 self,
2295 encoder: &mut fidl::encoding::Encoder<'_, D>,
2296 offset: usize,
2297 _depth: fidl::encoding::Depth,
2298 ) -> fidl::Result<()> {
2299 encoder.debug_check_bounds::<Self>(offset);
2300 encoder.write_num(self.into_primitive(), offset);
2301 Ok(())
2302 }
2303 }
2304
2305 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for VendorAclDirection {
2306 #[inline(always)]
2307 fn new_empty() -> Self {
2308 Self::unknown()
2309 }
2310
2311 #[inline]
2312 unsafe fn decode(
2313 &mut self,
2314 decoder: &mut fidl::encoding::Decoder<'_, D>,
2315 offset: usize,
2316 _depth: fidl::encoding::Depth,
2317 ) -> fidl::Result<()> {
2318 decoder.debug_check_bounds::<Self>(offset);
2319 let prim = decoder.read_num::<u8>(offset);
2320
2321 *self = Self::from_primitive_allow_unknown(prim);
2322 Ok(())
2323 }
2324 }
2325 unsafe impl fidl::encoding::TypeMarker for VendorAclPriority {
2326 type Owned = Self;
2327
2328 #[inline(always)]
2329 fn inline_align(_context: fidl::encoding::Context) -> usize {
2330 std::mem::align_of::<u8>()
2331 }
2332
2333 #[inline(always)]
2334 fn inline_size(_context: fidl::encoding::Context) -> usize {
2335 std::mem::size_of::<u8>()
2336 }
2337
2338 #[inline(always)]
2339 fn encode_is_copy() -> bool {
2340 false
2341 }
2342
2343 #[inline(always)]
2344 fn decode_is_copy() -> bool {
2345 false
2346 }
2347 }
2348
2349 impl fidl::encoding::ValueTypeMarker for VendorAclPriority {
2350 type Borrowed<'a> = Self;
2351 #[inline(always)]
2352 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2353 *value
2354 }
2355 }
2356
2357 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
2358 for VendorAclPriority
2359 {
2360 #[inline]
2361 unsafe fn encode(
2362 self,
2363 encoder: &mut fidl::encoding::Encoder<'_, D>,
2364 offset: usize,
2365 _depth: fidl::encoding::Depth,
2366 ) -> fidl::Result<()> {
2367 encoder.debug_check_bounds::<Self>(offset);
2368 encoder.write_num(self.into_primitive(), offset);
2369 Ok(())
2370 }
2371 }
2372
2373 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for VendorAclPriority {
2374 #[inline(always)]
2375 fn new_empty() -> Self {
2376 Self::unknown()
2377 }
2378
2379 #[inline]
2380 unsafe fn decode(
2381 &mut self,
2382 decoder: &mut fidl::encoding::Decoder<'_, D>,
2383 offset: usize,
2384 _depth: fidl::encoding::Depth,
2385 ) -> fidl::Result<()> {
2386 decoder.debug_check_bounds::<Self>(offset);
2387 let prim = decoder.read_num::<u8>(offset);
2388
2389 *self = Self::from_primitive_allow_unknown(prim);
2390 Ok(())
2391 }
2392 }
2393
2394 impl fidl::encoding::ValueTypeMarker for EmulatorWatchLeScanStatesResponse {
2395 type Borrowed<'a> = &'a Self;
2396 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2397 value
2398 }
2399 }
2400
2401 unsafe impl fidl::encoding::TypeMarker for EmulatorWatchLeScanStatesResponse {
2402 type Owned = Self;
2403
2404 #[inline(always)]
2405 fn inline_align(_context: fidl::encoding::Context) -> usize {
2406 8
2407 }
2408
2409 #[inline(always)]
2410 fn inline_size(_context: fidl::encoding::Context) -> usize {
2411 16
2412 }
2413 }
2414
2415 unsafe impl<D: fidl::encoding::ResourceDialect>
2416 fidl::encoding::Encode<EmulatorWatchLeScanStatesResponse, D>
2417 for &EmulatorWatchLeScanStatesResponse
2418 {
2419 #[inline]
2420 unsafe fn encode(
2421 self,
2422 encoder: &mut fidl::encoding::Encoder<'_, D>,
2423 offset: usize,
2424 _depth: fidl::encoding::Depth,
2425 ) -> fidl::Result<()> {
2426 encoder.debug_check_bounds::<EmulatorWatchLeScanStatesResponse>(offset);
2427 fidl::encoding::Encode::<EmulatorWatchLeScanStatesResponse, D>::encode(
2429 (
2430 <fidl::encoding::UnboundedVector<LeScanState> as fidl::encoding::ValueTypeMarker>::borrow(&self.states),
2431 ),
2432 encoder, offset, _depth
2433 )
2434 }
2435 }
2436 unsafe impl<
2437 D: fidl::encoding::ResourceDialect,
2438 T0: fidl::encoding::Encode<fidl::encoding::UnboundedVector<LeScanState>, D>,
2439 > fidl::encoding::Encode<EmulatorWatchLeScanStatesResponse, D> for (T0,)
2440 {
2441 #[inline]
2442 unsafe fn encode(
2443 self,
2444 encoder: &mut fidl::encoding::Encoder<'_, D>,
2445 offset: usize,
2446 depth: fidl::encoding::Depth,
2447 ) -> fidl::Result<()> {
2448 encoder.debug_check_bounds::<EmulatorWatchLeScanStatesResponse>(offset);
2449 self.0.encode(encoder, offset + 0, depth)?;
2453 Ok(())
2454 }
2455 }
2456
2457 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2458 for EmulatorWatchLeScanStatesResponse
2459 {
2460 #[inline(always)]
2461 fn new_empty() -> Self {
2462 Self { states: fidl::new_empty!(fidl::encoding::UnboundedVector<LeScanState>, D) }
2463 }
2464
2465 #[inline]
2466 unsafe fn decode(
2467 &mut self,
2468 decoder: &mut fidl::encoding::Decoder<'_, D>,
2469 offset: usize,
2470 _depth: fidl::encoding::Depth,
2471 ) -> fidl::Result<()> {
2472 decoder.debug_check_bounds::<Self>(offset);
2473 fidl::decode!(
2475 fidl::encoding::UnboundedVector<LeScanState>,
2476 D,
2477 &mut self.states,
2478 decoder,
2479 offset + 0,
2480 _depth
2481 )?;
2482 Ok(())
2483 }
2484 }
2485
2486 impl fidl::encoding::ValueTypeMarker for EmulatorWatchLegacyAdvertisingStatesResponse {
2487 type Borrowed<'a> = &'a Self;
2488 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2489 value
2490 }
2491 }
2492
2493 unsafe impl fidl::encoding::TypeMarker for EmulatorWatchLegacyAdvertisingStatesResponse {
2494 type Owned = Self;
2495
2496 #[inline(always)]
2497 fn inline_align(_context: fidl::encoding::Context) -> usize {
2498 8
2499 }
2500
2501 #[inline(always)]
2502 fn inline_size(_context: fidl::encoding::Context) -> usize {
2503 16
2504 }
2505 }
2506
2507 unsafe impl<D: fidl::encoding::ResourceDialect>
2508 fidl::encoding::Encode<EmulatorWatchLegacyAdvertisingStatesResponse, D>
2509 for &EmulatorWatchLegacyAdvertisingStatesResponse
2510 {
2511 #[inline]
2512 unsafe fn encode(
2513 self,
2514 encoder: &mut fidl::encoding::Encoder<'_, D>,
2515 offset: usize,
2516 _depth: fidl::encoding::Depth,
2517 ) -> fidl::Result<()> {
2518 encoder.debug_check_bounds::<EmulatorWatchLegacyAdvertisingStatesResponse>(offset);
2519 fidl::encoding::Encode::<EmulatorWatchLegacyAdvertisingStatesResponse, D>::encode(
2521 (
2522 <fidl::encoding::UnboundedVector<LegacyAdvertisingState> as fidl::encoding::ValueTypeMarker>::borrow(&self.states),
2523 ),
2524 encoder, offset, _depth
2525 )
2526 }
2527 }
2528 unsafe impl<
2529 D: fidl::encoding::ResourceDialect,
2530 T0: fidl::encoding::Encode<fidl::encoding::UnboundedVector<LegacyAdvertisingState>, D>,
2531 > fidl::encoding::Encode<EmulatorWatchLegacyAdvertisingStatesResponse, D> for (T0,)
2532 {
2533 #[inline]
2534 unsafe fn encode(
2535 self,
2536 encoder: &mut fidl::encoding::Encoder<'_, D>,
2537 offset: usize,
2538 depth: fidl::encoding::Depth,
2539 ) -> fidl::Result<()> {
2540 encoder.debug_check_bounds::<EmulatorWatchLegacyAdvertisingStatesResponse>(offset);
2541 self.0.encode(encoder, offset + 0, depth)?;
2545 Ok(())
2546 }
2547 }
2548
2549 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2550 for EmulatorWatchLegacyAdvertisingStatesResponse
2551 {
2552 #[inline(always)]
2553 fn new_empty() -> Self {
2554 Self {
2555 states: fidl::new_empty!(
2556 fidl::encoding::UnboundedVector<LegacyAdvertisingState>,
2557 D
2558 ),
2559 }
2560 }
2561
2562 #[inline]
2563 unsafe fn decode(
2564 &mut self,
2565 decoder: &mut fidl::encoding::Decoder<'_, D>,
2566 offset: usize,
2567 _depth: fidl::encoding::Depth,
2568 ) -> fidl::Result<()> {
2569 decoder.debug_check_bounds::<Self>(offset);
2570 fidl::decode!(
2572 fidl::encoding::UnboundedVector<LegacyAdvertisingState>,
2573 D,
2574 &mut self.states,
2575 decoder,
2576 offset + 0,
2577 _depth
2578 )?;
2579 Ok(())
2580 }
2581 }
2582
2583 impl fidl::encoding::ValueTypeMarker for HciConfigureScoRequest {
2584 type Borrowed<'a> = &'a Self;
2585 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2586 value
2587 }
2588 }
2589
2590 unsafe impl fidl::encoding::TypeMarker for HciConfigureScoRequest {
2591 type Owned = Self;
2592
2593 #[inline(always)]
2594 fn inline_align(_context: fidl::encoding::Context) -> usize {
2595 1
2596 }
2597
2598 #[inline(always)]
2599 fn inline_size(_context: fidl::encoding::Context) -> usize {
2600 3
2601 }
2602 }
2603
2604 unsafe impl<D: fidl::encoding::ResourceDialect>
2605 fidl::encoding::Encode<HciConfigureScoRequest, D> for &HciConfigureScoRequest
2606 {
2607 #[inline]
2608 unsafe fn encode(
2609 self,
2610 encoder: &mut fidl::encoding::Encoder<'_, D>,
2611 offset: usize,
2612 _depth: fidl::encoding::Depth,
2613 ) -> fidl::Result<()> {
2614 encoder.debug_check_bounds::<HciConfigureScoRequest>(offset);
2615 fidl::encoding::Encode::<HciConfigureScoRequest, D>::encode(
2617 (
2618 <ScoCodingFormat as fidl::encoding::ValueTypeMarker>::borrow(
2619 &self.coding_format,
2620 ),
2621 <ScoEncoding as fidl::encoding::ValueTypeMarker>::borrow(&self.encoding),
2622 <ScoSampleRate as fidl::encoding::ValueTypeMarker>::borrow(&self.sample_rate),
2623 ),
2624 encoder,
2625 offset,
2626 _depth,
2627 )
2628 }
2629 }
2630 unsafe impl<
2631 D: fidl::encoding::ResourceDialect,
2632 T0: fidl::encoding::Encode<ScoCodingFormat, D>,
2633 T1: fidl::encoding::Encode<ScoEncoding, D>,
2634 T2: fidl::encoding::Encode<ScoSampleRate, D>,
2635 > fidl::encoding::Encode<HciConfigureScoRequest, D> for (T0, T1, T2)
2636 {
2637 #[inline]
2638 unsafe fn encode(
2639 self,
2640 encoder: &mut fidl::encoding::Encoder<'_, D>,
2641 offset: usize,
2642 depth: fidl::encoding::Depth,
2643 ) -> fidl::Result<()> {
2644 encoder.debug_check_bounds::<HciConfigureScoRequest>(offset);
2645 self.0.encode(encoder, offset + 0, depth)?;
2649 self.1.encode(encoder, offset + 1, depth)?;
2650 self.2.encode(encoder, offset + 2, depth)?;
2651 Ok(())
2652 }
2653 }
2654
2655 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2656 for HciConfigureScoRequest
2657 {
2658 #[inline(always)]
2659 fn new_empty() -> Self {
2660 Self {
2661 coding_format: fidl::new_empty!(ScoCodingFormat, D),
2662 encoding: fidl::new_empty!(ScoEncoding, D),
2663 sample_rate: fidl::new_empty!(ScoSampleRate, D),
2664 }
2665 }
2666
2667 #[inline]
2668 unsafe fn decode(
2669 &mut self,
2670 decoder: &mut fidl::encoding::Decoder<'_, D>,
2671 offset: usize,
2672 _depth: fidl::encoding::Depth,
2673 ) -> fidl::Result<()> {
2674 decoder.debug_check_bounds::<Self>(offset);
2675 fidl::decode!(
2677 ScoCodingFormat,
2678 D,
2679 &mut self.coding_format,
2680 decoder,
2681 offset + 0,
2682 _depth
2683 )?;
2684 fidl::decode!(ScoEncoding, D, &mut self.encoding, decoder, offset + 1, _depth)?;
2685 fidl::decode!(ScoSampleRate, D, &mut self.sample_rate, decoder, offset + 2, _depth)?;
2686 Ok(())
2687 }
2688 }
2689
2690 impl fidl::encoding::ValueTypeMarker for PeerAssignConnectionStatusRequest {
2691 type Borrowed<'a> = &'a Self;
2692 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2693 value
2694 }
2695 }
2696
2697 unsafe impl fidl::encoding::TypeMarker for PeerAssignConnectionStatusRequest {
2698 type Owned = Self;
2699
2700 #[inline(always)]
2701 fn inline_align(_context: fidl::encoding::Context) -> usize {
2702 1
2703 }
2704
2705 #[inline(always)]
2706 fn inline_size(_context: fidl::encoding::Context) -> usize {
2707 1
2708 }
2709 }
2710
2711 unsafe impl<D: fidl::encoding::ResourceDialect>
2712 fidl::encoding::Encode<PeerAssignConnectionStatusRequest, D>
2713 for &PeerAssignConnectionStatusRequest
2714 {
2715 #[inline]
2716 unsafe fn encode(
2717 self,
2718 encoder: &mut fidl::encoding::Encoder<'_, D>,
2719 offset: usize,
2720 _depth: fidl::encoding::Depth,
2721 ) -> fidl::Result<()> {
2722 encoder.debug_check_bounds::<PeerAssignConnectionStatusRequest>(offset);
2723 fidl::encoding::Encode::<PeerAssignConnectionStatusRequest, D>::encode(
2725 (<HciError as fidl::encoding::ValueTypeMarker>::borrow(&self.status),),
2726 encoder,
2727 offset,
2728 _depth,
2729 )
2730 }
2731 }
2732 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<HciError, D>>
2733 fidl::encoding::Encode<PeerAssignConnectionStatusRequest, D> for (T0,)
2734 {
2735 #[inline]
2736 unsafe fn encode(
2737 self,
2738 encoder: &mut fidl::encoding::Encoder<'_, D>,
2739 offset: usize,
2740 depth: fidl::encoding::Depth,
2741 ) -> fidl::Result<()> {
2742 encoder.debug_check_bounds::<PeerAssignConnectionStatusRequest>(offset);
2743 self.0.encode(encoder, offset + 0, depth)?;
2747 Ok(())
2748 }
2749 }
2750
2751 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2752 for PeerAssignConnectionStatusRequest
2753 {
2754 #[inline(always)]
2755 fn new_empty() -> Self {
2756 Self { status: fidl::new_empty!(HciError, D) }
2757 }
2758
2759 #[inline]
2760 unsafe fn decode(
2761 &mut self,
2762 decoder: &mut fidl::encoding::Decoder<'_, D>,
2763 offset: usize,
2764 _depth: fidl::encoding::Depth,
2765 ) -> fidl::Result<()> {
2766 decoder.debug_check_bounds::<Self>(offset);
2767 fidl::decode!(HciError, D, &mut self.status, decoder, offset + 0, _depth)?;
2769 Ok(())
2770 }
2771 }
2772
2773 impl fidl::encoding::ValueTypeMarker for PeerEmulateLeConnectionCompleteRequest {
2774 type Borrowed<'a> = &'a Self;
2775 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2776 value
2777 }
2778 }
2779
2780 unsafe impl fidl::encoding::TypeMarker for PeerEmulateLeConnectionCompleteRequest {
2781 type Owned = Self;
2782
2783 #[inline(always)]
2784 fn inline_align(_context: fidl::encoding::Context) -> usize {
2785 4
2786 }
2787
2788 #[inline(always)]
2789 fn inline_size(_context: fidl::encoding::Context) -> usize {
2790 4
2791 }
2792 }
2793
2794 unsafe impl<D: fidl::encoding::ResourceDialect>
2795 fidl::encoding::Encode<PeerEmulateLeConnectionCompleteRequest, D>
2796 for &PeerEmulateLeConnectionCompleteRequest
2797 {
2798 #[inline]
2799 unsafe fn encode(
2800 self,
2801 encoder: &mut fidl::encoding::Encoder<'_, D>,
2802 offset: usize,
2803 _depth: fidl::encoding::Depth,
2804 ) -> fidl::Result<()> {
2805 encoder.debug_check_bounds::<PeerEmulateLeConnectionCompleteRequest>(offset);
2806 fidl::encoding::Encode::<PeerEmulateLeConnectionCompleteRequest, D>::encode(
2808 (
2809 <fidl_fuchsia_bluetooth__common::ConnectionRole as fidl::encoding::ValueTypeMarker>::borrow(&self.role),
2810 ),
2811 encoder, offset, _depth
2812 )
2813 }
2814 }
2815 unsafe impl<
2816 D: fidl::encoding::ResourceDialect,
2817 T0: fidl::encoding::Encode<fidl_fuchsia_bluetooth__common::ConnectionRole, D>,
2818 > fidl::encoding::Encode<PeerEmulateLeConnectionCompleteRequest, D> for (T0,)
2819 {
2820 #[inline]
2821 unsafe fn encode(
2822 self,
2823 encoder: &mut fidl::encoding::Encoder<'_, D>,
2824 offset: usize,
2825 depth: fidl::encoding::Depth,
2826 ) -> fidl::Result<()> {
2827 encoder.debug_check_bounds::<PeerEmulateLeConnectionCompleteRequest>(offset);
2828 self.0.encode(encoder, offset + 0, depth)?;
2832 Ok(())
2833 }
2834 }
2835
2836 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2837 for PeerEmulateLeConnectionCompleteRequest
2838 {
2839 #[inline(always)]
2840 fn new_empty() -> Self {
2841 Self { role: fidl::new_empty!(fidl_fuchsia_bluetooth__common::ConnectionRole, D) }
2842 }
2843
2844 #[inline]
2845 unsafe fn decode(
2846 &mut self,
2847 decoder: &mut fidl::encoding::Decoder<'_, D>,
2848 offset: usize,
2849 _depth: fidl::encoding::Depth,
2850 ) -> fidl::Result<()> {
2851 decoder.debug_check_bounds::<Self>(offset);
2852 fidl::decode!(
2854 fidl_fuchsia_bluetooth__common::ConnectionRole,
2855 D,
2856 &mut self.role,
2857 decoder,
2858 offset + 0,
2859 _depth
2860 )?;
2861 Ok(())
2862 }
2863 }
2864
2865 impl fidl::encoding::ValueTypeMarker for PeerSetServiceDefinitionsRequest {
2866 type Borrowed<'a> = &'a Self;
2867 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2868 value
2869 }
2870 }
2871
2872 unsafe impl fidl::encoding::TypeMarker for PeerSetServiceDefinitionsRequest {
2873 type Owned = Self;
2874
2875 #[inline(always)]
2876 fn inline_align(_context: fidl::encoding::Context) -> usize {
2877 8
2878 }
2879
2880 #[inline(always)]
2881 fn inline_size(_context: fidl::encoding::Context) -> usize {
2882 16
2883 }
2884 }
2885
2886 unsafe impl<D: fidl::encoding::ResourceDialect>
2887 fidl::encoding::Encode<PeerSetServiceDefinitionsRequest, D>
2888 for &PeerSetServiceDefinitionsRequest
2889 {
2890 #[inline]
2891 unsafe fn encode(
2892 self,
2893 encoder: &mut fidl::encoding::Encoder<'_, D>,
2894 offset: usize,
2895 _depth: fidl::encoding::Depth,
2896 ) -> fidl::Result<()> {
2897 encoder.debug_check_bounds::<PeerSetServiceDefinitionsRequest>(offset);
2898 fidl::encoding::Encode::<PeerSetServiceDefinitionsRequest, D>::encode(
2900 (<fidl::encoding::Vector<
2901 fidl_fuchsia_bluetooth_bredr__common::ServiceDefinition,
2902 32,
2903 > as fidl::encoding::ValueTypeMarker>::borrow(
2904 &self.service_definitions
2905 ),),
2906 encoder,
2907 offset,
2908 _depth,
2909 )
2910 }
2911 }
2912 unsafe impl<
2913 D: fidl::encoding::ResourceDialect,
2914 T0: fidl::encoding::Encode<
2915 fidl::encoding::Vector<fidl_fuchsia_bluetooth_bredr__common::ServiceDefinition, 32>,
2916 D,
2917 >,
2918 > fidl::encoding::Encode<PeerSetServiceDefinitionsRequest, D> for (T0,)
2919 {
2920 #[inline]
2921 unsafe fn encode(
2922 self,
2923 encoder: &mut fidl::encoding::Encoder<'_, D>,
2924 offset: usize,
2925 depth: fidl::encoding::Depth,
2926 ) -> fidl::Result<()> {
2927 encoder.debug_check_bounds::<PeerSetServiceDefinitionsRequest>(offset);
2928 self.0.encode(encoder, offset + 0, depth)?;
2932 Ok(())
2933 }
2934 }
2935
2936 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2937 for PeerSetServiceDefinitionsRequest
2938 {
2939 #[inline(always)]
2940 fn new_empty() -> Self {
2941 Self {
2942 service_definitions: fidl::new_empty!(fidl::encoding::Vector<fidl_fuchsia_bluetooth_bredr__common::ServiceDefinition, 32>, D),
2943 }
2944 }
2945
2946 #[inline]
2947 unsafe fn decode(
2948 &mut self,
2949 decoder: &mut fidl::encoding::Decoder<'_, D>,
2950 offset: usize,
2951 _depth: fidl::encoding::Depth,
2952 ) -> fidl::Result<()> {
2953 decoder.debug_check_bounds::<Self>(offset);
2954 fidl::decode!(fidl::encoding::Vector<fidl_fuchsia_bluetooth_bredr__common::ServiceDefinition, 32>, D, &mut self.service_definitions, decoder, offset + 0, _depth)?;
2956 Ok(())
2957 }
2958 }
2959
2960 impl fidl::encoding::ValueTypeMarker for PeerWatchConnectionStatesResponse {
2961 type Borrowed<'a> = &'a Self;
2962 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2963 value
2964 }
2965 }
2966
2967 unsafe impl fidl::encoding::TypeMarker for PeerWatchConnectionStatesResponse {
2968 type Owned = Self;
2969
2970 #[inline(always)]
2971 fn inline_align(_context: fidl::encoding::Context) -> usize {
2972 8
2973 }
2974
2975 #[inline(always)]
2976 fn inline_size(_context: fidl::encoding::Context) -> usize {
2977 16
2978 }
2979 }
2980
2981 unsafe impl<D: fidl::encoding::ResourceDialect>
2982 fidl::encoding::Encode<PeerWatchConnectionStatesResponse, D>
2983 for &PeerWatchConnectionStatesResponse
2984 {
2985 #[inline]
2986 unsafe fn encode(
2987 self,
2988 encoder: &mut fidl::encoding::Encoder<'_, D>,
2989 offset: usize,
2990 _depth: fidl::encoding::Depth,
2991 ) -> fidl::Result<()> {
2992 encoder.debug_check_bounds::<PeerWatchConnectionStatesResponse>(offset);
2993 fidl::encoding::Encode::<PeerWatchConnectionStatesResponse, D>::encode(
2995 (
2996 <fidl::encoding::UnboundedVector<ConnectionState> as fidl::encoding::ValueTypeMarker>::borrow(&self.states),
2997 ),
2998 encoder, offset, _depth
2999 )
3000 }
3001 }
3002 unsafe impl<
3003 D: fidl::encoding::ResourceDialect,
3004 T0: fidl::encoding::Encode<fidl::encoding::UnboundedVector<ConnectionState>, D>,
3005 > fidl::encoding::Encode<PeerWatchConnectionStatesResponse, D> for (T0,)
3006 {
3007 #[inline]
3008 unsafe fn encode(
3009 self,
3010 encoder: &mut fidl::encoding::Encoder<'_, D>,
3011 offset: usize,
3012 depth: fidl::encoding::Depth,
3013 ) -> fidl::Result<()> {
3014 encoder.debug_check_bounds::<PeerWatchConnectionStatesResponse>(offset);
3015 self.0.encode(encoder, offset + 0, depth)?;
3019 Ok(())
3020 }
3021 }
3022
3023 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3024 for PeerWatchConnectionStatesResponse
3025 {
3026 #[inline(always)]
3027 fn new_empty() -> Self {
3028 Self { states: fidl::new_empty!(fidl::encoding::UnboundedVector<ConnectionState>, D) }
3029 }
3030
3031 #[inline]
3032 unsafe fn decode(
3033 &mut self,
3034 decoder: &mut fidl::encoding::Decoder<'_, D>,
3035 offset: usize,
3036 _depth: fidl::encoding::Depth,
3037 ) -> fidl::Result<()> {
3038 decoder.debug_check_bounds::<Self>(offset);
3039 fidl::decode!(
3041 fidl::encoding::UnboundedVector<ConnectionState>,
3042 D,
3043 &mut self.states,
3044 decoder,
3045 offset + 0,
3046 _depth
3047 )?;
3048 Ok(())
3049 }
3050 }
3051
3052 impl fidl::encoding::ValueTypeMarker for ScoPacket {
3053 type Borrowed<'a> = &'a Self;
3054 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3055 value
3056 }
3057 }
3058
3059 unsafe impl fidl::encoding::TypeMarker for ScoPacket {
3060 type Owned = Self;
3061
3062 #[inline(always)]
3063 fn inline_align(_context: fidl::encoding::Context) -> usize {
3064 8
3065 }
3066
3067 #[inline(always)]
3068 fn inline_size(_context: fidl::encoding::Context) -> usize {
3069 16
3070 }
3071 }
3072
3073 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ScoPacket, D>
3074 for &ScoPacket
3075 {
3076 #[inline]
3077 unsafe fn encode(
3078 self,
3079 encoder: &mut fidl::encoding::Encoder<'_, D>,
3080 offset: usize,
3081 _depth: fidl::encoding::Depth,
3082 ) -> fidl::Result<()> {
3083 encoder.debug_check_bounds::<ScoPacket>(offset);
3084 fidl::encoding::Encode::<ScoPacket, D>::encode(
3086 (<fidl::encoding::Vector<u8, 258> as fidl::encoding::ValueTypeMarker>::borrow(
3087 &self.packet,
3088 ),),
3089 encoder,
3090 offset,
3091 _depth,
3092 )
3093 }
3094 }
3095 unsafe impl<
3096 D: fidl::encoding::ResourceDialect,
3097 T0: fidl::encoding::Encode<fidl::encoding::Vector<u8, 258>, D>,
3098 > fidl::encoding::Encode<ScoPacket, D> for (T0,)
3099 {
3100 #[inline]
3101 unsafe fn encode(
3102 self,
3103 encoder: &mut fidl::encoding::Encoder<'_, D>,
3104 offset: usize,
3105 depth: fidl::encoding::Depth,
3106 ) -> fidl::Result<()> {
3107 encoder.debug_check_bounds::<ScoPacket>(offset);
3108 self.0.encode(encoder, offset + 0, depth)?;
3112 Ok(())
3113 }
3114 }
3115
3116 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ScoPacket {
3117 #[inline(always)]
3118 fn new_empty() -> Self {
3119 Self { packet: fidl::new_empty!(fidl::encoding::Vector<u8, 258>, D) }
3120 }
3121
3122 #[inline]
3123 unsafe fn decode(
3124 &mut self,
3125 decoder: &mut fidl::encoding::Decoder<'_, D>,
3126 offset: usize,
3127 _depth: fidl::encoding::Depth,
3128 ) -> fidl::Result<()> {
3129 decoder.debug_check_bounds::<Self>(offset);
3130 fidl::decode!(fidl::encoding::Vector<u8, 258>, D, &mut self.packet, decoder, offset + 0, _depth)?;
3132 Ok(())
3133 }
3134 }
3135
3136 impl fidl::encoding::ValueTypeMarker for SnoopAcknowledgePacketsRequest {
3137 type Borrowed<'a> = &'a Self;
3138 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3139 value
3140 }
3141 }
3142
3143 unsafe impl fidl::encoding::TypeMarker for SnoopAcknowledgePacketsRequest {
3144 type Owned = Self;
3145
3146 #[inline(always)]
3147 fn inline_align(_context: fidl::encoding::Context) -> usize {
3148 8
3149 }
3150
3151 #[inline(always)]
3152 fn inline_size(_context: fidl::encoding::Context) -> usize {
3153 8
3154 }
3155 #[inline(always)]
3156 fn encode_is_copy() -> bool {
3157 true
3158 }
3159
3160 #[inline(always)]
3161 fn decode_is_copy() -> bool {
3162 true
3163 }
3164 }
3165
3166 unsafe impl<D: fidl::encoding::ResourceDialect>
3167 fidl::encoding::Encode<SnoopAcknowledgePacketsRequest, D>
3168 for &SnoopAcknowledgePacketsRequest
3169 {
3170 #[inline]
3171 unsafe fn encode(
3172 self,
3173 encoder: &mut fidl::encoding::Encoder<'_, D>,
3174 offset: usize,
3175 _depth: fidl::encoding::Depth,
3176 ) -> fidl::Result<()> {
3177 encoder.debug_check_bounds::<SnoopAcknowledgePacketsRequest>(offset);
3178 unsafe {
3179 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
3181 (buf_ptr as *mut SnoopAcknowledgePacketsRequest)
3182 .write_unaligned((self as *const SnoopAcknowledgePacketsRequest).read());
3183 }
3186 Ok(())
3187 }
3188 }
3189 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<u64, D>>
3190 fidl::encoding::Encode<SnoopAcknowledgePacketsRequest, D> for (T0,)
3191 {
3192 #[inline]
3193 unsafe fn encode(
3194 self,
3195 encoder: &mut fidl::encoding::Encoder<'_, D>,
3196 offset: usize,
3197 depth: fidl::encoding::Depth,
3198 ) -> fidl::Result<()> {
3199 encoder.debug_check_bounds::<SnoopAcknowledgePacketsRequest>(offset);
3200 self.0.encode(encoder, offset + 0, depth)?;
3204 Ok(())
3205 }
3206 }
3207
3208 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3209 for SnoopAcknowledgePacketsRequest
3210 {
3211 #[inline(always)]
3212 fn new_empty() -> Self {
3213 Self { sequence: fidl::new_empty!(u64, D) }
3214 }
3215
3216 #[inline]
3217 unsafe fn decode(
3218 &mut self,
3219 decoder: &mut fidl::encoding::Decoder<'_, D>,
3220 offset: usize,
3221 _depth: fidl::encoding::Depth,
3222 ) -> fidl::Result<()> {
3223 decoder.debug_check_bounds::<Self>(offset);
3224 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
3225 unsafe {
3228 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 8);
3229 }
3230 Ok(())
3231 }
3232 }
3233
3234 impl fidl::encoding::ValueTypeMarker for VendorEncodeCommandResponse {
3235 type Borrowed<'a> = &'a Self;
3236 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3237 value
3238 }
3239 }
3240
3241 unsafe impl fidl::encoding::TypeMarker for VendorEncodeCommandResponse {
3242 type Owned = Self;
3243
3244 #[inline(always)]
3245 fn inline_align(_context: fidl::encoding::Context) -> usize {
3246 8
3247 }
3248
3249 #[inline(always)]
3250 fn inline_size(_context: fidl::encoding::Context) -> usize {
3251 16
3252 }
3253 }
3254
3255 unsafe impl<D: fidl::encoding::ResourceDialect>
3256 fidl::encoding::Encode<VendorEncodeCommandResponse, D> for &VendorEncodeCommandResponse
3257 {
3258 #[inline]
3259 unsafe fn encode(
3260 self,
3261 encoder: &mut fidl::encoding::Encoder<'_, D>,
3262 offset: usize,
3263 _depth: fidl::encoding::Depth,
3264 ) -> fidl::Result<()> {
3265 encoder.debug_check_bounds::<VendorEncodeCommandResponse>(offset);
3266 fidl::encoding::Encode::<VendorEncodeCommandResponse, D>::encode(
3268 (<fidl::encoding::Vector<u8, 16> as fidl::encoding::ValueTypeMarker>::borrow(
3269 &self.encoded,
3270 ),),
3271 encoder,
3272 offset,
3273 _depth,
3274 )
3275 }
3276 }
3277 unsafe impl<
3278 D: fidl::encoding::ResourceDialect,
3279 T0: fidl::encoding::Encode<fidl::encoding::Vector<u8, 16>, D>,
3280 > fidl::encoding::Encode<VendorEncodeCommandResponse, D> for (T0,)
3281 {
3282 #[inline]
3283 unsafe fn encode(
3284 self,
3285 encoder: &mut fidl::encoding::Encoder<'_, D>,
3286 offset: usize,
3287 depth: fidl::encoding::Depth,
3288 ) -> fidl::Result<()> {
3289 encoder.debug_check_bounds::<VendorEncodeCommandResponse>(offset);
3290 self.0.encode(encoder, offset + 0, depth)?;
3294 Ok(())
3295 }
3296 }
3297
3298 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3299 for VendorEncodeCommandResponse
3300 {
3301 #[inline(always)]
3302 fn new_empty() -> Self {
3303 Self { encoded: fidl::new_empty!(fidl::encoding::Vector<u8, 16>, D) }
3304 }
3305
3306 #[inline]
3307 unsafe fn decode(
3308 &mut self,
3309 decoder: &mut fidl::encoding::Decoder<'_, D>,
3310 offset: usize,
3311 _depth: fidl::encoding::Depth,
3312 ) -> fidl::Result<()> {
3313 decoder.debug_check_bounds::<Self>(offset);
3314 fidl::decode!(fidl::encoding::Vector<u8, 16>, D, &mut self.encoded, decoder, offset + 0, _depth)?;
3316 Ok(())
3317 }
3318 }
3319
3320 impl fidl::encoding::ValueTypeMarker for VirtualControllerCreateEmulatorResponse {
3321 type Borrowed<'a> = &'a Self;
3322 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3323 value
3324 }
3325 }
3326
3327 unsafe impl fidl::encoding::TypeMarker for VirtualControllerCreateEmulatorResponse {
3328 type Owned = Self;
3329
3330 #[inline(always)]
3331 fn inline_align(_context: fidl::encoding::Context) -> usize {
3332 8
3333 }
3334
3335 #[inline(always)]
3336 fn inline_size(_context: fidl::encoding::Context) -> usize {
3337 16
3338 }
3339 }
3340
3341 unsafe impl<D: fidl::encoding::ResourceDialect>
3342 fidl::encoding::Encode<VirtualControllerCreateEmulatorResponse, D>
3343 for &VirtualControllerCreateEmulatorResponse
3344 {
3345 #[inline]
3346 unsafe fn encode(
3347 self,
3348 encoder: &mut fidl::encoding::Encoder<'_, D>,
3349 offset: usize,
3350 _depth: fidl::encoding::Depth,
3351 ) -> fidl::Result<()> {
3352 encoder.debug_check_bounds::<VirtualControllerCreateEmulatorResponse>(offset);
3353 fidl::encoding::Encode::<VirtualControllerCreateEmulatorResponse, D>::encode(
3355 (
3356 <fidl::encoding::Optional<fidl::encoding::BoundedString<32>> as fidl::encoding::ValueTypeMarker>::borrow(&self.name),
3357 ),
3358 encoder, offset, _depth
3359 )
3360 }
3361 }
3362 unsafe impl<
3363 D: fidl::encoding::ResourceDialect,
3364 T0: fidl::encoding::Encode<fidl::encoding::Optional<fidl::encoding::BoundedString<32>>, D>,
3365 > fidl::encoding::Encode<VirtualControllerCreateEmulatorResponse, D> for (T0,)
3366 {
3367 #[inline]
3368 unsafe fn encode(
3369 self,
3370 encoder: &mut fidl::encoding::Encoder<'_, D>,
3371 offset: usize,
3372 depth: fidl::encoding::Depth,
3373 ) -> fidl::Result<()> {
3374 encoder.debug_check_bounds::<VirtualControllerCreateEmulatorResponse>(offset);
3375 self.0.encode(encoder, offset + 0, depth)?;
3379 Ok(())
3380 }
3381 }
3382
3383 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3384 for VirtualControllerCreateEmulatorResponse
3385 {
3386 #[inline(always)]
3387 fn new_empty() -> Self {
3388 Self {
3389 name: fidl::new_empty!(
3390 fidl::encoding::Optional<fidl::encoding::BoundedString<32>>,
3391 D
3392 ),
3393 }
3394 }
3395
3396 #[inline]
3397 unsafe fn decode(
3398 &mut self,
3399 decoder: &mut fidl::encoding::Decoder<'_, D>,
3400 offset: usize,
3401 _depth: fidl::encoding::Depth,
3402 ) -> fidl::Result<()> {
3403 decoder.debug_check_bounds::<Self>(offset);
3404 fidl::decode!(
3406 fidl::encoding::Optional<fidl::encoding::BoundedString<32>>,
3407 D,
3408 &mut self.name,
3409 decoder,
3410 offset + 0,
3411 _depth
3412 )?;
3413 Ok(())
3414 }
3415 }
3416
3417 impl AclBufferSettings {
3418 #[inline(always)]
3419 fn max_ordinal_present(&self) -> u64 {
3420 if let Some(_) = self.total_num_data_packets {
3421 return 2;
3422 }
3423 if let Some(_) = self.data_packet_length {
3424 return 1;
3425 }
3426 0
3427 }
3428 }
3429
3430 impl fidl::encoding::ValueTypeMarker for AclBufferSettings {
3431 type Borrowed<'a> = &'a Self;
3432 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3433 value
3434 }
3435 }
3436
3437 unsafe impl fidl::encoding::TypeMarker for AclBufferSettings {
3438 type Owned = Self;
3439
3440 #[inline(always)]
3441 fn inline_align(_context: fidl::encoding::Context) -> usize {
3442 8
3443 }
3444
3445 #[inline(always)]
3446 fn inline_size(_context: fidl::encoding::Context) -> usize {
3447 16
3448 }
3449 }
3450
3451 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<AclBufferSettings, D>
3452 for &AclBufferSettings
3453 {
3454 unsafe fn encode(
3455 self,
3456 encoder: &mut fidl::encoding::Encoder<'_, D>,
3457 offset: usize,
3458 mut depth: fidl::encoding::Depth,
3459 ) -> fidl::Result<()> {
3460 encoder.debug_check_bounds::<AclBufferSettings>(offset);
3461 let max_ordinal: u64 = self.max_ordinal_present();
3463 encoder.write_num(max_ordinal, offset);
3464 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
3465 if max_ordinal == 0 {
3467 return Ok(());
3468 }
3469 depth.increment()?;
3470 let envelope_size = 8;
3471 let bytes_len = max_ordinal as usize * envelope_size;
3472 #[allow(unused_variables)]
3473 let offset = encoder.out_of_line_offset(bytes_len);
3474 let mut _prev_end_offset: usize = 0;
3475 if 1 > max_ordinal {
3476 return Ok(());
3477 }
3478
3479 let cur_offset: usize = (1 - 1) * envelope_size;
3482
3483 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3485
3486 fidl::encoding::encode_in_envelope_optional::<u16, D>(
3491 self.data_packet_length
3492 .as_ref()
3493 .map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
3494 encoder,
3495 offset + cur_offset,
3496 depth,
3497 )?;
3498
3499 _prev_end_offset = cur_offset + envelope_size;
3500 if 2 > max_ordinal {
3501 return Ok(());
3502 }
3503
3504 let cur_offset: usize = (2 - 1) * envelope_size;
3507
3508 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3510
3511 fidl::encoding::encode_in_envelope_optional::<u8, D>(
3516 self.total_num_data_packets
3517 .as_ref()
3518 .map(<u8 as fidl::encoding::ValueTypeMarker>::borrow),
3519 encoder,
3520 offset + cur_offset,
3521 depth,
3522 )?;
3523
3524 _prev_end_offset = cur_offset + envelope_size;
3525
3526 Ok(())
3527 }
3528 }
3529
3530 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for AclBufferSettings {
3531 #[inline(always)]
3532 fn new_empty() -> Self {
3533 Self::default()
3534 }
3535
3536 unsafe fn decode(
3537 &mut self,
3538 decoder: &mut fidl::encoding::Decoder<'_, D>,
3539 offset: usize,
3540 mut depth: fidl::encoding::Depth,
3541 ) -> fidl::Result<()> {
3542 decoder.debug_check_bounds::<Self>(offset);
3543 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
3544 None => return Err(fidl::Error::NotNullable),
3545 Some(len) => len,
3546 };
3547 if len == 0 {
3549 return Ok(());
3550 };
3551 depth.increment()?;
3552 let envelope_size = 8;
3553 let bytes_len = len * envelope_size;
3554 let offset = decoder.out_of_line_offset(bytes_len)?;
3555 let mut _next_ordinal_to_read = 0;
3557 let mut next_offset = offset;
3558 let end_offset = offset + bytes_len;
3559 _next_ordinal_to_read += 1;
3560 if next_offset >= end_offset {
3561 return Ok(());
3562 }
3563
3564 while _next_ordinal_to_read < 1 {
3566 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3567 _next_ordinal_to_read += 1;
3568 next_offset += envelope_size;
3569 }
3570
3571 let next_out_of_line = decoder.next_out_of_line();
3572 let handles_before = decoder.remaining_handles();
3573 if let Some((inlined, num_bytes, num_handles)) =
3574 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3575 {
3576 let member_inline_size =
3577 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3578 if inlined != (member_inline_size <= 4) {
3579 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3580 }
3581 let inner_offset;
3582 let mut inner_depth = depth.clone();
3583 if inlined {
3584 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3585 inner_offset = next_offset;
3586 } else {
3587 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3588 inner_depth.increment()?;
3589 }
3590 let val_ref =
3591 self.data_packet_length.get_or_insert_with(|| fidl::new_empty!(u16, D));
3592 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
3593 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3594 {
3595 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3596 }
3597 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3598 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3599 }
3600 }
3601
3602 next_offset += envelope_size;
3603 _next_ordinal_to_read += 1;
3604 if next_offset >= end_offset {
3605 return Ok(());
3606 }
3607
3608 while _next_ordinal_to_read < 2 {
3610 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3611 _next_ordinal_to_read += 1;
3612 next_offset += envelope_size;
3613 }
3614
3615 let next_out_of_line = decoder.next_out_of_line();
3616 let handles_before = decoder.remaining_handles();
3617 if let Some((inlined, num_bytes, num_handles)) =
3618 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3619 {
3620 let member_inline_size =
3621 <u8 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3622 if inlined != (member_inline_size <= 4) {
3623 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3624 }
3625 let inner_offset;
3626 let mut inner_depth = depth.clone();
3627 if inlined {
3628 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3629 inner_offset = next_offset;
3630 } else {
3631 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3632 inner_depth.increment()?;
3633 }
3634 let val_ref =
3635 self.total_num_data_packets.get_or_insert_with(|| fidl::new_empty!(u8, D));
3636 fidl::decode!(u8, D, val_ref, decoder, inner_offset, inner_depth)?;
3637 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3638 {
3639 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3640 }
3641 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3642 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3643 }
3644 }
3645
3646 next_offset += envelope_size;
3647
3648 while next_offset < end_offset {
3650 _next_ordinal_to_read += 1;
3651 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3652 next_offset += envelope_size;
3653 }
3654
3655 Ok(())
3656 }
3657 }
3658
3659 impl AdvertisingData {
3660 #[inline(always)]
3661 fn max_ordinal_present(&self) -> u64 {
3662 if let Some(_) = self.data {
3663 return 1;
3664 }
3665 0
3666 }
3667 }
3668
3669 impl fidl::encoding::ValueTypeMarker for AdvertisingData {
3670 type Borrowed<'a> = &'a Self;
3671 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3672 value
3673 }
3674 }
3675
3676 unsafe impl fidl::encoding::TypeMarker for AdvertisingData {
3677 type Owned = Self;
3678
3679 #[inline(always)]
3680 fn inline_align(_context: fidl::encoding::Context) -> usize {
3681 8
3682 }
3683
3684 #[inline(always)]
3685 fn inline_size(_context: fidl::encoding::Context) -> usize {
3686 16
3687 }
3688 }
3689
3690 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<AdvertisingData, D>
3691 for &AdvertisingData
3692 {
3693 unsafe fn encode(
3694 self,
3695 encoder: &mut fidl::encoding::Encoder<'_, D>,
3696 offset: usize,
3697 mut depth: fidl::encoding::Depth,
3698 ) -> fidl::Result<()> {
3699 encoder.debug_check_bounds::<AdvertisingData>(offset);
3700 let max_ordinal: u64 = self.max_ordinal_present();
3702 encoder.write_num(max_ordinal, offset);
3703 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
3704 if max_ordinal == 0 {
3706 return Ok(());
3707 }
3708 depth.increment()?;
3709 let envelope_size = 8;
3710 let bytes_len = max_ordinal as usize * envelope_size;
3711 #[allow(unused_variables)]
3712 let offset = encoder.out_of_line_offset(bytes_len);
3713 let mut _prev_end_offset: usize = 0;
3714 if 1 > max_ordinal {
3715 return Ok(());
3716 }
3717
3718 let cur_offset: usize = (1 - 1) * envelope_size;
3721
3722 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3724
3725 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u8, 31>, D>(
3730 self.data.as_ref().map(
3731 <fidl::encoding::Vector<u8, 31> as fidl::encoding::ValueTypeMarker>::borrow,
3732 ),
3733 encoder,
3734 offset + cur_offset,
3735 depth,
3736 )?;
3737
3738 _prev_end_offset = cur_offset + envelope_size;
3739
3740 Ok(())
3741 }
3742 }
3743
3744 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for AdvertisingData {
3745 #[inline(always)]
3746 fn new_empty() -> Self {
3747 Self::default()
3748 }
3749
3750 unsafe fn decode(
3751 &mut self,
3752 decoder: &mut fidl::encoding::Decoder<'_, D>,
3753 offset: usize,
3754 mut depth: fidl::encoding::Depth,
3755 ) -> fidl::Result<()> {
3756 decoder.debug_check_bounds::<Self>(offset);
3757 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
3758 None => return Err(fidl::Error::NotNullable),
3759 Some(len) => len,
3760 };
3761 if len == 0 {
3763 return Ok(());
3764 };
3765 depth.increment()?;
3766 let envelope_size = 8;
3767 let bytes_len = len * envelope_size;
3768 let offset = decoder.out_of_line_offset(bytes_len)?;
3769 let mut _next_ordinal_to_read = 0;
3771 let mut next_offset = offset;
3772 let end_offset = offset + bytes_len;
3773 _next_ordinal_to_read += 1;
3774 if next_offset >= end_offset {
3775 return Ok(());
3776 }
3777
3778 while _next_ordinal_to_read < 1 {
3780 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3781 _next_ordinal_to_read += 1;
3782 next_offset += envelope_size;
3783 }
3784
3785 let next_out_of_line = decoder.next_out_of_line();
3786 let handles_before = decoder.remaining_handles();
3787 if let Some((inlined, num_bytes, num_handles)) =
3788 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3789 {
3790 let member_inline_size =
3791 <fidl::encoding::Vector<u8, 31> as fidl::encoding::TypeMarker>::inline_size(
3792 decoder.context,
3793 );
3794 if inlined != (member_inline_size <= 4) {
3795 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3796 }
3797 let inner_offset;
3798 let mut inner_depth = depth.clone();
3799 if inlined {
3800 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3801 inner_offset = next_offset;
3802 } else {
3803 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3804 inner_depth.increment()?;
3805 }
3806 let val_ref = self
3807 .data
3808 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u8, 31>, D));
3809 fidl::decode!(fidl::encoding::Vector<u8, 31>, D, val_ref, decoder, inner_offset, inner_depth)?;
3810 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3811 {
3812 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3813 }
3814 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3815 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3816 }
3817 }
3818
3819 next_offset += envelope_size;
3820
3821 while next_offset < end_offset {
3823 _next_ordinal_to_read += 1;
3824 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3825 next_offset += envelope_size;
3826 }
3827
3828 Ok(())
3829 }
3830 }
3831
3832 impl AndroidVendorSupport {
3833 #[inline(always)]
3834 fn max_ordinal_present(&self) -> u64 {
3835 if let Some(_) = self.minor_version {
3836 return 2;
3837 }
3838 if let Some(_) = self.major_version {
3839 return 1;
3840 }
3841 0
3842 }
3843 }
3844
3845 impl fidl::encoding::ValueTypeMarker for AndroidVendorSupport {
3846 type Borrowed<'a> = &'a Self;
3847 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3848 value
3849 }
3850 }
3851
3852 unsafe impl fidl::encoding::TypeMarker for AndroidVendorSupport {
3853 type Owned = Self;
3854
3855 #[inline(always)]
3856 fn inline_align(_context: fidl::encoding::Context) -> usize {
3857 8
3858 }
3859
3860 #[inline(always)]
3861 fn inline_size(_context: fidl::encoding::Context) -> usize {
3862 16
3863 }
3864 }
3865
3866 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<AndroidVendorSupport, D>
3867 for &AndroidVendorSupport
3868 {
3869 unsafe fn encode(
3870 self,
3871 encoder: &mut fidl::encoding::Encoder<'_, D>,
3872 offset: usize,
3873 mut depth: fidl::encoding::Depth,
3874 ) -> fidl::Result<()> {
3875 encoder.debug_check_bounds::<AndroidVendorSupport>(offset);
3876 let max_ordinal: u64 = self.max_ordinal_present();
3878 encoder.write_num(max_ordinal, offset);
3879 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
3880 if max_ordinal == 0 {
3882 return Ok(());
3883 }
3884 depth.increment()?;
3885 let envelope_size = 8;
3886 let bytes_len = max_ordinal as usize * envelope_size;
3887 #[allow(unused_variables)]
3888 let offset = encoder.out_of_line_offset(bytes_len);
3889 let mut _prev_end_offset: usize = 0;
3890 if 1 > max_ordinal {
3891 return Ok(());
3892 }
3893
3894 let cur_offset: usize = (1 - 1) * envelope_size;
3897
3898 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3900
3901 fidl::encoding::encode_in_envelope_optional::<u8, D>(
3906 self.major_version.as_ref().map(<u8 as fidl::encoding::ValueTypeMarker>::borrow),
3907 encoder,
3908 offset + cur_offset,
3909 depth,
3910 )?;
3911
3912 _prev_end_offset = cur_offset + envelope_size;
3913 if 2 > max_ordinal {
3914 return Ok(());
3915 }
3916
3917 let cur_offset: usize = (2 - 1) * envelope_size;
3920
3921 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3923
3924 fidl::encoding::encode_in_envelope_optional::<u8, D>(
3929 self.minor_version.as_ref().map(<u8 as fidl::encoding::ValueTypeMarker>::borrow),
3930 encoder,
3931 offset + cur_offset,
3932 depth,
3933 )?;
3934
3935 _prev_end_offset = cur_offset + envelope_size;
3936
3937 Ok(())
3938 }
3939 }
3940
3941 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for AndroidVendorSupport {
3942 #[inline(always)]
3943 fn new_empty() -> Self {
3944 Self::default()
3945 }
3946
3947 unsafe fn decode(
3948 &mut self,
3949 decoder: &mut fidl::encoding::Decoder<'_, D>,
3950 offset: usize,
3951 mut depth: fidl::encoding::Depth,
3952 ) -> fidl::Result<()> {
3953 decoder.debug_check_bounds::<Self>(offset);
3954 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
3955 None => return Err(fidl::Error::NotNullable),
3956 Some(len) => len,
3957 };
3958 if len == 0 {
3960 return Ok(());
3961 };
3962 depth.increment()?;
3963 let envelope_size = 8;
3964 let bytes_len = len * envelope_size;
3965 let offset = decoder.out_of_line_offset(bytes_len)?;
3966 let mut _next_ordinal_to_read = 0;
3968 let mut next_offset = offset;
3969 let end_offset = offset + bytes_len;
3970 _next_ordinal_to_read += 1;
3971 if next_offset >= end_offset {
3972 return Ok(());
3973 }
3974
3975 while _next_ordinal_to_read < 1 {
3977 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3978 _next_ordinal_to_read += 1;
3979 next_offset += envelope_size;
3980 }
3981
3982 let next_out_of_line = decoder.next_out_of_line();
3983 let handles_before = decoder.remaining_handles();
3984 if let Some((inlined, num_bytes, num_handles)) =
3985 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3986 {
3987 let member_inline_size =
3988 <u8 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3989 if inlined != (member_inline_size <= 4) {
3990 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3991 }
3992 let inner_offset;
3993 let mut inner_depth = depth.clone();
3994 if inlined {
3995 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3996 inner_offset = next_offset;
3997 } else {
3998 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3999 inner_depth.increment()?;
4000 }
4001 let val_ref = self.major_version.get_or_insert_with(|| fidl::new_empty!(u8, D));
4002 fidl::decode!(u8, D, val_ref, decoder, inner_offset, inner_depth)?;
4003 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4004 {
4005 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4006 }
4007 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4008 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4009 }
4010 }
4011
4012 next_offset += envelope_size;
4013 _next_ordinal_to_read += 1;
4014 if next_offset >= end_offset {
4015 return Ok(());
4016 }
4017
4018 while _next_ordinal_to_read < 2 {
4020 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4021 _next_ordinal_to_read += 1;
4022 next_offset += envelope_size;
4023 }
4024
4025 let next_out_of_line = decoder.next_out_of_line();
4026 let handles_before = decoder.remaining_handles();
4027 if let Some((inlined, num_bytes, num_handles)) =
4028 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4029 {
4030 let member_inline_size =
4031 <u8 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4032 if inlined != (member_inline_size <= 4) {
4033 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4034 }
4035 let inner_offset;
4036 let mut inner_depth = depth.clone();
4037 if inlined {
4038 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4039 inner_offset = next_offset;
4040 } else {
4041 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4042 inner_depth.increment()?;
4043 }
4044 let val_ref = self.minor_version.get_or_insert_with(|| fidl::new_empty!(u8, D));
4045 fidl::decode!(u8, D, val_ref, decoder, inner_offset, inner_depth)?;
4046 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4047 {
4048 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4049 }
4050 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4051 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4052 }
4053 }
4054
4055 next_offset += envelope_size;
4056
4057 while next_offset < end_offset {
4059 _next_ordinal_to_read += 1;
4060 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4061 next_offset += envelope_size;
4062 }
4063
4064 Ok(())
4065 }
4066 }
4067
4068 impl AudioOffloadSettings {
4069 #[inline(always)]
4070 fn max_ordinal_present(&self) -> u64 {
4071 if let Some(_) = self.sco_offload_index {
4072 return 1;
4073 }
4074 0
4075 }
4076 }
4077
4078 impl fidl::encoding::ValueTypeMarker for AudioOffloadSettings {
4079 type Borrowed<'a> = &'a Self;
4080 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4081 value
4082 }
4083 }
4084
4085 unsafe impl fidl::encoding::TypeMarker for AudioOffloadSettings {
4086 type Owned = Self;
4087
4088 #[inline(always)]
4089 fn inline_align(_context: fidl::encoding::Context) -> usize {
4090 8
4091 }
4092
4093 #[inline(always)]
4094 fn inline_size(_context: fidl::encoding::Context) -> usize {
4095 16
4096 }
4097 }
4098
4099 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<AudioOffloadSettings, D>
4100 for &AudioOffloadSettings
4101 {
4102 unsafe fn encode(
4103 self,
4104 encoder: &mut fidl::encoding::Encoder<'_, D>,
4105 offset: usize,
4106 mut depth: fidl::encoding::Depth,
4107 ) -> fidl::Result<()> {
4108 encoder.debug_check_bounds::<AudioOffloadSettings>(offset);
4109 let max_ordinal: u64 = self.max_ordinal_present();
4111 encoder.write_num(max_ordinal, offset);
4112 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
4113 if max_ordinal == 0 {
4115 return Ok(());
4116 }
4117 depth.increment()?;
4118 let envelope_size = 8;
4119 let bytes_len = max_ordinal as usize * envelope_size;
4120 #[allow(unused_variables)]
4121 let offset = encoder.out_of_line_offset(bytes_len);
4122 let mut _prev_end_offset: usize = 0;
4123 if 1 > max_ordinal {
4124 return Ok(());
4125 }
4126
4127 let cur_offset: usize = (1 - 1) * envelope_size;
4130
4131 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4133
4134 fidl::encoding::encode_in_envelope_optional::<u8, D>(
4139 self.sco_offload_index
4140 .as_ref()
4141 .map(<u8 as fidl::encoding::ValueTypeMarker>::borrow),
4142 encoder,
4143 offset + cur_offset,
4144 depth,
4145 )?;
4146
4147 _prev_end_offset = cur_offset + envelope_size;
4148
4149 Ok(())
4150 }
4151 }
4152
4153 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for AudioOffloadSettings {
4154 #[inline(always)]
4155 fn new_empty() -> Self {
4156 Self::default()
4157 }
4158
4159 unsafe fn decode(
4160 &mut self,
4161 decoder: &mut fidl::encoding::Decoder<'_, D>,
4162 offset: usize,
4163 mut depth: fidl::encoding::Depth,
4164 ) -> fidl::Result<()> {
4165 decoder.debug_check_bounds::<Self>(offset);
4166 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
4167 None => return Err(fidl::Error::NotNullable),
4168 Some(len) => len,
4169 };
4170 if len == 0 {
4172 return Ok(());
4173 };
4174 depth.increment()?;
4175 let envelope_size = 8;
4176 let bytes_len = len * envelope_size;
4177 let offset = decoder.out_of_line_offset(bytes_len)?;
4178 let mut _next_ordinal_to_read = 0;
4180 let mut next_offset = offset;
4181 let end_offset = offset + bytes_len;
4182 _next_ordinal_to_read += 1;
4183 if next_offset >= end_offset {
4184 return Ok(());
4185 }
4186
4187 while _next_ordinal_to_read < 1 {
4189 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4190 _next_ordinal_to_read += 1;
4191 next_offset += envelope_size;
4192 }
4193
4194 let next_out_of_line = decoder.next_out_of_line();
4195 let handles_before = decoder.remaining_handles();
4196 if let Some((inlined, num_bytes, num_handles)) =
4197 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4198 {
4199 let member_inline_size =
4200 <u8 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4201 if inlined != (member_inline_size <= 4) {
4202 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4203 }
4204 let inner_offset;
4205 let mut inner_depth = depth.clone();
4206 if inlined {
4207 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4208 inner_offset = next_offset;
4209 } else {
4210 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4211 inner_depth.increment()?;
4212 }
4213 let val_ref = self.sco_offload_index.get_or_insert_with(|| fidl::new_empty!(u8, D));
4214 fidl::decode!(u8, D, val_ref, decoder, inner_offset, inner_depth)?;
4215 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4216 {
4217 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4218 }
4219 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4220 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4221 }
4222 }
4223
4224 next_offset += envelope_size;
4225
4226 while next_offset < end_offset {
4228 _next_ordinal_to_read += 1;
4229 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4230 next_offset += envelope_size;
4231 }
4232
4233 Ok(())
4234 }
4235 }
4236
4237 impl ControllerParameters {
4238 #[inline(always)]
4239 fn max_ordinal_present(&self) -> u64 {
4240 if let Some(_) = self.device_class {
4241 return 2;
4242 }
4243 if let Some(_) = self.local_name {
4244 return 1;
4245 }
4246 0
4247 }
4248 }
4249
4250 impl fidl::encoding::ValueTypeMarker for ControllerParameters {
4251 type Borrowed<'a> = &'a Self;
4252 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4253 value
4254 }
4255 }
4256
4257 unsafe impl fidl::encoding::TypeMarker for ControllerParameters {
4258 type Owned = Self;
4259
4260 #[inline(always)]
4261 fn inline_align(_context: fidl::encoding::Context) -> usize {
4262 8
4263 }
4264
4265 #[inline(always)]
4266 fn inline_size(_context: fidl::encoding::Context) -> usize {
4267 16
4268 }
4269 }
4270
4271 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ControllerParameters, D>
4272 for &ControllerParameters
4273 {
4274 unsafe fn encode(
4275 self,
4276 encoder: &mut fidl::encoding::Encoder<'_, D>,
4277 offset: usize,
4278 mut depth: fidl::encoding::Depth,
4279 ) -> fidl::Result<()> {
4280 encoder.debug_check_bounds::<ControllerParameters>(offset);
4281 let max_ordinal: u64 = self.max_ordinal_present();
4283 encoder.write_num(max_ordinal, offset);
4284 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
4285 if max_ordinal == 0 {
4287 return Ok(());
4288 }
4289 depth.increment()?;
4290 let envelope_size = 8;
4291 let bytes_len = max_ordinal as usize * envelope_size;
4292 #[allow(unused_variables)]
4293 let offset = encoder.out_of_line_offset(bytes_len);
4294 let mut _prev_end_offset: usize = 0;
4295 if 1 > max_ordinal {
4296 return Ok(());
4297 }
4298
4299 let cur_offset: usize = (1 - 1) * envelope_size;
4302
4303 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4305
4306 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<248>, D>(
4311 self.local_name.as_ref().map(
4312 <fidl::encoding::BoundedString<248> as fidl::encoding::ValueTypeMarker>::borrow,
4313 ),
4314 encoder,
4315 offset + cur_offset,
4316 depth,
4317 )?;
4318
4319 _prev_end_offset = cur_offset + envelope_size;
4320 if 2 > max_ordinal {
4321 return Ok(());
4322 }
4323
4324 let cur_offset: usize = (2 - 1) * envelope_size;
4327
4328 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4330
4331 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_bluetooth__common::DeviceClass, D>(
4336 self.device_class.as_ref().map(<fidl_fuchsia_bluetooth__common::DeviceClass as fidl::encoding::ValueTypeMarker>::borrow),
4337 encoder, offset + cur_offset, depth
4338 )?;
4339
4340 _prev_end_offset = cur_offset + envelope_size;
4341
4342 Ok(())
4343 }
4344 }
4345
4346 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ControllerParameters {
4347 #[inline(always)]
4348 fn new_empty() -> Self {
4349 Self::default()
4350 }
4351
4352 unsafe fn decode(
4353 &mut self,
4354 decoder: &mut fidl::encoding::Decoder<'_, D>,
4355 offset: usize,
4356 mut depth: fidl::encoding::Depth,
4357 ) -> fidl::Result<()> {
4358 decoder.debug_check_bounds::<Self>(offset);
4359 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
4360 None => return Err(fidl::Error::NotNullable),
4361 Some(len) => len,
4362 };
4363 if len == 0 {
4365 return Ok(());
4366 };
4367 depth.increment()?;
4368 let envelope_size = 8;
4369 let bytes_len = len * envelope_size;
4370 let offset = decoder.out_of_line_offset(bytes_len)?;
4371 let mut _next_ordinal_to_read = 0;
4373 let mut next_offset = offset;
4374 let end_offset = offset + bytes_len;
4375 _next_ordinal_to_read += 1;
4376 if next_offset >= end_offset {
4377 return Ok(());
4378 }
4379
4380 while _next_ordinal_to_read < 1 {
4382 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4383 _next_ordinal_to_read += 1;
4384 next_offset += envelope_size;
4385 }
4386
4387 let next_out_of_line = decoder.next_out_of_line();
4388 let handles_before = decoder.remaining_handles();
4389 if let Some((inlined, num_bytes, num_handles)) =
4390 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4391 {
4392 let member_inline_size =
4393 <fidl::encoding::BoundedString<248> as fidl::encoding::TypeMarker>::inline_size(
4394 decoder.context,
4395 );
4396 if inlined != (member_inline_size <= 4) {
4397 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4398 }
4399 let inner_offset;
4400 let mut inner_depth = depth.clone();
4401 if inlined {
4402 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4403 inner_offset = next_offset;
4404 } else {
4405 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4406 inner_depth.increment()?;
4407 }
4408 let val_ref = self
4409 .local_name
4410 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<248>, D));
4411 fidl::decode!(
4412 fidl::encoding::BoundedString<248>,
4413 D,
4414 val_ref,
4415 decoder,
4416 inner_offset,
4417 inner_depth
4418 )?;
4419 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4420 {
4421 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4422 }
4423 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4424 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4425 }
4426 }
4427
4428 next_offset += envelope_size;
4429 _next_ordinal_to_read += 1;
4430 if next_offset >= end_offset {
4431 return Ok(());
4432 }
4433
4434 while _next_ordinal_to_read < 2 {
4436 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4437 _next_ordinal_to_read += 1;
4438 next_offset += envelope_size;
4439 }
4440
4441 let next_out_of_line = decoder.next_out_of_line();
4442 let handles_before = decoder.remaining_handles();
4443 if let Some((inlined, num_bytes, num_handles)) =
4444 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4445 {
4446 let member_inline_size = <fidl_fuchsia_bluetooth__common::DeviceClass as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4447 if inlined != (member_inline_size <= 4) {
4448 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4449 }
4450 let inner_offset;
4451 let mut inner_depth = depth.clone();
4452 if inlined {
4453 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4454 inner_offset = next_offset;
4455 } else {
4456 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4457 inner_depth.increment()?;
4458 }
4459 let val_ref = self.device_class.get_or_insert_with(|| {
4460 fidl::new_empty!(fidl_fuchsia_bluetooth__common::DeviceClass, D)
4461 });
4462 fidl::decode!(
4463 fidl_fuchsia_bluetooth__common::DeviceClass,
4464 D,
4465 val_ref,
4466 decoder,
4467 inner_offset,
4468 inner_depth
4469 )?;
4470 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4471 {
4472 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4473 }
4474 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4475 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4476 }
4477 }
4478
4479 next_offset += envelope_size;
4480
4481 while next_offset < end_offset {
4483 _next_ordinal_to_read += 1;
4484 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4485 next_offset += envelope_size;
4486 }
4487
4488 Ok(())
4489 }
4490 }
4491
4492 impl EmulatorSettings {
4493 #[inline(always)]
4494 fn max_ordinal_present(&self) -> u64 {
4495 if let Some(_) = self.le_acl_buffer_settings {
4496 return 5;
4497 }
4498 if let Some(_) = self.acl_buffer_settings {
4499 return 4;
4500 }
4501 if let Some(_) = self.extended_advertising {
4502 return 3;
4503 }
4504 if let Some(_) = self.hci_config {
4505 return 2;
4506 }
4507 if let Some(_) = self.address {
4508 return 1;
4509 }
4510 0
4511 }
4512 }
4513
4514 impl fidl::encoding::ValueTypeMarker for EmulatorSettings {
4515 type Borrowed<'a> = &'a Self;
4516 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4517 value
4518 }
4519 }
4520
4521 unsafe impl fidl::encoding::TypeMarker for EmulatorSettings {
4522 type Owned = Self;
4523
4524 #[inline(always)]
4525 fn inline_align(_context: fidl::encoding::Context) -> usize {
4526 8
4527 }
4528
4529 #[inline(always)]
4530 fn inline_size(_context: fidl::encoding::Context) -> usize {
4531 16
4532 }
4533 }
4534
4535 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<EmulatorSettings, D>
4536 for &EmulatorSettings
4537 {
4538 unsafe fn encode(
4539 self,
4540 encoder: &mut fidl::encoding::Encoder<'_, D>,
4541 offset: usize,
4542 mut depth: fidl::encoding::Depth,
4543 ) -> fidl::Result<()> {
4544 encoder.debug_check_bounds::<EmulatorSettings>(offset);
4545 let max_ordinal: u64 = self.max_ordinal_present();
4547 encoder.write_num(max_ordinal, offset);
4548 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
4549 if max_ordinal == 0 {
4551 return Ok(());
4552 }
4553 depth.increment()?;
4554 let envelope_size = 8;
4555 let bytes_len = max_ordinal as usize * envelope_size;
4556 #[allow(unused_variables)]
4557 let offset = encoder.out_of_line_offset(bytes_len);
4558 let mut _prev_end_offset: usize = 0;
4559 if 1 > max_ordinal {
4560 return Ok(());
4561 }
4562
4563 let cur_offset: usize = (1 - 1) * envelope_size;
4566
4567 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4569
4570 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_bluetooth__common::Address, D>(
4575 self.address.as_ref().map(<fidl_fuchsia_bluetooth__common::Address as fidl::encoding::ValueTypeMarker>::borrow),
4576 encoder, offset + cur_offset, depth
4577 )?;
4578
4579 _prev_end_offset = cur_offset + envelope_size;
4580 if 2 > max_ordinal {
4581 return Ok(());
4582 }
4583
4584 let cur_offset: usize = (2 - 1) * envelope_size;
4587
4588 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4590
4591 fidl::encoding::encode_in_envelope_optional::<HciConfig, D>(
4596 self.hci_config
4597 .as_ref()
4598 .map(<HciConfig as fidl::encoding::ValueTypeMarker>::borrow),
4599 encoder,
4600 offset + cur_offset,
4601 depth,
4602 )?;
4603
4604 _prev_end_offset = cur_offset + envelope_size;
4605 if 3 > max_ordinal {
4606 return Ok(());
4607 }
4608
4609 let cur_offset: usize = (3 - 1) * envelope_size;
4612
4613 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4615
4616 fidl::encoding::encode_in_envelope_optional::<bool, D>(
4621 self.extended_advertising
4622 .as_ref()
4623 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
4624 encoder,
4625 offset + cur_offset,
4626 depth,
4627 )?;
4628
4629 _prev_end_offset = cur_offset + envelope_size;
4630 if 4 > max_ordinal {
4631 return Ok(());
4632 }
4633
4634 let cur_offset: usize = (4 - 1) * envelope_size;
4637
4638 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4640
4641 fidl::encoding::encode_in_envelope_optional::<AclBufferSettings, D>(
4646 self.acl_buffer_settings
4647 .as_ref()
4648 .map(<AclBufferSettings as fidl::encoding::ValueTypeMarker>::borrow),
4649 encoder,
4650 offset + cur_offset,
4651 depth,
4652 )?;
4653
4654 _prev_end_offset = cur_offset + envelope_size;
4655 if 5 > max_ordinal {
4656 return Ok(());
4657 }
4658
4659 let cur_offset: usize = (5 - 1) * envelope_size;
4662
4663 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4665
4666 fidl::encoding::encode_in_envelope_optional::<AclBufferSettings, D>(
4671 self.le_acl_buffer_settings
4672 .as_ref()
4673 .map(<AclBufferSettings as fidl::encoding::ValueTypeMarker>::borrow),
4674 encoder,
4675 offset + cur_offset,
4676 depth,
4677 )?;
4678
4679 _prev_end_offset = cur_offset + envelope_size;
4680
4681 Ok(())
4682 }
4683 }
4684
4685 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for EmulatorSettings {
4686 #[inline(always)]
4687 fn new_empty() -> Self {
4688 Self::default()
4689 }
4690
4691 unsafe fn decode(
4692 &mut self,
4693 decoder: &mut fidl::encoding::Decoder<'_, D>,
4694 offset: usize,
4695 mut depth: fidl::encoding::Depth,
4696 ) -> fidl::Result<()> {
4697 decoder.debug_check_bounds::<Self>(offset);
4698 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
4699 None => return Err(fidl::Error::NotNullable),
4700 Some(len) => len,
4701 };
4702 if len == 0 {
4704 return Ok(());
4705 };
4706 depth.increment()?;
4707 let envelope_size = 8;
4708 let bytes_len = len * envelope_size;
4709 let offset = decoder.out_of_line_offset(bytes_len)?;
4710 let mut _next_ordinal_to_read = 0;
4712 let mut next_offset = offset;
4713 let end_offset = offset + bytes_len;
4714 _next_ordinal_to_read += 1;
4715 if next_offset >= end_offset {
4716 return Ok(());
4717 }
4718
4719 while _next_ordinal_to_read < 1 {
4721 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4722 _next_ordinal_to_read += 1;
4723 next_offset += envelope_size;
4724 }
4725
4726 let next_out_of_line = decoder.next_out_of_line();
4727 let handles_before = decoder.remaining_handles();
4728 if let Some((inlined, num_bytes, num_handles)) =
4729 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4730 {
4731 let member_inline_size = <fidl_fuchsia_bluetooth__common::Address as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4732 if inlined != (member_inline_size <= 4) {
4733 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4734 }
4735 let inner_offset;
4736 let mut inner_depth = depth.clone();
4737 if inlined {
4738 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4739 inner_offset = next_offset;
4740 } else {
4741 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4742 inner_depth.increment()?;
4743 }
4744 let val_ref = self.address.get_or_insert_with(|| {
4745 fidl::new_empty!(fidl_fuchsia_bluetooth__common::Address, D)
4746 });
4747 fidl::decode!(
4748 fidl_fuchsia_bluetooth__common::Address,
4749 D,
4750 val_ref,
4751 decoder,
4752 inner_offset,
4753 inner_depth
4754 )?;
4755 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4756 {
4757 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4758 }
4759 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4760 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4761 }
4762 }
4763
4764 next_offset += envelope_size;
4765 _next_ordinal_to_read += 1;
4766 if next_offset >= end_offset {
4767 return Ok(());
4768 }
4769
4770 while _next_ordinal_to_read < 2 {
4772 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4773 _next_ordinal_to_read += 1;
4774 next_offset += envelope_size;
4775 }
4776
4777 let next_out_of_line = decoder.next_out_of_line();
4778 let handles_before = decoder.remaining_handles();
4779 if let Some((inlined, num_bytes, num_handles)) =
4780 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4781 {
4782 let member_inline_size =
4783 <HciConfig as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4784 if inlined != (member_inline_size <= 4) {
4785 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4786 }
4787 let inner_offset;
4788 let mut inner_depth = depth.clone();
4789 if inlined {
4790 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4791 inner_offset = next_offset;
4792 } else {
4793 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4794 inner_depth.increment()?;
4795 }
4796 let val_ref = self.hci_config.get_or_insert_with(|| fidl::new_empty!(HciConfig, D));
4797 fidl::decode!(HciConfig, D, val_ref, decoder, inner_offset, inner_depth)?;
4798 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4799 {
4800 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4801 }
4802 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4803 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4804 }
4805 }
4806
4807 next_offset += envelope_size;
4808 _next_ordinal_to_read += 1;
4809 if next_offset >= end_offset {
4810 return Ok(());
4811 }
4812
4813 while _next_ordinal_to_read < 3 {
4815 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4816 _next_ordinal_to_read += 1;
4817 next_offset += envelope_size;
4818 }
4819
4820 let next_out_of_line = decoder.next_out_of_line();
4821 let handles_before = decoder.remaining_handles();
4822 if let Some((inlined, num_bytes, num_handles)) =
4823 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4824 {
4825 let member_inline_size =
4826 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4827 if inlined != (member_inline_size <= 4) {
4828 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4829 }
4830 let inner_offset;
4831 let mut inner_depth = depth.clone();
4832 if inlined {
4833 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4834 inner_offset = next_offset;
4835 } else {
4836 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4837 inner_depth.increment()?;
4838 }
4839 let val_ref =
4840 self.extended_advertising.get_or_insert_with(|| fidl::new_empty!(bool, D));
4841 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
4842 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4843 {
4844 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4845 }
4846 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4847 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4848 }
4849 }
4850
4851 next_offset += envelope_size;
4852 _next_ordinal_to_read += 1;
4853 if next_offset >= end_offset {
4854 return Ok(());
4855 }
4856
4857 while _next_ordinal_to_read < 4 {
4859 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4860 _next_ordinal_to_read += 1;
4861 next_offset += envelope_size;
4862 }
4863
4864 let next_out_of_line = decoder.next_out_of_line();
4865 let handles_before = decoder.remaining_handles();
4866 if let Some((inlined, num_bytes, num_handles)) =
4867 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4868 {
4869 let member_inline_size =
4870 <AclBufferSettings as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4871 if inlined != (member_inline_size <= 4) {
4872 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4873 }
4874 let inner_offset;
4875 let mut inner_depth = depth.clone();
4876 if inlined {
4877 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4878 inner_offset = next_offset;
4879 } else {
4880 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4881 inner_depth.increment()?;
4882 }
4883 let val_ref = self
4884 .acl_buffer_settings
4885 .get_or_insert_with(|| fidl::new_empty!(AclBufferSettings, D));
4886 fidl::decode!(AclBufferSettings, D, val_ref, decoder, inner_offset, inner_depth)?;
4887 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4888 {
4889 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4890 }
4891 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4892 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4893 }
4894 }
4895
4896 next_offset += envelope_size;
4897 _next_ordinal_to_read += 1;
4898 if next_offset >= end_offset {
4899 return Ok(());
4900 }
4901
4902 while _next_ordinal_to_read < 5 {
4904 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4905 _next_ordinal_to_read += 1;
4906 next_offset += envelope_size;
4907 }
4908
4909 let next_out_of_line = decoder.next_out_of_line();
4910 let handles_before = decoder.remaining_handles();
4911 if let Some((inlined, num_bytes, num_handles)) =
4912 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4913 {
4914 let member_inline_size =
4915 <AclBufferSettings as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4916 if inlined != (member_inline_size <= 4) {
4917 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4918 }
4919 let inner_offset;
4920 let mut inner_depth = depth.clone();
4921 if inlined {
4922 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4923 inner_offset = next_offset;
4924 } else {
4925 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4926 inner_depth.increment()?;
4927 }
4928 let val_ref = self
4929 .le_acl_buffer_settings
4930 .get_or_insert_with(|| fidl::new_empty!(AclBufferSettings, D));
4931 fidl::decode!(AclBufferSettings, D, val_ref, decoder, inner_offset, inner_depth)?;
4932 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4933 {
4934 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4935 }
4936 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4937 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4938 }
4939 }
4940
4941 next_offset += envelope_size;
4942
4943 while next_offset < end_offset {
4945 _next_ordinal_to_read += 1;
4946 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4947 next_offset += envelope_size;
4948 }
4949
4950 Ok(())
4951 }
4952 }
4953
4954 impl LeScanState {
4955 #[inline(always)]
4956 fn max_ordinal_present(&self) -> u64 {
4957 if let Some(_) = self.address_type {
4958 return 6;
4959 }
4960 if let Some(_) = self.filter_duplicates {
4961 return 5;
4962 }
4963 if let Some(_) = self.window {
4964 return 4;
4965 }
4966 if let Some(_) = self.interval {
4967 return 3;
4968 }
4969 if let Some(_) = self.active {
4970 return 2;
4971 }
4972 if let Some(_) = self.enabled {
4973 return 1;
4974 }
4975 0
4976 }
4977 }
4978
4979 impl fidl::encoding::ValueTypeMarker for LeScanState {
4980 type Borrowed<'a> = &'a Self;
4981 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4982 value
4983 }
4984 }
4985
4986 unsafe impl fidl::encoding::TypeMarker for LeScanState {
4987 type Owned = Self;
4988
4989 #[inline(always)]
4990 fn inline_align(_context: fidl::encoding::Context) -> usize {
4991 8
4992 }
4993
4994 #[inline(always)]
4995 fn inline_size(_context: fidl::encoding::Context) -> usize {
4996 16
4997 }
4998 }
4999
5000 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<LeScanState, D>
5001 for &LeScanState
5002 {
5003 unsafe fn encode(
5004 self,
5005 encoder: &mut fidl::encoding::Encoder<'_, D>,
5006 offset: usize,
5007 mut depth: fidl::encoding::Depth,
5008 ) -> fidl::Result<()> {
5009 encoder.debug_check_bounds::<LeScanState>(offset);
5010 let max_ordinal: u64 = self.max_ordinal_present();
5012 encoder.write_num(max_ordinal, offset);
5013 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
5014 if max_ordinal == 0 {
5016 return Ok(());
5017 }
5018 depth.increment()?;
5019 let envelope_size = 8;
5020 let bytes_len = max_ordinal as usize * envelope_size;
5021 #[allow(unused_variables)]
5022 let offset = encoder.out_of_line_offset(bytes_len);
5023 let mut _prev_end_offset: usize = 0;
5024 if 1 > max_ordinal {
5025 return Ok(());
5026 }
5027
5028 let cur_offset: usize = (1 - 1) * envelope_size;
5031
5032 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5034
5035 fidl::encoding::encode_in_envelope_optional::<bool, D>(
5040 self.enabled.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
5041 encoder,
5042 offset + cur_offset,
5043 depth,
5044 )?;
5045
5046 _prev_end_offset = cur_offset + envelope_size;
5047 if 2 > max_ordinal {
5048 return Ok(());
5049 }
5050
5051 let cur_offset: usize = (2 - 1) * envelope_size;
5054
5055 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5057
5058 fidl::encoding::encode_in_envelope_optional::<bool, D>(
5063 self.active.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
5064 encoder,
5065 offset + cur_offset,
5066 depth,
5067 )?;
5068
5069 _prev_end_offset = cur_offset + envelope_size;
5070 if 3 > max_ordinal {
5071 return Ok(());
5072 }
5073
5074 let cur_offset: usize = (3 - 1) * envelope_size;
5077
5078 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5080
5081 fidl::encoding::encode_in_envelope_optional::<u16, D>(
5086 self.interval.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
5087 encoder,
5088 offset + cur_offset,
5089 depth,
5090 )?;
5091
5092 _prev_end_offset = cur_offset + envelope_size;
5093 if 4 > max_ordinal {
5094 return Ok(());
5095 }
5096
5097 let cur_offset: usize = (4 - 1) * envelope_size;
5100
5101 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5103
5104 fidl::encoding::encode_in_envelope_optional::<u16, D>(
5109 self.window.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
5110 encoder,
5111 offset + cur_offset,
5112 depth,
5113 )?;
5114
5115 _prev_end_offset = cur_offset + envelope_size;
5116 if 5 > max_ordinal {
5117 return Ok(());
5118 }
5119
5120 let cur_offset: usize = (5 - 1) * envelope_size;
5123
5124 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5126
5127 fidl::encoding::encode_in_envelope_optional::<bool, D>(
5132 self.filter_duplicates
5133 .as_ref()
5134 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
5135 encoder,
5136 offset + cur_offset,
5137 depth,
5138 )?;
5139
5140 _prev_end_offset = cur_offset + envelope_size;
5141 if 6 > max_ordinal {
5142 return Ok(());
5143 }
5144
5145 let cur_offset: usize = (6 - 1) * envelope_size;
5148
5149 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5151
5152 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_bluetooth__common::AddressType, D>(
5157 self.address_type.as_ref().map(<fidl_fuchsia_bluetooth__common::AddressType as fidl::encoding::ValueTypeMarker>::borrow),
5158 encoder, offset + cur_offset, depth
5159 )?;
5160
5161 _prev_end_offset = cur_offset + envelope_size;
5162
5163 Ok(())
5164 }
5165 }
5166
5167 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for LeScanState {
5168 #[inline(always)]
5169 fn new_empty() -> Self {
5170 Self::default()
5171 }
5172
5173 unsafe fn decode(
5174 &mut self,
5175 decoder: &mut fidl::encoding::Decoder<'_, D>,
5176 offset: usize,
5177 mut depth: fidl::encoding::Depth,
5178 ) -> fidl::Result<()> {
5179 decoder.debug_check_bounds::<Self>(offset);
5180 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
5181 None => return Err(fidl::Error::NotNullable),
5182 Some(len) => len,
5183 };
5184 if len == 0 {
5186 return Ok(());
5187 };
5188 depth.increment()?;
5189 let envelope_size = 8;
5190 let bytes_len = len * envelope_size;
5191 let offset = decoder.out_of_line_offset(bytes_len)?;
5192 let mut _next_ordinal_to_read = 0;
5194 let mut next_offset = offset;
5195 let end_offset = offset + bytes_len;
5196 _next_ordinal_to_read += 1;
5197 if next_offset >= end_offset {
5198 return Ok(());
5199 }
5200
5201 while _next_ordinal_to_read < 1 {
5203 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5204 _next_ordinal_to_read += 1;
5205 next_offset += envelope_size;
5206 }
5207
5208 let next_out_of_line = decoder.next_out_of_line();
5209 let handles_before = decoder.remaining_handles();
5210 if let Some((inlined, num_bytes, num_handles)) =
5211 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5212 {
5213 let member_inline_size =
5214 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5215 if inlined != (member_inline_size <= 4) {
5216 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5217 }
5218 let inner_offset;
5219 let mut inner_depth = depth.clone();
5220 if inlined {
5221 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5222 inner_offset = next_offset;
5223 } else {
5224 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5225 inner_depth.increment()?;
5226 }
5227 let val_ref = self.enabled.get_or_insert_with(|| fidl::new_empty!(bool, D));
5228 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
5229 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5230 {
5231 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5232 }
5233 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5234 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5235 }
5236 }
5237
5238 next_offset += envelope_size;
5239 _next_ordinal_to_read += 1;
5240 if next_offset >= end_offset {
5241 return Ok(());
5242 }
5243
5244 while _next_ordinal_to_read < 2 {
5246 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5247 _next_ordinal_to_read += 1;
5248 next_offset += envelope_size;
5249 }
5250
5251 let next_out_of_line = decoder.next_out_of_line();
5252 let handles_before = decoder.remaining_handles();
5253 if let Some((inlined, num_bytes, num_handles)) =
5254 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5255 {
5256 let member_inline_size =
5257 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5258 if inlined != (member_inline_size <= 4) {
5259 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5260 }
5261 let inner_offset;
5262 let mut inner_depth = depth.clone();
5263 if inlined {
5264 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5265 inner_offset = next_offset;
5266 } else {
5267 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5268 inner_depth.increment()?;
5269 }
5270 let val_ref = self.active.get_or_insert_with(|| fidl::new_empty!(bool, D));
5271 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
5272 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5273 {
5274 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5275 }
5276 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5277 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5278 }
5279 }
5280
5281 next_offset += envelope_size;
5282 _next_ordinal_to_read += 1;
5283 if next_offset >= end_offset {
5284 return Ok(());
5285 }
5286
5287 while _next_ordinal_to_read < 3 {
5289 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5290 _next_ordinal_to_read += 1;
5291 next_offset += envelope_size;
5292 }
5293
5294 let next_out_of_line = decoder.next_out_of_line();
5295 let handles_before = decoder.remaining_handles();
5296 if let Some((inlined, num_bytes, num_handles)) =
5297 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5298 {
5299 let member_inline_size =
5300 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5301 if inlined != (member_inline_size <= 4) {
5302 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5303 }
5304 let inner_offset;
5305 let mut inner_depth = depth.clone();
5306 if inlined {
5307 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5308 inner_offset = next_offset;
5309 } else {
5310 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5311 inner_depth.increment()?;
5312 }
5313 let val_ref = self.interval.get_or_insert_with(|| fidl::new_empty!(u16, D));
5314 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
5315 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5316 {
5317 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5318 }
5319 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5320 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5321 }
5322 }
5323
5324 next_offset += envelope_size;
5325 _next_ordinal_to_read += 1;
5326 if next_offset >= end_offset {
5327 return Ok(());
5328 }
5329
5330 while _next_ordinal_to_read < 4 {
5332 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5333 _next_ordinal_to_read += 1;
5334 next_offset += envelope_size;
5335 }
5336
5337 let next_out_of_line = decoder.next_out_of_line();
5338 let handles_before = decoder.remaining_handles();
5339 if let Some((inlined, num_bytes, num_handles)) =
5340 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5341 {
5342 let member_inline_size =
5343 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5344 if inlined != (member_inline_size <= 4) {
5345 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5346 }
5347 let inner_offset;
5348 let mut inner_depth = depth.clone();
5349 if inlined {
5350 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5351 inner_offset = next_offset;
5352 } else {
5353 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5354 inner_depth.increment()?;
5355 }
5356 let val_ref = self.window.get_or_insert_with(|| fidl::new_empty!(u16, D));
5357 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
5358 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5359 {
5360 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5361 }
5362 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5363 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5364 }
5365 }
5366
5367 next_offset += envelope_size;
5368 _next_ordinal_to_read += 1;
5369 if next_offset >= end_offset {
5370 return Ok(());
5371 }
5372
5373 while _next_ordinal_to_read < 5 {
5375 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5376 _next_ordinal_to_read += 1;
5377 next_offset += envelope_size;
5378 }
5379
5380 let next_out_of_line = decoder.next_out_of_line();
5381 let handles_before = decoder.remaining_handles();
5382 if let Some((inlined, num_bytes, num_handles)) =
5383 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5384 {
5385 let member_inline_size =
5386 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5387 if inlined != (member_inline_size <= 4) {
5388 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5389 }
5390 let inner_offset;
5391 let mut inner_depth = depth.clone();
5392 if inlined {
5393 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5394 inner_offset = next_offset;
5395 } else {
5396 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5397 inner_depth.increment()?;
5398 }
5399 let val_ref =
5400 self.filter_duplicates.get_or_insert_with(|| fidl::new_empty!(bool, D));
5401 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
5402 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5403 {
5404 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5405 }
5406 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5407 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5408 }
5409 }
5410
5411 next_offset += envelope_size;
5412 _next_ordinal_to_read += 1;
5413 if next_offset >= end_offset {
5414 return Ok(());
5415 }
5416
5417 while _next_ordinal_to_read < 6 {
5419 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5420 _next_ordinal_to_read += 1;
5421 next_offset += envelope_size;
5422 }
5423
5424 let next_out_of_line = decoder.next_out_of_line();
5425 let handles_before = decoder.remaining_handles();
5426 if let Some((inlined, num_bytes, num_handles)) =
5427 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5428 {
5429 let member_inline_size = <fidl_fuchsia_bluetooth__common::AddressType as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5430 if inlined != (member_inline_size <= 4) {
5431 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5432 }
5433 let inner_offset;
5434 let mut inner_depth = depth.clone();
5435 if inlined {
5436 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5437 inner_offset = next_offset;
5438 } else {
5439 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5440 inner_depth.increment()?;
5441 }
5442 let val_ref = self.address_type.get_or_insert_with(|| {
5443 fidl::new_empty!(fidl_fuchsia_bluetooth__common::AddressType, D)
5444 });
5445 fidl::decode!(
5446 fidl_fuchsia_bluetooth__common::AddressType,
5447 D,
5448 val_ref,
5449 decoder,
5450 inner_offset,
5451 inner_depth
5452 )?;
5453 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5454 {
5455 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5456 }
5457 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5458 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5459 }
5460 }
5461
5462 next_offset += envelope_size;
5463
5464 while next_offset < end_offset {
5466 _next_ordinal_to_read += 1;
5467 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5468 next_offset += envelope_size;
5469 }
5470
5471 Ok(())
5472 }
5473 }
5474
5475 impl LegacyAdvertisingState {
5476 #[inline(always)]
5477 fn max_ordinal_present(&self) -> u64 {
5478 if let Some(_) = self.scan_response {
5479 return 7;
5480 }
5481 if let Some(_) = self.advertising_data {
5482 return 6;
5483 }
5484 if let Some(_) = self.interval_max {
5485 return 5;
5486 }
5487 if let Some(_) = self.interval_min {
5488 return 4;
5489 }
5490 if let Some(_) = self.address_type {
5491 return 3;
5492 }
5493 if let Some(_) = self.type_ {
5494 return 2;
5495 }
5496 if let Some(_) = self.enabled {
5497 return 1;
5498 }
5499 0
5500 }
5501 }
5502
5503 impl fidl::encoding::ValueTypeMarker for LegacyAdvertisingState {
5504 type Borrowed<'a> = &'a Self;
5505 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5506 value
5507 }
5508 }
5509
5510 unsafe impl fidl::encoding::TypeMarker for LegacyAdvertisingState {
5511 type Owned = Self;
5512
5513 #[inline(always)]
5514 fn inline_align(_context: fidl::encoding::Context) -> usize {
5515 8
5516 }
5517
5518 #[inline(always)]
5519 fn inline_size(_context: fidl::encoding::Context) -> usize {
5520 16
5521 }
5522 }
5523
5524 unsafe impl<D: fidl::encoding::ResourceDialect>
5525 fidl::encoding::Encode<LegacyAdvertisingState, D> for &LegacyAdvertisingState
5526 {
5527 unsafe fn encode(
5528 self,
5529 encoder: &mut fidl::encoding::Encoder<'_, D>,
5530 offset: usize,
5531 mut depth: fidl::encoding::Depth,
5532 ) -> fidl::Result<()> {
5533 encoder.debug_check_bounds::<LegacyAdvertisingState>(offset);
5534 let max_ordinal: u64 = self.max_ordinal_present();
5536 encoder.write_num(max_ordinal, offset);
5537 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
5538 if max_ordinal == 0 {
5540 return Ok(());
5541 }
5542 depth.increment()?;
5543 let envelope_size = 8;
5544 let bytes_len = max_ordinal as usize * envelope_size;
5545 #[allow(unused_variables)]
5546 let offset = encoder.out_of_line_offset(bytes_len);
5547 let mut _prev_end_offset: usize = 0;
5548 if 1 > max_ordinal {
5549 return Ok(());
5550 }
5551
5552 let cur_offset: usize = (1 - 1) * envelope_size;
5555
5556 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5558
5559 fidl::encoding::encode_in_envelope_optional::<bool, D>(
5564 self.enabled.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
5565 encoder,
5566 offset + cur_offset,
5567 depth,
5568 )?;
5569
5570 _prev_end_offset = cur_offset + envelope_size;
5571 if 2 > max_ordinal {
5572 return Ok(());
5573 }
5574
5575 let cur_offset: usize = (2 - 1) * envelope_size;
5578
5579 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5581
5582 fidl::encoding::encode_in_envelope_optional::<LegacyAdvertisingType, D>(
5587 self.type_
5588 .as_ref()
5589 .map(<LegacyAdvertisingType as fidl::encoding::ValueTypeMarker>::borrow),
5590 encoder,
5591 offset + cur_offset,
5592 depth,
5593 )?;
5594
5595 _prev_end_offset = cur_offset + envelope_size;
5596 if 3 > max_ordinal {
5597 return Ok(());
5598 }
5599
5600 let cur_offset: usize = (3 - 1) * envelope_size;
5603
5604 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5606
5607 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_bluetooth__common::AddressType, D>(
5612 self.address_type.as_ref().map(<fidl_fuchsia_bluetooth__common::AddressType as fidl::encoding::ValueTypeMarker>::borrow),
5613 encoder, offset + cur_offset, depth
5614 )?;
5615
5616 _prev_end_offset = cur_offset + envelope_size;
5617 if 4 > max_ordinal {
5618 return Ok(());
5619 }
5620
5621 let cur_offset: usize = (4 - 1) * envelope_size;
5624
5625 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5627
5628 fidl::encoding::encode_in_envelope_optional::<u16, D>(
5633 self.interval_min.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
5634 encoder,
5635 offset + cur_offset,
5636 depth,
5637 )?;
5638
5639 _prev_end_offset = cur_offset + envelope_size;
5640 if 5 > max_ordinal {
5641 return Ok(());
5642 }
5643
5644 let cur_offset: usize = (5 - 1) * envelope_size;
5647
5648 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5650
5651 fidl::encoding::encode_in_envelope_optional::<u16, D>(
5656 self.interval_max.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
5657 encoder,
5658 offset + cur_offset,
5659 depth,
5660 )?;
5661
5662 _prev_end_offset = cur_offset + envelope_size;
5663 if 6 > max_ordinal {
5664 return Ok(());
5665 }
5666
5667 let cur_offset: usize = (6 - 1) * envelope_size;
5670
5671 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5673
5674 fidl::encoding::encode_in_envelope_optional::<AdvertisingData, D>(
5679 self.advertising_data
5680 .as_ref()
5681 .map(<AdvertisingData as fidl::encoding::ValueTypeMarker>::borrow),
5682 encoder,
5683 offset + cur_offset,
5684 depth,
5685 )?;
5686
5687 _prev_end_offset = cur_offset + envelope_size;
5688 if 7 > max_ordinal {
5689 return Ok(());
5690 }
5691
5692 let cur_offset: usize = (7 - 1) * envelope_size;
5695
5696 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5698
5699 fidl::encoding::encode_in_envelope_optional::<AdvertisingData, D>(
5704 self.scan_response
5705 .as_ref()
5706 .map(<AdvertisingData as fidl::encoding::ValueTypeMarker>::borrow),
5707 encoder,
5708 offset + cur_offset,
5709 depth,
5710 )?;
5711
5712 _prev_end_offset = cur_offset + envelope_size;
5713
5714 Ok(())
5715 }
5716 }
5717
5718 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
5719 for LegacyAdvertisingState
5720 {
5721 #[inline(always)]
5722 fn new_empty() -> Self {
5723 Self::default()
5724 }
5725
5726 unsafe fn decode(
5727 &mut self,
5728 decoder: &mut fidl::encoding::Decoder<'_, D>,
5729 offset: usize,
5730 mut depth: fidl::encoding::Depth,
5731 ) -> fidl::Result<()> {
5732 decoder.debug_check_bounds::<Self>(offset);
5733 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
5734 None => return Err(fidl::Error::NotNullable),
5735 Some(len) => len,
5736 };
5737 if len == 0 {
5739 return Ok(());
5740 };
5741 depth.increment()?;
5742 let envelope_size = 8;
5743 let bytes_len = len * envelope_size;
5744 let offset = decoder.out_of_line_offset(bytes_len)?;
5745 let mut _next_ordinal_to_read = 0;
5747 let mut next_offset = offset;
5748 let end_offset = offset + bytes_len;
5749 _next_ordinal_to_read += 1;
5750 if next_offset >= end_offset {
5751 return Ok(());
5752 }
5753
5754 while _next_ordinal_to_read < 1 {
5756 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5757 _next_ordinal_to_read += 1;
5758 next_offset += envelope_size;
5759 }
5760
5761 let next_out_of_line = decoder.next_out_of_line();
5762 let handles_before = decoder.remaining_handles();
5763 if let Some((inlined, num_bytes, num_handles)) =
5764 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5765 {
5766 let member_inline_size =
5767 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5768 if inlined != (member_inline_size <= 4) {
5769 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5770 }
5771 let inner_offset;
5772 let mut inner_depth = depth.clone();
5773 if inlined {
5774 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5775 inner_offset = next_offset;
5776 } else {
5777 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5778 inner_depth.increment()?;
5779 }
5780 let val_ref = self.enabled.get_or_insert_with(|| fidl::new_empty!(bool, D));
5781 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
5782 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5783 {
5784 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5785 }
5786 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5787 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5788 }
5789 }
5790
5791 next_offset += envelope_size;
5792 _next_ordinal_to_read += 1;
5793 if next_offset >= end_offset {
5794 return Ok(());
5795 }
5796
5797 while _next_ordinal_to_read < 2 {
5799 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5800 _next_ordinal_to_read += 1;
5801 next_offset += envelope_size;
5802 }
5803
5804 let next_out_of_line = decoder.next_out_of_line();
5805 let handles_before = decoder.remaining_handles();
5806 if let Some((inlined, num_bytes, num_handles)) =
5807 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5808 {
5809 let member_inline_size =
5810 <LegacyAdvertisingType as fidl::encoding::TypeMarker>::inline_size(
5811 decoder.context,
5812 );
5813 if inlined != (member_inline_size <= 4) {
5814 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5815 }
5816 let inner_offset;
5817 let mut inner_depth = depth.clone();
5818 if inlined {
5819 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5820 inner_offset = next_offset;
5821 } else {
5822 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5823 inner_depth.increment()?;
5824 }
5825 let val_ref =
5826 self.type_.get_or_insert_with(|| fidl::new_empty!(LegacyAdvertisingType, D));
5827 fidl::decode!(
5828 LegacyAdvertisingType,
5829 D,
5830 val_ref,
5831 decoder,
5832 inner_offset,
5833 inner_depth
5834 )?;
5835 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5836 {
5837 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5838 }
5839 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5840 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5841 }
5842 }
5843
5844 next_offset += envelope_size;
5845 _next_ordinal_to_read += 1;
5846 if next_offset >= end_offset {
5847 return Ok(());
5848 }
5849
5850 while _next_ordinal_to_read < 3 {
5852 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5853 _next_ordinal_to_read += 1;
5854 next_offset += envelope_size;
5855 }
5856
5857 let next_out_of_line = decoder.next_out_of_line();
5858 let handles_before = decoder.remaining_handles();
5859 if let Some((inlined, num_bytes, num_handles)) =
5860 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5861 {
5862 let member_inline_size = <fidl_fuchsia_bluetooth__common::AddressType as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5863 if inlined != (member_inline_size <= 4) {
5864 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5865 }
5866 let inner_offset;
5867 let mut inner_depth = depth.clone();
5868 if inlined {
5869 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5870 inner_offset = next_offset;
5871 } else {
5872 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5873 inner_depth.increment()?;
5874 }
5875 let val_ref = self.address_type.get_or_insert_with(|| {
5876 fidl::new_empty!(fidl_fuchsia_bluetooth__common::AddressType, D)
5877 });
5878 fidl::decode!(
5879 fidl_fuchsia_bluetooth__common::AddressType,
5880 D,
5881 val_ref,
5882 decoder,
5883 inner_offset,
5884 inner_depth
5885 )?;
5886 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5887 {
5888 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5889 }
5890 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5891 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5892 }
5893 }
5894
5895 next_offset += envelope_size;
5896 _next_ordinal_to_read += 1;
5897 if next_offset >= end_offset {
5898 return Ok(());
5899 }
5900
5901 while _next_ordinal_to_read < 4 {
5903 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5904 _next_ordinal_to_read += 1;
5905 next_offset += envelope_size;
5906 }
5907
5908 let next_out_of_line = decoder.next_out_of_line();
5909 let handles_before = decoder.remaining_handles();
5910 if let Some((inlined, num_bytes, num_handles)) =
5911 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5912 {
5913 let member_inline_size =
5914 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5915 if inlined != (member_inline_size <= 4) {
5916 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5917 }
5918 let inner_offset;
5919 let mut inner_depth = depth.clone();
5920 if inlined {
5921 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5922 inner_offset = next_offset;
5923 } else {
5924 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5925 inner_depth.increment()?;
5926 }
5927 let val_ref = self.interval_min.get_or_insert_with(|| fidl::new_empty!(u16, D));
5928 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
5929 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5930 {
5931 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5932 }
5933 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5934 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5935 }
5936 }
5937
5938 next_offset += envelope_size;
5939 _next_ordinal_to_read += 1;
5940 if next_offset >= end_offset {
5941 return Ok(());
5942 }
5943
5944 while _next_ordinal_to_read < 5 {
5946 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5947 _next_ordinal_to_read += 1;
5948 next_offset += envelope_size;
5949 }
5950
5951 let next_out_of_line = decoder.next_out_of_line();
5952 let handles_before = decoder.remaining_handles();
5953 if let Some((inlined, num_bytes, num_handles)) =
5954 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5955 {
5956 let member_inline_size =
5957 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5958 if inlined != (member_inline_size <= 4) {
5959 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5960 }
5961 let inner_offset;
5962 let mut inner_depth = depth.clone();
5963 if inlined {
5964 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5965 inner_offset = next_offset;
5966 } else {
5967 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5968 inner_depth.increment()?;
5969 }
5970 let val_ref = self.interval_max.get_or_insert_with(|| fidl::new_empty!(u16, D));
5971 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
5972 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5973 {
5974 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5975 }
5976 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5977 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5978 }
5979 }
5980
5981 next_offset += envelope_size;
5982 _next_ordinal_to_read += 1;
5983 if next_offset >= end_offset {
5984 return Ok(());
5985 }
5986
5987 while _next_ordinal_to_read < 6 {
5989 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5990 _next_ordinal_to_read += 1;
5991 next_offset += envelope_size;
5992 }
5993
5994 let next_out_of_line = decoder.next_out_of_line();
5995 let handles_before = decoder.remaining_handles();
5996 if let Some((inlined, num_bytes, num_handles)) =
5997 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5998 {
5999 let member_inline_size =
6000 <AdvertisingData as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6001 if inlined != (member_inline_size <= 4) {
6002 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6003 }
6004 let inner_offset;
6005 let mut inner_depth = depth.clone();
6006 if inlined {
6007 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6008 inner_offset = next_offset;
6009 } else {
6010 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6011 inner_depth.increment()?;
6012 }
6013 let val_ref = self
6014 .advertising_data
6015 .get_or_insert_with(|| fidl::new_empty!(AdvertisingData, D));
6016 fidl::decode!(AdvertisingData, D, val_ref, decoder, inner_offset, inner_depth)?;
6017 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6018 {
6019 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6020 }
6021 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6022 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6023 }
6024 }
6025
6026 next_offset += envelope_size;
6027 _next_ordinal_to_read += 1;
6028 if next_offset >= end_offset {
6029 return Ok(());
6030 }
6031
6032 while _next_ordinal_to_read < 7 {
6034 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6035 _next_ordinal_to_read += 1;
6036 next_offset += envelope_size;
6037 }
6038
6039 let next_out_of_line = decoder.next_out_of_line();
6040 let handles_before = decoder.remaining_handles();
6041 if let Some((inlined, num_bytes, num_handles)) =
6042 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6043 {
6044 let member_inline_size =
6045 <AdvertisingData as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6046 if inlined != (member_inline_size <= 4) {
6047 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6048 }
6049 let inner_offset;
6050 let mut inner_depth = depth.clone();
6051 if inlined {
6052 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6053 inner_offset = next_offset;
6054 } else {
6055 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6056 inner_depth.increment()?;
6057 }
6058 let val_ref =
6059 self.scan_response.get_or_insert_with(|| fidl::new_empty!(AdvertisingData, D));
6060 fidl::decode!(AdvertisingData, D, val_ref, decoder, inner_offset, inner_depth)?;
6061 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6062 {
6063 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6064 }
6065 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6066 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6067 }
6068 }
6069
6070 next_offset += envelope_size;
6071
6072 while next_offset < end_offset {
6074 _next_ordinal_to_read += 1;
6075 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6076 next_offset += envelope_size;
6077 }
6078
6079 Ok(())
6080 }
6081 }
6082
6083 impl PeerSetLeAdvertisementRequest {
6084 #[inline(always)]
6085 fn max_ordinal_present(&self) -> u64 {
6086 if let Some(_) = self.scan_response {
6087 return 3;
6088 }
6089 if let Some(_) = self.advertisement {
6090 return 2;
6091 }
6092 if let Some(_) = self.le_address {
6093 return 1;
6094 }
6095 0
6096 }
6097 }
6098
6099 impl fidl::encoding::ValueTypeMarker for PeerSetLeAdvertisementRequest {
6100 type Borrowed<'a> = &'a Self;
6101 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6102 value
6103 }
6104 }
6105
6106 unsafe impl fidl::encoding::TypeMarker for PeerSetLeAdvertisementRequest {
6107 type Owned = Self;
6108
6109 #[inline(always)]
6110 fn inline_align(_context: fidl::encoding::Context) -> usize {
6111 8
6112 }
6113
6114 #[inline(always)]
6115 fn inline_size(_context: fidl::encoding::Context) -> usize {
6116 16
6117 }
6118 }
6119
6120 unsafe impl<D: fidl::encoding::ResourceDialect>
6121 fidl::encoding::Encode<PeerSetLeAdvertisementRequest, D>
6122 for &PeerSetLeAdvertisementRequest
6123 {
6124 unsafe fn encode(
6125 self,
6126 encoder: &mut fidl::encoding::Encoder<'_, D>,
6127 offset: usize,
6128 mut depth: fidl::encoding::Depth,
6129 ) -> fidl::Result<()> {
6130 encoder.debug_check_bounds::<PeerSetLeAdvertisementRequest>(offset);
6131 let max_ordinal: u64 = self.max_ordinal_present();
6133 encoder.write_num(max_ordinal, offset);
6134 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
6135 if max_ordinal == 0 {
6137 return Ok(());
6138 }
6139 depth.increment()?;
6140 let envelope_size = 8;
6141 let bytes_len = max_ordinal as usize * envelope_size;
6142 #[allow(unused_variables)]
6143 let offset = encoder.out_of_line_offset(bytes_len);
6144 let mut _prev_end_offset: usize = 0;
6145 if 1 > max_ordinal {
6146 return Ok(());
6147 }
6148
6149 let cur_offset: usize = (1 - 1) * envelope_size;
6152
6153 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6155
6156 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_bluetooth__common::Address, D>(
6161 self.le_address.as_ref().map(<fidl_fuchsia_bluetooth__common::Address as fidl::encoding::ValueTypeMarker>::borrow),
6162 encoder, offset + cur_offset, depth
6163 )?;
6164
6165 _prev_end_offset = cur_offset + envelope_size;
6166 if 2 > max_ordinal {
6167 return Ok(());
6168 }
6169
6170 let cur_offset: usize = (2 - 1) * envelope_size;
6173
6174 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6176
6177 fidl::encoding::encode_in_envelope_optional::<AdvertisingData, D>(
6182 self.advertisement
6183 .as_ref()
6184 .map(<AdvertisingData as fidl::encoding::ValueTypeMarker>::borrow),
6185 encoder,
6186 offset + cur_offset,
6187 depth,
6188 )?;
6189
6190 _prev_end_offset = cur_offset + envelope_size;
6191 if 3 > max_ordinal {
6192 return Ok(());
6193 }
6194
6195 let cur_offset: usize = (3 - 1) * envelope_size;
6198
6199 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6201
6202 fidl::encoding::encode_in_envelope_optional::<AdvertisingData, D>(
6207 self.scan_response
6208 .as_ref()
6209 .map(<AdvertisingData as fidl::encoding::ValueTypeMarker>::borrow),
6210 encoder,
6211 offset + cur_offset,
6212 depth,
6213 )?;
6214
6215 _prev_end_offset = cur_offset + envelope_size;
6216
6217 Ok(())
6218 }
6219 }
6220
6221 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
6222 for PeerSetLeAdvertisementRequest
6223 {
6224 #[inline(always)]
6225 fn new_empty() -> Self {
6226 Self::default()
6227 }
6228
6229 unsafe fn decode(
6230 &mut self,
6231 decoder: &mut fidl::encoding::Decoder<'_, D>,
6232 offset: usize,
6233 mut depth: fidl::encoding::Depth,
6234 ) -> fidl::Result<()> {
6235 decoder.debug_check_bounds::<Self>(offset);
6236 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
6237 None => return Err(fidl::Error::NotNullable),
6238 Some(len) => len,
6239 };
6240 if len == 0 {
6242 return Ok(());
6243 };
6244 depth.increment()?;
6245 let envelope_size = 8;
6246 let bytes_len = len * envelope_size;
6247 let offset = decoder.out_of_line_offset(bytes_len)?;
6248 let mut _next_ordinal_to_read = 0;
6250 let mut next_offset = offset;
6251 let end_offset = offset + bytes_len;
6252 _next_ordinal_to_read += 1;
6253 if next_offset >= end_offset {
6254 return Ok(());
6255 }
6256
6257 while _next_ordinal_to_read < 1 {
6259 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6260 _next_ordinal_to_read += 1;
6261 next_offset += envelope_size;
6262 }
6263
6264 let next_out_of_line = decoder.next_out_of_line();
6265 let handles_before = decoder.remaining_handles();
6266 if let Some((inlined, num_bytes, num_handles)) =
6267 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6268 {
6269 let member_inline_size = <fidl_fuchsia_bluetooth__common::Address as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6270 if inlined != (member_inline_size <= 4) {
6271 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6272 }
6273 let inner_offset;
6274 let mut inner_depth = depth.clone();
6275 if inlined {
6276 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6277 inner_offset = next_offset;
6278 } else {
6279 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6280 inner_depth.increment()?;
6281 }
6282 let val_ref = self.le_address.get_or_insert_with(|| {
6283 fidl::new_empty!(fidl_fuchsia_bluetooth__common::Address, D)
6284 });
6285 fidl::decode!(
6286 fidl_fuchsia_bluetooth__common::Address,
6287 D,
6288 val_ref,
6289 decoder,
6290 inner_offset,
6291 inner_depth
6292 )?;
6293 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6294 {
6295 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6296 }
6297 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6298 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6299 }
6300 }
6301
6302 next_offset += envelope_size;
6303 _next_ordinal_to_read += 1;
6304 if next_offset >= end_offset {
6305 return Ok(());
6306 }
6307
6308 while _next_ordinal_to_read < 2 {
6310 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6311 _next_ordinal_to_read += 1;
6312 next_offset += envelope_size;
6313 }
6314
6315 let next_out_of_line = decoder.next_out_of_line();
6316 let handles_before = decoder.remaining_handles();
6317 if let Some((inlined, num_bytes, num_handles)) =
6318 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6319 {
6320 let member_inline_size =
6321 <AdvertisingData as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6322 if inlined != (member_inline_size <= 4) {
6323 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6324 }
6325 let inner_offset;
6326 let mut inner_depth = depth.clone();
6327 if inlined {
6328 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6329 inner_offset = next_offset;
6330 } else {
6331 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6332 inner_depth.increment()?;
6333 }
6334 let val_ref =
6335 self.advertisement.get_or_insert_with(|| fidl::new_empty!(AdvertisingData, D));
6336 fidl::decode!(AdvertisingData, D, val_ref, decoder, inner_offset, inner_depth)?;
6337 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6338 {
6339 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6340 }
6341 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6342 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6343 }
6344 }
6345
6346 next_offset += envelope_size;
6347 _next_ordinal_to_read += 1;
6348 if next_offset >= end_offset {
6349 return Ok(());
6350 }
6351
6352 while _next_ordinal_to_read < 3 {
6354 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6355 _next_ordinal_to_read += 1;
6356 next_offset += envelope_size;
6357 }
6358
6359 let next_out_of_line = decoder.next_out_of_line();
6360 let handles_before = decoder.remaining_handles();
6361 if let Some((inlined, num_bytes, num_handles)) =
6362 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6363 {
6364 let member_inline_size =
6365 <AdvertisingData as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6366 if inlined != (member_inline_size <= 4) {
6367 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6368 }
6369 let inner_offset;
6370 let mut inner_depth = depth.clone();
6371 if inlined {
6372 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6373 inner_offset = next_offset;
6374 } else {
6375 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6376 inner_depth.increment()?;
6377 }
6378 let val_ref =
6379 self.scan_response.get_or_insert_with(|| fidl::new_empty!(AdvertisingData, D));
6380 fidl::decode!(AdvertisingData, D, val_ref, decoder, inner_offset, inner_depth)?;
6381 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6382 {
6383 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6384 }
6385 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6386 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6387 }
6388 }
6389
6390 next_offset += envelope_size;
6391
6392 while next_offset < end_offset {
6394 _next_ordinal_to_read += 1;
6395 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6396 next_offset += envelope_size;
6397 }
6398
6399 Ok(())
6400 }
6401 }
6402
6403 impl SnoopOnDroppedPacketsRequest {
6404 #[inline(always)]
6405 fn max_ordinal_present(&self) -> u64 {
6406 if let Some(_) = self.received {
6407 return 2;
6408 }
6409 if let Some(_) = self.sent {
6410 return 1;
6411 }
6412 0
6413 }
6414 }
6415
6416 impl fidl::encoding::ValueTypeMarker for SnoopOnDroppedPacketsRequest {
6417 type Borrowed<'a> = &'a Self;
6418 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6419 value
6420 }
6421 }
6422
6423 unsafe impl fidl::encoding::TypeMarker for SnoopOnDroppedPacketsRequest {
6424 type Owned = Self;
6425
6426 #[inline(always)]
6427 fn inline_align(_context: fidl::encoding::Context) -> usize {
6428 8
6429 }
6430
6431 #[inline(always)]
6432 fn inline_size(_context: fidl::encoding::Context) -> usize {
6433 16
6434 }
6435 }
6436
6437 unsafe impl<D: fidl::encoding::ResourceDialect>
6438 fidl::encoding::Encode<SnoopOnDroppedPacketsRequest, D> for &SnoopOnDroppedPacketsRequest
6439 {
6440 unsafe fn encode(
6441 self,
6442 encoder: &mut fidl::encoding::Encoder<'_, D>,
6443 offset: usize,
6444 mut depth: fidl::encoding::Depth,
6445 ) -> fidl::Result<()> {
6446 encoder.debug_check_bounds::<SnoopOnDroppedPacketsRequest>(offset);
6447 let max_ordinal: u64 = self.max_ordinal_present();
6449 encoder.write_num(max_ordinal, offset);
6450 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
6451 if max_ordinal == 0 {
6453 return Ok(());
6454 }
6455 depth.increment()?;
6456 let envelope_size = 8;
6457 let bytes_len = max_ordinal as usize * envelope_size;
6458 #[allow(unused_variables)]
6459 let offset = encoder.out_of_line_offset(bytes_len);
6460 let mut _prev_end_offset: usize = 0;
6461 if 1 > max_ordinal {
6462 return Ok(());
6463 }
6464
6465 let cur_offset: usize = (1 - 1) * envelope_size;
6468
6469 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6471
6472 fidl::encoding::encode_in_envelope_optional::<u32, D>(
6477 self.sent.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
6478 encoder,
6479 offset + cur_offset,
6480 depth,
6481 )?;
6482
6483 _prev_end_offset = cur_offset + envelope_size;
6484 if 2 > max_ordinal {
6485 return Ok(());
6486 }
6487
6488 let cur_offset: usize = (2 - 1) * envelope_size;
6491
6492 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6494
6495 fidl::encoding::encode_in_envelope_optional::<u32, D>(
6500 self.received.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
6501 encoder,
6502 offset + cur_offset,
6503 depth,
6504 )?;
6505
6506 _prev_end_offset = cur_offset + envelope_size;
6507
6508 Ok(())
6509 }
6510 }
6511
6512 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
6513 for SnoopOnDroppedPacketsRequest
6514 {
6515 #[inline(always)]
6516 fn new_empty() -> Self {
6517 Self::default()
6518 }
6519
6520 unsafe fn decode(
6521 &mut self,
6522 decoder: &mut fidl::encoding::Decoder<'_, D>,
6523 offset: usize,
6524 mut depth: fidl::encoding::Depth,
6525 ) -> fidl::Result<()> {
6526 decoder.debug_check_bounds::<Self>(offset);
6527 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
6528 None => return Err(fidl::Error::NotNullable),
6529 Some(len) => len,
6530 };
6531 if len == 0 {
6533 return Ok(());
6534 };
6535 depth.increment()?;
6536 let envelope_size = 8;
6537 let bytes_len = len * envelope_size;
6538 let offset = decoder.out_of_line_offset(bytes_len)?;
6539 let mut _next_ordinal_to_read = 0;
6541 let mut next_offset = offset;
6542 let end_offset = offset + bytes_len;
6543 _next_ordinal_to_read += 1;
6544 if next_offset >= end_offset {
6545 return Ok(());
6546 }
6547
6548 while _next_ordinal_to_read < 1 {
6550 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6551 _next_ordinal_to_read += 1;
6552 next_offset += envelope_size;
6553 }
6554
6555 let next_out_of_line = decoder.next_out_of_line();
6556 let handles_before = decoder.remaining_handles();
6557 if let Some((inlined, num_bytes, num_handles)) =
6558 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6559 {
6560 let member_inline_size =
6561 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6562 if inlined != (member_inline_size <= 4) {
6563 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6564 }
6565 let inner_offset;
6566 let mut inner_depth = depth.clone();
6567 if inlined {
6568 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6569 inner_offset = next_offset;
6570 } else {
6571 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6572 inner_depth.increment()?;
6573 }
6574 let val_ref = self.sent.get_or_insert_with(|| fidl::new_empty!(u32, D));
6575 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
6576 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6577 {
6578 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6579 }
6580 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6581 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6582 }
6583 }
6584
6585 next_offset += envelope_size;
6586 _next_ordinal_to_read += 1;
6587 if next_offset >= end_offset {
6588 return Ok(());
6589 }
6590
6591 while _next_ordinal_to_read < 2 {
6593 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6594 _next_ordinal_to_read += 1;
6595 next_offset += envelope_size;
6596 }
6597
6598 let next_out_of_line = decoder.next_out_of_line();
6599 let handles_before = decoder.remaining_handles();
6600 if let Some((inlined, num_bytes, num_handles)) =
6601 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6602 {
6603 let member_inline_size =
6604 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6605 if inlined != (member_inline_size <= 4) {
6606 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6607 }
6608 let inner_offset;
6609 let mut inner_depth = depth.clone();
6610 if inlined {
6611 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6612 inner_offset = next_offset;
6613 } else {
6614 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6615 inner_depth.increment()?;
6616 }
6617 let val_ref = self.received.get_or_insert_with(|| fidl::new_empty!(u32, D));
6618 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
6619 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6620 {
6621 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6622 }
6623 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6624 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6625 }
6626 }
6627
6628 next_offset += envelope_size;
6629
6630 while next_offset < end_offset {
6632 _next_ordinal_to_read += 1;
6633 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6634 next_offset += envelope_size;
6635 }
6636
6637 Ok(())
6638 }
6639 }
6640
6641 impl SnoopOnObservePacketRequest {
6642 #[inline(always)]
6643 fn max_ordinal_present(&self) -> u64 {
6644 if let Some(_) = self.packet {
6645 return 3;
6646 }
6647 if let Some(_) = self.direction {
6648 return 2;
6649 }
6650 if let Some(_) = self.sequence {
6651 return 1;
6652 }
6653 0
6654 }
6655 }
6656
6657 impl fidl::encoding::ValueTypeMarker for SnoopOnObservePacketRequest {
6658 type Borrowed<'a> = &'a Self;
6659 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6660 value
6661 }
6662 }
6663
6664 unsafe impl fidl::encoding::TypeMarker for SnoopOnObservePacketRequest {
6665 type Owned = Self;
6666
6667 #[inline(always)]
6668 fn inline_align(_context: fidl::encoding::Context) -> usize {
6669 8
6670 }
6671
6672 #[inline(always)]
6673 fn inline_size(_context: fidl::encoding::Context) -> usize {
6674 16
6675 }
6676 }
6677
6678 unsafe impl<D: fidl::encoding::ResourceDialect>
6679 fidl::encoding::Encode<SnoopOnObservePacketRequest, D> for &SnoopOnObservePacketRequest
6680 {
6681 unsafe fn encode(
6682 self,
6683 encoder: &mut fidl::encoding::Encoder<'_, D>,
6684 offset: usize,
6685 mut depth: fidl::encoding::Depth,
6686 ) -> fidl::Result<()> {
6687 encoder.debug_check_bounds::<SnoopOnObservePacketRequest>(offset);
6688 let max_ordinal: u64 = self.max_ordinal_present();
6690 encoder.write_num(max_ordinal, offset);
6691 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
6692 if max_ordinal == 0 {
6694 return Ok(());
6695 }
6696 depth.increment()?;
6697 let envelope_size = 8;
6698 let bytes_len = max_ordinal as usize * envelope_size;
6699 #[allow(unused_variables)]
6700 let offset = encoder.out_of_line_offset(bytes_len);
6701 let mut _prev_end_offset: usize = 0;
6702 if 1 > max_ordinal {
6703 return Ok(());
6704 }
6705
6706 let cur_offset: usize = (1 - 1) * envelope_size;
6709
6710 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6712
6713 fidl::encoding::encode_in_envelope_optional::<u64, D>(
6718 self.sequence.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
6719 encoder,
6720 offset + cur_offset,
6721 depth,
6722 )?;
6723
6724 _prev_end_offset = cur_offset + envelope_size;
6725 if 2 > max_ordinal {
6726 return Ok(());
6727 }
6728
6729 let cur_offset: usize = (2 - 1) * envelope_size;
6732
6733 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6735
6736 fidl::encoding::encode_in_envelope_optional::<PacketDirection, D>(
6741 self.direction
6742 .as_ref()
6743 .map(<PacketDirection as fidl::encoding::ValueTypeMarker>::borrow),
6744 encoder,
6745 offset + cur_offset,
6746 depth,
6747 )?;
6748
6749 _prev_end_offset = cur_offset + envelope_size;
6750 if 3 > max_ordinal {
6751 return Ok(());
6752 }
6753
6754 let cur_offset: usize = (3 - 1) * envelope_size;
6757
6758 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6760
6761 fidl::encoding::encode_in_envelope_optional::<SnoopPacket, D>(
6766 self.packet.as_ref().map(<SnoopPacket as fidl::encoding::ValueTypeMarker>::borrow),
6767 encoder,
6768 offset + cur_offset,
6769 depth,
6770 )?;
6771
6772 _prev_end_offset = cur_offset + envelope_size;
6773
6774 Ok(())
6775 }
6776 }
6777
6778 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
6779 for SnoopOnObservePacketRequest
6780 {
6781 #[inline(always)]
6782 fn new_empty() -> Self {
6783 Self::default()
6784 }
6785
6786 unsafe fn decode(
6787 &mut self,
6788 decoder: &mut fidl::encoding::Decoder<'_, D>,
6789 offset: usize,
6790 mut depth: fidl::encoding::Depth,
6791 ) -> fidl::Result<()> {
6792 decoder.debug_check_bounds::<Self>(offset);
6793 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
6794 None => return Err(fidl::Error::NotNullable),
6795 Some(len) => len,
6796 };
6797 if len == 0 {
6799 return Ok(());
6800 };
6801 depth.increment()?;
6802 let envelope_size = 8;
6803 let bytes_len = len * envelope_size;
6804 let offset = decoder.out_of_line_offset(bytes_len)?;
6805 let mut _next_ordinal_to_read = 0;
6807 let mut next_offset = offset;
6808 let end_offset = offset + bytes_len;
6809 _next_ordinal_to_read += 1;
6810 if next_offset >= end_offset {
6811 return Ok(());
6812 }
6813
6814 while _next_ordinal_to_read < 1 {
6816 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6817 _next_ordinal_to_read += 1;
6818 next_offset += envelope_size;
6819 }
6820
6821 let next_out_of_line = decoder.next_out_of_line();
6822 let handles_before = decoder.remaining_handles();
6823 if let Some((inlined, num_bytes, num_handles)) =
6824 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6825 {
6826 let member_inline_size =
6827 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6828 if inlined != (member_inline_size <= 4) {
6829 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6830 }
6831 let inner_offset;
6832 let mut inner_depth = depth.clone();
6833 if inlined {
6834 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6835 inner_offset = next_offset;
6836 } else {
6837 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6838 inner_depth.increment()?;
6839 }
6840 let val_ref = self.sequence.get_or_insert_with(|| fidl::new_empty!(u64, D));
6841 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
6842 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6843 {
6844 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6845 }
6846 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6847 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6848 }
6849 }
6850
6851 next_offset += envelope_size;
6852 _next_ordinal_to_read += 1;
6853 if next_offset >= end_offset {
6854 return Ok(());
6855 }
6856
6857 while _next_ordinal_to_read < 2 {
6859 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6860 _next_ordinal_to_read += 1;
6861 next_offset += envelope_size;
6862 }
6863
6864 let next_out_of_line = decoder.next_out_of_line();
6865 let handles_before = decoder.remaining_handles();
6866 if let Some((inlined, num_bytes, num_handles)) =
6867 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6868 {
6869 let member_inline_size =
6870 <PacketDirection as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6871 if inlined != (member_inline_size <= 4) {
6872 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6873 }
6874 let inner_offset;
6875 let mut inner_depth = depth.clone();
6876 if inlined {
6877 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6878 inner_offset = next_offset;
6879 } else {
6880 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6881 inner_depth.increment()?;
6882 }
6883 let val_ref =
6884 self.direction.get_or_insert_with(|| fidl::new_empty!(PacketDirection, D));
6885 fidl::decode!(PacketDirection, D, val_ref, decoder, inner_offset, inner_depth)?;
6886 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6887 {
6888 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6889 }
6890 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6891 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6892 }
6893 }
6894
6895 next_offset += envelope_size;
6896 _next_ordinal_to_read += 1;
6897 if next_offset >= end_offset {
6898 return Ok(());
6899 }
6900
6901 while _next_ordinal_to_read < 3 {
6903 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6904 _next_ordinal_to_read += 1;
6905 next_offset += envelope_size;
6906 }
6907
6908 let next_out_of_line = decoder.next_out_of_line();
6909 let handles_before = decoder.remaining_handles();
6910 if let Some((inlined, num_bytes, num_handles)) =
6911 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6912 {
6913 let member_inline_size =
6914 <SnoopPacket as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6915 if inlined != (member_inline_size <= 4) {
6916 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6917 }
6918 let inner_offset;
6919 let mut inner_depth = depth.clone();
6920 if inlined {
6921 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6922 inner_offset = next_offset;
6923 } else {
6924 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6925 inner_depth.increment()?;
6926 }
6927 let val_ref = self.packet.get_or_insert_with(|| fidl::new_empty!(SnoopPacket, D));
6928 fidl::decode!(SnoopPacket, D, val_ref, decoder, inner_offset, inner_depth)?;
6929 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6930 {
6931 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6932 }
6933 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6934 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6935 }
6936 }
6937
6938 next_offset += envelope_size;
6939
6940 while next_offset < end_offset {
6942 _next_ordinal_to_read += 1;
6943 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6944 next_offset += envelope_size;
6945 }
6946
6947 Ok(())
6948 }
6949 }
6950
6951 impl VendorCrashParameters {
6952 #[inline(always)]
6953 fn max_ordinal_present(&self) -> u64 {
6954 if let Some(_) = self.crash_signature {
6955 return 3;
6956 }
6957 if let Some(_) = self.program_name {
6958 return 2;
6959 }
6960 if let Some(_) = self.vendor_subevent_code {
6961 return 1;
6962 }
6963 0
6964 }
6965 }
6966
6967 impl fidl::encoding::ValueTypeMarker for VendorCrashParameters {
6968 type Borrowed<'a> = &'a Self;
6969 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6970 value
6971 }
6972 }
6973
6974 unsafe impl fidl::encoding::TypeMarker for VendorCrashParameters {
6975 type Owned = Self;
6976
6977 #[inline(always)]
6978 fn inline_align(_context: fidl::encoding::Context) -> usize {
6979 8
6980 }
6981
6982 #[inline(always)]
6983 fn inline_size(_context: fidl::encoding::Context) -> usize {
6984 16
6985 }
6986 }
6987
6988 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<VendorCrashParameters, D>
6989 for &VendorCrashParameters
6990 {
6991 unsafe fn encode(
6992 self,
6993 encoder: &mut fidl::encoding::Encoder<'_, D>,
6994 offset: usize,
6995 mut depth: fidl::encoding::Depth,
6996 ) -> fidl::Result<()> {
6997 encoder.debug_check_bounds::<VendorCrashParameters>(offset);
6998 let max_ordinal: u64 = self.max_ordinal_present();
7000 encoder.write_num(max_ordinal, offset);
7001 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
7002 if max_ordinal == 0 {
7004 return Ok(());
7005 }
7006 depth.increment()?;
7007 let envelope_size = 8;
7008 let bytes_len = max_ordinal as usize * envelope_size;
7009 #[allow(unused_variables)]
7010 let offset = encoder.out_of_line_offset(bytes_len);
7011 let mut _prev_end_offset: usize = 0;
7012 if 1 > max_ordinal {
7013 return Ok(());
7014 }
7015
7016 let cur_offset: usize = (1 - 1) * envelope_size;
7019
7020 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7022
7023 fidl::encoding::encode_in_envelope_optional::<u8, D>(
7028 self.vendor_subevent_code
7029 .as_ref()
7030 .map(<u8 as fidl::encoding::ValueTypeMarker>::borrow),
7031 encoder,
7032 offset + cur_offset,
7033 depth,
7034 )?;
7035
7036 _prev_end_offset = cur_offset + envelope_size;
7037 if 2 > max_ordinal {
7038 return Ok(());
7039 }
7040
7041 let cur_offset: usize = (2 - 1) * envelope_size;
7044
7045 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7047
7048 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<1024>, D>(
7053 self.program_name.as_ref().map(<fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow),
7054 encoder, offset + cur_offset, depth
7055 )?;
7056
7057 _prev_end_offset = cur_offset + envelope_size;
7058 if 3 > max_ordinal {
7059 return Ok(());
7060 }
7061
7062 let cur_offset: usize = (3 - 1) * envelope_size;
7065
7066 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7068
7069 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<128>, D>(
7074 self.crash_signature.as_ref().map(
7075 <fidl::encoding::BoundedString<128> as fidl::encoding::ValueTypeMarker>::borrow,
7076 ),
7077 encoder,
7078 offset + cur_offset,
7079 depth,
7080 )?;
7081
7082 _prev_end_offset = cur_offset + envelope_size;
7083
7084 Ok(())
7085 }
7086 }
7087
7088 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for VendorCrashParameters {
7089 #[inline(always)]
7090 fn new_empty() -> Self {
7091 Self::default()
7092 }
7093
7094 unsafe fn decode(
7095 &mut self,
7096 decoder: &mut fidl::encoding::Decoder<'_, D>,
7097 offset: usize,
7098 mut depth: fidl::encoding::Depth,
7099 ) -> fidl::Result<()> {
7100 decoder.debug_check_bounds::<Self>(offset);
7101 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
7102 None => return Err(fidl::Error::NotNullable),
7103 Some(len) => len,
7104 };
7105 if len == 0 {
7107 return Ok(());
7108 };
7109 depth.increment()?;
7110 let envelope_size = 8;
7111 let bytes_len = len * envelope_size;
7112 let offset = decoder.out_of_line_offset(bytes_len)?;
7113 let mut _next_ordinal_to_read = 0;
7115 let mut next_offset = offset;
7116 let end_offset = offset + bytes_len;
7117 _next_ordinal_to_read += 1;
7118 if next_offset >= end_offset {
7119 return Ok(());
7120 }
7121
7122 while _next_ordinal_to_read < 1 {
7124 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7125 _next_ordinal_to_read += 1;
7126 next_offset += envelope_size;
7127 }
7128
7129 let next_out_of_line = decoder.next_out_of_line();
7130 let handles_before = decoder.remaining_handles();
7131 if let Some((inlined, num_bytes, num_handles)) =
7132 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7133 {
7134 let member_inline_size =
7135 <u8 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7136 if inlined != (member_inline_size <= 4) {
7137 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7138 }
7139 let inner_offset;
7140 let mut inner_depth = depth.clone();
7141 if inlined {
7142 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7143 inner_offset = next_offset;
7144 } else {
7145 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7146 inner_depth.increment()?;
7147 }
7148 let val_ref =
7149 self.vendor_subevent_code.get_or_insert_with(|| fidl::new_empty!(u8, D));
7150 fidl::decode!(u8, D, val_ref, decoder, inner_offset, inner_depth)?;
7151 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7152 {
7153 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7154 }
7155 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7156 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7157 }
7158 }
7159
7160 next_offset += envelope_size;
7161 _next_ordinal_to_read += 1;
7162 if next_offset >= end_offset {
7163 return Ok(());
7164 }
7165
7166 while _next_ordinal_to_read < 2 {
7168 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7169 _next_ordinal_to_read += 1;
7170 next_offset += envelope_size;
7171 }
7172
7173 let next_out_of_line = decoder.next_out_of_line();
7174 let handles_before = decoder.remaining_handles();
7175 if let Some((inlined, num_bytes, num_handles)) =
7176 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7177 {
7178 let member_inline_size = <fidl::encoding::BoundedString<1024> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7179 if inlined != (member_inline_size <= 4) {
7180 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7181 }
7182 let inner_offset;
7183 let mut inner_depth = depth.clone();
7184 if inlined {
7185 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7186 inner_offset = next_offset;
7187 } else {
7188 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7189 inner_depth.increment()?;
7190 }
7191 let val_ref = self.program_name.get_or_insert_with(|| {
7192 fidl::new_empty!(fidl::encoding::BoundedString<1024>, D)
7193 });
7194 fidl::decode!(
7195 fidl::encoding::BoundedString<1024>,
7196 D,
7197 val_ref,
7198 decoder,
7199 inner_offset,
7200 inner_depth
7201 )?;
7202 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7203 {
7204 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7205 }
7206 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7207 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7208 }
7209 }
7210
7211 next_offset += envelope_size;
7212 _next_ordinal_to_read += 1;
7213 if next_offset >= end_offset {
7214 return Ok(());
7215 }
7216
7217 while _next_ordinal_to_read < 3 {
7219 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7220 _next_ordinal_to_read += 1;
7221 next_offset += envelope_size;
7222 }
7223
7224 let next_out_of_line = decoder.next_out_of_line();
7225 let handles_before = decoder.remaining_handles();
7226 if let Some((inlined, num_bytes, num_handles)) =
7227 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7228 {
7229 let member_inline_size =
7230 <fidl::encoding::BoundedString<128> as fidl::encoding::TypeMarker>::inline_size(
7231 decoder.context,
7232 );
7233 if inlined != (member_inline_size <= 4) {
7234 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7235 }
7236 let inner_offset;
7237 let mut inner_depth = depth.clone();
7238 if inlined {
7239 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7240 inner_offset = next_offset;
7241 } else {
7242 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7243 inner_depth.increment()?;
7244 }
7245 let val_ref = self
7246 .crash_signature
7247 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<128>, D));
7248 fidl::decode!(
7249 fidl::encoding::BoundedString<128>,
7250 D,
7251 val_ref,
7252 decoder,
7253 inner_offset,
7254 inner_depth
7255 )?;
7256 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7257 {
7258 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7259 }
7260 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7261 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7262 }
7263 }
7264
7265 next_offset += envelope_size;
7266
7267 while next_offset < end_offset {
7269 _next_ordinal_to_read += 1;
7270 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7271 next_offset += envelope_size;
7272 }
7273
7274 Ok(())
7275 }
7276 }
7277
7278 impl VendorFeatures {
7279 #[inline(always)]
7280 fn max_ordinal_present(&self) -> u64 {
7281 if let Some(_) = self.audio_offload_settings {
7282 return 3;
7283 }
7284 if let Some(_) = self.android_vendor_extensions {
7285 return 2;
7286 }
7287 if let Some(_) = self.acl_priority_command {
7288 return 1;
7289 }
7290 0
7291 }
7292 }
7293
7294 impl fidl::encoding::ValueTypeMarker for VendorFeatures {
7295 type Borrowed<'a> = &'a Self;
7296 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7297 value
7298 }
7299 }
7300
7301 unsafe impl fidl::encoding::TypeMarker for VendorFeatures {
7302 type Owned = Self;
7303
7304 #[inline(always)]
7305 fn inline_align(_context: fidl::encoding::Context) -> usize {
7306 8
7307 }
7308
7309 #[inline(always)]
7310 fn inline_size(_context: fidl::encoding::Context) -> usize {
7311 16
7312 }
7313 }
7314
7315 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<VendorFeatures, D>
7316 for &VendorFeatures
7317 {
7318 unsafe fn encode(
7319 self,
7320 encoder: &mut fidl::encoding::Encoder<'_, D>,
7321 offset: usize,
7322 mut depth: fidl::encoding::Depth,
7323 ) -> fidl::Result<()> {
7324 encoder.debug_check_bounds::<VendorFeatures>(offset);
7325 let max_ordinal: u64 = self.max_ordinal_present();
7327 encoder.write_num(max_ordinal, offset);
7328 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
7329 if max_ordinal == 0 {
7331 return Ok(());
7332 }
7333 depth.increment()?;
7334 let envelope_size = 8;
7335 let bytes_len = max_ordinal as usize * envelope_size;
7336 #[allow(unused_variables)]
7337 let offset = encoder.out_of_line_offset(bytes_len);
7338 let mut _prev_end_offset: usize = 0;
7339 if 1 > max_ordinal {
7340 return Ok(());
7341 }
7342
7343 let cur_offset: usize = (1 - 1) * envelope_size;
7346
7347 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7349
7350 fidl::encoding::encode_in_envelope_optional::<bool, D>(
7355 self.acl_priority_command
7356 .as_ref()
7357 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
7358 encoder,
7359 offset + cur_offset,
7360 depth,
7361 )?;
7362
7363 _prev_end_offset = cur_offset + envelope_size;
7364 if 2 > max_ordinal {
7365 return Ok(());
7366 }
7367
7368 let cur_offset: usize = (2 - 1) * envelope_size;
7371
7372 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7374
7375 fidl::encoding::encode_in_envelope_optional::<AndroidVendorSupport, D>(
7380 self.android_vendor_extensions
7381 .as_ref()
7382 .map(<AndroidVendorSupport as fidl::encoding::ValueTypeMarker>::borrow),
7383 encoder,
7384 offset + cur_offset,
7385 depth,
7386 )?;
7387
7388 _prev_end_offset = cur_offset + envelope_size;
7389 if 3 > max_ordinal {
7390 return Ok(());
7391 }
7392
7393 let cur_offset: usize = (3 - 1) * envelope_size;
7396
7397 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7399
7400 fidl::encoding::encode_in_envelope_optional::<AudioOffloadSettings, D>(
7405 self.audio_offload_settings
7406 .as_ref()
7407 .map(<AudioOffloadSettings as fidl::encoding::ValueTypeMarker>::borrow),
7408 encoder,
7409 offset + cur_offset,
7410 depth,
7411 )?;
7412
7413 _prev_end_offset = cur_offset + envelope_size;
7414
7415 Ok(())
7416 }
7417 }
7418
7419 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for VendorFeatures {
7420 #[inline(always)]
7421 fn new_empty() -> Self {
7422 Self::default()
7423 }
7424
7425 unsafe fn decode(
7426 &mut self,
7427 decoder: &mut fidl::encoding::Decoder<'_, D>,
7428 offset: usize,
7429 mut depth: fidl::encoding::Depth,
7430 ) -> fidl::Result<()> {
7431 decoder.debug_check_bounds::<Self>(offset);
7432 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
7433 None => return Err(fidl::Error::NotNullable),
7434 Some(len) => len,
7435 };
7436 if len == 0 {
7438 return Ok(());
7439 };
7440 depth.increment()?;
7441 let envelope_size = 8;
7442 let bytes_len = len * envelope_size;
7443 let offset = decoder.out_of_line_offset(bytes_len)?;
7444 let mut _next_ordinal_to_read = 0;
7446 let mut next_offset = offset;
7447 let end_offset = offset + bytes_len;
7448 _next_ordinal_to_read += 1;
7449 if next_offset >= end_offset {
7450 return Ok(());
7451 }
7452
7453 while _next_ordinal_to_read < 1 {
7455 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7456 _next_ordinal_to_read += 1;
7457 next_offset += envelope_size;
7458 }
7459
7460 let next_out_of_line = decoder.next_out_of_line();
7461 let handles_before = decoder.remaining_handles();
7462 if let Some((inlined, num_bytes, num_handles)) =
7463 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7464 {
7465 let member_inline_size =
7466 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7467 if inlined != (member_inline_size <= 4) {
7468 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7469 }
7470 let inner_offset;
7471 let mut inner_depth = depth.clone();
7472 if inlined {
7473 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7474 inner_offset = next_offset;
7475 } else {
7476 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7477 inner_depth.increment()?;
7478 }
7479 let val_ref =
7480 self.acl_priority_command.get_or_insert_with(|| fidl::new_empty!(bool, D));
7481 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
7482 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7483 {
7484 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7485 }
7486 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7487 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7488 }
7489 }
7490
7491 next_offset += envelope_size;
7492 _next_ordinal_to_read += 1;
7493 if next_offset >= end_offset {
7494 return Ok(());
7495 }
7496
7497 while _next_ordinal_to_read < 2 {
7499 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7500 _next_ordinal_to_read += 1;
7501 next_offset += envelope_size;
7502 }
7503
7504 let next_out_of_line = decoder.next_out_of_line();
7505 let handles_before = decoder.remaining_handles();
7506 if let Some((inlined, num_bytes, num_handles)) =
7507 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7508 {
7509 let member_inline_size =
7510 <AndroidVendorSupport as fidl::encoding::TypeMarker>::inline_size(
7511 decoder.context,
7512 );
7513 if inlined != (member_inline_size <= 4) {
7514 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7515 }
7516 let inner_offset;
7517 let mut inner_depth = depth.clone();
7518 if inlined {
7519 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7520 inner_offset = next_offset;
7521 } else {
7522 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7523 inner_depth.increment()?;
7524 }
7525 let val_ref = self
7526 .android_vendor_extensions
7527 .get_or_insert_with(|| fidl::new_empty!(AndroidVendorSupport, D));
7528 fidl::decode!(
7529 AndroidVendorSupport,
7530 D,
7531 val_ref,
7532 decoder,
7533 inner_offset,
7534 inner_depth
7535 )?;
7536 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7537 {
7538 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7539 }
7540 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7541 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7542 }
7543 }
7544
7545 next_offset += envelope_size;
7546 _next_ordinal_to_read += 1;
7547 if next_offset >= end_offset {
7548 return Ok(());
7549 }
7550
7551 while _next_ordinal_to_read < 3 {
7553 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7554 _next_ordinal_to_read += 1;
7555 next_offset += envelope_size;
7556 }
7557
7558 let next_out_of_line = decoder.next_out_of_line();
7559 let handles_before = decoder.remaining_handles();
7560 if let Some((inlined, num_bytes, num_handles)) =
7561 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7562 {
7563 let member_inline_size =
7564 <AudioOffloadSettings as fidl::encoding::TypeMarker>::inline_size(
7565 decoder.context,
7566 );
7567 if inlined != (member_inline_size <= 4) {
7568 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7569 }
7570 let inner_offset;
7571 let mut inner_depth = depth.clone();
7572 if inlined {
7573 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7574 inner_offset = next_offset;
7575 } else {
7576 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7577 inner_depth.increment()?;
7578 }
7579 let val_ref = self
7580 .audio_offload_settings
7581 .get_or_insert_with(|| fidl::new_empty!(AudioOffloadSettings, D));
7582 fidl::decode!(
7583 AudioOffloadSettings,
7584 D,
7585 val_ref,
7586 decoder,
7587 inner_offset,
7588 inner_depth
7589 )?;
7590 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7591 {
7592 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7593 }
7594 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7595 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7596 }
7597 }
7598
7599 next_offset += envelope_size;
7600
7601 while next_offset < end_offset {
7603 _next_ordinal_to_read += 1;
7604 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7605 next_offset += envelope_size;
7606 }
7607
7608 Ok(())
7609 }
7610 }
7611
7612 impl VendorSetAclPriorityParams {
7613 #[inline(always)]
7614 fn max_ordinal_present(&self) -> u64 {
7615 if let Some(_) = self.direction {
7616 return 3;
7617 }
7618 if let Some(_) = self.priority {
7619 return 2;
7620 }
7621 if let Some(_) = self.connection_handle {
7622 return 1;
7623 }
7624 0
7625 }
7626 }
7627
7628 impl fidl::encoding::ValueTypeMarker for VendorSetAclPriorityParams {
7629 type Borrowed<'a> = &'a Self;
7630 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7631 value
7632 }
7633 }
7634
7635 unsafe impl fidl::encoding::TypeMarker for VendorSetAclPriorityParams {
7636 type Owned = Self;
7637
7638 #[inline(always)]
7639 fn inline_align(_context: fidl::encoding::Context) -> usize {
7640 8
7641 }
7642
7643 #[inline(always)]
7644 fn inline_size(_context: fidl::encoding::Context) -> usize {
7645 16
7646 }
7647 }
7648
7649 unsafe impl<D: fidl::encoding::ResourceDialect>
7650 fidl::encoding::Encode<VendorSetAclPriorityParams, D> for &VendorSetAclPriorityParams
7651 {
7652 unsafe fn encode(
7653 self,
7654 encoder: &mut fidl::encoding::Encoder<'_, D>,
7655 offset: usize,
7656 mut depth: fidl::encoding::Depth,
7657 ) -> fidl::Result<()> {
7658 encoder.debug_check_bounds::<VendorSetAclPriorityParams>(offset);
7659 let max_ordinal: u64 = self.max_ordinal_present();
7661 encoder.write_num(max_ordinal, offset);
7662 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
7663 if max_ordinal == 0 {
7665 return Ok(());
7666 }
7667 depth.increment()?;
7668 let envelope_size = 8;
7669 let bytes_len = max_ordinal as usize * envelope_size;
7670 #[allow(unused_variables)]
7671 let offset = encoder.out_of_line_offset(bytes_len);
7672 let mut _prev_end_offset: usize = 0;
7673 if 1 > max_ordinal {
7674 return Ok(());
7675 }
7676
7677 let cur_offset: usize = (1 - 1) * envelope_size;
7680
7681 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7683
7684 fidl::encoding::encode_in_envelope_optional::<u16, D>(
7689 self.connection_handle
7690 .as_ref()
7691 .map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
7692 encoder,
7693 offset + cur_offset,
7694 depth,
7695 )?;
7696
7697 _prev_end_offset = cur_offset + envelope_size;
7698 if 2 > max_ordinal {
7699 return Ok(());
7700 }
7701
7702 let cur_offset: usize = (2 - 1) * envelope_size;
7705
7706 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7708
7709 fidl::encoding::encode_in_envelope_optional::<VendorAclPriority, D>(
7714 self.priority
7715 .as_ref()
7716 .map(<VendorAclPriority as fidl::encoding::ValueTypeMarker>::borrow),
7717 encoder,
7718 offset + cur_offset,
7719 depth,
7720 )?;
7721
7722 _prev_end_offset = cur_offset + envelope_size;
7723 if 3 > max_ordinal {
7724 return Ok(());
7725 }
7726
7727 let cur_offset: usize = (3 - 1) * envelope_size;
7730
7731 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7733
7734 fidl::encoding::encode_in_envelope_optional::<VendorAclDirection, D>(
7739 self.direction
7740 .as_ref()
7741 .map(<VendorAclDirection as fidl::encoding::ValueTypeMarker>::borrow),
7742 encoder,
7743 offset + cur_offset,
7744 depth,
7745 )?;
7746
7747 _prev_end_offset = cur_offset + envelope_size;
7748
7749 Ok(())
7750 }
7751 }
7752
7753 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
7754 for VendorSetAclPriorityParams
7755 {
7756 #[inline(always)]
7757 fn new_empty() -> Self {
7758 Self::default()
7759 }
7760
7761 unsafe fn decode(
7762 &mut self,
7763 decoder: &mut fidl::encoding::Decoder<'_, D>,
7764 offset: usize,
7765 mut depth: fidl::encoding::Depth,
7766 ) -> fidl::Result<()> {
7767 decoder.debug_check_bounds::<Self>(offset);
7768 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
7769 None => return Err(fidl::Error::NotNullable),
7770 Some(len) => len,
7771 };
7772 if len == 0 {
7774 return Ok(());
7775 };
7776 depth.increment()?;
7777 let envelope_size = 8;
7778 let bytes_len = len * envelope_size;
7779 let offset = decoder.out_of_line_offset(bytes_len)?;
7780 let mut _next_ordinal_to_read = 0;
7782 let mut next_offset = offset;
7783 let end_offset = offset + bytes_len;
7784 _next_ordinal_to_read += 1;
7785 if next_offset >= end_offset {
7786 return Ok(());
7787 }
7788
7789 while _next_ordinal_to_read < 1 {
7791 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7792 _next_ordinal_to_read += 1;
7793 next_offset += envelope_size;
7794 }
7795
7796 let next_out_of_line = decoder.next_out_of_line();
7797 let handles_before = decoder.remaining_handles();
7798 if let Some((inlined, num_bytes, num_handles)) =
7799 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7800 {
7801 let member_inline_size =
7802 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7803 if inlined != (member_inline_size <= 4) {
7804 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7805 }
7806 let inner_offset;
7807 let mut inner_depth = depth.clone();
7808 if inlined {
7809 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7810 inner_offset = next_offset;
7811 } else {
7812 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7813 inner_depth.increment()?;
7814 }
7815 let val_ref =
7816 self.connection_handle.get_or_insert_with(|| fidl::new_empty!(u16, D));
7817 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
7818 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7819 {
7820 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7821 }
7822 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7823 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7824 }
7825 }
7826
7827 next_offset += envelope_size;
7828 _next_ordinal_to_read += 1;
7829 if next_offset >= end_offset {
7830 return Ok(());
7831 }
7832
7833 while _next_ordinal_to_read < 2 {
7835 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7836 _next_ordinal_to_read += 1;
7837 next_offset += envelope_size;
7838 }
7839
7840 let next_out_of_line = decoder.next_out_of_line();
7841 let handles_before = decoder.remaining_handles();
7842 if let Some((inlined, num_bytes, num_handles)) =
7843 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7844 {
7845 let member_inline_size =
7846 <VendorAclPriority as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7847 if inlined != (member_inline_size <= 4) {
7848 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7849 }
7850 let inner_offset;
7851 let mut inner_depth = depth.clone();
7852 if inlined {
7853 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7854 inner_offset = next_offset;
7855 } else {
7856 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7857 inner_depth.increment()?;
7858 }
7859 let val_ref =
7860 self.priority.get_or_insert_with(|| fidl::new_empty!(VendorAclPriority, D));
7861 fidl::decode!(VendorAclPriority, D, val_ref, decoder, inner_offset, inner_depth)?;
7862 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7863 {
7864 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7865 }
7866 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7867 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7868 }
7869 }
7870
7871 next_offset += envelope_size;
7872 _next_ordinal_to_read += 1;
7873 if next_offset >= end_offset {
7874 return Ok(());
7875 }
7876
7877 while _next_ordinal_to_read < 3 {
7879 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7880 _next_ordinal_to_read += 1;
7881 next_offset += envelope_size;
7882 }
7883
7884 let next_out_of_line = decoder.next_out_of_line();
7885 let handles_before = decoder.remaining_handles();
7886 if let Some((inlined, num_bytes, num_handles)) =
7887 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7888 {
7889 let member_inline_size =
7890 <VendorAclDirection as fidl::encoding::TypeMarker>::inline_size(
7891 decoder.context,
7892 );
7893 if inlined != (member_inline_size <= 4) {
7894 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7895 }
7896 let inner_offset;
7897 let mut inner_depth = depth.clone();
7898 if inlined {
7899 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7900 inner_offset = next_offset;
7901 } else {
7902 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7903 inner_depth.increment()?;
7904 }
7905 let val_ref =
7906 self.direction.get_or_insert_with(|| fidl::new_empty!(VendorAclDirection, D));
7907 fidl::decode!(VendorAclDirection, D, val_ref, decoder, inner_offset, inner_depth)?;
7908 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7909 {
7910 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7911 }
7912 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7913 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7914 }
7915 }
7916
7917 next_offset += envelope_size;
7918
7919 while next_offset < end_offset {
7921 _next_ordinal_to_read += 1;
7922 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7923 next_offset += envelope_size;
7924 }
7925
7926 Ok(())
7927 }
7928 }
7929
7930 impl fidl::encoding::ValueTypeMarker for ReceivedPacket {
7931 type Borrowed<'a> = &'a Self;
7932 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7933 value
7934 }
7935 }
7936
7937 unsafe impl fidl::encoding::TypeMarker for ReceivedPacket {
7938 type Owned = Self;
7939
7940 #[inline(always)]
7941 fn inline_align(_context: fidl::encoding::Context) -> usize {
7942 8
7943 }
7944
7945 #[inline(always)]
7946 fn inline_size(_context: fidl::encoding::Context) -> usize {
7947 16
7948 }
7949 }
7950
7951 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ReceivedPacket, D>
7952 for &ReceivedPacket
7953 {
7954 #[inline]
7955 unsafe fn encode(
7956 self,
7957 encoder: &mut fidl::encoding::Encoder<'_, D>,
7958 offset: usize,
7959 _depth: fidl::encoding::Depth,
7960 ) -> fidl::Result<()> {
7961 encoder.debug_check_bounds::<ReceivedPacket>(offset);
7962 encoder.write_num::<u64>(self.ordinal(), offset);
7963 match self {
7964 ReceivedPacket::Event(ref val) => fidl::encoding::encode_in_envelope::<
7965 fidl::encoding::Vector<u8, 257>,
7966 D,
7967 >(
7968 <fidl::encoding::Vector<u8, 257> as fidl::encoding::ValueTypeMarker>::borrow(
7969 val,
7970 ),
7971 encoder,
7972 offset + 8,
7973 _depth,
7974 ),
7975 ReceivedPacket::Acl(ref val) => fidl::encoding::encode_in_envelope::<
7976 fidl::encoding::Vector<u8, 65539>,
7977 D,
7978 >(
7979 <fidl::encoding::Vector<u8, 65539> as fidl::encoding::ValueTypeMarker>::borrow(
7980 val,
7981 ),
7982 encoder,
7983 offset + 8,
7984 _depth,
7985 ),
7986 ReceivedPacket::Iso(ref val) => fidl::encoding::encode_in_envelope::<
7987 fidl::encoding::Vector<u8, 16387>,
7988 D,
7989 >(
7990 <fidl::encoding::Vector<u8, 16387> as fidl::encoding::ValueTypeMarker>::borrow(
7991 val,
7992 ),
7993 encoder,
7994 offset + 8,
7995 _depth,
7996 ),
7997 ReceivedPacket::__SourceBreaking { .. } => Err(fidl::Error::UnknownUnionTag),
7998 }
7999 }
8000 }
8001
8002 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ReceivedPacket {
8003 #[inline(always)]
8004 fn new_empty() -> Self {
8005 Self::__SourceBreaking { unknown_ordinal: 0 }
8006 }
8007
8008 #[inline]
8009 unsafe fn decode(
8010 &mut self,
8011 decoder: &mut fidl::encoding::Decoder<'_, D>,
8012 offset: usize,
8013 mut depth: fidl::encoding::Depth,
8014 ) -> fidl::Result<()> {
8015 decoder.debug_check_bounds::<Self>(offset);
8016 #[allow(unused_variables)]
8017 let next_out_of_line = decoder.next_out_of_line();
8018 let handles_before = decoder.remaining_handles();
8019 let (ordinal, inlined, num_bytes, num_handles) =
8020 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
8021
8022 let member_inline_size = match ordinal {
8023 1 => <fidl::encoding::Vector<u8, 257> as fidl::encoding::TypeMarker>::inline_size(
8024 decoder.context,
8025 ),
8026 2 => {
8027 <fidl::encoding::Vector<u8, 65539> as fidl::encoding::TypeMarker>::inline_size(
8028 decoder.context,
8029 )
8030 }
8031 3 => {
8032 <fidl::encoding::Vector<u8, 16387> as fidl::encoding::TypeMarker>::inline_size(
8033 decoder.context,
8034 )
8035 }
8036 0 => return Err(fidl::Error::UnknownUnionTag),
8037 _ => num_bytes as usize,
8038 };
8039
8040 if inlined != (member_inline_size <= 4) {
8041 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8042 }
8043 let _inner_offset;
8044 if inlined {
8045 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
8046 _inner_offset = offset + 8;
8047 } else {
8048 depth.increment()?;
8049 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8050 }
8051 match ordinal {
8052 1 => {
8053 #[allow(irrefutable_let_patterns)]
8054 if let ReceivedPacket::Event(_) = self {
8055 } else {
8057 *self = ReceivedPacket::Event(
8059 fidl::new_empty!(fidl::encoding::Vector<u8, 257>, D),
8060 );
8061 }
8062 #[allow(irrefutable_let_patterns)]
8063 if let ReceivedPacket::Event(ref mut val) = self {
8064 fidl::decode!(fidl::encoding::Vector<u8, 257>, D, val, decoder, _inner_offset, depth)?;
8065 } else {
8066 unreachable!()
8067 }
8068 }
8069 2 => {
8070 #[allow(irrefutable_let_patterns)]
8071 if let ReceivedPacket::Acl(_) = self {
8072 } else {
8074 *self = ReceivedPacket::Acl(
8076 fidl::new_empty!(fidl::encoding::Vector<u8, 65539>, D),
8077 );
8078 }
8079 #[allow(irrefutable_let_patterns)]
8080 if let ReceivedPacket::Acl(ref mut val) = self {
8081 fidl::decode!(fidl::encoding::Vector<u8, 65539>, D, val, decoder, _inner_offset, depth)?;
8082 } else {
8083 unreachable!()
8084 }
8085 }
8086 3 => {
8087 #[allow(irrefutable_let_patterns)]
8088 if let ReceivedPacket::Iso(_) = self {
8089 } else {
8091 *self = ReceivedPacket::Iso(
8093 fidl::new_empty!(fidl::encoding::Vector<u8, 16387>, D),
8094 );
8095 }
8096 #[allow(irrefutable_let_patterns)]
8097 if let ReceivedPacket::Iso(ref mut val) = self {
8098 fidl::decode!(fidl::encoding::Vector<u8, 16387>, D, val, decoder, _inner_offset, depth)?;
8099 } else {
8100 unreachable!()
8101 }
8102 }
8103 #[allow(deprecated)]
8104 ordinal => {
8105 for _ in 0..num_handles {
8106 decoder.drop_next_handle()?;
8107 }
8108 *self = ReceivedPacket::__SourceBreaking { unknown_ordinal: ordinal };
8109 }
8110 }
8111 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
8112 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8113 }
8114 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8115 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8116 }
8117 Ok(())
8118 }
8119 }
8120
8121 impl fidl::encoding::ValueTypeMarker for SentPacket {
8122 type Borrowed<'a> = &'a Self;
8123 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
8124 value
8125 }
8126 }
8127
8128 unsafe impl fidl::encoding::TypeMarker for SentPacket {
8129 type Owned = Self;
8130
8131 #[inline(always)]
8132 fn inline_align(_context: fidl::encoding::Context) -> usize {
8133 8
8134 }
8135
8136 #[inline(always)]
8137 fn inline_size(_context: fidl::encoding::Context) -> usize {
8138 16
8139 }
8140 }
8141
8142 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<SentPacket, D>
8143 for &SentPacket
8144 {
8145 #[inline]
8146 unsafe fn encode(
8147 self,
8148 encoder: &mut fidl::encoding::Encoder<'_, D>,
8149 offset: usize,
8150 _depth: fidl::encoding::Depth,
8151 ) -> fidl::Result<()> {
8152 encoder.debug_check_bounds::<SentPacket>(offset);
8153 encoder.write_num::<u64>(self.ordinal(), offset);
8154 match self {
8155 SentPacket::Command(ref val) => fidl::encoding::encode_in_envelope::<
8156 fidl::encoding::Vector<u8, 258>,
8157 D,
8158 >(
8159 <fidl::encoding::Vector<u8, 258> as fidl::encoding::ValueTypeMarker>::borrow(
8160 val,
8161 ),
8162 encoder,
8163 offset + 8,
8164 _depth,
8165 ),
8166 SentPacket::Acl(ref val) => fidl::encoding::encode_in_envelope::<
8167 fidl::encoding::Vector<u8, 65539>,
8168 D,
8169 >(
8170 <fidl::encoding::Vector<u8, 65539> as fidl::encoding::ValueTypeMarker>::borrow(
8171 val,
8172 ),
8173 encoder,
8174 offset + 8,
8175 _depth,
8176 ),
8177 SentPacket::Iso(ref val) => fidl::encoding::encode_in_envelope::<
8178 fidl::encoding::Vector<u8, 16387>,
8179 D,
8180 >(
8181 <fidl::encoding::Vector<u8, 16387> as fidl::encoding::ValueTypeMarker>::borrow(
8182 val,
8183 ),
8184 encoder,
8185 offset + 8,
8186 _depth,
8187 ),
8188 SentPacket::__SourceBreaking { .. } => Err(fidl::Error::UnknownUnionTag),
8189 }
8190 }
8191 }
8192
8193 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for SentPacket {
8194 #[inline(always)]
8195 fn new_empty() -> Self {
8196 Self::__SourceBreaking { unknown_ordinal: 0 }
8197 }
8198
8199 #[inline]
8200 unsafe fn decode(
8201 &mut self,
8202 decoder: &mut fidl::encoding::Decoder<'_, D>,
8203 offset: usize,
8204 mut depth: fidl::encoding::Depth,
8205 ) -> fidl::Result<()> {
8206 decoder.debug_check_bounds::<Self>(offset);
8207 #[allow(unused_variables)]
8208 let next_out_of_line = decoder.next_out_of_line();
8209 let handles_before = decoder.remaining_handles();
8210 let (ordinal, inlined, num_bytes, num_handles) =
8211 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
8212
8213 let member_inline_size = match ordinal {
8214 1 => <fidl::encoding::Vector<u8, 258> as fidl::encoding::TypeMarker>::inline_size(
8215 decoder.context,
8216 ),
8217 2 => {
8218 <fidl::encoding::Vector<u8, 65539> as fidl::encoding::TypeMarker>::inline_size(
8219 decoder.context,
8220 )
8221 }
8222 3 => {
8223 <fidl::encoding::Vector<u8, 16387> as fidl::encoding::TypeMarker>::inline_size(
8224 decoder.context,
8225 )
8226 }
8227 0 => return Err(fidl::Error::UnknownUnionTag),
8228 _ => num_bytes as usize,
8229 };
8230
8231 if inlined != (member_inline_size <= 4) {
8232 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8233 }
8234 let _inner_offset;
8235 if inlined {
8236 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
8237 _inner_offset = offset + 8;
8238 } else {
8239 depth.increment()?;
8240 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8241 }
8242 match ordinal {
8243 1 => {
8244 #[allow(irrefutable_let_patterns)]
8245 if let SentPacket::Command(_) = self {
8246 } else {
8248 *self = SentPacket::Command(
8250 fidl::new_empty!(fidl::encoding::Vector<u8, 258>, D),
8251 );
8252 }
8253 #[allow(irrefutable_let_patterns)]
8254 if let SentPacket::Command(ref mut val) = self {
8255 fidl::decode!(fidl::encoding::Vector<u8, 258>, D, val, decoder, _inner_offset, depth)?;
8256 } else {
8257 unreachable!()
8258 }
8259 }
8260 2 => {
8261 #[allow(irrefutable_let_patterns)]
8262 if let SentPacket::Acl(_) = self {
8263 } else {
8265 *self =
8267 SentPacket::Acl(fidl::new_empty!(fidl::encoding::Vector<u8, 65539>, D));
8268 }
8269 #[allow(irrefutable_let_patterns)]
8270 if let SentPacket::Acl(ref mut val) = self {
8271 fidl::decode!(fidl::encoding::Vector<u8, 65539>, D, val, decoder, _inner_offset, depth)?;
8272 } else {
8273 unreachable!()
8274 }
8275 }
8276 3 => {
8277 #[allow(irrefutable_let_patterns)]
8278 if let SentPacket::Iso(_) = self {
8279 } else {
8281 *self =
8283 SentPacket::Iso(fidl::new_empty!(fidl::encoding::Vector<u8, 16387>, D));
8284 }
8285 #[allow(irrefutable_let_patterns)]
8286 if let SentPacket::Iso(ref mut val) = self {
8287 fidl::decode!(fidl::encoding::Vector<u8, 16387>, D, val, decoder, _inner_offset, depth)?;
8288 } else {
8289 unreachable!()
8290 }
8291 }
8292 #[allow(deprecated)]
8293 ordinal => {
8294 for _ in 0..num_handles {
8295 decoder.drop_next_handle()?;
8296 }
8297 *self = SentPacket::__SourceBreaking { unknown_ordinal: ordinal };
8298 }
8299 }
8300 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
8301 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8302 }
8303 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8304 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8305 }
8306 Ok(())
8307 }
8308 }
8309
8310 impl fidl::encoding::ValueTypeMarker for SnoopPacket {
8311 type Borrowed<'a> = &'a Self;
8312 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
8313 value
8314 }
8315 }
8316
8317 unsafe impl fidl::encoding::TypeMarker for SnoopPacket {
8318 type Owned = Self;
8319
8320 #[inline(always)]
8321 fn inline_align(_context: fidl::encoding::Context) -> usize {
8322 8
8323 }
8324
8325 #[inline(always)]
8326 fn inline_size(_context: fidl::encoding::Context) -> usize {
8327 16
8328 }
8329 }
8330
8331 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<SnoopPacket, D>
8332 for &SnoopPacket
8333 {
8334 #[inline]
8335 unsafe fn encode(
8336 self,
8337 encoder: &mut fidl::encoding::Encoder<'_, D>,
8338 offset: usize,
8339 _depth: fidl::encoding::Depth,
8340 ) -> fidl::Result<()> {
8341 encoder.debug_check_bounds::<SnoopPacket>(offset);
8342 encoder.write_num::<u64>(self.ordinal(), offset);
8343 match self {
8344 SnoopPacket::Event(ref val) => fidl::encoding::encode_in_envelope::<
8345 fidl::encoding::Vector<u8, 257>,
8346 D,
8347 >(
8348 <fidl::encoding::Vector<u8, 257> as fidl::encoding::ValueTypeMarker>::borrow(
8349 val,
8350 ),
8351 encoder,
8352 offset + 8,
8353 _depth,
8354 ),
8355 SnoopPacket::Command(ref val) => fidl::encoding::encode_in_envelope::<
8356 fidl::encoding::Vector<u8, 258>,
8357 D,
8358 >(
8359 <fidl::encoding::Vector<u8, 258> as fidl::encoding::ValueTypeMarker>::borrow(
8360 val,
8361 ),
8362 encoder,
8363 offset + 8,
8364 _depth,
8365 ),
8366 SnoopPacket::Acl(ref val) => fidl::encoding::encode_in_envelope::<
8367 fidl::encoding::Vector<u8, 65539>,
8368 D,
8369 >(
8370 <fidl::encoding::Vector<u8, 65539> as fidl::encoding::ValueTypeMarker>::borrow(
8371 val,
8372 ),
8373 encoder,
8374 offset + 8,
8375 _depth,
8376 ),
8377 SnoopPacket::Sco(ref val) => fidl::encoding::encode_in_envelope::<
8378 fidl::encoding::Vector<u8, 258>,
8379 D,
8380 >(
8381 <fidl::encoding::Vector<u8, 258> as fidl::encoding::ValueTypeMarker>::borrow(
8382 val,
8383 ),
8384 encoder,
8385 offset + 8,
8386 _depth,
8387 ),
8388 SnoopPacket::Iso(ref val) => fidl::encoding::encode_in_envelope::<
8389 fidl::encoding::Vector<u8, 16387>,
8390 D,
8391 >(
8392 <fidl::encoding::Vector<u8, 16387> as fidl::encoding::ValueTypeMarker>::borrow(
8393 val,
8394 ),
8395 encoder,
8396 offset + 8,
8397 _depth,
8398 ),
8399 SnoopPacket::__SourceBreaking { .. } => Err(fidl::Error::UnknownUnionTag),
8400 }
8401 }
8402 }
8403
8404 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for SnoopPacket {
8405 #[inline(always)]
8406 fn new_empty() -> Self {
8407 Self::__SourceBreaking { unknown_ordinal: 0 }
8408 }
8409
8410 #[inline]
8411 unsafe fn decode(
8412 &mut self,
8413 decoder: &mut fidl::encoding::Decoder<'_, D>,
8414 offset: usize,
8415 mut depth: fidl::encoding::Depth,
8416 ) -> fidl::Result<()> {
8417 decoder.debug_check_bounds::<Self>(offset);
8418 #[allow(unused_variables)]
8419 let next_out_of_line = decoder.next_out_of_line();
8420 let handles_before = decoder.remaining_handles();
8421 let (ordinal, inlined, num_bytes, num_handles) =
8422 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
8423
8424 let member_inline_size = match ordinal {
8425 1 => <fidl::encoding::Vector<u8, 257> as fidl::encoding::TypeMarker>::inline_size(
8426 decoder.context,
8427 ),
8428 2 => <fidl::encoding::Vector<u8, 258> as fidl::encoding::TypeMarker>::inline_size(
8429 decoder.context,
8430 ),
8431 3 => {
8432 <fidl::encoding::Vector<u8, 65539> as fidl::encoding::TypeMarker>::inline_size(
8433 decoder.context,
8434 )
8435 }
8436 4 => <fidl::encoding::Vector<u8, 258> as fidl::encoding::TypeMarker>::inline_size(
8437 decoder.context,
8438 ),
8439 5 => {
8440 <fidl::encoding::Vector<u8, 16387> as fidl::encoding::TypeMarker>::inline_size(
8441 decoder.context,
8442 )
8443 }
8444 0 => return Err(fidl::Error::UnknownUnionTag),
8445 _ => num_bytes as usize,
8446 };
8447
8448 if inlined != (member_inline_size <= 4) {
8449 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8450 }
8451 let _inner_offset;
8452 if inlined {
8453 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
8454 _inner_offset = offset + 8;
8455 } else {
8456 depth.increment()?;
8457 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8458 }
8459 match ordinal {
8460 1 => {
8461 #[allow(irrefutable_let_patterns)]
8462 if let SnoopPacket::Event(_) = self {
8463 } else {
8465 *self = SnoopPacket::Event(
8467 fidl::new_empty!(fidl::encoding::Vector<u8, 257>, D),
8468 );
8469 }
8470 #[allow(irrefutable_let_patterns)]
8471 if let SnoopPacket::Event(ref mut val) = self {
8472 fidl::decode!(fidl::encoding::Vector<u8, 257>, D, val, decoder, _inner_offset, depth)?;
8473 } else {
8474 unreachable!()
8475 }
8476 }
8477 2 => {
8478 #[allow(irrefutable_let_patterns)]
8479 if let SnoopPacket::Command(_) = self {
8480 } else {
8482 *self = SnoopPacket::Command(
8484 fidl::new_empty!(fidl::encoding::Vector<u8, 258>, D),
8485 );
8486 }
8487 #[allow(irrefutable_let_patterns)]
8488 if let SnoopPacket::Command(ref mut val) = self {
8489 fidl::decode!(fidl::encoding::Vector<u8, 258>, D, val, decoder, _inner_offset, depth)?;
8490 } else {
8491 unreachable!()
8492 }
8493 }
8494 3 => {
8495 #[allow(irrefutable_let_patterns)]
8496 if let SnoopPacket::Acl(_) = self {
8497 } else {
8499 *self = SnoopPacket::Acl(
8501 fidl::new_empty!(fidl::encoding::Vector<u8, 65539>, D),
8502 );
8503 }
8504 #[allow(irrefutable_let_patterns)]
8505 if let SnoopPacket::Acl(ref mut val) = self {
8506 fidl::decode!(fidl::encoding::Vector<u8, 65539>, D, val, decoder, _inner_offset, depth)?;
8507 } else {
8508 unreachable!()
8509 }
8510 }
8511 4 => {
8512 #[allow(irrefutable_let_patterns)]
8513 if let SnoopPacket::Sco(_) = self {
8514 } else {
8516 *self =
8518 SnoopPacket::Sco(fidl::new_empty!(fidl::encoding::Vector<u8, 258>, D));
8519 }
8520 #[allow(irrefutable_let_patterns)]
8521 if let SnoopPacket::Sco(ref mut val) = self {
8522 fidl::decode!(fidl::encoding::Vector<u8, 258>, D, val, decoder, _inner_offset, depth)?;
8523 } else {
8524 unreachable!()
8525 }
8526 }
8527 5 => {
8528 #[allow(irrefutable_let_patterns)]
8529 if let SnoopPacket::Iso(_) = self {
8530 } else {
8532 *self = SnoopPacket::Iso(
8534 fidl::new_empty!(fidl::encoding::Vector<u8, 16387>, D),
8535 );
8536 }
8537 #[allow(irrefutable_let_patterns)]
8538 if let SnoopPacket::Iso(ref mut val) = self {
8539 fidl::decode!(fidl::encoding::Vector<u8, 16387>, D, val, decoder, _inner_offset, depth)?;
8540 } else {
8541 unreachable!()
8542 }
8543 }
8544 #[allow(deprecated)]
8545 ordinal => {
8546 for _ in 0..num_handles {
8547 decoder.drop_next_handle()?;
8548 }
8549 *self = SnoopPacket::__SourceBreaking { unknown_ordinal: ordinal };
8550 }
8551 }
8552 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
8553 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8554 }
8555 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8556 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8557 }
8558 Ok(())
8559 }
8560 }
8561
8562 impl fidl::encoding::ValueTypeMarker for VendorCommand {
8563 type Borrowed<'a> = &'a Self;
8564 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
8565 value
8566 }
8567 }
8568
8569 unsafe impl fidl::encoding::TypeMarker for VendorCommand {
8570 type Owned = Self;
8571
8572 #[inline(always)]
8573 fn inline_align(_context: fidl::encoding::Context) -> usize {
8574 8
8575 }
8576
8577 #[inline(always)]
8578 fn inline_size(_context: fidl::encoding::Context) -> usize {
8579 16
8580 }
8581 }
8582
8583 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<VendorCommand, D>
8584 for &VendorCommand
8585 {
8586 #[inline]
8587 unsafe fn encode(
8588 self,
8589 encoder: &mut fidl::encoding::Encoder<'_, D>,
8590 offset: usize,
8591 _depth: fidl::encoding::Depth,
8592 ) -> fidl::Result<()> {
8593 encoder.debug_check_bounds::<VendorCommand>(offset);
8594 encoder.write_num::<u64>(self.ordinal(), offset);
8595 match self {
8596 VendorCommand::SetAclPriority(ref val) => fidl::encoding::encode_in_envelope::<
8597 VendorSetAclPriorityParams,
8598 D,
8599 >(
8600 <VendorSetAclPriorityParams as fidl::encoding::ValueTypeMarker>::borrow(val),
8601 encoder,
8602 offset + 8,
8603 _depth,
8604 ),
8605 VendorCommand::__SourceBreaking { .. } => Err(fidl::Error::UnknownUnionTag),
8606 }
8607 }
8608 }
8609
8610 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for VendorCommand {
8611 #[inline(always)]
8612 fn new_empty() -> Self {
8613 Self::__SourceBreaking { unknown_ordinal: 0 }
8614 }
8615
8616 #[inline]
8617 unsafe fn decode(
8618 &mut self,
8619 decoder: &mut fidl::encoding::Decoder<'_, D>,
8620 offset: usize,
8621 mut depth: fidl::encoding::Depth,
8622 ) -> fidl::Result<()> {
8623 decoder.debug_check_bounds::<Self>(offset);
8624 #[allow(unused_variables)]
8625 let next_out_of_line = decoder.next_out_of_line();
8626 let handles_before = decoder.remaining_handles();
8627 let (ordinal, inlined, num_bytes, num_handles) =
8628 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
8629
8630 let member_inline_size = match ordinal {
8631 1 => <VendorSetAclPriorityParams as fidl::encoding::TypeMarker>::inline_size(
8632 decoder.context,
8633 ),
8634 0 => return Err(fidl::Error::UnknownUnionTag),
8635 _ => num_bytes as usize,
8636 };
8637
8638 if inlined != (member_inline_size <= 4) {
8639 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8640 }
8641 let _inner_offset;
8642 if inlined {
8643 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
8644 _inner_offset = offset + 8;
8645 } else {
8646 depth.increment()?;
8647 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8648 }
8649 match ordinal {
8650 1 => {
8651 #[allow(irrefutable_let_patterns)]
8652 if let VendorCommand::SetAclPriority(_) = self {
8653 } else {
8655 *self = VendorCommand::SetAclPriority(fidl::new_empty!(
8657 VendorSetAclPriorityParams,
8658 D
8659 ));
8660 }
8661 #[allow(irrefutable_let_patterns)]
8662 if let VendorCommand::SetAclPriority(ref mut val) = self {
8663 fidl::decode!(
8664 VendorSetAclPriorityParams,
8665 D,
8666 val,
8667 decoder,
8668 _inner_offset,
8669 depth
8670 )?;
8671 } else {
8672 unreachable!()
8673 }
8674 }
8675 #[allow(deprecated)]
8676 ordinal => {
8677 for _ in 0..num_handles {
8678 decoder.drop_next_handle()?;
8679 }
8680 *self = VendorCommand::__SourceBreaking { unknown_ordinal: ordinal };
8681 }
8682 }
8683 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
8684 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8685 }
8686 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8687 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8688 }
8689 Ok(())
8690 }
8691 }
8692}