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 type Psm = u16;
15
16pub const MAX_BROADCAST_NAME_OCTETS: u8 = 128;
17
18pub const MAX_ISO_PACKET_SIZE: u16 = 4095;
21
22pub const MAX_MANUFACTURER_DATA_LENGTH: u8 = 252;
23
24pub const MAX_SERVICE_DATA_LENGTH: u8 = 252;
25
26pub const MAX_STREAMS_IN_GROUP: u8 = 31;
29
30pub const MAX_SUBEVENTS: u8 = 128;
31
32pub const MAX_URI_LENGTH: u16 = 278;
33
34#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
42#[repr(u8)]
43pub enum AdvertisingModeHint {
44 VeryFast = 1,
48 Fast = 2,
51 Slow = 3,
54}
55
56impl AdvertisingModeHint {
57 #[inline]
58 pub fn from_primitive(prim: u8) -> Option<Self> {
59 match prim {
60 1 => Some(Self::VeryFast),
61 2 => Some(Self::Fast),
62 3 => Some(Self::Slow),
63 _ => None,
64 }
65 }
66
67 #[inline]
68 pub const fn into_primitive(self) -> u8 {
69 self as u8
70 }
71}
72
73#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
74#[repr(u32)]
75pub enum CentralError {
76 Aborted = 1,
78 InProgress = 2,
80 InvalidParameters = 3,
82 Failed = 4,
84}
85
86impl CentralError {
87 #[inline]
88 pub fn from_primitive(prim: u32) -> Option<Self> {
89 match prim {
90 1 => Some(Self::Aborted),
91 2 => Some(Self::InProgress),
92 3 => Some(Self::InvalidParameters),
93 4 => Some(Self::Failed),
94 _ => None,
95 }
96 }
97
98 #[inline]
99 pub const fn into_primitive(self) -> u32 {
100 self as u32
101 }
102}
103
104#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
105#[repr(u32)]
106pub enum CigFramingOptions {
107 Unframed = 0,
108 Framed = 1,
109}
110
111impl CigFramingOptions {
112 #[inline]
113 pub fn from_primitive(prim: u32) -> Option<Self> {
114 match prim {
115 0 => Some(Self::Unframed),
116 1 => Some(Self::Framed),
117 _ => None,
118 }
119 }
120
121 #[inline]
122 pub const fn into_primitive(self) -> u32 {
123 self as u32
124 }
125}
126
127#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
128pub enum CigPacking {
129 Sequential,
130 Interleaved,
131 #[doc(hidden)]
132 __SourceBreaking {
133 unknown_ordinal: u32,
134 },
135}
136
137#[macro_export]
139macro_rules! CigPackingUnknown {
140 () => {
141 _
142 };
143}
144
145impl CigPacking {
146 #[inline]
147 pub fn from_primitive(prim: u32) -> Option<Self> {
148 match prim {
149 0 => Some(Self::Sequential),
150 1 => Some(Self::Interleaved),
151 _ => None,
152 }
153 }
154
155 #[inline]
156 pub fn from_primitive_allow_unknown(prim: u32) -> Self {
157 match prim {
158 0 => Self::Sequential,
159 1 => Self::Interleaved,
160 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
161 }
162 }
163
164 #[inline]
165 pub fn unknown() -> Self {
166 Self::__SourceBreaking { unknown_ordinal: 0xffffffff }
167 }
168
169 #[inline]
170 pub const fn into_primitive(self) -> u32 {
171 match self {
172 Self::Sequential => 0,
173 Self::Interleaved => 1,
174 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
175 }
176 }
177
178 #[inline]
179 pub fn is_unknown(&self) -> bool {
180 match self {
181 Self::__SourceBreaking { unknown_ordinal: _ } => true,
182 _ => false,
183 }
184 }
185}
186
187#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
188pub enum CreateCigError {
189 Unknown,
192 NotEnoughResources,
194 InvalidCisParameters,
197 #[doc(hidden)]
198 __SourceBreaking { unknown_ordinal: u32 },
199}
200
201#[macro_export]
203macro_rules! CreateCigErrorUnknown {
204 () => {
205 _
206 };
207}
208
209impl CreateCigError {
210 #[inline]
211 pub fn from_primitive(prim: u32) -> Option<Self> {
212 match prim {
213 1 => Some(Self::Unknown),
214 2 => Some(Self::NotEnoughResources),
215 3 => Some(Self::InvalidCisParameters),
216 _ => None,
217 }
218 }
219
220 #[inline]
221 pub fn from_primitive_allow_unknown(prim: u32) -> Self {
222 match prim {
223 1 => Self::Unknown,
224 2 => Self::NotEnoughResources,
225 3 => Self::InvalidCisParameters,
226 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
227 }
228 }
229
230 #[inline]
231 pub fn unknown() -> Self {
232 Self::__SourceBreaking { unknown_ordinal: 0xffffffff }
233 }
234
235 #[inline]
236 pub const fn into_primitive(self) -> u32 {
237 match self {
238 Self::Unknown => 1,
239 Self::NotEnoughResources => 2,
240 Self::InvalidCisParameters => 3,
241 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
242 }
243 }
244
245 #[inline]
246 pub fn is_unknown(&self) -> bool {
247 match self {
248 Self::__SourceBreaking { unknown_ordinal: _ } => true,
249 _ => false,
250 }
251 }
252}
253
254#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
255pub enum EstablishStreamsError {
256 NotSupported,
258 DuplicateCis,
260 CisAlreadyEstablished,
262 PeerNotConnected,
264 #[doc(hidden)]
265 __SourceBreaking { unknown_ordinal: u32 },
266}
267
268#[macro_export]
270macro_rules! EstablishStreamsErrorUnknown {
271 () => {
272 _
273 };
274}
275
276impl EstablishStreamsError {
277 #[inline]
278 pub fn from_primitive(prim: u32) -> Option<Self> {
279 match prim {
280 1 => Some(Self::NotSupported),
281 2 => Some(Self::DuplicateCis),
282 3 => Some(Self::CisAlreadyEstablished),
283 4 => Some(Self::PeerNotConnected),
284 _ => None,
285 }
286 }
287
288 #[inline]
289 pub fn from_primitive_allow_unknown(prim: u32) -> Self {
290 match prim {
291 1 => Self::NotSupported,
292 2 => Self::DuplicateCis,
293 3 => Self::CisAlreadyEstablished,
294 4 => Self::PeerNotConnected,
295 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
296 }
297 }
298
299 #[inline]
300 pub fn unknown() -> Self {
301 Self::__SourceBreaking { unknown_ordinal: 0xffffffff }
302 }
303
304 #[inline]
305 pub const fn into_primitive(self) -> u32 {
306 match self {
307 Self::NotSupported => 1,
308 Self::DuplicateCis => 2,
309 Self::CisAlreadyEstablished => 3,
310 Self::PeerNotConnected => 4,
311 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
312 }
313 }
314
315 #[inline]
316 pub fn is_unknown(&self) -> bool {
317 match self {
318 Self::__SourceBreaking { unknown_ordinal: _ } => true,
319 _ => false,
320 }
321 }
322}
323
324#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
326#[repr(u8)]
327pub enum IsoPacketStatusFlag {
328 ValidData = 0,
330 DataWithPossibleErrors = 1,
333 LostData = 2,
335}
336
337impl IsoPacketStatusFlag {
338 #[inline]
339 pub fn from_primitive(prim: u8) -> Option<Self> {
340 match prim {
341 0 => Some(Self::ValidData),
342 1 => Some(Self::DataWithPossibleErrors),
343 2 => Some(Self::LostData),
344 _ => None,
345 }
346 }
347
348 #[inline]
349 pub const fn into_primitive(self) -> u8 {
350 self as u8
351 }
352}
353
354#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
355pub enum PeriodicAdvertisingSyncError {
356 InitialSynchronizationFailed,
357 SynchronizationLost,
358 NotSupportedLocal,
359 NotSupportedRemote,
360 #[doc(hidden)]
361 __SourceBreaking {
362 unknown_ordinal: u32,
363 },
364}
365
366#[macro_export]
368macro_rules! PeriodicAdvertisingSyncErrorUnknown {
369 () => {
370 _
371 };
372}
373
374impl PeriodicAdvertisingSyncError {
375 #[inline]
376 pub fn from_primitive(prim: u32) -> Option<Self> {
377 match prim {
378 0 => Some(Self::InitialSynchronizationFailed),
379 1 => Some(Self::SynchronizationLost),
380 2 => Some(Self::NotSupportedLocal),
381 3 => Some(Self::NotSupportedRemote),
382 _ => None,
383 }
384 }
385
386 #[inline]
387 pub fn from_primitive_allow_unknown(prim: u32) -> Self {
388 match prim {
389 0 => Self::InitialSynchronizationFailed,
390 1 => Self::SynchronizationLost,
391 2 => Self::NotSupportedLocal,
392 3 => Self::NotSupportedRemote,
393 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
394 }
395 }
396
397 #[inline]
398 pub fn unknown() -> Self {
399 Self::__SourceBreaking { unknown_ordinal: 0xffffffff }
400 }
401
402 #[inline]
403 pub const fn into_primitive(self) -> u32 {
404 match self {
405 Self::InitialSynchronizationFailed => 0,
406 Self::SynchronizationLost => 1,
407 Self::NotSupportedLocal => 2,
408 Self::NotSupportedRemote => 3,
409 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
410 }
411 }
412
413 #[inline]
414 pub fn is_unknown(&self) -> bool {
415 match self {
416 Self::__SourceBreaking { unknown_ordinal: _ } => true,
417 _ => false,
418 }
419 }
420}
421
422#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
423pub enum PeriodicAdvertisingSyncTransferError {
424 Failed,
425 InvalidSyncId,
427 TransferAlreadyPending,
428 NotSupportedLocal,
429 NotSupportedRemote,
430 #[doc(hidden)]
431 __SourceBreaking {
432 unknown_ordinal: u32,
433 },
434}
435
436#[macro_export]
438macro_rules! PeriodicAdvertisingSyncTransferErrorUnknown {
439 () => {
440 _
441 };
442}
443
444impl PeriodicAdvertisingSyncTransferError {
445 #[inline]
446 pub fn from_primitive(prim: u32) -> Option<Self> {
447 match prim {
448 0 => Some(Self::Failed),
449 1 => Some(Self::InvalidSyncId),
450 2 => Some(Self::TransferAlreadyPending),
451 3 => Some(Self::NotSupportedLocal),
452 4 => Some(Self::NotSupportedRemote),
453 _ => None,
454 }
455 }
456
457 #[inline]
458 pub fn from_primitive_allow_unknown(prim: u32) -> Self {
459 match prim {
460 0 => Self::Failed,
461 1 => Self::InvalidSyncId,
462 2 => Self::TransferAlreadyPending,
463 3 => Self::NotSupportedLocal,
464 4 => Self::NotSupportedRemote,
465 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
466 }
467 }
468
469 #[inline]
470 pub fn unknown() -> Self {
471 Self::__SourceBreaking { unknown_ordinal: 0xffffffff }
472 }
473
474 #[inline]
475 pub const fn into_primitive(self) -> u32 {
476 match self {
477 Self::Failed => 0,
478 Self::InvalidSyncId => 1,
479 Self::TransferAlreadyPending => 2,
480 Self::NotSupportedLocal => 3,
481 Self::NotSupportedRemote => 4,
482 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
483 }
484 }
485
486 #[inline]
487 pub fn is_unknown(&self) -> bool {
488 match self {
489 Self::__SourceBreaking { unknown_ordinal: _ } => true,
490 _ => false,
491 }
492 }
493}
494
495#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
496#[repr(u32)]
497pub enum PeripheralError {
498 NotSupported = 1,
500 AdvertisingDataTooLong = 2,
502 ScanResponseDataTooLong = 3,
504 InvalidParameters = 4,
506 Aborted = 5,
509 Failed = 6,
511}
512
513impl PeripheralError {
514 #[inline]
515 pub fn from_primitive(prim: u32) -> Option<Self> {
516 match prim {
517 1 => Some(Self::NotSupported),
518 2 => Some(Self::AdvertisingDataTooLong),
519 3 => Some(Self::ScanResponseDataTooLong),
520 4 => Some(Self::InvalidParameters),
521 5 => Some(Self::Aborted),
522 6 => Some(Self::Failed),
523 _ => None,
524 }
525 }
526
527 #[inline]
528 pub const fn into_primitive(self) -> u32 {
529 self as u32
530 }
531}
532
533#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
535pub enum PhysicalLayer {
536 Le1M,
538 Le2M,
541 LeCoded,
544 #[doc(hidden)]
545 __SourceBreaking { unknown_ordinal: u8 },
546}
547
548#[macro_export]
550macro_rules! PhysicalLayerUnknown {
551 () => {
552 _
553 };
554}
555
556impl PhysicalLayer {
557 #[inline]
558 pub fn from_primitive(prim: u8) -> Option<Self> {
559 match prim {
560 1 => Some(Self::Le1M),
561 2 => Some(Self::Le2M),
562 3 => Some(Self::LeCoded),
563 _ => None,
564 }
565 }
566
567 #[inline]
568 pub fn from_primitive_allow_unknown(prim: u8) -> Self {
569 match prim {
570 1 => Self::Le1M,
571 2 => Self::Le2M,
572 3 => Self::LeCoded,
573 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
574 }
575 }
576
577 #[inline]
578 pub fn unknown() -> Self {
579 Self::__SourceBreaking { unknown_ordinal: 0xff }
580 }
581
582 #[inline]
583 pub const fn into_primitive(self) -> u8 {
584 match self {
585 Self::Le1M => 1,
586 Self::Le2M => 2,
587 Self::LeCoded => 3,
588 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
589 }
590 }
591
592 #[inline]
593 pub fn is_unknown(&self) -> bool {
594 match self {
595 Self::__SourceBreaking { unknown_ordinal: _ } => true,
596 _ => false,
597 }
598 }
599}
600
601#[derive(Clone, Debug, PartialEq)]
603pub struct AdvertisingDataDeprecated {
604 pub name: Option<String>,
606 pub tx_power_level: Option<Box<fidl_fuchsia_bluetooth__common::Int8>>,
608 pub appearance: Option<Box<fidl_fuchsia_bluetooth__common::UInt16>>,
610 pub service_uuids: Option<Vec<String>>,
612 pub service_data: Option<Vec<ServiceDataEntry>>,
614 pub manufacturer_specific_data: Option<Vec<ManufacturerSpecificDataEntry>>,
616 pub solicited_service_uuids: Option<Vec<String>>,
619 pub uris: Option<Vec<String>>,
622}
623
624impl fidl::Persistable for AdvertisingDataDeprecated {}
625
626#[derive(Clone, Debug, PartialEq)]
627pub struct CentralConnectPeripheralResponse {
628 pub status: fidl_fuchsia_bluetooth__common::Status,
629}
630
631impl fidl::Persistable for CentralConnectPeripheralResponse {}
632
633#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
634pub struct CentralDisconnectPeripheralRequest {
635 pub identifier: String,
636}
637
638impl fidl::Persistable for CentralDisconnectPeripheralRequest {}
639
640#[derive(Clone, Debug, PartialEq)]
641pub struct CentralDisconnectPeripheralResponse {
642 pub status: fidl_fuchsia_bluetooth__common::Status,
643}
644
645impl fidl::Persistable for CentralDisconnectPeripheralResponse {}
646
647#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
648pub struct CentralGetPeripheralRequest {
649 pub identifier: String,
650}
651
652impl fidl::Persistable for CentralGetPeripheralRequest {}
653
654#[derive(Clone, Debug, PartialEq)]
655pub struct CentralGetPeripheralResponse {
656 pub peripheral: Option<Box<RemoteDevice>>,
657}
658
659impl fidl::Persistable for CentralGetPeripheralResponse {}
660
661#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
662pub struct CentralGetPeripheralsRequest {
663 pub service_uuids: Option<Vec<String>>,
664}
665
666impl fidl::Persistable for CentralGetPeripheralsRequest {}
667
668#[derive(Clone, Debug, PartialEq)]
669pub struct CentralGetPeripheralsResponse {
670 pub peripherals: Vec<RemoteDevice>,
671}
672
673impl fidl::Persistable for CentralGetPeripheralsResponse {}
674
675#[derive(Clone, Debug, PartialEq)]
676pub struct CentralOnDeviceDiscoveredRequest {
677 pub device: RemoteDevice,
678}
679
680impl fidl::Persistable for CentralOnDeviceDiscoveredRequest {}
681
682#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
683pub struct CentralOnPeripheralDisconnectedRequest {
684 pub identifier: String,
685}
686
687impl fidl::Persistable for CentralOnPeripheralDisconnectedRequest {}
688
689#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
690pub struct CentralOnScanStateChangedRequest {
691 pub scanning: bool,
692}
693
694impl fidl::Persistable for CentralOnScanStateChangedRequest {}
695
696#[derive(Clone, Debug, PartialEq)]
697pub struct CentralStartScanRequest {
698 pub filter: Option<Box<ScanFilter>>,
699}
700
701impl fidl::Persistable for CentralStartScanRequest {}
702
703#[derive(Clone, Debug, PartialEq)]
704pub struct CentralStartScanResponse {
705 pub status: fidl_fuchsia_bluetooth__common::Status,
706}
707
708impl fidl::Persistable for CentralStartScanResponse {}
709
710#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
712pub struct ManufacturerData {
713 pub company_id: u16,
714 pub data: Vec<u8>,
715}
716
717impl fidl::Persistable for ManufacturerData {}
718
719#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
720pub struct ManufacturerSpecificDataEntry {
721 pub company_id: u16,
722 pub data: Vec<u8>,
723}
724
725impl fidl::Persistable for ManufacturerSpecificDataEntry {}
726
727#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
729#[repr(C)]
730pub struct PeriodicAdvertisingSyncId {
731 pub value: u64,
732}
733
734impl fidl::Persistable for PeriodicAdvertisingSyncId {}
735
736#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
737pub struct PeriodicAdvertisingSyncOnErrorRequest {
738 pub error: PeriodicAdvertisingSyncError,
739}
740
741impl fidl::Persistable for PeriodicAdvertisingSyncOnErrorRequest {}
742
743#[derive(Clone, Debug, PartialEq)]
746pub struct RemoteDevice {
747 pub identifier: String,
749 pub connectable: bool,
752 pub rssi: Option<Box<fidl_fuchsia_bluetooth__common::Int8>>,
754 pub advertising_data: Option<Box<AdvertisingDataDeprecated>>,
756}
757
758impl fidl::Persistable for RemoteDevice {}
759
760#[derive(Clone, Debug, PartialEq)]
764pub struct ScanFilter {
765 pub service_uuids: Option<Vec<String>>,
768 pub service_data_uuids: Option<Vec<String>>,
770 pub manufacturer_identifier: Option<Box<fidl_fuchsia_bluetooth__common::UInt16>>,
774 pub connectable: Option<Box<fidl_fuchsia_bluetooth__common::Bool>>,
778 pub name_substring: Option<String>,
780 pub max_path_loss: Option<Box<fidl_fuchsia_bluetooth__common::Int8>>,
786}
787
788impl fidl::Persistable for ScanFilter {}
789
790#[derive(Clone, Debug, PartialEq)]
791pub struct ScanResultWatcherWatchResponse {
792 pub updated: Vec<Peer>,
793}
794
795impl fidl::Persistable for ScanResultWatcherWatchResponse {}
796
797#[derive(Clone, Debug, PartialEq)]
799pub struct ServiceData {
800 pub uuid: fidl_fuchsia_bluetooth__common::Uuid,
801 pub data: Vec<u8>,
802}
803
804impl fidl::Persistable for ServiceData {}
805
806#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
807pub struct ServiceDataEntry {
808 pub uuid: String,
809 pub data: Vec<u8>,
810}
811
812impl fidl::Persistable for ServiceDataEntry {}
813
814#[derive(Clone, Debug, Default, PartialEq)]
819pub struct AcceptedChannelParameters {
820 pub accepted_channel_modes: Option<Vec<fidl_fuchsia_bluetooth__common::ChannelMode>>,
825 pub max_packet_size: Option<u16>,
829 #[doc(hidden)]
830 pub __source_breaking: fidl::marker::SourceBreaking,
831}
832
833impl fidl::Persistable for AcceptedChannelParameters {}
834
835#[derive(Clone, Debug, Default, PartialEq)]
838pub struct AdvertisingData {
839 pub name: Option<String>,
841 pub appearance: Option<fidl_fuchsia_bluetooth__common::Appearance>,
843 pub tx_power_level: Option<i8>,
844 pub service_uuids: Option<Vec<fidl_fuchsia_bluetooth__common::Uuid>>,
846 pub service_data: Option<Vec<ServiceData>>,
848 pub manufacturer_data: Option<Vec<ManufacturerData>>,
850 pub uris: Option<Vec<String>>,
856 pub include_tx_power_level: Option<bool>,
858 pub resolvable_set_identifier: Option<[u8; 6]>,
862 pub broadcast_name: Option<String>,
871 #[doc(hidden)]
872 pub __source_breaking: fidl::marker::SourceBreaking,
873}
874
875impl fidl::Persistable for AdvertisingData {}
876
877#[derive(Clone, Debug, Default, PartialEq)]
879pub struct AdvertisingParameters {
880 pub data: Option<AdvertisingData>,
884 pub scan_response: Option<AdvertisingData>,
890 pub mode_hint: Option<AdvertisingModeHint>,
893 pub connectable: Option<bool>,
897 pub connection_options: Option<ConnectionOptions>,
902 pub advertising_procedure: Option<AdvertisingProcedure>,
908 pub address_type: Option<fidl_fuchsia_bluetooth__common::AddressType>,
920 #[doc(hidden)]
921 pub __source_breaking: fidl::marker::SourceBreaking,
922}
923
924impl fidl::Persistable for AdvertisingParameters {}
925
926#[derive(Clone, Debug, Default, PartialEq)]
929pub struct BroadcastIsochronousGroupInfo {
930 pub streams_count: Option<u8>,
932 pub max_sdu_size: Option<u16>,
934 pub phy: Option<PhysicalLayer>,
936 pub encryption: Option<bool>,
938 #[doc(hidden)]
939 pub __source_breaking: fidl::marker::SourceBreaking,
940}
941
942impl fidl::Persistable for BroadcastIsochronousGroupInfo {}
943
944#[derive(Clone, Debug, Default, PartialEq)]
946pub struct BroadcastIsochronousGroupInfoReport {
947 pub info: Option<BroadcastIsochronousGroupInfo>,
948 pub timestamp: Option<i64>,
950 #[doc(hidden)]
951 pub __source_breaking: fidl::marker::SourceBreaking,
952}
953
954impl fidl::Persistable for BroadcastIsochronousGroupInfoReport {}
955
956#[derive(Clone, Debug, Default, PartialEq)]
957pub struct CentralCreateConnectedIsochronousGroupResponse {
958 pub cig_id: Option<u8>,
960 #[doc(hidden)]
961 pub __source_breaking: fidl::marker::SourceBreaking,
962}
963
964impl fidl::Persistable for CentralCreateConnectedIsochronousGroupResponse {}
965
966#[derive(Clone, Debug, Default, PartialEq)]
967pub struct ChannelListenerRegistryListenL2capResponse {
968 pub psm: Option<u16>,
971 #[doc(hidden)]
972 pub __source_breaking: fidl::marker::SourceBreaking,
973}
974
975impl fidl::Persistable for ChannelListenerRegistryListenL2capResponse {}
976
977#[derive(Clone, Debug, Default, PartialEq)]
978pub struct ChannelOffloadExtStartOffloadRequest {
979 #[doc(hidden)]
980 pub __source_breaking: fidl::marker::SourceBreaking,
981}
982
983impl fidl::Persistable for ChannelOffloadExtStartOffloadRequest {}
984
985#[derive(Clone, Debug, Default, PartialEq)]
986pub struct ChannelOffloadExtStartOffloadResponse {
987 pub offload_parameters: Option<fidl_fuchsia_bluetooth__common::L2capChannelOffloadParameters>,
988 #[doc(hidden)]
989 pub __source_breaking: fidl::marker::SourceBreaking,
990}
991
992impl fidl::Persistable for ChannelOffloadExtStartOffloadResponse {}
993
994#[derive(Clone, Debug, Default, PartialEq)]
995pub struct CigParameters {
996 pub sdu_interval_c_to_p: Option<u32>,
1000 pub sdu_interval_p_to_c: Option<u32>,
1004 pub packing: Option<CigPacking>,
1008 pub framing: Option<CigFramingOptions>,
1011 pub max_transport_latency_c_to_p: Option<u16>,
1015 pub max_transport_latency_p_to_c: Option<u16>,
1019 #[doc(hidden)]
1020 pub __source_breaking: fidl::marker::SourceBreaking,
1021}
1022
1023impl fidl::Persistable for CigParameters {}
1024
1025#[derive(Clone, Debug, Default, PartialEq)]
1027pub struct CisEstablishedParameters {
1028 pub cig_sync_delay: Option<i64>,
1033 pub cis_sync_delay: Option<i64>,
1038 pub max_subevents: Option<u8>,
1042 pub iso_interval: Option<i64>,
1046 pub central_to_peripheral_params: Option<CisUnidirectionalParams>,
1051 pub peripheral_to_central_params: Option<CisUnidirectionalParams>,
1056 #[doc(hidden)]
1057 pub __source_breaking: fidl::marker::SourceBreaking,
1058}
1059
1060impl fidl::Persistable for CisEstablishedParameters {}
1061
1062#[derive(Clone, Debug, Default, PartialEq)]
1063pub struct CisParameters {
1064 pub cis_id: Option<u8>,
1067 pub id: Option<fidl_fuchsia_bluetooth__common::PeerId>,
1070 #[doc(hidden)]
1071 pub __source_breaking: fidl::marker::SourceBreaking,
1072}
1073
1074impl fidl::Persistable for CisParameters {}
1075
1076#[derive(Clone, Debug, Default, PartialEq)]
1078pub struct CisUnidirectionalParams {
1079 pub transport_latency: Option<i64>,
1083 pub burst_number: Option<u8>,
1087 pub flush_timeout: Option<u8>,
1091 #[doc(hidden)]
1092 pub __source_breaking: fidl::marker::SourceBreaking,
1093}
1094
1095impl fidl::Persistable for CisUnidirectionalParams {}
1096
1097#[derive(Clone, Debug, Default, PartialEq)]
1098pub struct CodecDelayGetCodecLocalDelayRangeRequest {
1099 pub logical_transport_type: Option<fidl_fuchsia_bluetooth__common::LogicalTransportType>,
1102 pub data_direction: Option<fidl_fuchsia_bluetooth__common::DataDirection>,
1104 pub codec_attributes: Option<fidl_fuchsia_bluetooth__common::CodecAttributes>,
1106 #[doc(hidden)]
1107 pub __source_breaking: fidl::marker::SourceBreaking,
1108}
1109
1110impl fidl::Persistable for CodecDelayGetCodecLocalDelayRangeRequest {}
1111
1112#[derive(Clone, Debug, Default, PartialEq)]
1113pub struct CodecDelayGetCodecLocalDelayRangeResponse {
1114 pub min_controller_delay: Option<i64>,
1117 pub max_controller_delay: Option<i64>,
1120 #[doc(hidden)]
1121 pub __source_breaking: fidl::marker::SourceBreaking,
1122}
1123
1124impl fidl::Persistable for CodecDelayGetCodecLocalDelayRangeResponse {}
1125
1126#[derive(Clone, Debug, Default, PartialEq)]
1127pub struct ConnectedIsochronousGroupEstablishStreamsRequest {
1128 pub cis_params: Option<Vec<CisParameters>>,
1130 #[doc(hidden)]
1131 pub __source_breaking: fidl::marker::SourceBreaking,
1132}
1133
1134impl fidl::Persistable for ConnectedIsochronousGroupEstablishStreamsRequest {}
1135
1136#[derive(Clone, Debug, Default, PartialEq)]
1139pub struct ConnectionOptions {
1140 pub bondable_mode: Option<bool>,
1145 pub service_filter: Option<fidl_fuchsia_bluetooth__common::Uuid>,
1148 #[doc(hidden)]
1149 pub __source_breaking: fidl::marker::SourceBreaking,
1150}
1151
1152impl fidl::Persistable for ConnectionOptions {}
1153
1154#[derive(Clone, Debug, Default, PartialEq)]
1155pub struct ConnectionTransferPeriodicAdvertisingSyncRequest {
1156 pub sync_id: Option<PeriodicAdvertisingSyncId>,
1158 pub service_data: Option<u16>,
1162 #[doc(hidden)]
1163 pub __source_breaking: fidl::marker::SourceBreaking,
1164}
1165
1166impl fidl::Persistable for ConnectionTransferPeriodicAdvertisingSyncRequest {}
1167
1168#[derive(Clone, Debug, Default, PartialEq)]
1169pub struct Extended {
1170 #[doc(hidden)]
1171 pub __source_breaking: fidl::marker::SourceBreaking,
1172}
1173
1174impl fidl::Persistable for Extended {}
1175
1176#[derive(Clone, Debug, Default, PartialEq)]
1179pub struct Filter {
1180 pub service_uuid: Option<fidl_fuchsia_bluetooth__common::Uuid>,
1182 pub service_data_uuid: Option<fidl_fuchsia_bluetooth__common::Uuid>,
1184 pub manufacturer_id: Option<u16>,
1190 pub connectable: Option<bool>,
1195 pub name: Option<String>,
1198 pub max_path_loss: Option<i8>,
1210 pub solicitation_uuid: Option<fidl_fuchsia_bluetooth__common::Uuid>,
1214 #[doc(hidden)]
1215 pub __source_breaking: fidl::marker::SourceBreaking,
1216}
1217
1218impl fidl::Persistable for Filter {}
1219
1220#[derive(Clone, Debug, Default, PartialEq)]
1221pub struct IsochronousStreamOnEstablishedRequest {
1222 pub result: Option<i32>,
1225 pub established_params: Option<CisEstablishedParameters>,
1227 #[doc(hidden)]
1228 pub __source_breaking: fidl::marker::SourceBreaking,
1229}
1230
1231impl fidl::Persistable for IsochronousStreamOnEstablishedRequest {}
1232
1233#[derive(Clone, Debug, Default, PartialEq)]
1234pub struct IsochronousStreamSetupDataPathRequest {
1235 pub data_direction: Option<fidl_fuchsia_bluetooth__common::DataDirection>,
1238 pub codec_attributes: Option<fidl_fuchsia_bluetooth__common::CodecAttributes>,
1241 pub controller_delay: Option<i64>,
1245 #[doc(hidden)]
1246 pub __source_breaking: fidl::marker::SourceBreaking,
1247}
1248
1249impl fidl::Persistable for IsochronousStreamSetupDataPathRequest {}
1250
1251#[derive(Clone, Debug, Default, PartialEq)]
1252pub struct IsochronousStreamWriteRequest {
1253 pub data: Option<Vec<u8>>,
1255 #[doc(hidden)]
1256 pub __source_breaking: fidl::marker::SourceBreaking,
1257}
1258
1259impl fidl::Persistable for IsochronousStreamWriteRequest {}
1260
1261#[derive(Clone, Debug, Default, PartialEq)]
1262pub struct IsochronousStreamReadResponse {
1263 pub data: Option<Vec<u8>>,
1266 pub sequence_number: Option<u16>,
1269 pub status_flag: Option<IsoPacketStatusFlag>,
1272 pub timestamp: Option<i64>,
1275 #[doc(hidden)]
1276 pub __source_breaking: fidl::marker::SourceBreaking,
1277}
1278
1279impl fidl::Persistable for IsochronousStreamReadResponse {}
1280
1281#[derive(Clone, Debug, Default, PartialEq)]
1282pub struct Legacy {
1283 #[doc(hidden)]
1284 pub __source_breaking: fidl::marker::SourceBreaking,
1285}
1286
1287impl fidl::Persistable for Legacy {}
1288
1289#[derive(Clone, Debug, Default, PartialEq)]
1292pub struct Peer {
1293 pub id: Option<fidl_fuchsia_bluetooth__common::PeerId>,
1297 pub connectable: Option<bool>,
1302 pub rssi: Option<i8>,
1308 pub advertising_data: Option<AdvertisingData>,
1309 pub name: Option<String>,
1314 pub data: Option<ScanData>,
1317 pub bonded: Option<bool>,
1321 pub last_updated: Option<i64>,
1326 pub advertising_sid: Option<u8>,
1330 pub periodic_advertising_interval: Option<u16>,
1337 #[doc(hidden)]
1338 pub __source_breaking: fidl::marker::SourceBreaking,
1339}
1340
1341impl fidl::Persistable for Peer {}
1342
1343#[derive(Clone, Debug, Default, PartialEq)]
1344pub struct PeriodicAdvertisingReport {
1345 pub rssi: Option<i8>,
1347 pub data: Option<ScanData>,
1349 pub event_counter: Option<u16>,
1352 pub subevent: Option<u8>,
1354 pub timestamp: Option<i64>,
1356 #[doc(hidden)]
1357 pub __source_breaking: fidl::marker::SourceBreaking,
1358}
1359
1360impl fidl::Persistable for PeriodicAdvertisingReport {}
1361
1362#[derive(Clone, Debug, Default, PartialEq)]
1363pub struct PeriodicAdvertisingSyncConfiguration {
1364 pub filter_duplicates: Option<bool>,
1368 #[doc(hidden)]
1369 pub __source_breaking: fidl::marker::SourceBreaking,
1370}
1371
1372impl fidl::Persistable for PeriodicAdvertisingSyncConfiguration {}
1373
1374#[derive(Clone, Debug, Default, PartialEq)]
1375pub struct PeriodicAdvertisingSyncOnEstablishedRequest {
1376 pub id: Option<PeriodicAdvertisingSyncId>,
1378 pub subevents_count: Option<u8>,
1380 pub peer_id: Option<fidl_fuchsia_bluetooth__common::PeerId>,
1381 pub service_data: Option<u16>,
1384 pub advertising_sid: Option<u8>,
1385 pub phy: Option<PhysicalLayer>,
1386 pub periodic_advertising_interval: Option<u16>,
1390 #[doc(hidden)]
1391 pub __source_breaking: fidl::marker::SourceBreaking,
1392}
1393
1394impl fidl::Persistable for PeriodicAdvertisingSyncOnEstablishedRequest {}
1395
1396#[derive(Clone, Debug, Default, PartialEq)]
1397pub struct PeriodicAdvertisingSyncSyncToSubeventsRequest {
1398 pub subevents: Option<Vec<u8>>,
1400 #[doc(hidden)]
1401 pub __source_breaking: fidl::marker::SourceBreaking,
1402}
1403
1404impl fidl::Persistable for PeriodicAdvertisingSyncSyncToSubeventsRequest {}
1405
1406#[derive(Clone, Debug, Default, PartialEq)]
1407pub struct PeriodicAdvertisingSyncWatchAdvertisingReportResponse {
1408 pub reports: Option<Vec<SyncReport>>,
1409 #[doc(hidden)]
1410 pub __source_breaking: fidl::marker::SourceBreaking,
1411}
1412
1413impl fidl::Persistable for PeriodicAdvertisingSyncWatchAdvertisingReportResponse {}
1414
1415#[derive(Clone, Debug, Default, PartialEq)]
1417pub struct ScanData {
1418 pub tx_power: Option<i8>,
1423 pub appearance: Option<fidl_fuchsia_bluetooth__common::Appearance>,
1425 pub service_uuids: Option<Vec<fidl_fuchsia_bluetooth__common::Uuid>>,
1427 pub service_data: Option<Vec<ServiceData>>,
1429 pub manufacturer_data: Option<Vec<ManufacturerData>>,
1431 pub uris: Option<Vec<String>>,
1437 pub timestamp: Option<i64>,
1439 pub resolvable_set_identifier: Option<[u8; 6]>,
1443 pub broadcast_name: Option<String>,
1452 #[doc(hidden)]
1453 pub __source_breaking: fidl::marker::SourceBreaking,
1454}
1455
1456impl fidl::Persistable for ScanData {}
1457
1458#[derive(Clone, Debug, Default, PartialEq)]
1460pub struct ScanOptions {
1461 pub filters: Option<Vec<Filter>>,
1466 #[doc(hidden)]
1467 pub __source_breaking: fidl::marker::SourceBreaking,
1468}
1469
1470impl fidl::Persistable for ScanOptions {}
1471
1472#[derive(Clone, Debug)]
1473pub enum AdvertisingProcedure {
1474 Legacy(Legacy),
1477 Extended(Extended),
1487 #[doc(hidden)]
1488 __SourceBreaking { unknown_ordinal: u64 },
1489}
1490
1491#[macro_export]
1493macro_rules! AdvertisingProcedureUnknown {
1494 () => {
1495 _
1496 };
1497}
1498
1499impl PartialEq for AdvertisingProcedure {
1501 fn eq(&self, other: &Self) -> bool {
1502 match (self, other) {
1503 (Self::Legacy(x), Self::Legacy(y)) => *x == *y,
1504 (Self::Extended(x), Self::Extended(y)) => *x == *y,
1505 _ => false,
1506 }
1507 }
1508}
1509
1510impl AdvertisingProcedure {
1511 #[inline]
1512 pub fn ordinal(&self) -> u64 {
1513 match *self {
1514 Self::Legacy(_) => 1,
1515 Self::Extended(_) => 2,
1516 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
1517 }
1518 }
1519
1520 #[inline]
1521 pub fn unknown_variant_for_testing() -> Self {
1522 Self::__SourceBreaking { unknown_ordinal: 0 }
1523 }
1524
1525 #[inline]
1526 pub fn is_unknown(&self) -> bool {
1527 match self {
1528 Self::__SourceBreaking { .. } => true,
1529 _ => false,
1530 }
1531 }
1532}
1533
1534impl fidl::Persistable for AdvertisingProcedure {}
1535
1536#[derive(Clone, Debug)]
1537pub enum SyncReport {
1538 PeriodicAdvertisingReport(PeriodicAdvertisingReport),
1539 BroadcastIsochronousGroupInfoReport(BroadcastIsochronousGroupInfoReport),
1540 #[doc(hidden)]
1541 __SourceBreaking {
1542 unknown_ordinal: u64,
1543 },
1544}
1545
1546#[macro_export]
1548macro_rules! SyncReportUnknown {
1549 () => {
1550 _
1551 };
1552}
1553
1554impl PartialEq for SyncReport {
1556 fn eq(&self, other: &Self) -> bool {
1557 match (self, other) {
1558 (Self::PeriodicAdvertisingReport(x), Self::PeriodicAdvertisingReport(y)) => *x == *y,
1559 (
1560 Self::BroadcastIsochronousGroupInfoReport(x),
1561 Self::BroadcastIsochronousGroupInfoReport(y),
1562 ) => *x == *y,
1563 _ => false,
1564 }
1565 }
1566}
1567
1568impl SyncReport {
1569 #[inline]
1570 pub fn ordinal(&self) -> u64 {
1571 match *self {
1572 Self::PeriodicAdvertisingReport(_) => 1,
1573 Self::BroadcastIsochronousGroupInfoReport(_) => 2,
1574 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
1575 }
1576 }
1577
1578 #[inline]
1579 pub fn unknown_variant_for_testing() -> Self {
1580 Self::__SourceBreaking { unknown_ordinal: 0 }
1581 }
1582
1583 #[inline]
1584 pub fn is_unknown(&self) -> bool {
1585 match self {
1586 Self::__SourceBreaking { .. } => true,
1587 _ => false,
1588 }
1589 }
1590}
1591
1592impl fidl::Persistable for SyncReport {}
1593
1594pub mod advertised_peripheral_ordinals {
1595 pub const ON_CONNECTED: u64 = 0x607b7716457eb178;
1596}
1597
1598pub mod advertising_handle_ordinals {}
1599
1600pub mod central_ordinals {
1601 pub const LISTEN_L2CAP: u64 = 0x39c6e9001d102338;
1602 pub const SCAN: u64 = 0x41f7121798dfe15f;
1603 pub const CONNECT: u64 = 0x31a3065f2a6913c4;
1604 pub const SYNC_TO_PERIODIC_ADVERTISING: u64 = 0x1db6df126a00c5b9;
1605 pub const CREATE_CONNECTED_ISOCHRONOUS_GROUP: u64 = 0x60323e70ae22e13;
1606 pub const GET_PERIPHERALS: u64 = 0x37ba777499c683a8;
1607 pub const GET_PERIPHERAL: u64 = 0x97f5a2f2d9c13da;
1608 pub const START_SCAN: u64 = 0xeb4cf0cd0e1132b;
1609 pub const STOP_SCAN: u64 = 0x5f79ee6a0bb037a0;
1610 pub const CONNECT_PERIPHERAL: u64 = 0x714d6c32d066d75a;
1611 pub const DISCONNECT_PERIPHERAL: u64 = 0xa9430da197362fd;
1612 pub const ON_SCAN_STATE_CHANGED: u64 = 0x5f8edc23cad04d3f;
1613 pub const ON_DEVICE_DISCOVERED: u64 = 0x708dadf20d66db6;
1614 pub const ON_PERIPHERAL_DISCONNECTED: u64 = 0x4e4c6b979b2126df;
1615}
1616
1617pub mod channel_listener_ordinals {
1618 pub const ACCEPT: u64 = 0x6f535bd36b20fc7b;
1619 pub const CONNECTED: u64 = 0xf40756858f21866;
1620}
1621
1622pub mod channel_listener_registry_ordinals {
1623 pub const LISTEN_L2CAP: u64 = 0x39c6e9001d102338;
1624}
1625
1626pub mod channel_offload_ext_ordinals {
1627 pub const START_OFFLOAD: u64 = 0x2dd620feea793fe8;
1628}
1629
1630pub mod codec_delay_ordinals {
1631 pub const GET_CODEC_LOCAL_DELAY_RANGE: u64 = 0x1cf34fdeed80b4d;
1632}
1633
1634pub mod connected_isochronous_group_ordinals {
1635 pub const ESTABLISH_STREAMS: u64 = 0xc7296c5edb4dacc;
1636 pub const REMOVE: u64 = 0xbed433babd20503;
1637}
1638
1639pub mod connection_ordinals {
1640 pub const GET_CODEC_LOCAL_DELAY_RANGE: u64 = 0x1cf34fdeed80b4d;
1641 pub const REQUEST_GATT_CLIENT: u64 = 0x2a670e0fec6ccc6b;
1642 pub const ACCEPT_CIS: u64 = 0x7e6338c237088144;
1643 pub const CONNECT_L2CAP: u64 = 0x12351316feaebce9;
1644 pub const TRANSFER_PERIODIC_ADVERTISING_SYNC: u64 = 0x1117a10b5ba1e219;
1645 pub const ACCEPT_PERIODIC_ADVERTISING_SYNC_TRANSFER: u64 = 0x441a31a7effa7e2b;
1646}
1647
1648pub mod isochronous_stream_ordinals {
1649 pub const ON_ESTABLISHED: u64 = 0x341c50e9d10f3421;
1650 pub const SETUP_DATA_PATH: u64 = 0x7ec1e2b9cc6d2fbe;
1651 pub const READ: u64 = 0x6d7d8b4950ed3a32;
1652 pub const WRITE: u64 = 0x5282e90b667d0d43;
1653}
1654
1655pub mod periodic_advertising_sync_ordinals {
1656 pub const ON_ESTABLISHED: u64 = 0x4a5c307761c40fdc;
1657 pub const ON_ERROR: u64 = 0x1c051673126ce4a;
1658 pub const WATCH_ADVERTISING_REPORT: u64 = 0x2ea610fea0e7d337;
1659 pub const SYNC_TO_SUBEVENTS: u64 = 0x653c5dab1f1d80ed;
1660 pub const CANCEL: u64 = 0xd617c037eaf5d92;
1661}
1662
1663pub mod peripheral_ordinals {
1664 pub const LISTEN_L2CAP: u64 = 0x39c6e9001d102338;
1665 pub const ADVERTISE: u64 = 0x2d9ec9260c32c17f;
1666 pub const START_ADVERTISING: u64 = 0x5875c1c575f00f7d;
1667 pub const ON_PEER_CONNECTED: u64 = 0x16135d464299e356;
1668}
1669
1670pub mod privileged_central_ordinals {
1671 pub const LISTEN_L2CAP: u64 = 0x39c6e9001d102338;
1672 pub const SCAN: u64 = 0x41f7121798dfe15f;
1673 pub const CONNECT: u64 = 0x31a3065f2a6913c4;
1674 pub const SYNC_TO_PERIODIC_ADVERTISING: u64 = 0x1db6df126a00c5b9;
1675 pub const CREATE_CONNECTED_ISOCHRONOUS_GROUP: u64 = 0x60323e70ae22e13;
1676 pub const GET_PERIPHERALS: u64 = 0x37ba777499c683a8;
1677 pub const GET_PERIPHERAL: u64 = 0x97f5a2f2d9c13da;
1678 pub const START_SCAN: u64 = 0xeb4cf0cd0e1132b;
1679 pub const STOP_SCAN: u64 = 0x5f79ee6a0bb037a0;
1680 pub const CONNECT_PERIPHERAL: u64 = 0x714d6c32d066d75a;
1681 pub const DISCONNECT_PERIPHERAL: u64 = 0xa9430da197362fd;
1682 pub const ON_SCAN_STATE_CHANGED: u64 = 0x5f8edc23cad04d3f;
1683 pub const ON_DEVICE_DISCOVERED: u64 = 0x708dadf20d66db6;
1684 pub const ON_PERIPHERAL_DISCONNECTED: u64 = 0x4e4c6b979b2126df;
1685}
1686
1687pub mod privileged_peripheral_ordinals {
1688 pub const LISTEN_L2CAP: u64 = 0x39c6e9001d102338;
1689 pub const ADVERTISE: u64 = 0x2d9ec9260c32c17f;
1690 pub const START_ADVERTISING: u64 = 0x5875c1c575f00f7d;
1691 pub const ON_PEER_CONNECTED: u64 = 0x16135d464299e356;
1692}
1693
1694pub mod scan_result_watcher_ordinals {
1695 pub const WATCH: u64 = 0x713a122e949f301a;
1696}
1697
1698mod internal {
1699 use super::*;
1700 unsafe impl fidl::encoding::TypeMarker for AdvertisingModeHint {
1701 type Owned = Self;
1702
1703 #[inline(always)]
1704 fn inline_align(_context: fidl::encoding::Context) -> usize {
1705 std::mem::align_of::<u8>()
1706 }
1707
1708 #[inline(always)]
1709 fn inline_size(_context: fidl::encoding::Context) -> usize {
1710 std::mem::size_of::<u8>()
1711 }
1712
1713 #[inline(always)]
1714 fn encode_is_copy() -> bool {
1715 true
1716 }
1717
1718 #[inline(always)]
1719 fn decode_is_copy() -> bool {
1720 false
1721 }
1722 }
1723
1724 impl fidl::encoding::ValueTypeMarker for AdvertisingModeHint {
1725 type Borrowed<'a> = Self;
1726 #[inline(always)]
1727 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1728 *value
1729 }
1730 }
1731
1732 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
1733 for AdvertisingModeHint
1734 {
1735 #[inline]
1736 unsafe fn encode(
1737 self,
1738 encoder: &mut fidl::encoding::Encoder<'_, D>,
1739 offset: usize,
1740 _depth: fidl::encoding::Depth,
1741 ) -> fidl::Result<()> {
1742 encoder.debug_check_bounds::<Self>(offset);
1743 encoder.write_num(self.into_primitive(), offset);
1744 Ok(())
1745 }
1746 }
1747
1748 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for AdvertisingModeHint {
1749 #[inline(always)]
1750 fn new_empty() -> Self {
1751 Self::VeryFast
1752 }
1753
1754 #[inline]
1755 unsafe fn decode(
1756 &mut self,
1757 decoder: &mut fidl::encoding::Decoder<'_, D>,
1758 offset: usize,
1759 _depth: fidl::encoding::Depth,
1760 ) -> fidl::Result<()> {
1761 decoder.debug_check_bounds::<Self>(offset);
1762 let prim = decoder.read_num::<u8>(offset);
1763
1764 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
1765 Ok(())
1766 }
1767 }
1768 unsafe impl fidl::encoding::TypeMarker for CentralError {
1769 type Owned = Self;
1770
1771 #[inline(always)]
1772 fn inline_align(_context: fidl::encoding::Context) -> usize {
1773 std::mem::align_of::<u32>()
1774 }
1775
1776 #[inline(always)]
1777 fn inline_size(_context: fidl::encoding::Context) -> usize {
1778 std::mem::size_of::<u32>()
1779 }
1780
1781 #[inline(always)]
1782 fn encode_is_copy() -> bool {
1783 true
1784 }
1785
1786 #[inline(always)]
1787 fn decode_is_copy() -> bool {
1788 false
1789 }
1790 }
1791
1792 impl fidl::encoding::ValueTypeMarker for CentralError {
1793 type Borrowed<'a> = Self;
1794 #[inline(always)]
1795 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1796 *value
1797 }
1798 }
1799
1800 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for CentralError {
1801 #[inline]
1802 unsafe fn encode(
1803 self,
1804 encoder: &mut fidl::encoding::Encoder<'_, D>,
1805 offset: usize,
1806 _depth: fidl::encoding::Depth,
1807 ) -> fidl::Result<()> {
1808 encoder.debug_check_bounds::<Self>(offset);
1809 encoder.write_num(self.into_primitive(), offset);
1810 Ok(())
1811 }
1812 }
1813
1814 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for CentralError {
1815 #[inline(always)]
1816 fn new_empty() -> Self {
1817 Self::Aborted
1818 }
1819
1820 #[inline]
1821 unsafe fn decode(
1822 &mut self,
1823 decoder: &mut fidl::encoding::Decoder<'_, D>,
1824 offset: usize,
1825 _depth: fidl::encoding::Depth,
1826 ) -> fidl::Result<()> {
1827 decoder.debug_check_bounds::<Self>(offset);
1828 let prim = decoder.read_num::<u32>(offset);
1829
1830 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
1831 Ok(())
1832 }
1833 }
1834 unsafe impl fidl::encoding::TypeMarker for CigFramingOptions {
1835 type Owned = Self;
1836
1837 #[inline(always)]
1838 fn inline_align(_context: fidl::encoding::Context) -> usize {
1839 std::mem::align_of::<u32>()
1840 }
1841
1842 #[inline(always)]
1843 fn inline_size(_context: fidl::encoding::Context) -> usize {
1844 std::mem::size_of::<u32>()
1845 }
1846
1847 #[inline(always)]
1848 fn encode_is_copy() -> bool {
1849 true
1850 }
1851
1852 #[inline(always)]
1853 fn decode_is_copy() -> bool {
1854 false
1855 }
1856 }
1857
1858 impl fidl::encoding::ValueTypeMarker for CigFramingOptions {
1859 type Borrowed<'a> = Self;
1860 #[inline(always)]
1861 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1862 *value
1863 }
1864 }
1865
1866 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
1867 for CigFramingOptions
1868 {
1869 #[inline]
1870 unsafe fn encode(
1871 self,
1872 encoder: &mut fidl::encoding::Encoder<'_, D>,
1873 offset: usize,
1874 _depth: fidl::encoding::Depth,
1875 ) -> fidl::Result<()> {
1876 encoder.debug_check_bounds::<Self>(offset);
1877 encoder.write_num(self.into_primitive(), offset);
1878 Ok(())
1879 }
1880 }
1881
1882 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for CigFramingOptions {
1883 #[inline(always)]
1884 fn new_empty() -> Self {
1885 Self::Unframed
1886 }
1887
1888 #[inline]
1889 unsafe fn decode(
1890 &mut self,
1891 decoder: &mut fidl::encoding::Decoder<'_, D>,
1892 offset: usize,
1893 _depth: fidl::encoding::Depth,
1894 ) -> fidl::Result<()> {
1895 decoder.debug_check_bounds::<Self>(offset);
1896 let prim = decoder.read_num::<u32>(offset);
1897
1898 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
1899 Ok(())
1900 }
1901 }
1902 unsafe impl fidl::encoding::TypeMarker for CigPacking {
1903 type Owned = Self;
1904
1905 #[inline(always)]
1906 fn inline_align(_context: fidl::encoding::Context) -> usize {
1907 std::mem::align_of::<u32>()
1908 }
1909
1910 #[inline(always)]
1911 fn inline_size(_context: fidl::encoding::Context) -> usize {
1912 std::mem::size_of::<u32>()
1913 }
1914
1915 #[inline(always)]
1916 fn encode_is_copy() -> bool {
1917 false
1918 }
1919
1920 #[inline(always)]
1921 fn decode_is_copy() -> bool {
1922 false
1923 }
1924 }
1925
1926 impl fidl::encoding::ValueTypeMarker for CigPacking {
1927 type Borrowed<'a> = Self;
1928 #[inline(always)]
1929 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1930 *value
1931 }
1932 }
1933
1934 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for CigPacking {
1935 #[inline]
1936 unsafe fn encode(
1937 self,
1938 encoder: &mut fidl::encoding::Encoder<'_, D>,
1939 offset: usize,
1940 _depth: fidl::encoding::Depth,
1941 ) -> fidl::Result<()> {
1942 encoder.debug_check_bounds::<Self>(offset);
1943 encoder.write_num(self.into_primitive(), offset);
1944 Ok(())
1945 }
1946 }
1947
1948 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for CigPacking {
1949 #[inline(always)]
1950 fn new_empty() -> Self {
1951 Self::unknown()
1952 }
1953
1954 #[inline]
1955 unsafe fn decode(
1956 &mut self,
1957 decoder: &mut fidl::encoding::Decoder<'_, D>,
1958 offset: usize,
1959 _depth: fidl::encoding::Depth,
1960 ) -> fidl::Result<()> {
1961 decoder.debug_check_bounds::<Self>(offset);
1962 let prim = decoder.read_num::<u32>(offset);
1963
1964 *self = Self::from_primitive_allow_unknown(prim);
1965 Ok(())
1966 }
1967 }
1968 unsafe impl fidl::encoding::TypeMarker for CreateCigError {
1969 type Owned = Self;
1970
1971 #[inline(always)]
1972 fn inline_align(_context: fidl::encoding::Context) -> usize {
1973 std::mem::align_of::<u32>()
1974 }
1975
1976 #[inline(always)]
1977 fn inline_size(_context: fidl::encoding::Context) -> usize {
1978 std::mem::size_of::<u32>()
1979 }
1980
1981 #[inline(always)]
1982 fn encode_is_copy() -> bool {
1983 false
1984 }
1985
1986 #[inline(always)]
1987 fn decode_is_copy() -> bool {
1988 false
1989 }
1990 }
1991
1992 impl fidl::encoding::ValueTypeMarker for CreateCigError {
1993 type Borrowed<'a> = Self;
1994 #[inline(always)]
1995 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1996 *value
1997 }
1998 }
1999
2000 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for CreateCigError {
2001 #[inline]
2002 unsafe fn encode(
2003 self,
2004 encoder: &mut fidl::encoding::Encoder<'_, D>,
2005 offset: usize,
2006 _depth: fidl::encoding::Depth,
2007 ) -> fidl::Result<()> {
2008 encoder.debug_check_bounds::<Self>(offset);
2009 encoder.write_num(self.into_primitive(), offset);
2010 Ok(())
2011 }
2012 }
2013
2014 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for CreateCigError {
2015 #[inline(always)]
2016 fn new_empty() -> Self {
2017 Self::unknown()
2018 }
2019
2020 #[inline]
2021 unsafe fn decode(
2022 &mut self,
2023 decoder: &mut fidl::encoding::Decoder<'_, D>,
2024 offset: usize,
2025 _depth: fidl::encoding::Depth,
2026 ) -> fidl::Result<()> {
2027 decoder.debug_check_bounds::<Self>(offset);
2028 let prim = decoder.read_num::<u32>(offset);
2029
2030 *self = Self::from_primitive_allow_unknown(prim);
2031 Ok(())
2032 }
2033 }
2034 unsafe impl fidl::encoding::TypeMarker for EstablishStreamsError {
2035 type Owned = Self;
2036
2037 #[inline(always)]
2038 fn inline_align(_context: fidl::encoding::Context) -> usize {
2039 std::mem::align_of::<u32>()
2040 }
2041
2042 #[inline(always)]
2043 fn inline_size(_context: fidl::encoding::Context) -> usize {
2044 std::mem::size_of::<u32>()
2045 }
2046
2047 #[inline(always)]
2048 fn encode_is_copy() -> bool {
2049 false
2050 }
2051
2052 #[inline(always)]
2053 fn decode_is_copy() -> bool {
2054 false
2055 }
2056 }
2057
2058 impl fidl::encoding::ValueTypeMarker for EstablishStreamsError {
2059 type Borrowed<'a> = Self;
2060 #[inline(always)]
2061 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2062 *value
2063 }
2064 }
2065
2066 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
2067 for EstablishStreamsError
2068 {
2069 #[inline]
2070 unsafe fn encode(
2071 self,
2072 encoder: &mut fidl::encoding::Encoder<'_, D>,
2073 offset: usize,
2074 _depth: fidl::encoding::Depth,
2075 ) -> fidl::Result<()> {
2076 encoder.debug_check_bounds::<Self>(offset);
2077 encoder.write_num(self.into_primitive(), offset);
2078 Ok(())
2079 }
2080 }
2081
2082 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for EstablishStreamsError {
2083 #[inline(always)]
2084 fn new_empty() -> Self {
2085 Self::unknown()
2086 }
2087
2088 #[inline]
2089 unsafe fn decode(
2090 &mut self,
2091 decoder: &mut fidl::encoding::Decoder<'_, D>,
2092 offset: usize,
2093 _depth: fidl::encoding::Depth,
2094 ) -> fidl::Result<()> {
2095 decoder.debug_check_bounds::<Self>(offset);
2096 let prim = decoder.read_num::<u32>(offset);
2097
2098 *self = Self::from_primitive_allow_unknown(prim);
2099 Ok(())
2100 }
2101 }
2102 unsafe impl fidl::encoding::TypeMarker for IsoPacketStatusFlag {
2103 type Owned = Self;
2104
2105 #[inline(always)]
2106 fn inline_align(_context: fidl::encoding::Context) -> usize {
2107 std::mem::align_of::<u8>()
2108 }
2109
2110 #[inline(always)]
2111 fn inline_size(_context: fidl::encoding::Context) -> usize {
2112 std::mem::size_of::<u8>()
2113 }
2114
2115 #[inline(always)]
2116 fn encode_is_copy() -> bool {
2117 true
2118 }
2119
2120 #[inline(always)]
2121 fn decode_is_copy() -> bool {
2122 false
2123 }
2124 }
2125
2126 impl fidl::encoding::ValueTypeMarker for IsoPacketStatusFlag {
2127 type Borrowed<'a> = Self;
2128 #[inline(always)]
2129 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2130 *value
2131 }
2132 }
2133
2134 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
2135 for IsoPacketStatusFlag
2136 {
2137 #[inline]
2138 unsafe fn encode(
2139 self,
2140 encoder: &mut fidl::encoding::Encoder<'_, D>,
2141 offset: usize,
2142 _depth: fidl::encoding::Depth,
2143 ) -> fidl::Result<()> {
2144 encoder.debug_check_bounds::<Self>(offset);
2145 encoder.write_num(self.into_primitive(), offset);
2146 Ok(())
2147 }
2148 }
2149
2150 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for IsoPacketStatusFlag {
2151 #[inline(always)]
2152 fn new_empty() -> Self {
2153 Self::ValidData
2154 }
2155
2156 #[inline]
2157 unsafe fn decode(
2158 &mut self,
2159 decoder: &mut fidl::encoding::Decoder<'_, D>,
2160 offset: usize,
2161 _depth: fidl::encoding::Depth,
2162 ) -> fidl::Result<()> {
2163 decoder.debug_check_bounds::<Self>(offset);
2164 let prim = decoder.read_num::<u8>(offset);
2165
2166 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
2167 Ok(())
2168 }
2169 }
2170 unsafe impl fidl::encoding::TypeMarker for PeriodicAdvertisingSyncError {
2171 type Owned = Self;
2172
2173 #[inline(always)]
2174 fn inline_align(_context: fidl::encoding::Context) -> usize {
2175 std::mem::align_of::<u32>()
2176 }
2177
2178 #[inline(always)]
2179 fn inline_size(_context: fidl::encoding::Context) -> usize {
2180 std::mem::size_of::<u32>()
2181 }
2182
2183 #[inline(always)]
2184 fn encode_is_copy() -> bool {
2185 false
2186 }
2187
2188 #[inline(always)]
2189 fn decode_is_copy() -> bool {
2190 false
2191 }
2192 }
2193
2194 impl fidl::encoding::ValueTypeMarker for PeriodicAdvertisingSyncError {
2195 type Borrowed<'a> = Self;
2196 #[inline(always)]
2197 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2198 *value
2199 }
2200 }
2201
2202 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
2203 for PeriodicAdvertisingSyncError
2204 {
2205 #[inline]
2206 unsafe fn encode(
2207 self,
2208 encoder: &mut fidl::encoding::Encoder<'_, D>,
2209 offset: usize,
2210 _depth: fidl::encoding::Depth,
2211 ) -> fidl::Result<()> {
2212 encoder.debug_check_bounds::<Self>(offset);
2213 encoder.write_num(self.into_primitive(), offset);
2214 Ok(())
2215 }
2216 }
2217
2218 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2219 for PeriodicAdvertisingSyncError
2220 {
2221 #[inline(always)]
2222 fn new_empty() -> Self {
2223 Self::unknown()
2224 }
2225
2226 #[inline]
2227 unsafe fn decode(
2228 &mut self,
2229 decoder: &mut fidl::encoding::Decoder<'_, D>,
2230 offset: usize,
2231 _depth: fidl::encoding::Depth,
2232 ) -> fidl::Result<()> {
2233 decoder.debug_check_bounds::<Self>(offset);
2234 let prim = decoder.read_num::<u32>(offset);
2235
2236 *self = Self::from_primitive_allow_unknown(prim);
2237 Ok(())
2238 }
2239 }
2240 unsafe impl fidl::encoding::TypeMarker for PeriodicAdvertisingSyncTransferError {
2241 type Owned = Self;
2242
2243 #[inline(always)]
2244 fn inline_align(_context: fidl::encoding::Context) -> usize {
2245 std::mem::align_of::<u32>()
2246 }
2247
2248 #[inline(always)]
2249 fn inline_size(_context: fidl::encoding::Context) -> usize {
2250 std::mem::size_of::<u32>()
2251 }
2252
2253 #[inline(always)]
2254 fn encode_is_copy() -> bool {
2255 false
2256 }
2257
2258 #[inline(always)]
2259 fn decode_is_copy() -> bool {
2260 false
2261 }
2262 }
2263
2264 impl fidl::encoding::ValueTypeMarker for PeriodicAdvertisingSyncTransferError {
2265 type Borrowed<'a> = Self;
2266 #[inline(always)]
2267 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2268 *value
2269 }
2270 }
2271
2272 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
2273 for PeriodicAdvertisingSyncTransferError
2274 {
2275 #[inline]
2276 unsafe fn encode(
2277 self,
2278 encoder: &mut fidl::encoding::Encoder<'_, D>,
2279 offset: usize,
2280 _depth: fidl::encoding::Depth,
2281 ) -> fidl::Result<()> {
2282 encoder.debug_check_bounds::<Self>(offset);
2283 encoder.write_num(self.into_primitive(), offset);
2284 Ok(())
2285 }
2286 }
2287
2288 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2289 for PeriodicAdvertisingSyncTransferError
2290 {
2291 #[inline(always)]
2292 fn new_empty() -> Self {
2293 Self::unknown()
2294 }
2295
2296 #[inline]
2297 unsafe fn decode(
2298 &mut self,
2299 decoder: &mut fidl::encoding::Decoder<'_, D>,
2300 offset: usize,
2301 _depth: fidl::encoding::Depth,
2302 ) -> fidl::Result<()> {
2303 decoder.debug_check_bounds::<Self>(offset);
2304 let prim = decoder.read_num::<u32>(offset);
2305
2306 *self = Self::from_primitive_allow_unknown(prim);
2307 Ok(())
2308 }
2309 }
2310 unsafe impl fidl::encoding::TypeMarker for PeripheralError {
2311 type Owned = Self;
2312
2313 #[inline(always)]
2314 fn inline_align(_context: fidl::encoding::Context) -> usize {
2315 std::mem::align_of::<u32>()
2316 }
2317
2318 #[inline(always)]
2319 fn inline_size(_context: fidl::encoding::Context) -> usize {
2320 std::mem::size_of::<u32>()
2321 }
2322
2323 #[inline(always)]
2324 fn encode_is_copy() -> bool {
2325 true
2326 }
2327
2328 #[inline(always)]
2329 fn decode_is_copy() -> bool {
2330 false
2331 }
2332 }
2333
2334 impl fidl::encoding::ValueTypeMarker for PeripheralError {
2335 type Borrowed<'a> = Self;
2336 #[inline(always)]
2337 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2338 *value
2339 }
2340 }
2341
2342 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
2343 for PeripheralError
2344 {
2345 #[inline]
2346 unsafe fn encode(
2347 self,
2348 encoder: &mut fidl::encoding::Encoder<'_, D>,
2349 offset: usize,
2350 _depth: fidl::encoding::Depth,
2351 ) -> fidl::Result<()> {
2352 encoder.debug_check_bounds::<Self>(offset);
2353 encoder.write_num(self.into_primitive(), offset);
2354 Ok(())
2355 }
2356 }
2357
2358 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for PeripheralError {
2359 #[inline(always)]
2360 fn new_empty() -> Self {
2361 Self::NotSupported
2362 }
2363
2364 #[inline]
2365 unsafe fn decode(
2366 &mut self,
2367 decoder: &mut fidl::encoding::Decoder<'_, D>,
2368 offset: usize,
2369 _depth: fidl::encoding::Depth,
2370 ) -> fidl::Result<()> {
2371 decoder.debug_check_bounds::<Self>(offset);
2372 let prim = decoder.read_num::<u32>(offset);
2373
2374 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
2375 Ok(())
2376 }
2377 }
2378 unsafe impl fidl::encoding::TypeMarker for PhysicalLayer {
2379 type Owned = Self;
2380
2381 #[inline(always)]
2382 fn inline_align(_context: fidl::encoding::Context) -> usize {
2383 std::mem::align_of::<u8>()
2384 }
2385
2386 #[inline(always)]
2387 fn inline_size(_context: fidl::encoding::Context) -> usize {
2388 std::mem::size_of::<u8>()
2389 }
2390
2391 #[inline(always)]
2392 fn encode_is_copy() -> bool {
2393 false
2394 }
2395
2396 #[inline(always)]
2397 fn decode_is_copy() -> bool {
2398 false
2399 }
2400 }
2401
2402 impl fidl::encoding::ValueTypeMarker for PhysicalLayer {
2403 type Borrowed<'a> = Self;
2404 #[inline(always)]
2405 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2406 *value
2407 }
2408 }
2409
2410 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for PhysicalLayer {
2411 #[inline]
2412 unsafe fn encode(
2413 self,
2414 encoder: &mut fidl::encoding::Encoder<'_, D>,
2415 offset: usize,
2416 _depth: fidl::encoding::Depth,
2417 ) -> fidl::Result<()> {
2418 encoder.debug_check_bounds::<Self>(offset);
2419 encoder.write_num(self.into_primitive(), offset);
2420 Ok(())
2421 }
2422 }
2423
2424 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for PhysicalLayer {
2425 #[inline(always)]
2426 fn new_empty() -> Self {
2427 Self::unknown()
2428 }
2429
2430 #[inline]
2431 unsafe fn decode(
2432 &mut self,
2433 decoder: &mut fidl::encoding::Decoder<'_, D>,
2434 offset: usize,
2435 _depth: fidl::encoding::Depth,
2436 ) -> fidl::Result<()> {
2437 decoder.debug_check_bounds::<Self>(offset);
2438 let prim = decoder.read_num::<u8>(offset);
2439
2440 *self = Self::from_primitive_allow_unknown(prim);
2441 Ok(())
2442 }
2443 }
2444
2445 impl fidl::encoding::ValueTypeMarker for AdvertisingDataDeprecated {
2446 type Borrowed<'a> = &'a Self;
2447 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2448 value
2449 }
2450 }
2451
2452 unsafe impl fidl::encoding::TypeMarker for AdvertisingDataDeprecated {
2453 type Owned = Self;
2454
2455 #[inline(always)]
2456 fn inline_align(_context: fidl::encoding::Context) -> usize {
2457 8
2458 }
2459
2460 #[inline(always)]
2461 fn inline_size(_context: fidl::encoding::Context) -> usize {
2462 112
2463 }
2464 }
2465
2466 unsafe impl<D: fidl::encoding::ResourceDialect>
2467 fidl::encoding::Encode<AdvertisingDataDeprecated, D> for &AdvertisingDataDeprecated
2468 {
2469 #[inline]
2470 unsafe fn encode(
2471 self,
2472 encoder: &mut fidl::encoding::Encoder<'_, D>,
2473 offset: usize,
2474 _depth: fidl::encoding::Depth,
2475 ) -> fidl::Result<()> {
2476 encoder.debug_check_bounds::<AdvertisingDataDeprecated>(offset);
2477 fidl::encoding::Encode::<AdvertisingDataDeprecated, D>::encode(
2479 (
2480 <fidl::encoding::Optional<fidl::encoding::BoundedString<248>> as fidl::encoding::ValueTypeMarker>::borrow(&self.name),
2481 <fidl::encoding::Boxed<fidl_fuchsia_bluetooth__common::Int8> as fidl::encoding::ValueTypeMarker>::borrow(&self.tx_power_level),
2482 <fidl::encoding::Boxed<fidl_fuchsia_bluetooth__common::UInt16> as fidl::encoding::ValueTypeMarker>::borrow(&self.appearance),
2483 <fidl::encoding::Optional<fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<36>>> as fidl::encoding::ValueTypeMarker>::borrow(&self.service_uuids),
2484 <fidl::encoding::Optional<fidl::encoding::UnboundedVector<ServiceDataEntry>> as fidl::encoding::ValueTypeMarker>::borrow(&self.service_data),
2485 <fidl::encoding::Optional<fidl::encoding::UnboundedVector<ManufacturerSpecificDataEntry>> as fidl::encoding::ValueTypeMarker>::borrow(&self.manufacturer_specific_data),
2486 <fidl::encoding::Optional<fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<36>>> as fidl::encoding::ValueTypeMarker>::borrow(&self.solicited_service_uuids),
2487 <fidl::encoding::Optional<fidl::encoding::UnboundedVector<fidl::encoding::UnboundedString>> as fidl::encoding::ValueTypeMarker>::borrow(&self.uris),
2488 ),
2489 encoder, offset, _depth
2490 )
2491 }
2492 }
2493 unsafe impl<
2494 D: fidl::encoding::ResourceDialect,
2495 T0: fidl::encoding::Encode<fidl::encoding::Optional<fidl::encoding::BoundedString<248>>, D>,
2496 T1: fidl::encoding::Encode<fidl::encoding::Boxed<fidl_fuchsia_bluetooth__common::Int8>, D>,
2497 T2: fidl::encoding::Encode<fidl::encoding::Boxed<fidl_fuchsia_bluetooth__common::UInt16>, D>,
2498 T3: fidl::encoding::Encode<
2499 fidl::encoding::Optional<
2500 fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<36>>,
2501 >,
2502 D,
2503 >,
2504 T4: fidl::encoding::Encode<
2505 fidl::encoding::Optional<fidl::encoding::UnboundedVector<ServiceDataEntry>>,
2506 D,
2507 >,
2508 T5: fidl::encoding::Encode<
2509 fidl::encoding::Optional<
2510 fidl::encoding::UnboundedVector<ManufacturerSpecificDataEntry>,
2511 >,
2512 D,
2513 >,
2514 T6: fidl::encoding::Encode<
2515 fidl::encoding::Optional<
2516 fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<36>>,
2517 >,
2518 D,
2519 >,
2520 T7: fidl::encoding::Encode<
2521 fidl::encoding::Optional<
2522 fidl::encoding::UnboundedVector<fidl::encoding::UnboundedString>,
2523 >,
2524 D,
2525 >,
2526 > fidl::encoding::Encode<AdvertisingDataDeprecated, D> for (T0, T1, T2, T3, T4, T5, T6, T7)
2527 {
2528 #[inline]
2529 unsafe fn encode(
2530 self,
2531 encoder: &mut fidl::encoding::Encoder<'_, D>,
2532 offset: usize,
2533 depth: fidl::encoding::Depth,
2534 ) -> fidl::Result<()> {
2535 encoder.debug_check_bounds::<AdvertisingDataDeprecated>(offset);
2536 self.0.encode(encoder, offset + 0, depth)?;
2540 self.1.encode(encoder, offset + 16, depth)?;
2541 self.2.encode(encoder, offset + 24, depth)?;
2542 self.3.encode(encoder, offset + 32, depth)?;
2543 self.4.encode(encoder, offset + 48, depth)?;
2544 self.5.encode(encoder, offset + 64, depth)?;
2545 self.6.encode(encoder, offset + 80, depth)?;
2546 self.7.encode(encoder, offset + 96, depth)?;
2547 Ok(())
2548 }
2549 }
2550
2551 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2552 for AdvertisingDataDeprecated
2553 {
2554 #[inline(always)]
2555 fn new_empty() -> Self {
2556 Self {
2557 name: fidl::new_empty!(
2558 fidl::encoding::Optional<fidl::encoding::BoundedString<248>>,
2559 D
2560 ),
2561 tx_power_level: fidl::new_empty!(
2562 fidl::encoding::Boxed<fidl_fuchsia_bluetooth__common::Int8>,
2563 D
2564 ),
2565 appearance: fidl::new_empty!(
2566 fidl::encoding::Boxed<fidl_fuchsia_bluetooth__common::UInt16>,
2567 D
2568 ),
2569 service_uuids: fidl::new_empty!(
2570 fidl::encoding::Optional<
2571 fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<36>>,
2572 >,
2573 D
2574 ),
2575 service_data: fidl::new_empty!(
2576 fidl::encoding::Optional<fidl::encoding::UnboundedVector<ServiceDataEntry>>,
2577 D
2578 ),
2579 manufacturer_specific_data: fidl::new_empty!(
2580 fidl::encoding::Optional<
2581 fidl::encoding::UnboundedVector<ManufacturerSpecificDataEntry>,
2582 >,
2583 D
2584 ),
2585 solicited_service_uuids: fidl::new_empty!(
2586 fidl::encoding::Optional<
2587 fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<36>>,
2588 >,
2589 D
2590 ),
2591 uris: fidl::new_empty!(
2592 fidl::encoding::Optional<
2593 fidl::encoding::UnboundedVector<fidl::encoding::UnboundedString>,
2594 >,
2595 D
2596 ),
2597 }
2598 }
2599
2600 #[inline]
2601 unsafe fn decode(
2602 &mut self,
2603 decoder: &mut fidl::encoding::Decoder<'_, D>,
2604 offset: usize,
2605 _depth: fidl::encoding::Depth,
2606 ) -> fidl::Result<()> {
2607 decoder.debug_check_bounds::<Self>(offset);
2608 fidl::decode!(
2610 fidl::encoding::Optional<fidl::encoding::BoundedString<248>>,
2611 D,
2612 &mut self.name,
2613 decoder,
2614 offset + 0,
2615 _depth
2616 )?;
2617 fidl::decode!(
2618 fidl::encoding::Boxed<fidl_fuchsia_bluetooth__common::Int8>,
2619 D,
2620 &mut self.tx_power_level,
2621 decoder,
2622 offset + 16,
2623 _depth
2624 )?;
2625 fidl::decode!(
2626 fidl::encoding::Boxed<fidl_fuchsia_bluetooth__common::UInt16>,
2627 D,
2628 &mut self.appearance,
2629 decoder,
2630 offset + 24,
2631 _depth
2632 )?;
2633 fidl::decode!(
2634 fidl::encoding::Optional<
2635 fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<36>>,
2636 >,
2637 D,
2638 &mut self.service_uuids,
2639 decoder,
2640 offset + 32,
2641 _depth
2642 )?;
2643 fidl::decode!(
2644 fidl::encoding::Optional<fidl::encoding::UnboundedVector<ServiceDataEntry>>,
2645 D,
2646 &mut self.service_data,
2647 decoder,
2648 offset + 48,
2649 _depth
2650 )?;
2651 fidl::decode!(
2652 fidl::encoding::Optional<
2653 fidl::encoding::UnboundedVector<ManufacturerSpecificDataEntry>,
2654 >,
2655 D,
2656 &mut self.manufacturer_specific_data,
2657 decoder,
2658 offset + 64,
2659 _depth
2660 )?;
2661 fidl::decode!(
2662 fidl::encoding::Optional<
2663 fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<36>>,
2664 >,
2665 D,
2666 &mut self.solicited_service_uuids,
2667 decoder,
2668 offset + 80,
2669 _depth
2670 )?;
2671 fidl::decode!(
2672 fidl::encoding::Optional<
2673 fidl::encoding::UnboundedVector<fidl::encoding::UnboundedString>,
2674 >,
2675 D,
2676 &mut self.uris,
2677 decoder,
2678 offset + 96,
2679 _depth
2680 )?;
2681 Ok(())
2682 }
2683 }
2684
2685 impl fidl::encoding::ValueTypeMarker for CentralConnectPeripheralResponse {
2686 type Borrowed<'a> = &'a Self;
2687 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2688 value
2689 }
2690 }
2691
2692 unsafe impl fidl::encoding::TypeMarker for CentralConnectPeripheralResponse {
2693 type Owned = Self;
2694
2695 #[inline(always)]
2696 fn inline_align(_context: fidl::encoding::Context) -> usize {
2697 8
2698 }
2699
2700 #[inline(always)]
2701 fn inline_size(_context: fidl::encoding::Context) -> usize {
2702 8
2703 }
2704 }
2705
2706 unsafe impl<D: fidl::encoding::ResourceDialect>
2707 fidl::encoding::Encode<CentralConnectPeripheralResponse, D>
2708 for &CentralConnectPeripheralResponse
2709 {
2710 #[inline]
2711 unsafe fn encode(
2712 self,
2713 encoder: &mut fidl::encoding::Encoder<'_, D>,
2714 offset: usize,
2715 _depth: fidl::encoding::Depth,
2716 ) -> fidl::Result<()> {
2717 encoder.debug_check_bounds::<CentralConnectPeripheralResponse>(offset);
2718 fidl::encoding::Encode::<CentralConnectPeripheralResponse, D>::encode(
2720 (
2721 <fidl_fuchsia_bluetooth__common::Status as fidl::encoding::ValueTypeMarker>::borrow(&self.status),
2722 ),
2723 encoder, offset, _depth
2724 )
2725 }
2726 }
2727 unsafe impl<
2728 D: fidl::encoding::ResourceDialect,
2729 T0: fidl::encoding::Encode<fidl_fuchsia_bluetooth__common::Status, D>,
2730 > fidl::encoding::Encode<CentralConnectPeripheralResponse, D> for (T0,)
2731 {
2732 #[inline]
2733 unsafe fn encode(
2734 self,
2735 encoder: &mut fidl::encoding::Encoder<'_, D>,
2736 offset: usize,
2737 depth: fidl::encoding::Depth,
2738 ) -> fidl::Result<()> {
2739 encoder.debug_check_bounds::<CentralConnectPeripheralResponse>(offset);
2740 self.0.encode(encoder, offset + 0, depth)?;
2744 Ok(())
2745 }
2746 }
2747
2748 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2749 for CentralConnectPeripheralResponse
2750 {
2751 #[inline(always)]
2752 fn new_empty() -> Self {
2753 Self { status: fidl::new_empty!(fidl_fuchsia_bluetooth__common::Status, D) }
2754 }
2755
2756 #[inline]
2757 unsafe fn decode(
2758 &mut self,
2759 decoder: &mut fidl::encoding::Decoder<'_, D>,
2760 offset: usize,
2761 _depth: fidl::encoding::Depth,
2762 ) -> fidl::Result<()> {
2763 decoder.debug_check_bounds::<Self>(offset);
2764 fidl::decode!(
2766 fidl_fuchsia_bluetooth__common::Status,
2767 D,
2768 &mut self.status,
2769 decoder,
2770 offset + 0,
2771 _depth
2772 )?;
2773 Ok(())
2774 }
2775 }
2776
2777 impl fidl::encoding::ValueTypeMarker for CentralDisconnectPeripheralRequest {
2778 type Borrowed<'a> = &'a Self;
2779 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2780 value
2781 }
2782 }
2783
2784 unsafe impl fidl::encoding::TypeMarker for CentralDisconnectPeripheralRequest {
2785 type Owned = Self;
2786
2787 #[inline(always)]
2788 fn inline_align(_context: fidl::encoding::Context) -> usize {
2789 8
2790 }
2791
2792 #[inline(always)]
2793 fn inline_size(_context: fidl::encoding::Context) -> usize {
2794 16
2795 }
2796 }
2797
2798 unsafe impl<D: fidl::encoding::ResourceDialect>
2799 fidl::encoding::Encode<CentralDisconnectPeripheralRequest, D>
2800 for &CentralDisconnectPeripheralRequest
2801 {
2802 #[inline]
2803 unsafe fn encode(
2804 self,
2805 encoder: &mut fidl::encoding::Encoder<'_, D>,
2806 offset: usize,
2807 _depth: fidl::encoding::Depth,
2808 ) -> fidl::Result<()> {
2809 encoder.debug_check_bounds::<CentralDisconnectPeripheralRequest>(offset);
2810 fidl::encoding::Encode::<CentralDisconnectPeripheralRequest, D>::encode(
2812 (<fidl::encoding::BoundedString<16> as fidl::encoding::ValueTypeMarker>::borrow(
2813 &self.identifier,
2814 ),),
2815 encoder,
2816 offset,
2817 _depth,
2818 )
2819 }
2820 }
2821 unsafe impl<
2822 D: fidl::encoding::ResourceDialect,
2823 T0: fidl::encoding::Encode<fidl::encoding::BoundedString<16>, D>,
2824 > fidl::encoding::Encode<CentralDisconnectPeripheralRequest, D> for (T0,)
2825 {
2826 #[inline]
2827 unsafe fn encode(
2828 self,
2829 encoder: &mut fidl::encoding::Encoder<'_, D>,
2830 offset: usize,
2831 depth: fidl::encoding::Depth,
2832 ) -> fidl::Result<()> {
2833 encoder.debug_check_bounds::<CentralDisconnectPeripheralRequest>(offset);
2834 self.0.encode(encoder, offset + 0, depth)?;
2838 Ok(())
2839 }
2840 }
2841
2842 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2843 for CentralDisconnectPeripheralRequest
2844 {
2845 #[inline(always)]
2846 fn new_empty() -> Self {
2847 Self { identifier: fidl::new_empty!(fidl::encoding::BoundedString<16>, D) }
2848 }
2849
2850 #[inline]
2851 unsafe fn decode(
2852 &mut self,
2853 decoder: &mut fidl::encoding::Decoder<'_, D>,
2854 offset: usize,
2855 _depth: fidl::encoding::Depth,
2856 ) -> fidl::Result<()> {
2857 decoder.debug_check_bounds::<Self>(offset);
2858 fidl::decode!(
2860 fidl::encoding::BoundedString<16>,
2861 D,
2862 &mut self.identifier,
2863 decoder,
2864 offset + 0,
2865 _depth
2866 )?;
2867 Ok(())
2868 }
2869 }
2870
2871 impl fidl::encoding::ValueTypeMarker for CentralDisconnectPeripheralResponse {
2872 type Borrowed<'a> = &'a Self;
2873 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2874 value
2875 }
2876 }
2877
2878 unsafe impl fidl::encoding::TypeMarker for CentralDisconnectPeripheralResponse {
2879 type Owned = Self;
2880
2881 #[inline(always)]
2882 fn inline_align(_context: fidl::encoding::Context) -> usize {
2883 8
2884 }
2885
2886 #[inline(always)]
2887 fn inline_size(_context: fidl::encoding::Context) -> usize {
2888 8
2889 }
2890 }
2891
2892 unsafe impl<D: fidl::encoding::ResourceDialect>
2893 fidl::encoding::Encode<CentralDisconnectPeripheralResponse, D>
2894 for &CentralDisconnectPeripheralResponse
2895 {
2896 #[inline]
2897 unsafe fn encode(
2898 self,
2899 encoder: &mut fidl::encoding::Encoder<'_, D>,
2900 offset: usize,
2901 _depth: fidl::encoding::Depth,
2902 ) -> fidl::Result<()> {
2903 encoder.debug_check_bounds::<CentralDisconnectPeripheralResponse>(offset);
2904 fidl::encoding::Encode::<CentralDisconnectPeripheralResponse, D>::encode(
2906 (
2907 <fidl_fuchsia_bluetooth__common::Status as fidl::encoding::ValueTypeMarker>::borrow(&self.status),
2908 ),
2909 encoder, offset, _depth
2910 )
2911 }
2912 }
2913 unsafe impl<
2914 D: fidl::encoding::ResourceDialect,
2915 T0: fidl::encoding::Encode<fidl_fuchsia_bluetooth__common::Status, D>,
2916 > fidl::encoding::Encode<CentralDisconnectPeripheralResponse, D> for (T0,)
2917 {
2918 #[inline]
2919 unsafe fn encode(
2920 self,
2921 encoder: &mut fidl::encoding::Encoder<'_, D>,
2922 offset: usize,
2923 depth: fidl::encoding::Depth,
2924 ) -> fidl::Result<()> {
2925 encoder.debug_check_bounds::<CentralDisconnectPeripheralResponse>(offset);
2926 self.0.encode(encoder, offset + 0, depth)?;
2930 Ok(())
2931 }
2932 }
2933
2934 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2935 for CentralDisconnectPeripheralResponse
2936 {
2937 #[inline(always)]
2938 fn new_empty() -> Self {
2939 Self { status: fidl::new_empty!(fidl_fuchsia_bluetooth__common::Status, D) }
2940 }
2941
2942 #[inline]
2943 unsafe fn decode(
2944 &mut self,
2945 decoder: &mut fidl::encoding::Decoder<'_, D>,
2946 offset: usize,
2947 _depth: fidl::encoding::Depth,
2948 ) -> fidl::Result<()> {
2949 decoder.debug_check_bounds::<Self>(offset);
2950 fidl::decode!(
2952 fidl_fuchsia_bluetooth__common::Status,
2953 D,
2954 &mut self.status,
2955 decoder,
2956 offset + 0,
2957 _depth
2958 )?;
2959 Ok(())
2960 }
2961 }
2962
2963 impl fidl::encoding::ValueTypeMarker for CentralGetPeripheralRequest {
2964 type Borrowed<'a> = &'a Self;
2965 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2966 value
2967 }
2968 }
2969
2970 unsafe impl fidl::encoding::TypeMarker for CentralGetPeripheralRequest {
2971 type Owned = Self;
2972
2973 #[inline(always)]
2974 fn inline_align(_context: fidl::encoding::Context) -> usize {
2975 8
2976 }
2977
2978 #[inline(always)]
2979 fn inline_size(_context: fidl::encoding::Context) -> usize {
2980 16
2981 }
2982 }
2983
2984 unsafe impl<D: fidl::encoding::ResourceDialect>
2985 fidl::encoding::Encode<CentralGetPeripheralRequest, D> for &CentralGetPeripheralRequest
2986 {
2987 #[inline]
2988 unsafe fn encode(
2989 self,
2990 encoder: &mut fidl::encoding::Encoder<'_, D>,
2991 offset: usize,
2992 _depth: fidl::encoding::Depth,
2993 ) -> fidl::Result<()> {
2994 encoder.debug_check_bounds::<CentralGetPeripheralRequest>(offset);
2995 fidl::encoding::Encode::<CentralGetPeripheralRequest, D>::encode(
2997 (<fidl::encoding::BoundedString<16> as fidl::encoding::ValueTypeMarker>::borrow(
2998 &self.identifier,
2999 ),),
3000 encoder,
3001 offset,
3002 _depth,
3003 )
3004 }
3005 }
3006 unsafe impl<
3007 D: fidl::encoding::ResourceDialect,
3008 T0: fidl::encoding::Encode<fidl::encoding::BoundedString<16>, D>,
3009 > fidl::encoding::Encode<CentralGetPeripheralRequest, D> for (T0,)
3010 {
3011 #[inline]
3012 unsafe fn encode(
3013 self,
3014 encoder: &mut fidl::encoding::Encoder<'_, D>,
3015 offset: usize,
3016 depth: fidl::encoding::Depth,
3017 ) -> fidl::Result<()> {
3018 encoder.debug_check_bounds::<CentralGetPeripheralRequest>(offset);
3019 self.0.encode(encoder, offset + 0, depth)?;
3023 Ok(())
3024 }
3025 }
3026
3027 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3028 for CentralGetPeripheralRequest
3029 {
3030 #[inline(always)]
3031 fn new_empty() -> Self {
3032 Self { identifier: fidl::new_empty!(fidl::encoding::BoundedString<16>, D) }
3033 }
3034
3035 #[inline]
3036 unsafe fn decode(
3037 &mut self,
3038 decoder: &mut fidl::encoding::Decoder<'_, D>,
3039 offset: usize,
3040 _depth: fidl::encoding::Depth,
3041 ) -> fidl::Result<()> {
3042 decoder.debug_check_bounds::<Self>(offset);
3043 fidl::decode!(
3045 fidl::encoding::BoundedString<16>,
3046 D,
3047 &mut self.identifier,
3048 decoder,
3049 offset + 0,
3050 _depth
3051 )?;
3052 Ok(())
3053 }
3054 }
3055
3056 impl fidl::encoding::ValueTypeMarker for CentralGetPeripheralResponse {
3057 type Borrowed<'a> = &'a Self;
3058 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3059 value
3060 }
3061 }
3062
3063 unsafe impl fidl::encoding::TypeMarker for CentralGetPeripheralResponse {
3064 type Owned = Self;
3065
3066 #[inline(always)]
3067 fn inline_align(_context: fidl::encoding::Context) -> usize {
3068 8
3069 }
3070
3071 #[inline(always)]
3072 fn inline_size(_context: fidl::encoding::Context) -> usize {
3073 8
3074 }
3075 }
3076
3077 unsafe impl<D: fidl::encoding::ResourceDialect>
3078 fidl::encoding::Encode<CentralGetPeripheralResponse, D> for &CentralGetPeripheralResponse
3079 {
3080 #[inline]
3081 unsafe fn encode(
3082 self,
3083 encoder: &mut fidl::encoding::Encoder<'_, D>,
3084 offset: usize,
3085 _depth: fidl::encoding::Depth,
3086 ) -> fidl::Result<()> {
3087 encoder.debug_check_bounds::<CentralGetPeripheralResponse>(offset);
3088 fidl::encoding::Encode::<CentralGetPeripheralResponse, D>::encode(
3090 (<fidl::encoding::Boxed<RemoteDevice> as fidl::encoding::ValueTypeMarker>::borrow(
3091 &self.peripheral,
3092 ),),
3093 encoder,
3094 offset,
3095 _depth,
3096 )
3097 }
3098 }
3099 unsafe impl<
3100 D: fidl::encoding::ResourceDialect,
3101 T0: fidl::encoding::Encode<fidl::encoding::Boxed<RemoteDevice>, D>,
3102 > fidl::encoding::Encode<CentralGetPeripheralResponse, D> for (T0,)
3103 {
3104 #[inline]
3105 unsafe fn encode(
3106 self,
3107 encoder: &mut fidl::encoding::Encoder<'_, D>,
3108 offset: usize,
3109 depth: fidl::encoding::Depth,
3110 ) -> fidl::Result<()> {
3111 encoder.debug_check_bounds::<CentralGetPeripheralResponse>(offset);
3112 self.0.encode(encoder, offset + 0, depth)?;
3116 Ok(())
3117 }
3118 }
3119
3120 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3121 for CentralGetPeripheralResponse
3122 {
3123 #[inline(always)]
3124 fn new_empty() -> Self {
3125 Self { peripheral: fidl::new_empty!(fidl::encoding::Boxed<RemoteDevice>, D) }
3126 }
3127
3128 #[inline]
3129 unsafe fn decode(
3130 &mut self,
3131 decoder: &mut fidl::encoding::Decoder<'_, D>,
3132 offset: usize,
3133 _depth: fidl::encoding::Depth,
3134 ) -> fidl::Result<()> {
3135 decoder.debug_check_bounds::<Self>(offset);
3136 fidl::decode!(
3138 fidl::encoding::Boxed<RemoteDevice>,
3139 D,
3140 &mut self.peripheral,
3141 decoder,
3142 offset + 0,
3143 _depth
3144 )?;
3145 Ok(())
3146 }
3147 }
3148
3149 impl fidl::encoding::ValueTypeMarker for CentralGetPeripheralsRequest {
3150 type Borrowed<'a> = &'a Self;
3151 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3152 value
3153 }
3154 }
3155
3156 unsafe impl fidl::encoding::TypeMarker for CentralGetPeripheralsRequest {
3157 type Owned = Self;
3158
3159 #[inline(always)]
3160 fn inline_align(_context: fidl::encoding::Context) -> usize {
3161 8
3162 }
3163
3164 #[inline(always)]
3165 fn inline_size(_context: fidl::encoding::Context) -> usize {
3166 16
3167 }
3168 }
3169
3170 unsafe impl<D: fidl::encoding::ResourceDialect>
3171 fidl::encoding::Encode<CentralGetPeripheralsRequest, D> for &CentralGetPeripheralsRequest
3172 {
3173 #[inline]
3174 unsafe fn encode(
3175 self,
3176 encoder: &mut fidl::encoding::Encoder<'_, D>,
3177 offset: usize,
3178 _depth: fidl::encoding::Depth,
3179 ) -> fidl::Result<()> {
3180 encoder.debug_check_bounds::<CentralGetPeripheralsRequest>(offset);
3181 fidl::encoding::Encode::<CentralGetPeripheralsRequest, D>::encode(
3183 (<fidl::encoding::Optional<
3184 fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<36>>,
3185 > as fidl::encoding::ValueTypeMarker>::borrow(&self.service_uuids),),
3186 encoder,
3187 offset,
3188 _depth,
3189 )
3190 }
3191 }
3192 unsafe impl<
3193 D: fidl::encoding::ResourceDialect,
3194 T0: fidl::encoding::Encode<
3195 fidl::encoding::Optional<
3196 fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<36>>,
3197 >,
3198 D,
3199 >,
3200 > fidl::encoding::Encode<CentralGetPeripheralsRequest, D> for (T0,)
3201 {
3202 #[inline]
3203 unsafe fn encode(
3204 self,
3205 encoder: &mut fidl::encoding::Encoder<'_, D>,
3206 offset: usize,
3207 depth: fidl::encoding::Depth,
3208 ) -> fidl::Result<()> {
3209 encoder.debug_check_bounds::<CentralGetPeripheralsRequest>(offset);
3210 self.0.encode(encoder, offset + 0, depth)?;
3214 Ok(())
3215 }
3216 }
3217
3218 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3219 for CentralGetPeripheralsRequest
3220 {
3221 #[inline(always)]
3222 fn new_empty() -> Self {
3223 Self {
3224 service_uuids: fidl::new_empty!(
3225 fidl::encoding::Optional<
3226 fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<36>>,
3227 >,
3228 D
3229 ),
3230 }
3231 }
3232
3233 #[inline]
3234 unsafe fn decode(
3235 &mut self,
3236 decoder: &mut fidl::encoding::Decoder<'_, D>,
3237 offset: usize,
3238 _depth: fidl::encoding::Depth,
3239 ) -> fidl::Result<()> {
3240 decoder.debug_check_bounds::<Self>(offset);
3241 fidl::decode!(
3243 fidl::encoding::Optional<
3244 fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<36>>,
3245 >,
3246 D,
3247 &mut self.service_uuids,
3248 decoder,
3249 offset + 0,
3250 _depth
3251 )?;
3252 Ok(())
3253 }
3254 }
3255
3256 impl fidl::encoding::ValueTypeMarker for CentralGetPeripheralsResponse {
3257 type Borrowed<'a> = &'a Self;
3258 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3259 value
3260 }
3261 }
3262
3263 unsafe impl fidl::encoding::TypeMarker for CentralGetPeripheralsResponse {
3264 type Owned = Self;
3265
3266 #[inline(always)]
3267 fn inline_align(_context: fidl::encoding::Context) -> usize {
3268 8
3269 }
3270
3271 #[inline(always)]
3272 fn inline_size(_context: fidl::encoding::Context) -> usize {
3273 16
3274 }
3275 }
3276
3277 unsafe impl<D: fidl::encoding::ResourceDialect>
3278 fidl::encoding::Encode<CentralGetPeripheralsResponse, D>
3279 for &CentralGetPeripheralsResponse
3280 {
3281 #[inline]
3282 unsafe fn encode(
3283 self,
3284 encoder: &mut fidl::encoding::Encoder<'_, D>,
3285 offset: usize,
3286 _depth: fidl::encoding::Depth,
3287 ) -> fidl::Result<()> {
3288 encoder.debug_check_bounds::<CentralGetPeripheralsResponse>(offset);
3289 fidl::encoding::Encode::<CentralGetPeripheralsResponse, D>::encode(
3291 (
3292 <fidl::encoding::UnboundedVector<RemoteDevice> as fidl::encoding::ValueTypeMarker>::borrow(&self.peripherals),
3293 ),
3294 encoder, offset, _depth
3295 )
3296 }
3297 }
3298 unsafe impl<
3299 D: fidl::encoding::ResourceDialect,
3300 T0: fidl::encoding::Encode<fidl::encoding::UnboundedVector<RemoteDevice>, D>,
3301 > fidl::encoding::Encode<CentralGetPeripheralsResponse, D> for (T0,)
3302 {
3303 #[inline]
3304 unsafe fn encode(
3305 self,
3306 encoder: &mut fidl::encoding::Encoder<'_, D>,
3307 offset: usize,
3308 depth: fidl::encoding::Depth,
3309 ) -> fidl::Result<()> {
3310 encoder.debug_check_bounds::<CentralGetPeripheralsResponse>(offset);
3311 self.0.encode(encoder, offset + 0, depth)?;
3315 Ok(())
3316 }
3317 }
3318
3319 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3320 for CentralGetPeripheralsResponse
3321 {
3322 #[inline(always)]
3323 fn new_empty() -> Self {
3324 Self { peripherals: fidl::new_empty!(fidl::encoding::UnboundedVector<RemoteDevice>, D) }
3325 }
3326
3327 #[inline]
3328 unsafe fn decode(
3329 &mut self,
3330 decoder: &mut fidl::encoding::Decoder<'_, D>,
3331 offset: usize,
3332 _depth: fidl::encoding::Depth,
3333 ) -> fidl::Result<()> {
3334 decoder.debug_check_bounds::<Self>(offset);
3335 fidl::decode!(
3337 fidl::encoding::UnboundedVector<RemoteDevice>,
3338 D,
3339 &mut self.peripherals,
3340 decoder,
3341 offset + 0,
3342 _depth
3343 )?;
3344 Ok(())
3345 }
3346 }
3347
3348 impl fidl::encoding::ValueTypeMarker for CentralOnDeviceDiscoveredRequest {
3349 type Borrowed<'a> = &'a Self;
3350 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3351 value
3352 }
3353 }
3354
3355 unsafe impl fidl::encoding::TypeMarker for CentralOnDeviceDiscoveredRequest {
3356 type Owned = Self;
3357
3358 #[inline(always)]
3359 fn inline_align(_context: fidl::encoding::Context) -> usize {
3360 8
3361 }
3362
3363 #[inline(always)]
3364 fn inline_size(_context: fidl::encoding::Context) -> usize {
3365 40
3366 }
3367 }
3368
3369 unsafe impl<D: fidl::encoding::ResourceDialect>
3370 fidl::encoding::Encode<CentralOnDeviceDiscoveredRequest, D>
3371 for &CentralOnDeviceDiscoveredRequest
3372 {
3373 #[inline]
3374 unsafe fn encode(
3375 self,
3376 encoder: &mut fidl::encoding::Encoder<'_, D>,
3377 offset: usize,
3378 _depth: fidl::encoding::Depth,
3379 ) -> fidl::Result<()> {
3380 encoder.debug_check_bounds::<CentralOnDeviceDiscoveredRequest>(offset);
3381 fidl::encoding::Encode::<CentralOnDeviceDiscoveredRequest, D>::encode(
3383 (<RemoteDevice as fidl::encoding::ValueTypeMarker>::borrow(&self.device),),
3384 encoder,
3385 offset,
3386 _depth,
3387 )
3388 }
3389 }
3390 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<RemoteDevice, D>>
3391 fidl::encoding::Encode<CentralOnDeviceDiscoveredRequest, D> for (T0,)
3392 {
3393 #[inline]
3394 unsafe fn encode(
3395 self,
3396 encoder: &mut fidl::encoding::Encoder<'_, D>,
3397 offset: usize,
3398 depth: fidl::encoding::Depth,
3399 ) -> fidl::Result<()> {
3400 encoder.debug_check_bounds::<CentralOnDeviceDiscoveredRequest>(offset);
3401 self.0.encode(encoder, offset + 0, depth)?;
3405 Ok(())
3406 }
3407 }
3408
3409 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3410 for CentralOnDeviceDiscoveredRequest
3411 {
3412 #[inline(always)]
3413 fn new_empty() -> Self {
3414 Self { device: fidl::new_empty!(RemoteDevice, D) }
3415 }
3416
3417 #[inline]
3418 unsafe fn decode(
3419 &mut self,
3420 decoder: &mut fidl::encoding::Decoder<'_, D>,
3421 offset: usize,
3422 _depth: fidl::encoding::Depth,
3423 ) -> fidl::Result<()> {
3424 decoder.debug_check_bounds::<Self>(offset);
3425 fidl::decode!(RemoteDevice, D, &mut self.device, decoder, offset + 0, _depth)?;
3427 Ok(())
3428 }
3429 }
3430
3431 impl fidl::encoding::ValueTypeMarker for CentralOnPeripheralDisconnectedRequest {
3432 type Borrowed<'a> = &'a Self;
3433 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3434 value
3435 }
3436 }
3437
3438 unsafe impl fidl::encoding::TypeMarker for CentralOnPeripheralDisconnectedRequest {
3439 type Owned = Self;
3440
3441 #[inline(always)]
3442 fn inline_align(_context: fidl::encoding::Context) -> usize {
3443 8
3444 }
3445
3446 #[inline(always)]
3447 fn inline_size(_context: fidl::encoding::Context) -> usize {
3448 16
3449 }
3450 }
3451
3452 unsafe impl<D: fidl::encoding::ResourceDialect>
3453 fidl::encoding::Encode<CentralOnPeripheralDisconnectedRequest, D>
3454 for &CentralOnPeripheralDisconnectedRequest
3455 {
3456 #[inline]
3457 unsafe fn encode(
3458 self,
3459 encoder: &mut fidl::encoding::Encoder<'_, D>,
3460 offset: usize,
3461 _depth: fidl::encoding::Depth,
3462 ) -> fidl::Result<()> {
3463 encoder.debug_check_bounds::<CentralOnPeripheralDisconnectedRequest>(offset);
3464 fidl::encoding::Encode::<CentralOnPeripheralDisconnectedRequest, D>::encode(
3466 (<fidl::encoding::BoundedString<16> as fidl::encoding::ValueTypeMarker>::borrow(
3467 &self.identifier,
3468 ),),
3469 encoder,
3470 offset,
3471 _depth,
3472 )
3473 }
3474 }
3475 unsafe impl<
3476 D: fidl::encoding::ResourceDialect,
3477 T0: fidl::encoding::Encode<fidl::encoding::BoundedString<16>, D>,
3478 > fidl::encoding::Encode<CentralOnPeripheralDisconnectedRequest, D> for (T0,)
3479 {
3480 #[inline]
3481 unsafe fn encode(
3482 self,
3483 encoder: &mut fidl::encoding::Encoder<'_, D>,
3484 offset: usize,
3485 depth: fidl::encoding::Depth,
3486 ) -> fidl::Result<()> {
3487 encoder.debug_check_bounds::<CentralOnPeripheralDisconnectedRequest>(offset);
3488 self.0.encode(encoder, offset + 0, depth)?;
3492 Ok(())
3493 }
3494 }
3495
3496 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3497 for CentralOnPeripheralDisconnectedRequest
3498 {
3499 #[inline(always)]
3500 fn new_empty() -> Self {
3501 Self { identifier: fidl::new_empty!(fidl::encoding::BoundedString<16>, D) }
3502 }
3503
3504 #[inline]
3505 unsafe fn decode(
3506 &mut self,
3507 decoder: &mut fidl::encoding::Decoder<'_, D>,
3508 offset: usize,
3509 _depth: fidl::encoding::Depth,
3510 ) -> fidl::Result<()> {
3511 decoder.debug_check_bounds::<Self>(offset);
3512 fidl::decode!(
3514 fidl::encoding::BoundedString<16>,
3515 D,
3516 &mut self.identifier,
3517 decoder,
3518 offset + 0,
3519 _depth
3520 )?;
3521 Ok(())
3522 }
3523 }
3524
3525 impl fidl::encoding::ValueTypeMarker for CentralOnScanStateChangedRequest {
3526 type Borrowed<'a> = &'a Self;
3527 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3528 value
3529 }
3530 }
3531
3532 unsafe impl fidl::encoding::TypeMarker for CentralOnScanStateChangedRequest {
3533 type Owned = Self;
3534
3535 #[inline(always)]
3536 fn inline_align(_context: fidl::encoding::Context) -> usize {
3537 1
3538 }
3539
3540 #[inline(always)]
3541 fn inline_size(_context: fidl::encoding::Context) -> usize {
3542 1
3543 }
3544 }
3545
3546 unsafe impl<D: fidl::encoding::ResourceDialect>
3547 fidl::encoding::Encode<CentralOnScanStateChangedRequest, D>
3548 for &CentralOnScanStateChangedRequest
3549 {
3550 #[inline]
3551 unsafe fn encode(
3552 self,
3553 encoder: &mut fidl::encoding::Encoder<'_, D>,
3554 offset: usize,
3555 _depth: fidl::encoding::Depth,
3556 ) -> fidl::Result<()> {
3557 encoder.debug_check_bounds::<CentralOnScanStateChangedRequest>(offset);
3558 fidl::encoding::Encode::<CentralOnScanStateChangedRequest, D>::encode(
3560 (<bool as fidl::encoding::ValueTypeMarker>::borrow(&self.scanning),),
3561 encoder,
3562 offset,
3563 _depth,
3564 )
3565 }
3566 }
3567 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<bool, D>>
3568 fidl::encoding::Encode<CentralOnScanStateChangedRequest, D> for (T0,)
3569 {
3570 #[inline]
3571 unsafe fn encode(
3572 self,
3573 encoder: &mut fidl::encoding::Encoder<'_, D>,
3574 offset: usize,
3575 depth: fidl::encoding::Depth,
3576 ) -> fidl::Result<()> {
3577 encoder.debug_check_bounds::<CentralOnScanStateChangedRequest>(offset);
3578 self.0.encode(encoder, offset + 0, depth)?;
3582 Ok(())
3583 }
3584 }
3585
3586 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3587 for CentralOnScanStateChangedRequest
3588 {
3589 #[inline(always)]
3590 fn new_empty() -> Self {
3591 Self { scanning: fidl::new_empty!(bool, D) }
3592 }
3593
3594 #[inline]
3595 unsafe fn decode(
3596 &mut self,
3597 decoder: &mut fidl::encoding::Decoder<'_, D>,
3598 offset: usize,
3599 _depth: fidl::encoding::Depth,
3600 ) -> fidl::Result<()> {
3601 decoder.debug_check_bounds::<Self>(offset);
3602 fidl::decode!(bool, D, &mut self.scanning, decoder, offset + 0, _depth)?;
3604 Ok(())
3605 }
3606 }
3607
3608 impl fidl::encoding::ValueTypeMarker for CentralStartScanRequest {
3609 type Borrowed<'a> = &'a Self;
3610 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3611 value
3612 }
3613 }
3614
3615 unsafe impl fidl::encoding::TypeMarker for CentralStartScanRequest {
3616 type Owned = Self;
3617
3618 #[inline(always)]
3619 fn inline_align(_context: fidl::encoding::Context) -> usize {
3620 8
3621 }
3622
3623 #[inline(always)]
3624 fn inline_size(_context: fidl::encoding::Context) -> usize {
3625 8
3626 }
3627 }
3628
3629 unsafe impl<D: fidl::encoding::ResourceDialect>
3630 fidl::encoding::Encode<CentralStartScanRequest, D> for &CentralStartScanRequest
3631 {
3632 #[inline]
3633 unsafe fn encode(
3634 self,
3635 encoder: &mut fidl::encoding::Encoder<'_, D>,
3636 offset: usize,
3637 _depth: fidl::encoding::Depth,
3638 ) -> fidl::Result<()> {
3639 encoder.debug_check_bounds::<CentralStartScanRequest>(offset);
3640 fidl::encoding::Encode::<CentralStartScanRequest, D>::encode(
3642 (<fidl::encoding::Boxed<ScanFilter> as fidl::encoding::ValueTypeMarker>::borrow(
3643 &self.filter,
3644 ),),
3645 encoder,
3646 offset,
3647 _depth,
3648 )
3649 }
3650 }
3651 unsafe impl<
3652 D: fidl::encoding::ResourceDialect,
3653 T0: fidl::encoding::Encode<fidl::encoding::Boxed<ScanFilter>, D>,
3654 > fidl::encoding::Encode<CentralStartScanRequest, D> for (T0,)
3655 {
3656 #[inline]
3657 unsafe fn encode(
3658 self,
3659 encoder: &mut fidl::encoding::Encoder<'_, D>,
3660 offset: usize,
3661 depth: fidl::encoding::Depth,
3662 ) -> fidl::Result<()> {
3663 encoder.debug_check_bounds::<CentralStartScanRequest>(offset);
3664 self.0.encode(encoder, offset + 0, depth)?;
3668 Ok(())
3669 }
3670 }
3671
3672 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3673 for CentralStartScanRequest
3674 {
3675 #[inline(always)]
3676 fn new_empty() -> Self {
3677 Self { filter: fidl::new_empty!(fidl::encoding::Boxed<ScanFilter>, D) }
3678 }
3679
3680 #[inline]
3681 unsafe fn decode(
3682 &mut self,
3683 decoder: &mut fidl::encoding::Decoder<'_, D>,
3684 offset: usize,
3685 _depth: fidl::encoding::Depth,
3686 ) -> fidl::Result<()> {
3687 decoder.debug_check_bounds::<Self>(offset);
3688 fidl::decode!(
3690 fidl::encoding::Boxed<ScanFilter>,
3691 D,
3692 &mut self.filter,
3693 decoder,
3694 offset + 0,
3695 _depth
3696 )?;
3697 Ok(())
3698 }
3699 }
3700
3701 impl fidl::encoding::ValueTypeMarker for CentralStartScanResponse {
3702 type Borrowed<'a> = &'a Self;
3703 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3704 value
3705 }
3706 }
3707
3708 unsafe impl fidl::encoding::TypeMarker for CentralStartScanResponse {
3709 type Owned = Self;
3710
3711 #[inline(always)]
3712 fn inline_align(_context: fidl::encoding::Context) -> usize {
3713 8
3714 }
3715
3716 #[inline(always)]
3717 fn inline_size(_context: fidl::encoding::Context) -> usize {
3718 8
3719 }
3720 }
3721
3722 unsafe impl<D: fidl::encoding::ResourceDialect>
3723 fidl::encoding::Encode<CentralStartScanResponse, D> for &CentralStartScanResponse
3724 {
3725 #[inline]
3726 unsafe fn encode(
3727 self,
3728 encoder: &mut fidl::encoding::Encoder<'_, D>,
3729 offset: usize,
3730 _depth: fidl::encoding::Depth,
3731 ) -> fidl::Result<()> {
3732 encoder.debug_check_bounds::<CentralStartScanResponse>(offset);
3733 fidl::encoding::Encode::<CentralStartScanResponse, D>::encode(
3735 (
3736 <fidl_fuchsia_bluetooth__common::Status as fidl::encoding::ValueTypeMarker>::borrow(&self.status),
3737 ),
3738 encoder, offset, _depth
3739 )
3740 }
3741 }
3742 unsafe impl<
3743 D: fidl::encoding::ResourceDialect,
3744 T0: fidl::encoding::Encode<fidl_fuchsia_bluetooth__common::Status, D>,
3745 > fidl::encoding::Encode<CentralStartScanResponse, D> for (T0,)
3746 {
3747 #[inline]
3748 unsafe fn encode(
3749 self,
3750 encoder: &mut fidl::encoding::Encoder<'_, D>,
3751 offset: usize,
3752 depth: fidl::encoding::Depth,
3753 ) -> fidl::Result<()> {
3754 encoder.debug_check_bounds::<CentralStartScanResponse>(offset);
3755 self.0.encode(encoder, offset + 0, depth)?;
3759 Ok(())
3760 }
3761 }
3762
3763 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3764 for CentralStartScanResponse
3765 {
3766 #[inline(always)]
3767 fn new_empty() -> Self {
3768 Self { status: fidl::new_empty!(fidl_fuchsia_bluetooth__common::Status, D) }
3769 }
3770
3771 #[inline]
3772 unsafe fn decode(
3773 &mut self,
3774 decoder: &mut fidl::encoding::Decoder<'_, D>,
3775 offset: usize,
3776 _depth: fidl::encoding::Depth,
3777 ) -> fidl::Result<()> {
3778 decoder.debug_check_bounds::<Self>(offset);
3779 fidl::decode!(
3781 fidl_fuchsia_bluetooth__common::Status,
3782 D,
3783 &mut self.status,
3784 decoder,
3785 offset + 0,
3786 _depth
3787 )?;
3788 Ok(())
3789 }
3790 }
3791
3792 impl fidl::encoding::ValueTypeMarker for ManufacturerData {
3793 type Borrowed<'a> = &'a Self;
3794 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3795 value
3796 }
3797 }
3798
3799 unsafe impl fidl::encoding::TypeMarker for ManufacturerData {
3800 type Owned = Self;
3801
3802 #[inline(always)]
3803 fn inline_align(_context: fidl::encoding::Context) -> usize {
3804 8
3805 }
3806
3807 #[inline(always)]
3808 fn inline_size(_context: fidl::encoding::Context) -> usize {
3809 24
3810 }
3811 }
3812
3813 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ManufacturerData, D>
3814 for &ManufacturerData
3815 {
3816 #[inline]
3817 unsafe fn encode(
3818 self,
3819 encoder: &mut fidl::encoding::Encoder<'_, D>,
3820 offset: usize,
3821 _depth: fidl::encoding::Depth,
3822 ) -> fidl::Result<()> {
3823 encoder.debug_check_bounds::<ManufacturerData>(offset);
3824 fidl::encoding::Encode::<ManufacturerData, D>::encode(
3826 (
3827 <u16 as fidl::encoding::ValueTypeMarker>::borrow(&self.company_id),
3828 <fidl::encoding::Vector<u8, 252> as fidl::encoding::ValueTypeMarker>::borrow(
3829 &self.data,
3830 ),
3831 ),
3832 encoder,
3833 offset,
3834 _depth,
3835 )
3836 }
3837 }
3838 unsafe impl<
3839 D: fidl::encoding::ResourceDialect,
3840 T0: fidl::encoding::Encode<u16, D>,
3841 T1: fidl::encoding::Encode<fidl::encoding::Vector<u8, 252>, D>,
3842 > fidl::encoding::Encode<ManufacturerData, D> for (T0, T1)
3843 {
3844 #[inline]
3845 unsafe fn encode(
3846 self,
3847 encoder: &mut fidl::encoding::Encoder<'_, D>,
3848 offset: usize,
3849 depth: fidl::encoding::Depth,
3850 ) -> fidl::Result<()> {
3851 encoder.debug_check_bounds::<ManufacturerData>(offset);
3852 unsafe {
3855 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(0);
3856 (ptr as *mut u64).write_unaligned(0);
3857 }
3858 self.0.encode(encoder, offset + 0, depth)?;
3860 self.1.encode(encoder, offset + 8, depth)?;
3861 Ok(())
3862 }
3863 }
3864
3865 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ManufacturerData {
3866 #[inline(always)]
3867 fn new_empty() -> Self {
3868 Self {
3869 company_id: fidl::new_empty!(u16, D),
3870 data: fidl::new_empty!(fidl::encoding::Vector<u8, 252>, D),
3871 }
3872 }
3873
3874 #[inline]
3875 unsafe fn decode(
3876 &mut self,
3877 decoder: &mut fidl::encoding::Decoder<'_, D>,
3878 offset: usize,
3879 _depth: fidl::encoding::Depth,
3880 ) -> fidl::Result<()> {
3881 decoder.debug_check_bounds::<Self>(offset);
3882 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(0) };
3884 let padval = unsafe { (ptr as *const u64).read_unaligned() };
3885 let mask = 0xffffffffffff0000u64;
3886 let maskedval = padval & mask;
3887 if maskedval != 0 {
3888 return Err(fidl::Error::NonZeroPadding {
3889 padding_start: offset + 0 + ((mask as u64).trailing_zeros() / 8) as usize,
3890 });
3891 }
3892 fidl::decode!(u16, D, &mut self.company_id, decoder, offset + 0, _depth)?;
3893 fidl::decode!(fidl::encoding::Vector<u8, 252>, D, &mut self.data, decoder, offset + 8, _depth)?;
3894 Ok(())
3895 }
3896 }
3897
3898 impl fidl::encoding::ValueTypeMarker for ManufacturerSpecificDataEntry {
3899 type Borrowed<'a> = &'a Self;
3900 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3901 value
3902 }
3903 }
3904
3905 unsafe impl fidl::encoding::TypeMarker for ManufacturerSpecificDataEntry {
3906 type Owned = Self;
3907
3908 #[inline(always)]
3909 fn inline_align(_context: fidl::encoding::Context) -> usize {
3910 8
3911 }
3912
3913 #[inline(always)]
3914 fn inline_size(_context: fidl::encoding::Context) -> usize {
3915 24
3916 }
3917 }
3918
3919 unsafe impl<D: fidl::encoding::ResourceDialect>
3920 fidl::encoding::Encode<ManufacturerSpecificDataEntry, D>
3921 for &ManufacturerSpecificDataEntry
3922 {
3923 #[inline]
3924 unsafe fn encode(
3925 self,
3926 encoder: &mut fidl::encoding::Encoder<'_, D>,
3927 offset: usize,
3928 _depth: fidl::encoding::Depth,
3929 ) -> fidl::Result<()> {
3930 encoder.debug_check_bounds::<ManufacturerSpecificDataEntry>(offset);
3931 fidl::encoding::Encode::<ManufacturerSpecificDataEntry, D>::encode(
3933 (
3934 <u16 as fidl::encoding::ValueTypeMarker>::borrow(&self.company_id),
3935 <fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow(&self.data),
3936 ),
3937 encoder, offset, _depth
3938 )
3939 }
3940 }
3941 unsafe impl<
3942 D: fidl::encoding::ResourceDialect,
3943 T0: fidl::encoding::Encode<u16, D>,
3944 T1: fidl::encoding::Encode<fidl::encoding::UnboundedVector<u8>, D>,
3945 > fidl::encoding::Encode<ManufacturerSpecificDataEntry, D> for (T0, T1)
3946 {
3947 #[inline]
3948 unsafe fn encode(
3949 self,
3950 encoder: &mut fidl::encoding::Encoder<'_, D>,
3951 offset: usize,
3952 depth: fidl::encoding::Depth,
3953 ) -> fidl::Result<()> {
3954 encoder.debug_check_bounds::<ManufacturerSpecificDataEntry>(offset);
3955 unsafe {
3958 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(0);
3959 (ptr as *mut u64).write_unaligned(0);
3960 }
3961 self.0.encode(encoder, offset + 0, depth)?;
3963 self.1.encode(encoder, offset + 8, depth)?;
3964 Ok(())
3965 }
3966 }
3967
3968 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3969 for ManufacturerSpecificDataEntry
3970 {
3971 #[inline(always)]
3972 fn new_empty() -> Self {
3973 Self {
3974 company_id: fidl::new_empty!(u16, D),
3975 data: fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D),
3976 }
3977 }
3978
3979 #[inline]
3980 unsafe fn decode(
3981 &mut self,
3982 decoder: &mut fidl::encoding::Decoder<'_, D>,
3983 offset: usize,
3984 _depth: fidl::encoding::Depth,
3985 ) -> fidl::Result<()> {
3986 decoder.debug_check_bounds::<Self>(offset);
3987 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(0) };
3989 let padval = unsafe { (ptr as *const u64).read_unaligned() };
3990 let mask = 0xffffffffffff0000u64;
3991 let maskedval = padval & mask;
3992 if maskedval != 0 {
3993 return Err(fidl::Error::NonZeroPadding {
3994 padding_start: offset + 0 + ((mask as u64).trailing_zeros() / 8) as usize,
3995 });
3996 }
3997 fidl::decode!(u16, D, &mut self.company_id, decoder, offset + 0, _depth)?;
3998 fidl::decode!(
3999 fidl::encoding::UnboundedVector<u8>,
4000 D,
4001 &mut self.data,
4002 decoder,
4003 offset + 8,
4004 _depth
4005 )?;
4006 Ok(())
4007 }
4008 }
4009
4010 impl fidl::encoding::ValueTypeMarker for PeriodicAdvertisingSyncId {
4011 type Borrowed<'a> = &'a Self;
4012 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4013 value
4014 }
4015 }
4016
4017 unsafe impl fidl::encoding::TypeMarker for PeriodicAdvertisingSyncId {
4018 type Owned = Self;
4019
4020 #[inline(always)]
4021 fn inline_align(_context: fidl::encoding::Context) -> usize {
4022 8
4023 }
4024
4025 #[inline(always)]
4026 fn inline_size(_context: fidl::encoding::Context) -> usize {
4027 8
4028 }
4029 #[inline(always)]
4030 fn encode_is_copy() -> bool {
4031 true
4032 }
4033
4034 #[inline(always)]
4035 fn decode_is_copy() -> bool {
4036 true
4037 }
4038 }
4039
4040 unsafe impl<D: fidl::encoding::ResourceDialect>
4041 fidl::encoding::Encode<PeriodicAdvertisingSyncId, D> for &PeriodicAdvertisingSyncId
4042 {
4043 #[inline]
4044 unsafe fn encode(
4045 self,
4046 encoder: &mut fidl::encoding::Encoder<'_, D>,
4047 offset: usize,
4048 _depth: fidl::encoding::Depth,
4049 ) -> fidl::Result<()> {
4050 encoder.debug_check_bounds::<PeriodicAdvertisingSyncId>(offset);
4051 unsafe {
4052 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
4054 (buf_ptr as *mut PeriodicAdvertisingSyncId)
4055 .write_unaligned((self as *const PeriodicAdvertisingSyncId).read());
4056 }
4059 Ok(())
4060 }
4061 }
4062 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<u64, D>>
4063 fidl::encoding::Encode<PeriodicAdvertisingSyncId, D> for (T0,)
4064 {
4065 #[inline]
4066 unsafe fn encode(
4067 self,
4068 encoder: &mut fidl::encoding::Encoder<'_, D>,
4069 offset: usize,
4070 depth: fidl::encoding::Depth,
4071 ) -> fidl::Result<()> {
4072 encoder.debug_check_bounds::<PeriodicAdvertisingSyncId>(offset);
4073 self.0.encode(encoder, offset + 0, depth)?;
4077 Ok(())
4078 }
4079 }
4080
4081 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
4082 for PeriodicAdvertisingSyncId
4083 {
4084 #[inline(always)]
4085 fn new_empty() -> Self {
4086 Self { value: fidl::new_empty!(u64, D) }
4087 }
4088
4089 #[inline]
4090 unsafe fn decode(
4091 &mut self,
4092 decoder: &mut fidl::encoding::Decoder<'_, D>,
4093 offset: usize,
4094 _depth: fidl::encoding::Depth,
4095 ) -> fidl::Result<()> {
4096 decoder.debug_check_bounds::<Self>(offset);
4097 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
4098 unsafe {
4101 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 8);
4102 }
4103 Ok(())
4104 }
4105 }
4106
4107 impl fidl::encoding::ValueTypeMarker for PeriodicAdvertisingSyncOnErrorRequest {
4108 type Borrowed<'a> = &'a Self;
4109 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4110 value
4111 }
4112 }
4113
4114 unsafe impl fidl::encoding::TypeMarker for PeriodicAdvertisingSyncOnErrorRequest {
4115 type Owned = Self;
4116
4117 #[inline(always)]
4118 fn inline_align(_context: fidl::encoding::Context) -> usize {
4119 4
4120 }
4121
4122 #[inline(always)]
4123 fn inline_size(_context: fidl::encoding::Context) -> usize {
4124 4
4125 }
4126 }
4127
4128 unsafe impl<D: fidl::encoding::ResourceDialect>
4129 fidl::encoding::Encode<PeriodicAdvertisingSyncOnErrorRequest, D>
4130 for &PeriodicAdvertisingSyncOnErrorRequest
4131 {
4132 #[inline]
4133 unsafe fn encode(
4134 self,
4135 encoder: &mut fidl::encoding::Encoder<'_, D>,
4136 offset: usize,
4137 _depth: fidl::encoding::Depth,
4138 ) -> fidl::Result<()> {
4139 encoder.debug_check_bounds::<PeriodicAdvertisingSyncOnErrorRequest>(offset);
4140 fidl::encoding::Encode::<PeriodicAdvertisingSyncOnErrorRequest, D>::encode(
4142 (<PeriodicAdvertisingSyncError as fidl::encoding::ValueTypeMarker>::borrow(
4143 &self.error,
4144 ),),
4145 encoder,
4146 offset,
4147 _depth,
4148 )
4149 }
4150 }
4151 unsafe impl<
4152 D: fidl::encoding::ResourceDialect,
4153 T0: fidl::encoding::Encode<PeriodicAdvertisingSyncError, D>,
4154 > fidl::encoding::Encode<PeriodicAdvertisingSyncOnErrorRequest, D> for (T0,)
4155 {
4156 #[inline]
4157 unsafe fn encode(
4158 self,
4159 encoder: &mut fidl::encoding::Encoder<'_, D>,
4160 offset: usize,
4161 depth: fidl::encoding::Depth,
4162 ) -> fidl::Result<()> {
4163 encoder.debug_check_bounds::<PeriodicAdvertisingSyncOnErrorRequest>(offset);
4164 self.0.encode(encoder, offset + 0, depth)?;
4168 Ok(())
4169 }
4170 }
4171
4172 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
4173 for PeriodicAdvertisingSyncOnErrorRequest
4174 {
4175 #[inline(always)]
4176 fn new_empty() -> Self {
4177 Self { error: fidl::new_empty!(PeriodicAdvertisingSyncError, D) }
4178 }
4179
4180 #[inline]
4181 unsafe fn decode(
4182 &mut self,
4183 decoder: &mut fidl::encoding::Decoder<'_, D>,
4184 offset: usize,
4185 _depth: fidl::encoding::Depth,
4186 ) -> fidl::Result<()> {
4187 decoder.debug_check_bounds::<Self>(offset);
4188 fidl::decode!(
4190 PeriodicAdvertisingSyncError,
4191 D,
4192 &mut self.error,
4193 decoder,
4194 offset + 0,
4195 _depth
4196 )?;
4197 Ok(())
4198 }
4199 }
4200
4201 impl fidl::encoding::ValueTypeMarker for RemoteDevice {
4202 type Borrowed<'a> = &'a Self;
4203 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4204 value
4205 }
4206 }
4207
4208 unsafe impl fidl::encoding::TypeMarker for RemoteDevice {
4209 type Owned = Self;
4210
4211 #[inline(always)]
4212 fn inline_align(_context: fidl::encoding::Context) -> usize {
4213 8
4214 }
4215
4216 #[inline(always)]
4217 fn inline_size(_context: fidl::encoding::Context) -> usize {
4218 40
4219 }
4220 }
4221
4222 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<RemoteDevice, D>
4223 for &RemoteDevice
4224 {
4225 #[inline]
4226 unsafe fn encode(
4227 self,
4228 encoder: &mut fidl::encoding::Encoder<'_, D>,
4229 offset: usize,
4230 _depth: fidl::encoding::Depth,
4231 ) -> fidl::Result<()> {
4232 encoder.debug_check_bounds::<RemoteDevice>(offset);
4233 fidl::encoding::Encode::<RemoteDevice, D>::encode(
4235 (
4236 <fidl::encoding::BoundedString<16> as fidl::encoding::ValueTypeMarker>::borrow(&self.identifier),
4237 <bool as fidl::encoding::ValueTypeMarker>::borrow(&self.connectable),
4238 <fidl::encoding::Boxed<fidl_fuchsia_bluetooth__common::Int8> as fidl::encoding::ValueTypeMarker>::borrow(&self.rssi),
4239 <fidl::encoding::Boxed<AdvertisingDataDeprecated> as fidl::encoding::ValueTypeMarker>::borrow(&self.advertising_data),
4240 ),
4241 encoder, offset, _depth
4242 )
4243 }
4244 }
4245 unsafe impl<
4246 D: fidl::encoding::ResourceDialect,
4247 T0: fidl::encoding::Encode<fidl::encoding::BoundedString<16>, D>,
4248 T1: fidl::encoding::Encode<bool, D>,
4249 T2: fidl::encoding::Encode<fidl::encoding::Boxed<fidl_fuchsia_bluetooth__common::Int8>, D>,
4250 T3: fidl::encoding::Encode<fidl::encoding::Boxed<AdvertisingDataDeprecated>, D>,
4251 > fidl::encoding::Encode<RemoteDevice, D> for (T0, T1, T2, T3)
4252 {
4253 #[inline]
4254 unsafe fn encode(
4255 self,
4256 encoder: &mut fidl::encoding::Encoder<'_, D>,
4257 offset: usize,
4258 depth: fidl::encoding::Depth,
4259 ) -> fidl::Result<()> {
4260 encoder.debug_check_bounds::<RemoteDevice>(offset);
4261 unsafe {
4264 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(16);
4265 (ptr as *mut u64).write_unaligned(0);
4266 }
4267 self.0.encode(encoder, offset + 0, depth)?;
4269 self.1.encode(encoder, offset + 16, depth)?;
4270 self.2.encode(encoder, offset + 24, depth)?;
4271 self.3.encode(encoder, offset + 32, depth)?;
4272 Ok(())
4273 }
4274 }
4275
4276 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for RemoteDevice {
4277 #[inline(always)]
4278 fn new_empty() -> Self {
4279 Self {
4280 identifier: fidl::new_empty!(fidl::encoding::BoundedString<16>, D),
4281 connectable: fidl::new_empty!(bool, D),
4282 rssi: fidl::new_empty!(
4283 fidl::encoding::Boxed<fidl_fuchsia_bluetooth__common::Int8>,
4284 D
4285 ),
4286 advertising_data: fidl::new_empty!(
4287 fidl::encoding::Boxed<AdvertisingDataDeprecated>,
4288 D
4289 ),
4290 }
4291 }
4292
4293 #[inline]
4294 unsafe fn decode(
4295 &mut self,
4296 decoder: &mut fidl::encoding::Decoder<'_, D>,
4297 offset: usize,
4298 _depth: fidl::encoding::Depth,
4299 ) -> fidl::Result<()> {
4300 decoder.debug_check_bounds::<Self>(offset);
4301 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(16) };
4303 let padval = unsafe { (ptr as *const u64).read_unaligned() };
4304 let mask = 0xffffffffffffff00u64;
4305 let maskedval = padval & mask;
4306 if maskedval != 0 {
4307 return Err(fidl::Error::NonZeroPadding {
4308 padding_start: offset + 16 + ((mask as u64).trailing_zeros() / 8) as usize,
4309 });
4310 }
4311 fidl::decode!(
4312 fidl::encoding::BoundedString<16>,
4313 D,
4314 &mut self.identifier,
4315 decoder,
4316 offset + 0,
4317 _depth
4318 )?;
4319 fidl::decode!(bool, D, &mut self.connectable, decoder, offset + 16, _depth)?;
4320 fidl::decode!(
4321 fidl::encoding::Boxed<fidl_fuchsia_bluetooth__common::Int8>,
4322 D,
4323 &mut self.rssi,
4324 decoder,
4325 offset + 24,
4326 _depth
4327 )?;
4328 fidl::decode!(
4329 fidl::encoding::Boxed<AdvertisingDataDeprecated>,
4330 D,
4331 &mut self.advertising_data,
4332 decoder,
4333 offset + 32,
4334 _depth
4335 )?;
4336 Ok(())
4337 }
4338 }
4339
4340 impl fidl::encoding::ValueTypeMarker for ScanFilter {
4341 type Borrowed<'a> = &'a Self;
4342 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4343 value
4344 }
4345 }
4346
4347 unsafe impl fidl::encoding::TypeMarker for ScanFilter {
4348 type Owned = Self;
4349
4350 #[inline(always)]
4351 fn inline_align(_context: fidl::encoding::Context) -> usize {
4352 8
4353 }
4354
4355 #[inline(always)]
4356 fn inline_size(_context: fidl::encoding::Context) -> usize {
4357 72
4358 }
4359 }
4360
4361 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ScanFilter, D>
4362 for &ScanFilter
4363 {
4364 #[inline]
4365 unsafe fn encode(
4366 self,
4367 encoder: &mut fidl::encoding::Encoder<'_, D>,
4368 offset: usize,
4369 _depth: fidl::encoding::Depth,
4370 ) -> fidl::Result<()> {
4371 encoder.debug_check_bounds::<ScanFilter>(offset);
4372 fidl::encoding::Encode::<ScanFilter, D>::encode(
4374 (
4375 <fidl::encoding::Optional<fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<36>>> as fidl::encoding::ValueTypeMarker>::borrow(&self.service_uuids),
4376 <fidl::encoding::Optional<fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<36>>> as fidl::encoding::ValueTypeMarker>::borrow(&self.service_data_uuids),
4377 <fidl::encoding::Boxed<fidl_fuchsia_bluetooth__common::UInt16> as fidl::encoding::ValueTypeMarker>::borrow(&self.manufacturer_identifier),
4378 <fidl::encoding::Boxed<fidl_fuchsia_bluetooth__common::Bool> as fidl::encoding::ValueTypeMarker>::borrow(&self.connectable),
4379 <fidl::encoding::Optional<fidl::encoding::BoundedString<248>> as fidl::encoding::ValueTypeMarker>::borrow(&self.name_substring),
4380 <fidl::encoding::Boxed<fidl_fuchsia_bluetooth__common::Int8> as fidl::encoding::ValueTypeMarker>::borrow(&self.max_path_loss),
4381 ),
4382 encoder, offset, _depth
4383 )
4384 }
4385 }
4386 unsafe impl<
4387 D: fidl::encoding::ResourceDialect,
4388 T0: fidl::encoding::Encode<
4389 fidl::encoding::Optional<
4390 fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<36>>,
4391 >,
4392 D,
4393 >,
4394 T1: fidl::encoding::Encode<
4395 fidl::encoding::Optional<
4396 fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<36>>,
4397 >,
4398 D,
4399 >,
4400 T2: fidl::encoding::Encode<fidl::encoding::Boxed<fidl_fuchsia_bluetooth__common::UInt16>, D>,
4401 T3: fidl::encoding::Encode<fidl::encoding::Boxed<fidl_fuchsia_bluetooth__common::Bool>, D>,
4402 T4: fidl::encoding::Encode<fidl::encoding::Optional<fidl::encoding::BoundedString<248>>, D>,
4403 T5: fidl::encoding::Encode<fidl::encoding::Boxed<fidl_fuchsia_bluetooth__common::Int8>, D>,
4404 > fidl::encoding::Encode<ScanFilter, D> for (T0, T1, T2, T3, T4, T5)
4405 {
4406 #[inline]
4407 unsafe fn encode(
4408 self,
4409 encoder: &mut fidl::encoding::Encoder<'_, D>,
4410 offset: usize,
4411 depth: fidl::encoding::Depth,
4412 ) -> fidl::Result<()> {
4413 encoder.debug_check_bounds::<ScanFilter>(offset);
4414 self.0.encode(encoder, offset + 0, depth)?;
4418 self.1.encode(encoder, offset + 16, depth)?;
4419 self.2.encode(encoder, offset + 32, depth)?;
4420 self.3.encode(encoder, offset + 40, depth)?;
4421 self.4.encode(encoder, offset + 48, depth)?;
4422 self.5.encode(encoder, offset + 64, depth)?;
4423 Ok(())
4424 }
4425 }
4426
4427 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ScanFilter {
4428 #[inline(always)]
4429 fn new_empty() -> Self {
4430 Self {
4431 service_uuids: fidl::new_empty!(
4432 fidl::encoding::Optional<
4433 fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<36>>,
4434 >,
4435 D
4436 ),
4437 service_data_uuids: fidl::new_empty!(
4438 fidl::encoding::Optional<
4439 fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<36>>,
4440 >,
4441 D
4442 ),
4443 manufacturer_identifier: fidl::new_empty!(
4444 fidl::encoding::Boxed<fidl_fuchsia_bluetooth__common::UInt16>,
4445 D
4446 ),
4447 connectable: fidl::new_empty!(
4448 fidl::encoding::Boxed<fidl_fuchsia_bluetooth__common::Bool>,
4449 D
4450 ),
4451 name_substring: fidl::new_empty!(
4452 fidl::encoding::Optional<fidl::encoding::BoundedString<248>>,
4453 D
4454 ),
4455 max_path_loss: fidl::new_empty!(
4456 fidl::encoding::Boxed<fidl_fuchsia_bluetooth__common::Int8>,
4457 D
4458 ),
4459 }
4460 }
4461
4462 #[inline]
4463 unsafe fn decode(
4464 &mut self,
4465 decoder: &mut fidl::encoding::Decoder<'_, D>,
4466 offset: usize,
4467 _depth: fidl::encoding::Depth,
4468 ) -> fidl::Result<()> {
4469 decoder.debug_check_bounds::<Self>(offset);
4470 fidl::decode!(
4472 fidl::encoding::Optional<
4473 fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<36>>,
4474 >,
4475 D,
4476 &mut self.service_uuids,
4477 decoder,
4478 offset + 0,
4479 _depth
4480 )?;
4481 fidl::decode!(
4482 fidl::encoding::Optional<
4483 fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<36>>,
4484 >,
4485 D,
4486 &mut self.service_data_uuids,
4487 decoder,
4488 offset + 16,
4489 _depth
4490 )?;
4491 fidl::decode!(
4492 fidl::encoding::Boxed<fidl_fuchsia_bluetooth__common::UInt16>,
4493 D,
4494 &mut self.manufacturer_identifier,
4495 decoder,
4496 offset + 32,
4497 _depth
4498 )?;
4499 fidl::decode!(
4500 fidl::encoding::Boxed<fidl_fuchsia_bluetooth__common::Bool>,
4501 D,
4502 &mut self.connectable,
4503 decoder,
4504 offset + 40,
4505 _depth
4506 )?;
4507 fidl::decode!(
4508 fidl::encoding::Optional<fidl::encoding::BoundedString<248>>,
4509 D,
4510 &mut self.name_substring,
4511 decoder,
4512 offset + 48,
4513 _depth
4514 )?;
4515 fidl::decode!(
4516 fidl::encoding::Boxed<fidl_fuchsia_bluetooth__common::Int8>,
4517 D,
4518 &mut self.max_path_loss,
4519 decoder,
4520 offset + 64,
4521 _depth
4522 )?;
4523 Ok(())
4524 }
4525 }
4526
4527 impl fidl::encoding::ValueTypeMarker for ScanResultWatcherWatchResponse {
4528 type Borrowed<'a> = &'a Self;
4529 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4530 value
4531 }
4532 }
4533
4534 unsafe impl fidl::encoding::TypeMarker for ScanResultWatcherWatchResponse {
4535 type Owned = Self;
4536
4537 #[inline(always)]
4538 fn inline_align(_context: fidl::encoding::Context) -> usize {
4539 8
4540 }
4541
4542 #[inline(always)]
4543 fn inline_size(_context: fidl::encoding::Context) -> usize {
4544 16
4545 }
4546 }
4547
4548 unsafe impl<D: fidl::encoding::ResourceDialect>
4549 fidl::encoding::Encode<ScanResultWatcherWatchResponse, D>
4550 for &ScanResultWatcherWatchResponse
4551 {
4552 #[inline]
4553 unsafe fn encode(
4554 self,
4555 encoder: &mut fidl::encoding::Encoder<'_, D>,
4556 offset: usize,
4557 _depth: fidl::encoding::Depth,
4558 ) -> fidl::Result<()> {
4559 encoder.debug_check_bounds::<ScanResultWatcherWatchResponse>(offset);
4560 fidl::encoding::Encode::<ScanResultWatcherWatchResponse, D>::encode(
4562 (
4563 <fidl::encoding::UnboundedVector<Peer> as fidl::encoding::ValueTypeMarker>::borrow(&self.updated),
4564 ),
4565 encoder, offset, _depth
4566 )
4567 }
4568 }
4569 unsafe impl<
4570 D: fidl::encoding::ResourceDialect,
4571 T0: fidl::encoding::Encode<fidl::encoding::UnboundedVector<Peer>, D>,
4572 > fidl::encoding::Encode<ScanResultWatcherWatchResponse, D> for (T0,)
4573 {
4574 #[inline]
4575 unsafe fn encode(
4576 self,
4577 encoder: &mut fidl::encoding::Encoder<'_, D>,
4578 offset: usize,
4579 depth: fidl::encoding::Depth,
4580 ) -> fidl::Result<()> {
4581 encoder.debug_check_bounds::<ScanResultWatcherWatchResponse>(offset);
4582 self.0.encode(encoder, offset + 0, depth)?;
4586 Ok(())
4587 }
4588 }
4589
4590 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
4591 for ScanResultWatcherWatchResponse
4592 {
4593 #[inline(always)]
4594 fn new_empty() -> Self {
4595 Self { updated: fidl::new_empty!(fidl::encoding::UnboundedVector<Peer>, D) }
4596 }
4597
4598 #[inline]
4599 unsafe fn decode(
4600 &mut self,
4601 decoder: &mut fidl::encoding::Decoder<'_, D>,
4602 offset: usize,
4603 _depth: fidl::encoding::Depth,
4604 ) -> fidl::Result<()> {
4605 decoder.debug_check_bounds::<Self>(offset);
4606 fidl::decode!(
4608 fidl::encoding::UnboundedVector<Peer>,
4609 D,
4610 &mut self.updated,
4611 decoder,
4612 offset + 0,
4613 _depth
4614 )?;
4615 Ok(())
4616 }
4617 }
4618
4619 impl fidl::encoding::ValueTypeMarker for ServiceData {
4620 type Borrowed<'a> = &'a Self;
4621 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4622 value
4623 }
4624 }
4625
4626 unsafe impl fidl::encoding::TypeMarker for ServiceData {
4627 type Owned = Self;
4628
4629 #[inline(always)]
4630 fn inline_align(_context: fidl::encoding::Context) -> usize {
4631 8
4632 }
4633
4634 #[inline(always)]
4635 fn inline_size(_context: fidl::encoding::Context) -> usize {
4636 32
4637 }
4638 }
4639
4640 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ServiceData, D>
4641 for &ServiceData
4642 {
4643 #[inline]
4644 unsafe fn encode(
4645 self,
4646 encoder: &mut fidl::encoding::Encoder<'_, D>,
4647 offset: usize,
4648 _depth: fidl::encoding::Depth,
4649 ) -> fidl::Result<()> {
4650 encoder.debug_check_bounds::<ServiceData>(offset);
4651 fidl::encoding::Encode::<ServiceData, D>::encode(
4653 (
4654 <fidl_fuchsia_bluetooth__common::Uuid as fidl::encoding::ValueTypeMarker>::borrow(&self.uuid),
4655 <fidl::encoding::Vector<u8, 252> as fidl::encoding::ValueTypeMarker>::borrow(&self.data),
4656 ),
4657 encoder, offset, _depth
4658 )
4659 }
4660 }
4661 unsafe impl<
4662 D: fidl::encoding::ResourceDialect,
4663 T0: fidl::encoding::Encode<fidl_fuchsia_bluetooth__common::Uuid, D>,
4664 T1: fidl::encoding::Encode<fidl::encoding::Vector<u8, 252>, D>,
4665 > fidl::encoding::Encode<ServiceData, D> for (T0, T1)
4666 {
4667 #[inline]
4668 unsafe fn encode(
4669 self,
4670 encoder: &mut fidl::encoding::Encoder<'_, D>,
4671 offset: usize,
4672 depth: fidl::encoding::Depth,
4673 ) -> fidl::Result<()> {
4674 encoder.debug_check_bounds::<ServiceData>(offset);
4675 self.0.encode(encoder, offset + 0, depth)?;
4679 self.1.encode(encoder, offset + 16, depth)?;
4680 Ok(())
4681 }
4682 }
4683
4684 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ServiceData {
4685 #[inline(always)]
4686 fn new_empty() -> Self {
4687 Self {
4688 uuid: fidl::new_empty!(fidl_fuchsia_bluetooth__common::Uuid, D),
4689 data: fidl::new_empty!(fidl::encoding::Vector<u8, 252>, D),
4690 }
4691 }
4692
4693 #[inline]
4694 unsafe fn decode(
4695 &mut self,
4696 decoder: &mut fidl::encoding::Decoder<'_, D>,
4697 offset: usize,
4698 _depth: fidl::encoding::Depth,
4699 ) -> fidl::Result<()> {
4700 decoder.debug_check_bounds::<Self>(offset);
4701 fidl::decode!(
4703 fidl_fuchsia_bluetooth__common::Uuid,
4704 D,
4705 &mut self.uuid,
4706 decoder,
4707 offset + 0,
4708 _depth
4709 )?;
4710 fidl::decode!(fidl::encoding::Vector<u8, 252>, D, &mut self.data, decoder, offset + 16, _depth)?;
4711 Ok(())
4712 }
4713 }
4714
4715 impl fidl::encoding::ValueTypeMarker for ServiceDataEntry {
4716 type Borrowed<'a> = &'a Self;
4717 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4718 value
4719 }
4720 }
4721
4722 unsafe impl fidl::encoding::TypeMarker for ServiceDataEntry {
4723 type Owned = Self;
4724
4725 #[inline(always)]
4726 fn inline_align(_context: fidl::encoding::Context) -> usize {
4727 8
4728 }
4729
4730 #[inline(always)]
4731 fn inline_size(_context: fidl::encoding::Context) -> usize {
4732 32
4733 }
4734 }
4735
4736 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ServiceDataEntry, D>
4737 for &ServiceDataEntry
4738 {
4739 #[inline]
4740 unsafe fn encode(
4741 self,
4742 encoder: &mut fidl::encoding::Encoder<'_, D>,
4743 offset: usize,
4744 _depth: fidl::encoding::Depth,
4745 ) -> fidl::Result<()> {
4746 encoder.debug_check_bounds::<ServiceDataEntry>(offset);
4747 fidl::encoding::Encode::<ServiceDataEntry, D>::encode(
4749 (
4750 <fidl::encoding::BoundedString<36> as fidl::encoding::ValueTypeMarker>::borrow(&self.uuid),
4751 <fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow(&self.data),
4752 ),
4753 encoder, offset, _depth
4754 )
4755 }
4756 }
4757 unsafe impl<
4758 D: fidl::encoding::ResourceDialect,
4759 T0: fidl::encoding::Encode<fidl::encoding::BoundedString<36>, D>,
4760 T1: fidl::encoding::Encode<fidl::encoding::UnboundedVector<u8>, D>,
4761 > fidl::encoding::Encode<ServiceDataEntry, D> for (T0, T1)
4762 {
4763 #[inline]
4764 unsafe fn encode(
4765 self,
4766 encoder: &mut fidl::encoding::Encoder<'_, D>,
4767 offset: usize,
4768 depth: fidl::encoding::Depth,
4769 ) -> fidl::Result<()> {
4770 encoder.debug_check_bounds::<ServiceDataEntry>(offset);
4771 self.0.encode(encoder, offset + 0, depth)?;
4775 self.1.encode(encoder, offset + 16, depth)?;
4776 Ok(())
4777 }
4778 }
4779
4780 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ServiceDataEntry {
4781 #[inline(always)]
4782 fn new_empty() -> Self {
4783 Self {
4784 uuid: fidl::new_empty!(fidl::encoding::BoundedString<36>, D),
4785 data: fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D),
4786 }
4787 }
4788
4789 #[inline]
4790 unsafe fn decode(
4791 &mut self,
4792 decoder: &mut fidl::encoding::Decoder<'_, D>,
4793 offset: usize,
4794 _depth: fidl::encoding::Depth,
4795 ) -> fidl::Result<()> {
4796 decoder.debug_check_bounds::<Self>(offset);
4797 fidl::decode!(
4799 fidl::encoding::BoundedString<36>,
4800 D,
4801 &mut self.uuid,
4802 decoder,
4803 offset + 0,
4804 _depth
4805 )?;
4806 fidl::decode!(
4807 fidl::encoding::UnboundedVector<u8>,
4808 D,
4809 &mut self.data,
4810 decoder,
4811 offset + 16,
4812 _depth
4813 )?;
4814 Ok(())
4815 }
4816 }
4817
4818 impl AcceptedChannelParameters {
4819 #[inline(always)]
4820 fn max_ordinal_present(&self) -> u64 {
4821 if let Some(_) = self.max_packet_size {
4822 return 2;
4823 }
4824 if let Some(_) = self.accepted_channel_modes {
4825 return 1;
4826 }
4827 0
4828 }
4829 }
4830
4831 impl fidl::encoding::ValueTypeMarker for AcceptedChannelParameters {
4832 type Borrowed<'a> = &'a Self;
4833 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4834 value
4835 }
4836 }
4837
4838 unsafe impl fidl::encoding::TypeMarker for AcceptedChannelParameters {
4839 type Owned = Self;
4840
4841 #[inline(always)]
4842 fn inline_align(_context: fidl::encoding::Context) -> usize {
4843 8
4844 }
4845
4846 #[inline(always)]
4847 fn inline_size(_context: fidl::encoding::Context) -> usize {
4848 16
4849 }
4850 }
4851
4852 unsafe impl<D: fidl::encoding::ResourceDialect>
4853 fidl::encoding::Encode<AcceptedChannelParameters, D> for &AcceptedChannelParameters
4854 {
4855 unsafe fn encode(
4856 self,
4857 encoder: &mut fidl::encoding::Encoder<'_, D>,
4858 offset: usize,
4859 mut depth: fidl::encoding::Depth,
4860 ) -> fidl::Result<()> {
4861 encoder.debug_check_bounds::<AcceptedChannelParameters>(offset);
4862 let max_ordinal: u64 = self.max_ordinal_present();
4864 encoder.write_num(max_ordinal, offset);
4865 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
4866 if max_ordinal == 0 {
4868 return Ok(());
4869 }
4870 depth.increment()?;
4871 let envelope_size = 8;
4872 let bytes_len = max_ordinal as usize * envelope_size;
4873 #[allow(unused_variables)]
4874 let offset = encoder.out_of_line_offset(bytes_len);
4875 let mut _prev_end_offset: usize = 0;
4876 if 1 > max_ordinal {
4877 return Ok(());
4878 }
4879
4880 let cur_offset: usize = (1 - 1) * envelope_size;
4883
4884 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4886
4887 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<fidl_fuchsia_bluetooth__common::ChannelMode>, D>(
4892 self.accepted_channel_modes.as_ref().map(<fidl::encoding::UnboundedVector<fidl_fuchsia_bluetooth__common::ChannelMode> as fidl::encoding::ValueTypeMarker>::borrow),
4893 encoder, offset + cur_offset, depth
4894 )?;
4895
4896 _prev_end_offset = cur_offset + envelope_size;
4897 if 2 > max_ordinal {
4898 return Ok(());
4899 }
4900
4901 let cur_offset: usize = (2 - 1) * envelope_size;
4904
4905 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4907
4908 fidl::encoding::encode_in_envelope_optional::<u16, D>(
4913 self.max_packet_size.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
4914 encoder,
4915 offset + cur_offset,
4916 depth,
4917 )?;
4918
4919 _prev_end_offset = cur_offset + envelope_size;
4920
4921 Ok(())
4922 }
4923 }
4924
4925 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
4926 for AcceptedChannelParameters
4927 {
4928 #[inline(always)]
4929 fn new_empty() -> Self {
4930 Self::default()
4931 }
4932
4933 unsafe fn decode(
4934 &mut self,
4935 decoder: &mut fidl::encoding::Decoder<'_, D>,
4936 offset: usize,
4937 mut depth: fidl::encoding::Depth,
4938 ) -> fidl::Result<()> {
4939 decoder.debug_check_bounds::<Self>(offset);
4940 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
4941 None => return Err(fidl::Error::NotNullable),
4942 Some(len) => len,
4943 };
4944 if len == 0 {
4946 return Ok(());
4947 };
4948 depth.increment()?;
4949 let envelope_size = 8;
4950 let bytes_len = len * envelope_size;
4951 let offset = decoder.out_of_line_offset(bytes_len)?;
4952 let mut _next_ordinal_to_read = 0;
4954 let mut next_offset = offset;
4955 let end_offset = offset + bytes_len;
4956 _next_ordinal_to_read += 1;
4957 if next_offset >= end_offset {
4958 return Ok(());
4959 }
4960
4961 while _next_ordinal_to_read < 1 {
4963 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4964 _next_ordinal_to_read += 1;
4965 next_offset += envelope_size;
4966 }
4967
4968 let next_out_of_line = decoder.next_out_of_line();
4969 let handles_before = decoder.remaining_handles();
4970 if let Some((inlined, num_bytes, num_handles)) =
4971 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4972 {
4973 let member_inline_size = <fidl::encoding::UnboundedVector<
4974 fidl_fuchsia_bluetooth__common::ChannelMode,
4975 > as fidl::encoding::TypeMarker>::inline_size(
4976 decoder.context
4977 );
4978 if inlined != (member_inline_size <= 4) {
4979 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4980 }
4981 let inner_offset;
4982 let mut inner_depth = depth.clone();
4983 if inlined {
4984 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4985 inner_offset = next_offset;
4986 } else {
4987 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4988 inner_depth.increment()?;
4989 }
4990 let val_ref = self.accepted_channel_modes.get_or_insert_with(|| {
4991 fidl::new_empty!(
4992 fidl::encoding::UnboundedVector<
4993 fidl_fuchsia_bluetooth__common::ChannelMode,
4994 >,
4995 D
4996 )
4997 });
4998 fidl::decode!(
4999 fidl::encoding::UnboundedVector<fidl_fuchsia_bluetooth__common::ChannelMode>,
5000 D,
5001 val_ref,
5002 decoder,
5003 inner_offset,
5004 inner_depth
5005 )?;
5006 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5007 {
5008 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5009 }
5010 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5011 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5012 }
5013 }
5014
5015 next_offset += envelope_size;
5016 _next_ordinal_to_read += 1;
5017 if next_offset >= end_offset {
5018 return Ok(());
5019 }
5020
5021 while _next_ordinal_to_read < 2 {
5023 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5024 _next_ordinal_to_read += 1;
5025 next_offset += envelope_size;
5026 }
5027
5028 let next_out_of_line = decoder.next_out_of_line();
5029 let handles_before = decoder.remaining_handles();
5030 if let Some((inlined, num_bytes, num_handles)) =
5031 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5032 {
5033 let member_inline_size =
5034 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5035 if inlined != (member_inline_size <= 4) {
5036 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5037 }
5038 let inner_offset;
5039 let mut inner_depth = depth.clone();
5040 if inlined {
5041 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5042 inner_offset = next_offset;
5043 } else {
5044 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5045 inner_depth.increment()?;
5046 }
5047 let val_ref = self.max_packet_size.get_or_insert_with(|| fidl::new_empty!(u16, D));
5048 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
5049 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5050 {
5051 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5052 }
5053 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5054 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5055 }
5056 }
5057
5058 next_offset += envelope_size;
5059
5060 while next_offset < end_offset {
5062 _next_ordinal_to_read += 1;
5063 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5064 next_offset += envelope_size;
5065 }
5066
5067 Ok(())
5068 }
5069 }
5070
5071 impl AdvertisingData {
5072 #[inline(always)]
5073 fn max_ordinal_present(&self) -> u64 {
5074 if let Some(_) = self.broadcast_name {
5075 return 10;
5076 }
5077 if let Some(_) = self.resolvable_set_identifier {
5078 return 9;
5079 }
5080 if let Some(_) = self.include_tx_power_level {
5081 return 8;
5082 }
5083 if let Some(_) = self.uris {
5084 return 7;
5085 }
5086 if let Some(_) = self.manufacturer_data {
5087 return 6;
5088 }
5089 if let Some(_) = self.service_data {
5090 return 5;
5091 }
5092 if let Some(_) = self.service_uuids {
5093 return 4;
5094 }
5095 if let Some(_) = self.tx_power_level {
5096 return 3;
5097 }
5098 if let Some(_) = self.appearance {
5099 return 2;
5100 }
5101 if let Some(_) = self.name {
5102 return 1;
5103 }
5104 0
5105 }
5106 }
5107
5108 impl fidl::encoding::ValueTypeMarker for AdvertisingData {
5109 type Borrowed<'a> = &'a Self;
5110 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5111 value
5112 }
5113 }
5114
5115 unsafe impl fidl::encoding::TypeMarker for AdvertisingData {
5116 type Owned = Self;
5117
5118 #[inline(always)]
5119 fn inline_align(_context: fidl::encoding::Context) -> usize {
5120 8
5121 }
5122
5123 #[inline(always)]
5124 fn inline_size(_context: fidl::encoding::Context) -> usize {
5125 16
5126 }
5127 }
5128
5129 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<AdvertisingData, D>
5130 for &AdvertisingData
5131 {
5132 unsafe fn encode(
5133 self,
5134 encoder: &mut fidl::encoding::Encoder<'_, D>,
5135 offset: usize,
5136 mut depth: fidl::encoding::Depth,
5137 ) -> fidl::Result<()> {
5138 encoder.debug_check_bounds::<AdvertisingData>(offset);
5139 let max_ordinal: u64 = self.max_ordinal_present();
5141 encoder.write_num(max_ordinal, offset);
5142 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
5143 if max_ordinal == 0 {
5145 return Ok(());
5146 }
5147 depth.increment()?;
5148 let envelope_size = 8;
5149 let bytes_len = max_ordinal as usize * envelope_size;
5150 #[allow(unused_variables)]
5151 let offset = encoder.out_of_line_offset(bytes_len);
5152 let mut _prev_end_offset: usize = 0;
5153 if 1 > max_ordinal {
5154 return Ok(());
5155 }
5156
5157 let cur_offset: usize = (1 - 1) * envelope_size;
5160
5161 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5163
5164 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<248>, D>(
5169 self.name.as_ref().map(
5170 <fidl::encoding::BoundedString<248> as fidl::encoding::ValueTypeMarker>::borrow,
5171 ),
5172 encoder,
5173 offset + cur_offset,
5174 depth,
5175 )?;
5176
5177 _prev_end_offset = cur_offset + envelope_size;
5178 if 2 > max_ordinal {
5179 return Ok(());
5180 }
5181
5182 let cur_offset: usize = (2 - 1) * envelope_size;
5185
5186 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5188
5189 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_bluetooth__common::Appearance, D>(
5194 self.appearance.as_ref().map(<fidl_fuchsia_bluetooth__common::Appearance as fidl::encoding::ValueTypeMarker>::borrow),
5195 encoder, offset + cur_offset, depth
5196 )?;
5197
5198 _prev_end_offset = cur_offset + envelope_size;
5199 if 3 > max_ordinal {
5200 return Ok(());
5201 }
5202
5203 let cur_offset: usize = (3 - 1) * envelope_size;
5206
5207 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5209
5210 fidl::encoding::encode_in_envelope_optional::<i8, D>(
5215 self.tx_power_level.as_ref().map(<i8 as fidl::encoding::ValueTypeMarker>::borrow),
5216 encoder,
5217 offset + cur_offset,
5218 depth,
5219 )?;
5220
5221 _prev_end_offset = cur_offset + envelope_size;
5222 if 4 > max_ordinal {
5223 return Ok(());
5224 }
5225
5226 let cur_offset: usize = (4 - 1) * envelope_size;
5229
5230 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5232
5233 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<fidl_fuchsia_bluetooth__common::Uuid>, D>(
5238 self.service_uuids.as_ref().map(<fidl::encoding::UnboundedVector<fidl_fuchsia_bluetooth__common::Uuid> as fidl::encoding::ValueTypeMarker>::borrow),
5239 encoder, offset + cur_offset, depth
5240 )?;
5241
5242 _prev_end_offset = cur_offset + envelope_size;
5243 if 5 > max_ordinal {
5244 return Ok(());
5245 }
5246
5247 let cur_offset: usize = (5 - 1) * envelope_size;
5250
5251 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5253
5254 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<ServiceData>, D>(
5259 self.service_data.as_ref().map(<fidl::encoding::UnboundedVector<ServiceData> as fidl::encoding::ValueTypeMarker>::borrow),
5260 encoder, offset + cur_offset, depth
5261 )?;
5262
5263 _prev_end_offset = cur_offset + envelope_size;
5264 if 6 > max_ordinal {
5265 return Ok(());
5266 }
5267
5268 let cur_offset: usize = (6 - 1) * envelope_size;
5271
5272 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5274
5275 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<ManufacturerData>, D>(
5280 self.manufacturer_data.as_ref().map(<fidl::encoding::UnboundedVector<ManufacturerData> as fidl::encoding::ValueTypeMarker>::borrow),
5281 encoder, offset + cur_offset, depth
5282 )?;
5283
5284 _prev_end_offset = cur_offset + envelope_size;
5285 if 7 > max_ordinal {
5286 return Ok(());
5287 }
5288
5289 let cur_offset: usize = (7 - 1) * envelope_size;
5292
5293 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5295
5296 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<278>>, D>(
5301 self.uris.as_ref().map(<fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<278>> as fidl::encoding::ValueTypeMarker>::borrow),
5302 encoder, offset + cur_offset, depth
5303 )?;
5304
5305 _prev_end_offset = cur_offset + envelope_size;
5306 if 8 > max_ordinal {
5307 return Ok(());
5308 }
5309
5310 let cur_offset: usize = (8 - 1) * envelope_size;
5313
5314 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5316
5317 fidl::encoding::encode_in_envelope_optional::<bool, D>(
5322 self.include_tx_power_level
5323 .as_ref()
5324 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
5325 encoder,
5326 offset + cur_offset,
5327 depth,
5328 )?;
5329
5330 _prev_end_offset = cur_offset + envelope_size;
5331 if 9 > max_ordinal {
5332 return Ok(());
5333 }
5334
5335 let cur_offset: usize = (9 - 1) * envelope_size;
5338
5339 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5341
5342 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
5347 self.resolvable_set_identifier
5348 .as_ref()
5349 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
5350 encoder,
5351 offset + cur_offset,
5352 depth,
5353 )?;
5354
5355 _prev_end_offset = cur_offset + envelope_size;
5356 if 10 > max_ordinal {
5357 return Ok(());
5358 }
5359
5360 let cur_offset: usize = (10 - 1) * envelope_size;
5363
5364 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5366
5367 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<128>, D>(
5372 self.broadcast_name.as_ref().map(
5373 <fidl::encoding::BoundedString<128> as fidl::encoding::ValueTypeMarker>::borrow,
5374 ),
5375 encoder,
5376 offset + cur_offset,
5377 depth,
5378 )?;
5379
5380 _prev_end_offset = cur_offset + envelope_size;
5381
5382 Ok(())
5383 }
5384 }
5385
5386 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for AdvertisingData {
5387 #[inline(always)]
5388 fn new_empty() -> Self {
5389 Self::default()
5390 }
5391
5392 unsafe fn decode(
5393 &mut self,
5394 decoder: &mut fidl::encoding::Decoder<'_, D>,
5395 offset: usize,
5396 mut depth: fidl::encoding::Depth,
5397 ) -> fidl::Result<()> {
5398 decoder.debug_check_bounds::<Self>(offset);
5399 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
5400 None => return Err(fidl::Error::NotNullable),
5401 Some(len) => len,
5402 };
5403 if len == 0 {
5405 return Ok(());
5406 };
5407 depth.increment()?;
5408 let envelope_size = 8;
5409 let bytes_len = len * envelope_size;
5410 let offset = decoder.out_of_line_offset(bytes_len)?;
5411 let mut _next_ordinal_to_read = 0;
5413 let mut next_offset = offset;
5414 let end_offset = offset + bytes_len;
5415 _next_ordinal_to_read += 1;
5416 if next_offset >= end_offset {
5417 return Ok(());
5418 }
5419
5420 while _next_ordinal_to_read < 1 {
5422 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5423 _next_ordinal_to_read += 1;
5424 next_offset += envelope_size;
5425 }
5426
5427 let next_out_of_line = decoder.next_out_of_line();
5428 let handles_before = decoder.remaining_handles();
5429 if let Some((inlined, num_bytes, num_handles)) =
5430 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5431 {
5432 let member_inline_size =
5433 <fidl::encoding::BoundedString<248> as fidl::encoding::TypeMarker>::inline_size(
5434 decoder.context,
5435 );
5436 if inlined != (member_inline_size <= 4) {
5437 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5438 }
5439 let inner_offset;
5440 let mut inner_depth = depth.clone();
5441 if inlined {
5442 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5443 inner_offset = next_offset;
5444 } else {
5445 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5446 inner_depth.increment()?;
5447 }
5448 let val_ref = self
5449 .name
5450 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<248>, D));
5451 fidl::decode!(
5452 fidl::encoding::BoundedString<248>,
5453 D,
5454 val_ref,
5455 decoder,
5456 inner_offset,
5457 inner_depth
5458 )?;
5459 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5460 {
5461 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5462 }
5463 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5464 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5465 }
5466 }
5467
5468 next_offset += envelope_size;
5469 _next_ordinal_to_read += 1;
5470 if next_offset >= end_offset {
5471 return Ok(());
5472 }
5473
5474 while _next_ordinal_to_read < 2 {
5476 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5477 _next_ordinal_to_read += 1;
5478 next_offset += envelope_size;
5479 }
5480
5481 let next_out_of_line = decoder.next_out_of_line();
5482 let handles_before = decoder.remaining_handles();
5483 if let Some((inlined, num_bytes, num_handles)) =
5484 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5485 {
5486 let member_inline_size = <fidl_fuchsia_bluetooth__common::Appearance as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5487 if inlined != (member_inline_size <= 4) {
5488 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5489 }
5490 let inner_offset;
5491 let mut inner_depth = depth.clone();
5492 if inlined {
5493 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5494 inner_offset = next_offset;
5495 } else {
5496 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5497 inner_depth.increment()?;
5498 }
5499 let val_ref = self.appearance.get_or_insert_with(|| {
5500 fidl::new_empty!(fidl_fuchsia_bluetooth__common::Appearance, D)
5501 });
5502 fidl::decode!(
5503 fidl_fuchsia_bluetooth__common::Appearance,
5504 D,
5505 val_ref,
5506 decoder,
5507 inner_offset,
5508 inner_depth
5509 )?;
5510 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5511 {
5512 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5513 }
5514 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5515 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5516 }
5517 }
5518
5519 next_offset += envelope_size;
5520 _next_ordinal_to_read += 1;
5521 if next_offset >= end_offset {
5522 return Ok(());
5523 }
5524
5525 while _next_ordinal_to_read < 3 {
5527 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5528 _next_ordinal_to_read += 1;
5529 next_offset += envelope_size;
5530 }
5531
5532 let next_out_of_line = decoder.next_out_of_line();
5533 let handles_before = decoder.remaining_handles();
5534 if let Some((inlined, num_bytes, num_handles)) =
5535 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5536 {
5537 let member_inline_size =
5538 <i8 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5539 if inlined != (member_inline_size <= 4) {
5540 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5541 }
5542 let inner_offset;
5543 let mut inner_depth = depth.clone();
5544 if inlined {
5545 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5546 inner_offset = next_offset;
5547 } else {
5548 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5549 inner_depth.increment()?;
5550 }
5551 let val_ref = self.tx_power_level.get_or_insert_with(|| fidl::new_empty!(i8, D));
5552 fidl::decode!(i8, D, val_ref, decoder, inner_offset, inner_depth)?;
5553 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5554 {
5555 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5556 }
5557 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5558 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5559 }
5560 }
5561
5562 next_offset += envelope_size;
5563 _next_ordinal_to_read += 1;
5564 if next_offset >= end_offset {
5565 return Ok(());
5566 }
5567
5568 while _next_ordinal_to_read < 4 {
5570 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5571 _next_ordinal_to_read += 1;
5572 next_offset += envelope_size;
5573 }
5574
5575 let next_out_of_line = decoder.next_out_of_line();
5576 let handles_before = decoder.remaining_handles();
5577 if let Some((inlined, num_bytes, num_handles)) =
5578 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5579 {
5580 let member_inline_size = <fidl::encoding::UnboundedVector<
5581 fidl_fuchsia_bluetooth__common::Uuid,
5582 > as fidl::encoding::TypeMarker>::inline_size(
5583 decoder.context
5584 );
5585 if inlined != (member_inline_size <= 4) {
5586 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5587 }
5588 let inner_offset;
5589 let mut inner_depth = depth.clone();
5590 if inlined {
5591 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5592 inner_offset = next_offset;
5593 } else {
5594 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5595 inner_depth.increment()?;
5596 }
5597 let val_ref = self.service_uuids.get_or_insert_with(|| {
5598 fidl::new_empty!(
5599 fidl::encoding::UnboundedVector<fidl_fuchsia_bluetooth__common::Uuid>,
5600 D
5601 )
5602 });
5603 fidl::decode!(
5604 fidl::encoding::UnboundedVector<fidl_fuchsia_bluetooth__common::Uuid>,
5605 D,
5606 val_ref,
5607 decoder,
5608 inner_offset,
5609 inner_depth
5610 )?;
5611 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5612 {
5613 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5614 }
5615 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5616 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5617 }
5618 }
5619
5620 next_offset += envelope_size;
5621 _next_ordinal_to_read += 1;
5622 if next_offset >= end_offset {
5623 return Ok(());
5624 }
5625
5626 while _next_ordinal_to_read < 5 {
5628 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5629 _next_ordinal_to_read += 1;
5630 next_offset += envelope_size;
5631 }
5632
5633 let next_out_of_line = decoder.next_out_of_line();
5634 let handles_before = decoder.remaining_handles();
5635 if let Some((inlined, num_bytes, num_handles)) =
5636 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5637 {
5638 let member_inline_size = <fidl::encoding::UnboundedVector<ServiceData> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5639 if inlined != (member_inline_size <= 4) {
5640 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5641 }
5642 let inner_offset;
5643 let mut inner_depth = depth.clone();
5644 if inlined {
5645 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5646 inner_offset = next_offset;
5647 } else {
5648 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5649 inner_depth.increment()?;
5650 }
5651 let val_ref = self.service_data.get_or_insert_with(|| {
5652 fidl::new_empty!(fidl::encoding::UnboundedVector<ServiceData>, D)
5653 });
5654 fidl::decode!(
5655 fidl::encoding::UnboundedVector<ServiceData>,
5656 D,
5657 val_ref,
5658 decoder,
5659 inner_offset,
5660 inner_depth
5661 )?;
5662 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5663 {
5664 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5665 }
5666 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5667 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5668 }
5669 }
5670
5671 next_offset += envelope_size;
5672 _next_ordinal_to_read += 1;
5673 if next_offset >= end_offset {
5674 return Ok(());
5675 }
5676
5677 while _next_ordinal_to_read < 6 {
5679 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5680 _next_ordinal_to_read += 1;
5681 next_offset += envelope_size;
5682 }
5683
5684 let next_out_of_line = decoder.next_out_of_line();
5685 let handles_before = decoder.remaining_handles();
5686 if let Some((inlined, num_bytes, num_handles)) =
5687 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5688 {
5689 let member_inline_size = <fidl::encoding::UnboundedVector<ManufacturerData> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5690 if inlined != (member_inline_size <= 4) {
5691 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5692 }
5693 let inner_offset;
5694 let mut inner_depth = depth.clone();
5695 if inlined {
5696 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5697 inner_offset = next_offset;
5698 } else {
5699 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5700 inner_depth.increment()?;
5701 }
5702 let val_ref = self.manufacturer_data.get_or_insert_with(|| {
5703 fidl::new_empty!(fidl::encoding::UnboundedVector<ManufacturerData>, D)
5704 });
5705 fidl::decode!(
5706 fidl::encoding::UnboundedVector<ManufacturerData>,
5707 D,
5708 val_ref,
5709 decoder,
5710 inner_offset,
5711 inner_depth
5712 )?;
5713 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5714 {
5715 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5716 }
5717 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5718 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5719 }
5720 }
5721
5722 next_offset += envelope_size;
5723 _next_ordinal_to_read += 1;
5724 if next_offset >= end_offset {
5725 return Ok(());
5726 }
5727
5728 while _next_ordinal_to_read < 7 {
5730 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5731 _next_ordinal_to_read += 1;
5732 next_offset += envelope_size;
5733 }
5734
5735 let next_out_of_line = decoder.next_out_of_line();
5736 let handles_before = decoder.remaining_handles();
5737 if let Some((inlined, num_bytes, num_handles)) =
5738 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5739 {
5740 let member_inline_size = <fidl::encoding::UnboundedVector<
5741 fidl::encoding::BoundedString<278>,
5742 > as fidl::encoding::TypeMarker>::inline_size(
5743 decoder.context
5744 );
5745 if inlined != (member_inline_size <= 4) {
5746 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5747 }
5748 let inner_offset;
5749 let mut inner_depth = depth.clone();
5750 if inlined {
5751 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5752 inner_offset = next_offset;
5753 } else {
5754 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5755 inner_depth.increment()?;
5756 }
5757 let val_ref = self.uris.get_or_insert_with(|| {
5758 fidl::new_empty!(
5759 fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<278>>,
5760 D
5761 )
5762 });
5763 fidl::decode!(
5764 fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<278>>,
5765 D,
5766 val_ref,
5767 decoder,
5768 inner_offset,
5769 inner_depth
5770 )?;
5771 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5772 {
5773 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5774 }
5775 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5776 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5777 }
5778 }
5779
5780 next_offset += envelope_size;
5781 _next_ordinal_to_read += 1;
5782 if next_offset >= end_offset {
5783 return Ok(());
5784 }
5785
5786 while _next_ordinal_to_read < 8 {
5788 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5789 _next_ordinal_to_read += 1;
5790 next_offset += envelope_size;
5791 }
5792
5793 let next_out_of_line = decoder.next_out_of_line();
5794 let handles_before = decoder.remaining_handles();
5795 if let Some((inlined, num_bytes, num_handles)) =
5796 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5797 {
5798 let member_inline_size =
5799 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5800 if inlined != (member_inline_size <= 4) {
5801 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5802 }
5803 let inner_offset;
5804 let mut inner_depth = depth.clone();
5805 if inlined {
5806 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5807 inner_offset = next_offset;
5808 } else {
5809 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5810 inner_depth.increment()?;
5811 }
5812 let val_ref =
5813 self.include_tx_power_level.get_or_insert_with(|| fidl::new_empty!(bool, D));
5814 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
5815 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5816 {
5817 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5818 }
5819 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5820 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5821 }
5822 }
5823
5824 next_offset += envelope_size;
5825 _next_ordinal_to_read += 1;
5826 if next_offset >= end_offset {
5827 return Ok(());
5828 }
5829
5830 while _next_ordinal_to_read < 9 {
5832 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5833 _next_ordinal_to_read += 1;
5834 next_offset += envelope_size;
5835 }
5836
5837 let next_out_of_line = decoder.next_out_of_line();
5838 let handles_before = decoder.remaining_handles();
5839 if let Some((inlined, num_bytes, num_handles)) =
5840 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5841 {
5842 let member_inline_size =
5843 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
5844 decoder.context,
5845 );
5846 if inlined != (member_inline_size <= 4) {
5847 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5848 }
5849 let inner_offset;
5850 let mut inner_depth = depth.clone();
5851 if inlined {
5852 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5853 inner_offset = next_offset;
5854 } else {
5855 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5856 inner_depth.increment()?;
5857 }
5858 let val_ref = self
5859 .resolvable_set_identifier
5860 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
5861 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
5862 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5863 {
5864 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5865 }
5866 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5867 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5868 }
5869 }
5870
5871 next_offset += envelope_size;
5872 _next_ordinal_to_read += 1;
5873 if next_offset >= end_offset {
5874 return Ok(());
5875 }
5876
5877 while _next_ordinal_to_read < 10 {
5879 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5880 _next_ordinal_to_read += 1;
5881 next_offset += envelope_size;
5882 }
5883
5884 let next_out_of_line = decoder.next_out_of_line();
5885 let handles_before = decoder.remaining_handles();
5886 if let Some((inlined, num_bytes, num_handles)) =
5887 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5888 {
5889 let member_inline_size =
5890 <fidl::encoding::BoundedString<128> as fidl::encoding::TypeMarker>::inline_size(
5891 decoder.context,
5892 );
5893 if inlined != (member_inline_size <= 4) {
5894 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5895 }
5896 let inner_offset;
5897 let mut inner_depth = depth.clone();
5898 if inlined {
5899 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5900 inner_offset = next_offset;
5901 } else {
5902 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5903 inner_depth.increment()?;
5904 }
5905 let val_ref = self
5906 .broadcast_name
5907 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<128>, D));
5908 fidl::decode!(
5909 fidl::encoding::BoundedString<128>,
5910 D,
5911 val_ref,
5912 decoder,
5913 inner_offset,
5914 inner_depth
5915 )?;
5916 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5917 {
5918 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5919 }
5920 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5921 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5922 }
5923 }
5924
5925 next_offset += envelope_size;
5926
5927 while next_offset < end_offset {
5929 _next_ordinal_to_read += 1;
5930 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5931 next_offset += envelope_size;
5932 }
5933
5934 Ok(())
5935 }
5936 }
5937
5938 impl AdvertisingParameters {
5939 #[inline(always)]
5940 fn max_ordinal_present(&self) -> u64 {
5941 if let Some(_) = self.address_type {
5942 return 7;
5943 }
5944 if let Some(_) = self.advertising_procedure {
5945 return 6;
5946 }
5947 if let Some(_) = self.connection_options {
5948 return 5;
5949 }
5950 if let Some(_) = self.connectable {
5951 return 4;
5952 }
5953 if let Some(_) = self.mode_hint {
5954 return 3;
5955 }
5956 if let Some(_) = self.scan_response {
5957 return 2;
5958 }
5959 if let Some(_) = self.data {
5960 return 1;
5961 }
5962 0
5963 }
5964 }
5965
5966 impl fidl::encoding::ValueTypeMarker for AdvertisingParameters {
5967 type Borrowed<'a> = &'a Self;
5968 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5969 value
5970 }
5971 }
5972
5973 unsafe impl fidl::encoding::TypeMarker for AdvertisingParameters {
5974 type Owned = Self;
5975
5976 #[inline(always)]
5977 fn inline_align(_context: fidl::encoding::Context) -> usize {
5978 8
5979 }
5980
5981 #[inline(always)]
5982 fn inline_size(_context: fidl::encoding::Context) -> usize {
5983 16
5984 }
5985 }
5986
5987 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<AdvertisingParameters, D>
5988 for &AdvertisingParameters
5989 {
5990 unsafe fn encode(
5991 self,
5992 encoder: &mut fidl::encoding::Encoder<'_, D>,
5993 offset: usize,
5994 mut depth: fidl::encoding::Depth,
5995 ) -> fidl::Result<()> {
5996 encoder.debug_check_bounds::<AdvertisingParameters>(offset);
5997 let max_ordinal: u64 = self.max_ordinal_present();
5999 encoder.write_num(max_ordinal, offset);
6000 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
6001 if max_ordinal == 0 {
6003 return Ok(());
6004 }
6005 depth.increment()?;
6006 let envelope_size = 8;
6007 let bytes_len = max_ordinal as usize * envelope_size;
6008 #[allow(unused_variables)]
6009 let offset = encoder.out_of_line_offset(bytes_len);
6010 let mut _prev_end_offset: usize = 0;
6011 if 1 > max_ordinal {
6012 return Ok(());
6013 }
6014
6015 let cur_offset: usize = (1 - 1) * envelope_size;
6018
6019 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6021
6022 fidl::encoding::encode_in_envelope_optional::<AdvertisingData, D>(
6027 self.data
6028 .as_ref()
6029 .map(<AdvertisingData as fidl::encoding::ValueTypeMarker>::borrow),
6030 encoder,
6031 offset + cur_offset,
6032 depth,
6033 )?;
6034
6035 _prev_end_offset = cur_offset + envelope_size;
6036 if 2 > max_ordinal {
6037 return Ok(());
6038 }
6039
6040 let cur_offset: usize = (2 - 1) * envelope_size;
6043
6044 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6046
6047 fidl::encoding::encode_in_envelope_optional::<AdvertisingData, D>(
6052 self.scan_response
6053 .as_ref()
6054 .map(<AdvertisingData as fidl::encoding::ValueTypeMarker>::borrow),
6055 encoder,
6056 offset + cur_offset,
6057 depth,
6058 )?;
6059
6060 _prev_end_offset = cur_offset + envelope_size;
6061 if 3 > max_ordinal {
6062 return Ok(());
6063 }
6064
6065 let cur_offset: usize = (3 - 1) * envelope_size;
6068
6069 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6071
6072 fidl::encoding::encode_in_envelope_optional::<AdvertisingModeHint, D>(
6077 self.mode_hint
6078 .as_ref()
6079 .map(<AdvertisingModeHint as fidl::encoding::ValueTypeMarker>::borrow),
6080 encoder,
6081 offset + cur_offset,
6082 depth,
6083 )?;
6084
6085 _prev_end_offset = cur_offset + envelope_size;
6086 if 4 > max_ordinal {
6087 return Ok(());
6088 }
6089
6090 let cur_offset: usize = (4 - 1) * envelope_size;
6093
6094 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6096
6097 fidl::encoding::encode_in_envelope_optional::<bool, D>(
6102 self.connectable.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
6103 encoder,
6104 offset + cur_offset,
6105 depth,
6106 )?;
6107
6108 _prev_end_offset = cur_offset + envelope_size;
6109 if 5 > max_ordinal {
6110 return Ok(());
6111 }
6112
6113 let cur_offset: usize = (5 - 1) * envelope_size;
6116
6117 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6119
6120 fidl::encoding::encode_in_envelope_optional::<ConnectionOptions, D>(
6125 self.connection_options
6126 .as_ref()
6127 .map(<ConnectionOptions as fidl::encoding::ValueTypeMarker>::borrow),
6128 encoder,
6129 offset + cur_offset,
6130 depth,
6131 )?;
6132
6133 _prev_end_offset = cur_offset + envelope_size;
6134 if 6 > max_ordinal {
6135 return Ok(());
6136 }
6137
6138 let cur_offset: usize = (6 - 1) * envelope_size;
6141
6142 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6144
6145 fidl::encoding::encode_in_envelope_optional::<AdvertisingProcedure, D>(
6150 self.advertising_procedure
6151 .as_ref()
6152 .map(<AdvertisingProcedure as fidl::encoding::ValueTypeMarker>::borrow),
6153 encoder,
6154 offset + cur_offset,
6155 depth,
6156 )?;
6157
6158 _prev_end_offset = cur_offset + envelope_size;
6159 if 7 > max_ordinal {
6160 return Ok(());
6161 }
6162
6163 let cur_offset: usize = (7 - 1) * envelope_size;
6166
6167 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6169
6170 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_bluetooth__common::AddressType, D>(
6175 self.address_type.as_ref().map(<fidl_fuchsia_bluetooth__common::AddressType as fidl::encoding::ValueTypeMarker>::borrow),
6176 encoder, offset + cur_offset, depth
6177 )?;
6178
6179 _prev_end_offset = cur_offset + envelope_size;
6180
6181 Ok(())
6182 }
6183 }
6184
6185 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for AdvertisingParameters {
6186 #[inline(always)]
6187 fn new_empty() -> Self {
6188 Self::default()
6189 }
6190
6191 unsafe fn decode(
6192 &mut self,
6193 decoder: &mut fidl::encoding::Decoder<'_, D>,
6194 offset: usize,
6195 mut depth: fidl::encoding::Depth,
6196 ) -> fidl::Result<()> {
6197 decoder.debug_check_bounds::<Self>(offset);
6198 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
6199 None => return Err(fidl::Error::NotNullable),
6200 Some(len) => len,
6201 };
6202 if len == 0 {
6204 return Ok(());
6205 };
6206 depth.increment()?;
6207 let envelope_size = 8;
6208 let bytes_len = len * envelope_size;
6209 let offset = decoder.out_of_line_offset(bytes_len)?;
6210 let mut _next_ordinal_to_read = 0;
6212 let mut next_offset = offset;
6213 let end_offset = offset + bytes_len;
6214 _next_ordinal_to_read += 1;
6215 if next_offset >= end_offset {
6216 return Ok(());
6217 }
6218
6219 while _next_ordinal_to_read < 1 {
6221 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6222 _next_ordinal_to_read += 1;
6223 next_offset += envelope_size;
6224 }
6225
6226 let next_out_of_line = decoder.next_out_of_line();
6227 let handles_before = decoder.remaining_handles();
6228 if let Some((inlined, num_bytes, num_handles)) =
6229 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6230 {
6231 let member_inline_size =
6232 <AdvertisingData as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6233 if inlined != (member_inline_size <= 4) {
6234 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6235 }
6236 let inner_offset;
6237 let mut inner_depth = depth.clone();
6238 if inlined {
6239 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6240 inner_offset = next_offset;
6241 } else {
6242 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6243 inner_depth.increment()?;
6244 }
6245 let val_ref = self.data.get_or_insert_with(|| fidl::new_empty!(AdvertisingData, D));
6246 fidl::decode!(AdvertisingData, D, val_ref, decoder, inner_offset, inner_depth)?;
6247 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6248 {
6249 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6250 }
6251 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6252 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6253 }
6254 }
6255
6256 next_offset += envelope_size;
6257 _next_ordinal_to_read += 1;
6258 if next_offset >= end_offset {
6259 return Ok(());
6260 }
6261
6262 while _next_ordinal_to_read < 2 {
6264 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6265 _next_ordinal_to_read += 1;
6266 next_offset += envelope_size;
6267 }
6268
6269 let next_out_of_line = decoder.next_out_of_line();
6270 let handles_before = decoder.remaining_handles();
6271 if let Some((inlined, num_bytes, num_handles)) =
6272 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6273 {
6274 let member_inline_size =
6275 <AdvertisingData as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6276 if inlined != (member_inline_size <= 4) {
6277 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6278 }
6279 let inner_offset;
6280 let mut inner_depth = depth.clone();
6281 if inlined {
6282 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6283 inner_offset = next_offset;
6284 } else {
6285 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6286 inner_depth.increment()?;
6287 }
6288 let val_ref =
6289 self.scan_response.get_or_insert_with(|| fidl::new_empty!(AdvertisingData, D));
6290 fidl::decode!(AdvertisingData, D, val_ref, decoder, inner_offset, inner_depth)?;
6291 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6292 {
6293 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6294 }
6295 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6296 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6297 }
6298 }
6299
6300 next_offset += envelope_size;
6301 _next_ordinal_to_read += 1;
6302 if next_offset >= end_offset {
6303 return Ok(());
6304 }
6305
6306 while _next_ordinal_to_read < 3 {
6308 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6309 _next_ordinal_to_read += 1;
6310 next_offset += envelope_size;
6311 }
6312
6313 let next_out_of_line = decoder.next_out_of_line();
6314 let handles_before = decoder.remaining_handles();
6315 if let Some((inlined, num_bytes, num_handles)) =
6316 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6317 {
6318 let member_inline_size =
6319 <AdvertisingModeHint as fidl::encoding::TypeMarker>::inline_size(
6320 decoder.context,
6321 );
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.mode_hint.get_or_insert_with(|| fidl::new_empty!(AdvertisingModeHint, D));
6336 fidl::decode!(AdvertisingModeHint, 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 < 4 {
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 <bool 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 = self.connectable.get_or_insert_with(|| fidl::new_empty!(bool, D));
6379 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
6380 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6381 {
6382 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6383 }
6384 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6385 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6386 }
6387 }
6388
6389 next_offset += envelope_size;
6390 _next_ordinal_to_read += 1;
6391 if next_offset >= end_offset {
6392 return Ok(());
6393 }
6394
6395 while _next_ordinal_to_read < 5 {
6397 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6398 _next_ordinal_to_read += 1;
6399 next_offset += envelope_size;
6400 }
6401
6402 let next_out_of_line = decoder.next_out_of_line();
6403 let handles_before = decoder.remaining_handles();
6404 if let Some((inlined, num_bytes, num_handles)) =
6405 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6406 {
6407 let member_inline_size =
6408 <ConnectionOptions as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6409 if inlined != (member_inline_size <= 4) {
6410 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6411 }
6412 let inner_offset;
6413 let mut inner_depth = depth.clone();
6414 if inlined {
6415 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6416 inner_offset = next_offset;
6417 } else {
6418 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6419 inner_depth.increment()?;
6420 }
6421 let val_ref = self
6422 .connection_options
6423 .get_or_insert_with(|| fidl::new_empty!(ConnectionOptions, D));
6424 fidl::decode!(ConnectionOptions, D, val_ref, decoder, inner_offset, inner_depth)?;
6425 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6426 {
6427 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6428 }
6429 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6430 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6431 }
6432 }
6433
6434 next_offset += envelope_size;
6435 _next_ordinal_to_read += 1;
6436 if next_offset >= end_offset {
6437 return Ok(());
6438 }
6439
6440 while _next_ordinal_to_read < 6 {
6442 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6443 _next_ordinal_to_read += 1;
6444 next_offset += envelope_size;
6445 }
6446
6447 let next_out_of_line = decoder.next_out_of_line();
6448 let handles_before = decoder.remaining_handles();
6449 if let Some((inlined, num_bytes, num_handles)) =
6450 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6451 {
6452 let member_inline_size =
6453 <AdvertisingProcedure as fidl::encoding::TypeMarker>::inline_size(
6454 decoder.context,
6455 );
6456 if inlined != (member_inline_size <= 4) {
6457 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6458 }
6459 let inner_offset;
6460 let mut inner_depth = depth.clone();
6461 if inlined {
6462 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6463 inner_offset = next_offset;
6464 } else {
6465 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6466 inner_depth.increment()?;
6467 }
6468 let val_ref = self
6469 .advertising_procedure
6470 .get_or_insert_with(|| fidl::new_empty!(AdvertisingProcedure, D));
6471 fidl::decode!(
6472 AdvertisingProcedure,
6473 D,
6474 val_ref,
6475 decoder,
6476 inner_offset,
6477 inner_depth
6478 )?;
6479 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6480 {
6481 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6482 }
6483 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6484 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6485 }
6486 }
6487
6488 next_offset += envelope_size;
6489 _next_ordinal_to_read += 1;
6490 if next_offset >= end_offset {
6491 return Ok(());
6492 }
6493
6494 while _next_ordinal_to_read < 7 {
6496 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6497 _next_ordinal_to_read += 1;
6498 next_offset += envelope_size;
6499 }
6500
6501 let next_out_of_line = decoder.next_out_of_line();
6502 let handles_before = decoder.remaining_handles();
6503 if let Some((inlined, num_bytes, num_handles)) =
6504 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6505 {
6506 let member_inline_size = <fidl_fuchsia_bluetooth__common::AddressType as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6507 if inlined != (member_inline_size <= 4) {
6508 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6509 }
6510 let inner_offset;
6511 let mut inner_depth = depth.clone();
6512 if inlined {
6513 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6514 inner_offset = next_offset;
6515 } else {
6516 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6517 inner_depth.increment()?;
6518 }
6519 let val_ref = self.address_type.get_or_insert_with(|| {
6520 fidl::new_empty!(fidl_fuchsia_bluetooth__common::AddressType, D)
6521 });
6522 fidl::decode!(
6523 fidl_fuchsia_bluetooth__common::AddressType,
6524 D,
6525 val_ref,
6526 decoder,
6527 inner_offset,
6528 inner_depth
6529 )?;
6530 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6531 {
6532 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6533 }
6534 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6535 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6536 }
6537 }
6538
6539 next_offset += envelope_size;
6540
6541 while next_offset < end_offset {
6543 _next_ordinal_to_read += 1;
6544 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6545 next_offset += envelope_size;
6546 }
6547
6548 Ok(())
6549 }
6550 }
6551
6552 impl BroadcastIsochronousGroupInfo {
6553 #[inline(always)]
6554 fn max_ordinal_present(&self) -> u64 {
6555 if let Some(_) = self.encryption {
6556 return 4;
6557 }
6558 if let Some(_) = self.phy {
6559 return 3;
6560 }
6561 if let Some(_) = self.max_sdu_size {
6562 return 2;
6563 }
6564 if let Some(_) = self.streams_count {
6565 return 1;
6566 }
6567 0
6568 }
6569 }
6570
6571 impl fidl::encoding::ValueTypeMarker for BroadcastIsochronousGroupInfo {
6572 type Borrowed<'a> = &'a Self;
6573 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6574 value
6575 }
6576 }
6577
6578 unsafe impl fidl::encoding::TypeMarker for BroadcastIsochronousGroupInfo {
6579 type Owned = Self;
6580
6581 #[inline(always)]
6582 fn inline_align(_context: fidl::encoding::Context) -> usize {
6583 8
6584 }
6585
6586 #[inline(always)]
6587 fn inline_size(_context: fidl::encoding::Context) -> usize {
6588 16
6589 }
6590 }
6591
6592 unsafe impl<D: fidl::encoding::ResourceDialect>
6593 fidl::encoding::Encode<BroadcastIsochronousGroupInfo, D>
6594 for &BroadcastIsochronousGroupInfo
6595 {
6596 unsafe fn encode(
6597 self,
6598 encoder: &mut fidl::encoding::Encoder<'_, D>,
6599 offset: usize,
6600 mut depth: fidl::encoding::Depth,
6601 ) -> fidl::Result<()> {
6602 encoder.debug_check_bounds::<BroadcastIsochronousGroupInfo>(offset);
6603 let max_ordinal: u64 = self.max_ordinal_present();
6605 encoder.write_num(max_ordinal, offset);
6606 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
6607 if max_ordinal == 0 {
6609 return Ok(());
6610 }
6611 depth.increment()?;
6612 let envelope_size = 8;
6613 let bytes_len = max_ordinal as usize * envelope_size;
6614 #[allow(unused_variables)]
6615 let offset = encoder.out_of_line_offset(bytes_len);
6616 let mut _prev_end_offset: usize = 0;
6617 if 1 > max_ordinal {
6618 return Ok(());
6619 }
6620
6621 let cur_offset: usize = (1 - 1) * envelope_size;
6624
6625 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6627
6628 fidl::encoding::encode_in_envelope_optional::<u8, D>(
6633 self.streams_count.as_ref().map(<u8 as fidl::encoding::ValueTypeMarker>::borrow),
6634 encoder,
6635 offset + cur_offset,
6636 depth,
6637 )?;
6638
6639 _prev_end_offset = cur_offset + envelope_size;
6640 if 2 > max_ordinal {
6641 return Ok(());
6642 }
6643
6644 let cur_offset: usize = (2 - 1) * envelope_size;
6647
6648 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6650
6651 fidl::encoding::encode_in_envelope_optional::<u16, D>(
6656 self.max_sdu_size.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
6657 encoder,
6658 offset + cur_offset,
6659 depth,
6660 )?;
6661
6662 _prev_end_offset = cur_offset + envelope_size;
6663 if 3 > max_ordinal {
6664 return Ok(());
6665 }
6666
6667 let cur_offset: usize = (3 - 1) * envelope_size;
6670
6671 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6673
6674 fidl::encoding::encode_in_envelope_optional::<PhysicalLayer, D>(
6679 self.phy.as_ref().map(<PhysicalLayer as fidl::encoding::ValueTypeMarker>::borrow),
6680 encoder,
6681 offset + cur_offset,
6682 depth,
6683 )?;
6684
6685 _prev_end_offset = cur_offset + envelope_size;
6686 if 4 > max_ordinal {
6687 return Ok(());
6688 }
6689
6690 let cur_offset: usize = (4 - 1) * envelope_size;
6693
6694 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6696
6697 fidl::encoding::encode_in_envelope_optional::<bool, D>(
6702 self.encryption.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
6703 encoder,
6704 offset + cur_offset,
6705 depth,
6706 )?;
6707
6708 _prev_end_offset = cur_offset + envelope_size;
6709
6710 Ok(())
6711 }
6712 }
6713
6714 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
6715 for BroadcastIsochronousGroupInfo
6716 {
6717 #[inline(always)]
6718 fn new_empty() -> Self {
6719 Self::default()
6720 }
6721
6722 unsafe fn decode(
6723 &mut self,
6724 decoder: &mut fidl::encoding::Decoder<'_, D>,
6725 offset: usize,
6726 mut depth: fidl::encoding::Depth,
6727 ) -> fidl::Result<()> {
6728 decoder.debug_check_bounds::<Self>(offset);
6729 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
6730 None => return Err(fidl::Error::NotNullable),
6731 Some(len) => len,
6732 };
6733 if len == 0 {
6735 return Ok(());
6736 };
6737 depth.increment()?;
6738 let envelope_size = 8;
6739 let bytes_len = len * envelope_size;
6740 let offset = decoder.out_of_line_offset(bytes_len)?;
6741 let mut _next_ordinal_to_read = 0;
6743 let mut next_offset = offset;
6744 let end_offset = offset + bytes_len;
6745 _next_ordinal_to_read += 1;
6746 if next_offset >= end_offset {
6747 return Ok(());
6748 }
6749
6750 while _next_ordinal_to_read < 1 {
6752 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6753 _next_ordinal_to_read += 1;
6754 next_offset += envelope_size;
6755 }
6756
6757 let next_out_of_line = decoder.next_out_of_line();
6758 let handles_before = decoder.remaining_handles();
6759 if let Some((inlined, num_bytes, num_handles)) =
6760 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6761 {
6762 let member_inline_size =
6763 <u8 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6764 if inlined != (member_inline_size <= 4) {
6765 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6766 }
6767 let inner_offset;
6768 let mut inner_depth = depth.clone();
6769 if inlined {
6770 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6771 inner_offset = next_offset;
6772 } else {
6773 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6774 inner_depth.increment()?;
6775 }
6776 let val_ref = self.streams_count.get_or_insert_with(|| fidl::new_empty!(u8, D));
6777 fidl::decode!(u8, D, val_ref, decoder, inner_offset, inner_depth)?;
6778 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6779 {
6780 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6781 }
6782 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6783 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6784 }
6785 }
6786
6787 next_offset += envelope_size;
6788 _next_ordinal_to_read += 1;
6789 if next_offset >= end_offset {
6790 return Ok(());
6791 }
6792
6793 while _next_ordinal_to_read < 2 {
6795 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6796 _next_ordinal_to_read += 1;
6797 next_offset += envelope_size;
6798 }
6799
6800 let next_out_of_line = decoder.next_out_of_line();
6801 let handles_before = decoder.remaining_handles();
6802 if let Some((inlined, num_bytes, num_handles)) =
6803 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6804 {
6805 let member_inline_size =
6806 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6807 if inlined != (member_inline_size <= 4) {
6808 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6809 }
6810 let inner_offset;
6811 let mut inner_depth = depth.clone();
6812 if inlined {
6813 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6814 inner_offset = next_offset;
6815 } else {
6816 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6817 inner_depth.increment()?;
6818 }
6819 let val_ref = self.max_sdu_size.get_or_insert_with(|| fidl::new_empty!(u16, D));
6820 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
6821 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6822 {
6823 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6824 }
6825 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6826 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6827 }
6828 }
6829
6830 next_offset += envelope_size;
6831 _next_ordinal_to_read += 1;
6832 if next_offset >= end_offset {
6833 return Ok(());
6834 }
6835
6836 while _next_ordinal_to_read < 3 {
6838 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6839 _next_ordinal_to_read += 1;
6840 next_offset += envelope_size;
6841 }
6842
6843 let next_out_of_line = decoder.next_out_of_line();
6844 let handles_before = decoder.remaining_handles();
6845 if let Some((inlined, num_bytes, num_handles)) =
6846 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6847 {
6848 let member_inline_size =
6849 <PhysicalLayer as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6850 if inlined != (member_inline_size <= 4) {
6851 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6852 }
6853 let inner_offset;
6854 let mut inner_depth = depth.clone();
6855 if inlined {
6856 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6857 inner_offset = next_offset;
6858 } else {
6859 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6860 inner_depth.increment()?;
6861 }
6862 let val_ref = self.phy.get_or_insert_with(|| fidl::new_empty!(PhysicalLayer, D));
6863 fidl::decode!(PhysicalLayer, D, val_ref, decoder, inner_offset, inner_depth)?;
6864 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6865 {
6866 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6867 }
6868 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6869 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6870 }
6871 }
6872
6873 next_offset += envelope_size;
6874 _next_ordinal_to_read += 1;
6875 if next_offset >= end_offset {
6876 return Ok(());
6877 }
6878
6879 while _next_ordinal_to_read < 4 {
6881 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6882 _next_ordinal_to_read += 1;
6883 next_offset += envelope_size;
6884 }
6885
6886 let next_out_of_line = decoder.next_out_of_line();
6887 let handles_before = decoder.remaining_handles();
6888 if let Some((inlined, num_bytes, num_handles)) =
6889 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6890 {
6891 let member_inline_size =
6892 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6893 if inlined != (member_inline_size <= 4) {
6894 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6895 }
6896 let inner_offset;
6897 let mut inner_depth = depth.clone();
6898 if inlined {
6899 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6900 inner_offset = next_offset;
6901 } else {
6902 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6903 inner_depth.increment()?;
6904 }
6905 let val_ref = self.encryption.get_or_insert_with(|| fidl::new_empty!(bool, D));
6906 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
6907 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6908 {
6909 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6910 }
6911 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6912 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6913 }
6914 }
6915
6916 next_offset += envelope_size;
6917
6918 while next_offset < end_offset {
6920 _next_ordinal_to_read += 1;
6921 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6922 next_offset += envelope_size;
6923 }
6924
6925 Ok(())
6926 }
6927 }
6928
6929 impl BroadcastIsochronousGroupInfoReport {
6930 #[inline(always)]
6931 fn max_ordinal_present(&self) -> u64 {
6932 if let Some(_) = self.timestamp {
6933 return 2;
6934 }
6935 if let Some(_) = self.info {
6936 return 1;
6937 }
6938 0
6939 }
6940 }
6941
6942 impl fidl::encoding::ValueTypeMarker for BroadcastIsochronousGroupInfoReport {
6943 type Borrowed<'a> = &'a Self;
6944 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6945 value
6946 }
6947 }
6948
6949 unsafe impl fidl::encoding::TypeMarker for BroadcastIsochronousGroupInfoReport {
6950 type Owned = Self;
6951
6952 #[inline(always)]
6953 fn inline_align(_context: fidl::encoding::Context) -> usize {
6954 8
6955 }
6956
6957 #[inline(always)]
6958 fn inline_size(_context: fidl::encoding::Context) -> usize {
6959 16
6960 }
6961 }
6962
6963 unsafe impl<D: fidl::encoding::ResourceDialect>
6964 fidl::encoding::Encode<BroadcastIsochronousGroupInfoReport, D>
6965 for &BroadcastIsochronousGroupInfoReport
6966 {
6967 unsafe fn encode(
6968 self,
6969 encoder: &mut fidl::encoding::Encoder<'_, D>,
6970 offset: usize,
6971 mut depth: fidl::encoding::Depth,
6972 ) -> fidl::Result<()> {
6973 encoder.debug_check_bounds::<BroadcastIsochronousGroupInfoReport>(offset);
6974 let max_ordinal: u64 = self.max_ordinal_present();
6976 encoder.write_num(max_ordinal, offset);
6977 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
6978 if max_ordinal == 0 {
6980 return Ok(());
6981 }
6982 depth.increment()?;
6983 let envelope_size = 8;
6984 let bytes_len = max_ordinal as usize * envelope_size;
6985 #[allow(unused_variables)]
6986 let offset = encoder.out_of_line_offset(bytes_len);
6987 let mut _prev_end_offset: usize = 0;
6988 if 1 > max_ordinal {
6989 return Ok(());
6990 }
6991
6992 let cur_offset: usize = (1 - 1) * envelope_size;
6995
6996 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6998
6999 fidl::encoding::encode_in_envelope_optional::<BroadcastIsochronousGroupInfo, D>(
7004 self.info.as_ref().map(
7005 <BroadcastIsochronousGroupInfo as fidl::encoding::ValueTypeMarker>::borrow,
7006 ),
7007 encoder,
7008 offset + cur_offset,
7009 depth,
7010 )?;
7011
7012 _prev_end_offset = cur_offset + envelope_size;
7013 if 2 > max_ordinal {
7014 return Ok(());
7015 }
7016
7017 let cur_offset: usize = (2 - 1) * envelope_size;
7020
7021 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7023
7024 fidl::encoding::encode_in_envelope_optional::<i64, D>(
7029 self.timestamp.as_ref().map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
7030 encoder,
7031 offset + cur_offset,
7032 depth,
7033 )?;
7034
7035 _prev_end_offset = cur_offset + envelope_size;
7036
7037 Ok(())
7038 }
7039 }
7040
7041 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
7042 for BroadcastIsochronousGroupInfoReport
7043 {
7044 #[inline(always)]
7045 fn new_empty() -> Self {
7046 Self::default()
7047 }
7048
7049 unsafe fn decode(
7050 &mut self,
7051 decoder: &mut fidl::encoding::Decoder<'_, D>,
7052 offset: usize,
7053 mut depth: fidl::encoding::Depth,
7054 ) -> fidl::Result<()> {
7055 decoder.debug_check_bounds::<Self>(offset);
7056 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
7057 None => return Err(fidl::Error::NotNullable),
7058 Some(len) => len,
7059 };
7060 if len == 0 {
7062 return Ok(());
7063 };
7064 depth.increment()?;
7065 let envelope_size = 8;
7066 let bytes_len = len * envelope_size;
7067 let offset = decoder.out_of_line_offset(bytes_len)?;
7068 let mut _next_ordinal_to_read = 0;
7070 let mut next_offset = offset;
7071 let end_offset = offset + bytes_len;
7072 _next_ordinal_to_read += 1;
7073 if next_offset >= end_offset {
7074 return Ok(());
7075 }
7076
7077 while _next_ordinal_to_read < 1 {
7079 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7080 _next_ordinal_to_read += 1;
7081 next_offset += envelope_size;
7082 }
7083
7084 let next_out_of_line = decoder.next_out_of_line();
7085 let handles_before = decoder.remaining_handles();
7086 if let Some((inlined, num_bytes, num_handles)) =
7087 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7088 {
7089 let member_inline_size =
7090 <BroadcastIsochronousGroupInfo as fidl::encoding::TypeMarker>::inline_size(
7091 decoder.context,
7092 );
7093 if inlined != (member_inline_size <= 4) {
7094 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7095 }
7096 let inner_offset;
7097 let mut inner_depth = depth.clone();
7098 if inlined {
7099 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7100 inner_offset = next_offset;
7101 } else {
7102 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7103 inner_depth.increment()?;
7104 }
7105 let val_ref = self
7106 .info
7107 .get_or_insert_with(|| fidl::new_empty!(BroadcastIsochronousGroupInfo, D));
7108 fidl::decode!(
7109 BroadcastIsochronousGroupInfo,
7110 D,
7111 val_ref,
7112 decoder,
7113 inner_offset,
7114 inner_depth
7115 )?;
7116 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7117 {
7118 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7119 }
7120 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7121 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7122 }
7123 }
7124
7125 next_offset += envelope_size;
7126 _next_ordinal_to_read += 1;
7127 if next_offset >= end_offset {
7128 return Ok(());
7129 }
7130
7131 while _next_ordinal_to_read < 2 {
7133 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7134 _next_ordinal_to_read += 1;
7135 next_offset += envelope_size;
7136 }
7137
7138 let next_out_of_line = decoder.next_out_of_line();
7139 let handles_before = decoder.remaining_handles();
7140 if let Some((inlined, num_bytes, num_handles)) =
7141 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7142 {
7143 let member_inline_size =
7144 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7145 if inlined != (member_inline_size <= 4) {
7146 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7147 }
7148 let inner_offset;
7149 let mut inner_depth = depth.clone();
7150 if inlined {
7151 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7152 inner_offset = next_offset;
7153 } else {
7154 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7155 inner_depth.increment()?;
7156 }
7157 let val_ref = self.timestamp.get_or_insert_with(|| fidl::new_empty!(i64, D));
7158 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
7159 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7160 {
7161 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7162 }
7163 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7164 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7165 }
7166 }
7167
7168 next_offset += envelope_size;
7169
7170 while next_offset < end_offset {
7172 _next_ordinal_to_read += 1;
7173 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7174 next_offset += envelope_size;
7175 }
7176
7177 Ok(())
7178 }
7179 }
7180
7181 impl CentralCreateConnectedIsochronousGroupResponse {
7182 #[inline(always)]
7183 fn max_ordinal_present(&self) -> u64 {
7184 if let Some(_) = self.cig_id {
7185 return 1;
7186 }
7187 0
7188 }
7189 }
7190
7191 impl fidl::encoding::ValueTypeMarker for CentralCreateConnectedIsochronousGroupResponse {
7192 type Borrowed<'a> = &'a Self;
7193 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7194 value
7195 }
7196 }
7197
7198 unsafe impl fidl::encoding::TypeMarker for CentralCreateConnectedIsochronousGroupResponse {
7199 type Owned = Self;
7200
7201 #[inline(always)]
7202 fn inline_align(_context: fidl::encoding::Context) -> usize {
7203 8
7204 }
7205
7206 #[inline(always)]
7207 fn inline_size(_context: fidl::encoding::Context) -> usize {
7208 16
7209 }
7210 }
7211
7212 unsafe impl<D: fidl::encoding::ResourceDialect>
7213 fidl::encoding::Encode<CentralCreateConnectedIsochronousGroupResponse, D>
7214 for &CentralCreateConnectedIsochronousGroupResponse
7215 {
7216 unsafe fn encode(
7217 self,
7218 encoder: &mut fidl::encoding::Encoder<'_, D>,
7219 offset: usize,
7220 mut depth: fidl::encoding::Depth,
7221 ) -> fidl::Result<()> {
7222 encoder.debug_check_bounds::<CentralCreateConnectedIsochronousGroupResponse>(offset);
7223 let max_ordinal: u64 = self.max_ordinal_present();
7225 encoder.write_num(max_ordinal, offset);
7226 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
7227 if max_ordinal == 0 {
7229 return Ok(());
7230 }
7231 depth.increment()?;
7232 let envelope_size = 8;
7233 let bytes_len = max_ordinal as usize * envelope_size;
7234 #[allow(unused_variables)]
7235 let offset = encoder.out_of_line_offset(bytes_len);
7236 let mut _prev_end_offset: usize = 0;
7237 if 1 > max_ordinal {
7238 return Ok(());
7239 }
7240
7241 let cur_offset: usize = (1 - 1) * envelope_size;
7244
7245 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7247
7248 fidl::encoding::encode_in_envelope_optional::<u8, D>(
7253 self.cig_id.as_ref().map(<u8 as fidl::encoding::ValueTypeMarker>::borrow),
7254 encoder,
7255 offset + cur_offset,
7256 depth,
7257 )?;
7258
7259 _prev_end_offset = cur_offset + envelope_size;
7260
7261 Ok(())
7262 }
7263 }
7264
7265 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
7266 for CentralCreateConnectedIsochronousGroupResponse
7267 {
7268 #[inline(always)]
7269 fn new_empty() -> Self {
7270 Self::default()
7271 }
7272
7273 unsafe fn decode(
7274 &mut self,
7275 decoder: &mut fidl::encoding::Decoder<'_, D>,
7276 offset: usize,
7277 mut depth: fidl::encoding::Depth,
7278 ) -> fidl::Result<()> {
7279 decoder.debug_check_bounds::<Self>(offset);
7280 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
7281 None => return Err(fidl::Error::NotNullable),
7282 Some(len) => len,
7283 };
7284 if len == 0 {
7286 return Ok(());
7287 };
7288 depth.increment()?;
7289 let envelope_size = 8;
7290 let bytes_len = len * envelope_size;
7291 let offset = decoder.out_of_line_offset(bytes_len)?;
7292 let mut _next_ordinal_to_read = 0;
7294 let mut next_offset = offset;
7295 let end_offset = offset + bytes_len;
7296 _next_ordinal_to_read += 1;
7297 if next_offset >= end_offset {
7298 return Ok(());
7299 }
7300
7301 while _next_ordinal_to_read < 1 {
7303 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7304 _next_ordinal_to_read += 1;
7305 next_offset += envelope_size;
7306 }
7307
7308 let next_out_of_line = decoder.next_out_of_line();
7309 let handles_before = decoder.remaining_handles();
7310 if let Some((inlined, num_bytes, num_handles)) =
7311 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7312 {
7313 let member_inline_size =
7314 <u8 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7315 if inlined != (member_inline_size <= 4) {
7316 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7317 }
7318 let inner_offset;
7319 let mut inner_depth = depth.clone();
7320 if inlined {
7321 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7322 inner_offset = next_offset;
7323 } else {
7324 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7325 inner_depth.increment()?;
7326 }
7327 let val_ref = self.cig_id.get_or_insert_with(|| fidl::new_empty!(u8, D));
7328 fidl::decode!(u8, D, val_ref, decoder, inner_offset, inner_depth)?;
7329 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7330 {
7331 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7332 }
7333 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7334 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7335 }
7336 }
7337
7338 next_offset += envelope_size;
7339
7340 while next_offset < end_offset {
7342 _next_ordinal_to_read += 1;
7343 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7344 next_offset += envelope_size;
7345 }
7346
7347 Ok(())
7348 }
7349 }
7350
7351 impl ChannelListenerRegistryListenL2capResponse {
7352 #[inline(always)]
7353 fn max_ordinal_present(&self) -> u64 {
7354 if let Some(_) = self.psm {
7355 return 1;
7356 }
7357 0
7358 }
7359 }
7360
7361 impl fidl::encoding::ValueTypeMarker for ChannelListenerRegistryListenL2capResponse {
7362 type Borrowed<'a> = &'a Self;
7363 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7364 value
7365 }
7366 }
7367
7368 unsafe impl fidl::encoding::TypeMarker for ChannelListenerRegistryListenL2capResponse {
7369 type Owned = Self;
7370
7371 #[inline(always)]
7372 fn inline_align(_context: fidl::encoding::Context) -> usize {
7373 8
7374 }
7375
7376 #[inline(always)]
7377 fn inline_size(_context: fidl::encoding::Context) -> usize {
7378 16
7379 }
7380 }
7381
7382 unsafe impl<D: fidl::encoding::ResourceDialect>
7383 fidl::encoding::Encode<ChannelListenerRegistryListenL2capResponse, D>
7384 for &ChannelListenerRegistryListenL2capResponse
7385 {
7386 unsafe fn encode(
7387 self,
7388 encoder: &mut fidl::encoding::Encoder<'_, D>,
7389 offset: usize,
7390 mut depth: fidl::encoding::Depth,
7391 ) -> fidl::Result<()> {
7392 encoder.debug_check_bounds::<ChannelListenerRegistryListenL2capResponse>(offset);
7393 let max_ordinal: u64 = self.max_ordinal_present();
7395 encoder.write_num(max_ordinal, offset);
7396 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
7397 if max_ordinal == 0 {
7399 return Ok(());
7400 }
7401 depth.increment()?;
7402 let envelope_size = 8;
7403 let bytes_len = max_ordinal as usize * envelope_size;
7404 #[allow(unused_variables)]
7405 let offset = encoder.out_of_line_offset(bytes_len);
7406 let mut _prev_end_offset: usize = 0;
7407 if 1 > max_ordinal {
7408 return Ok(());
7409 }
7410
7411 let cur_offset: usize = (1 - 1) * envelope_size;
7414
7415 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7417
7418 fidl::encoding::encode_in_envelope_optional::<u16, D>(
7423 self.psm.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
7424 encoder,
7425 offset + cur_offset,
7426 depth,
7427 )?;
7428
7429 _prev_end_offset = cur_offset + envelope_size;
7430
7431 Ok(())
7432 }
7433 }
7434
7435 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
7436 for ChannelListenerRegistryListenL2capResponse
7437 {
7438 #[inline(always)]
7439 fn new_empty() -> Self {
7440 Self::default()
7441 }
7442
7443 unsafe fn decode(
7444 &mut self,
7445 decoder: &mut fidl::encoding::Decoder<'_, D>,
7446 offset: usize,
7447 mut depth: fidl::encoding::Depth,
7448 ) -> fidl::Result<()> {
7449 decoder.debug_check_bounds::<Self>(offset);
7450 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
7451 None => return Err(fidl::Error::NotNullable),
7452 Some(len) => len,
7453 };
7454 if len == 0 {
7456 return Ok(());
7457 };
7458 depth.increment()?;
7459 let envelope_size = 8;
7460 let bytes_len = len * envelope_size;
7461 let offset = decoder.out_of_line_offset(bytes_len)?;
7462 let mut _next_ordinal_to_read = 0;
7464 let mut next_offset = offset;
7465 let end_offset = offset + bytes_len;
7466 _next_ordinal_to_read += 1;
7467 if next_offset >= end_offset {
7468 return Ok(());
7469 }
7470
7471 while _next_ordinal_to_read < 1 {
7473 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7474 _next_ordinal_to_read += 1;
7475 next_offset += envelope_size;
7476 }
7477
7478 let next_out_of_line = decoder.next_out_of_line();
7479 let handles_before = decoder.remaining_handles();
7480 if let Some((inlined, num_bytes, num_handles)) =
7481 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7482 {
7483 let member_inline_size =
7484 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7485 if inlined != (member_inline_size <= 4) {
7486 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7487 }
7488 let inner_offset;
7489 let mut inner_depth = depth.clone();
7490 if inlined {
7491 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7492 inner_offset = next_offset;
7493 } else {
7494 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7495 inner_depth.increment()?;
7496 }
7497 let val_ref = self.psm.get_or_insert_with(|| fidl::new_empty!(u16, D));
7498 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
7499 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7500 {
7501 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7502 }
7503 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7504 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7505 }
7506 }
7507
7508 next_offset += envelope_size;
7509
7510 while next_offset < end_offset {
7512 _next_ordinal_to_read += 1;
7513 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7514 next_offset += envelope_size;
7515 }
7516
7517 Ok(())
7518 }
7519 }
7520
7521 impl ChannelOffloadExtStartOffloadRequest {
7522 #[inline(always)]
7523 fn max_ordinal_present(&self) -> u64 {
7524 0
7525 }
7526 }
7527
7528 impl fidl::encoding::ValueTypeMarker for ChannelOffloadExtStartOffloadRequest {
7529 type Borrowed<'a> = &'a Self;
7530 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7531 value
7532 }
7533 }
7534
7535 unsafe impl fidl::encoding::TypeMarker for ChannelOffloadExtStartOffloadRequest {
7536 type Owned = Self;
7537
7538 #[inline(always)]
7539 fn inline_align(_context: fidl::encoding::Context) -> usize {
7540 8
7541 }
7542
7543 #[inline(always)]
7544 fn inline_size(_context: fidl::encoding::Context) -> usize {
7545 16
7546 }
7547 }
7548
7549 unsafe impl<D: fidl::encoding::ResourceDialect>
7550 fidl::encoding::Encode<ChannelOffloadExtStartOffloadRequest, D>
7551 for &ChannelOffloadExtStartOffloadRequest
7552 {
7553 unsafe fn encode(
7554 self,
7555 encoder: &mut fidl::encoding::Encoder<'_, D>,
7556 offset: usize,
7557 mut depth: fidl::encoding::Depth,
7558 ) -> fidl::Result<()> {
7559 encoder.debug_check_bounds::<ChannelOffloadExtStartOffloadRequest>(offset);
7560 let max_ordinal: u64 = self.max_ordinal_present();
7562 encoder.write_num(max_ordinal, offset);
7563 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
7564 if max_ordinal == 0 {
7566 return Ok(());
7567 }
7568 depth.increment()?;
7569 let envelope_size = 8;
7570 let bytes_len = max_ordinal as usize * envelope_size;
7571 #[allow(unused_variables)]
7572 let offset = encoder.out_of_line_offset(bytes_len);
7573 let mut _prev_end_offset: usize = 0;
7574
7575 Ok(())
7576 }
7577 }
7578
7579 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
7580 for ChannelOffloadExtStartOffloadRequest
7581 {
7582 #[inline(always)]
7583 fn new_empty() -> Self {
7584 Self::default()
7585 }
7586
7587 unsafe fn decode(
7588 &mut self,
7589 decoder: &mut fidl::encoding::Decoder<'_, D>,
7590 offset: usize,
7591 mut depth: fidl::encoding::Depth,
7592 ) -> fidl::Result<()> {
7593 decoder.debug_check_bounds::<Self>(offset);
7594 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
7595 None => return Err(fidl::Error::NotNullable),
7596 Some(len) => len,
7597 };
7598 if len == 0 {
7600 return Ok(());
7601 };
7602 depth.increment()?;
7603 let envelope_size = 8;
7604 let bytes_len = len * envelope_size;
7605 let offset = decoder.out_of_line_offset(bytes_len)?;
7606 let mut _next_ordinal_to_read = 0;
7608 let mut next_offset = offset;
7609 let end_offset = offset + bytes_len;
7610
7611 while next_offset < end_offset {
7613 _next_ordinal_to_read += 1;
7614 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7615 next_offset += envelope_size;
7616 }
7617
7618 Ok(())
7619 }
7620 }
7621
7622 impl ChannelOffloadExtStartOffloadResponse {
7623 #[inline(always)]
7624 fn max_ordinal_present(&self) -> u64 {
7625 if let Some(_) = self.offload_parameters {
7626 return 1;
7627 }
7628 0
7629 }
7630 }
7631
7632 impl fidl::encoding::ValueTypeMarker for ChannelOffloadExtStartOffloadResponse {
7633 type Borrowed<'a> = &'a Self;
7634 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7635 value
7636 }
7637 }
7638
7639 unsafe impl fidl::encoding::TypeMarker for ChannelOffloadExtStartOffloadResponse {
7640 type Owned = Self;
7641
7642 #[inline(always)]
7643 fn inline_align(_context: fidl::encoding::Context) -> usize {
7644 8
7645 }
7646
7647 #[inline(always)]
7648 fn inline_size(_context: fidl::encoding::Context) -> usize {
7649 16
7650 }
7651 }
7652
7653 unsafe impl<D: fidl::encoding::ResourceDialect>
7654 fidl::encoding::Encode<ChannelOffloadExtStartOffloadResponse, D>
7655 for &ChannelOffloadExtStartOffloadResponse
7656 {
7657 unsafe fn encode(
7658 self,
7659 encoder: &mut fidl::encoding::Encoder<'_, D>,
7660 offset: usize,
7661 mut depth: fidl::encoding::Depth,
7662 ) -> fidl::Result<()> {
7663 encoder.debug_check_bounds::<ChannelOffloadExtStartOffloadResponse>(offset);
7664 let max_ordinal: u64 = self.max_ordinal_present();
7666 encoder.write_num(max_ordinal, offset);
7667 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
7668 if max_ordinal == 0 {
7670 return Ok(());
7671 }
7672 depth.increment()?;
7673 let envelope_size = 8;
7674 let bytes_len = max_ordinal as usize * envelope_size;
7675 #[allow(unused_variables)]
7676 let offset = encoder.out_of_line_offset(bytes_len);
7677 let mut _prev_end_offset: usize = 0;
7678 if 1 > max_ordinal {
7679 return Ok(());
7680 }
7681
7682 let cur_offset: usize = (1 - 1) * envelope_size;
7685
7686 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7688
7689 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_bluetooth__common::L2capChannelOffloadParameters, D>(
7694 self.offload_parameters.as_ref().map(<fidl_fuchsia_bluetooth__common::L2capChannelOffloadParameters as fidl::encoding::ValueTypeMarker>::borrow),
7695 encoder, offset + cur_offset, depth
7696 )?;
7697
7698 _prev_end_offset = cur_offset + envelope_size;
7699
7700 Ok(())
7701 }
7702 }
7703
7704 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
7705 for ChannelOffloadExtStartOffloadResponse
7706 {
7707 #[inline(always)]
7708 fn new_empty() -> Self {
7709 Self::default()
7710 }
7711
7712 unsafe fn decode(
7713 &mut self,
7714 decoder: &mut fidl::encoding::Decoder<'_, D>,
7715 offset: usize,
7716 mut depth: fidl::encoding::Depth,
7717 ) -> fidl::Result<()> {
7718 decoder.debug_check_bounds::<Self>(offset);
7719 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
7720 None => return Err(fidl::Error::NotNullable),
7721 Some(len) => len,
7722 };
7723 if len == 0 {
7725 return Ok(());
7726 };
7727 depth.increment()?;
7728 let envelope_size = 8;
7729 let bytes_len = len * envelope_size;
7730 let offset = decoder.out_of_line_offset(bytes_len)?;
7731 let mut _next_ordinal_to_read = 0;
7733 let mut next_offset = offset;
7734 let end_offset = offset + bytes_len;
7735 _next_ordinal_to_read += 1;
7736 if next_offset >= end_offset {
7737 return Ok(());
7738 }
7739
7740 while _next_ordinal_to_read < 1 {
7742 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7743 _next_ordinal_to_read += 1;
7744 next_offset += envelope_size;
7745 }
7746
7747 let next_out_of_line = decoder.next_out_of_line();
7748 let handles_before = decoder.remaining_handles();
7749 if let Some((inlined, num_bytes, num_handles)) =
7750 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7751 {
7752 let member_inline_size = <fidl_fuchsia_bluetooth__common::L2capChannelOffloadParameters as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7753 if inlined != (member_inline_size <= 4) {
7754 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7755 }
7756 let inner_offset;
7757 let mut inner_depth = depth.clone();
7758 if inlined {
7759 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7760 inner_offset = next_offset;
7761 } else {
7762 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7763 inner_depth.increment()?;
7764 }
7765 let val_ref = self.offload_parameters.get_or_insert_with(|| {
7766 fidl::new_empty!(
7767 fidl_fuchsia_bluetooth__common::L2capChannelOffloadParameters,
7768 D
7769 )
7770 });
7771 fidl::decode!(
7772 fidl_fuchsia_bluetooth__common::L2capChannelOffloadParameters,
7773 D,
7774 val_ref,
7775 decoder,
7776 inner_offset,
7777 inner_depth
7778 )?;
7779 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7780 {
7781 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7782 }
7783 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7784 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7785 }
7786 }
7787
7788 next_offset += envelope_size;
7789
7790 while next_offset < end_offset {
7792 _next_ordinal_to_read += 1;
7793 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7794 next_offset += envelope_size;
7795 }
7796
7797 Ok(())
7798 }
7799 }
7800
7801 impl CigParameters {
7802 #[inline(always)]
7803 fn max_ordinal_present(&self) -> u64 {
7804 if let Some(_) = self.max_transport_latency_p_to_c {
7805 return 6;
7806 }
7807 if let Some(_) = self.max_transport_latency_c_to_p {
7808 return 5;
7809 }
7810 if let Some(_) = self.framing {
7811 return 4;
7812 }
7813 if let Some(_) = self.packing {
7814 return 3;
7815 }
7816 if let Some(_) = self.sdu_interval_p_to_c {
7817 return 2;
7818 }
7819 if let Some(_) = self.sdu_interval_c_to_p {
7820 return 1;
7821 }
7822 0
7823 }
7824 }
7825
7826 impl fidl::encoding::ValueTypeMarker for CigParameters {
7827 type Borrowed<'a> = &'a Self;
7828 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7829 value
7830 }
7831 }
7832
7833 unsafe impl fidl::encoding::TypeMarker for CigParameters {
7834 type Owned = Self;
7835
7836 #[inline(always)]
7837 fn inline_align(_context: fidl::encoding::Context) -> usize {
7838 8
7839 }
7840
7841 #[inline(always)]
7842 fn inline_size(_context: fidl::encoding::Context) -> usize {
7843 16
7844 }
7845 }
7846
7847 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<CigParameters, D>
7848 for &CigParameters
7849 {
7850 unsafe fn encode(
7851 self,
7852 encoder: &mut fidl::encoding::Encoder<'_, D>,
7853 offset: usize,
7854 mut depth: fidl::encoding::Depth,
7855 ) -> fidl::Result<()> {
7856 encoder.debug_check_bounds::<CigParameters>(offset);
7857 let max_ordinal: u64 = self.max_ordinal_present();
7859 encoder.write_num(max_ordinal, offset);
7860 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
7861 if max_ordinal == 0 {
7863 return Ok(());
7864 }
7865 depth.increment()?;
7866 let envelope_size = 8;
7867 let bytes_len = max_ordinal as usize * envelope_size;
7868 #[allow(unused_variables)]
7869 let offset = encoder.out_of_line_offset(bytes_len);
7870 let mut _prev_end_offset: usize = 0;
7871 if 1 > max_ordinal {
7872 return Ok(());
7873 }
7874
7875 let cur_offset: usize = (1 - 1) * envelope_size;
7878
7879 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7881
7882 fidl::encoding::encode_in_envelope_optional::<u32, D>(
7887 self.sdu_interval_c_to_p
7888 .as_ref()
7889 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
7890 encoder,
7891 offset + cur_offset,
7892 depth,
7893 )?;
7894
7895 _prev_end_offset = cur_offset + envelope_size;
7896 if 2 > max_ordinal {
7897 return Ok(());
7898 }
7899
7900 let cur_offset: usize = (2 - 1) * envelope_size;
7903
7904 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7906
7907 fidl::encoding::encode_in_envelope_optional::<u32, D>(
7912 self.sdu_interval_p_to_c
7913 .as_ref()
7914 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
7915 encoder,
7916 offset + cur_offset,
7917 depth,
7918 )?;
7919
7920 _prev_end_offset = cur_offset + envelope_size;
7921 if 3 > max_ordinal {
7922 return Ok(());
7923 }
7924
7925 let cur_offset: usize = (3 - 1) * envelope_size;
7928
7929 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7931
7932 fidl::encoding::encode_in_envelope_optional::<CigPacking, D>(
7937 self.packing.as_ref().map(<CigPacking as fidl::encoding::ValueTypeMarker>::borrow),
7938 encoder,
7939 offset + cur_offset,
7940 depth,
7941 )?;
7942
7943 _prev_end_offset = cur_offset + envelope_size;
7944 if 4 > max_ordinal {
7945 return Ok(());
7946 }
7947
7948 let cur_offset: usize = (4 - 1) * envelope_size;
7951
7952 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7954
7955 fidl::encoding::encode_in_envelope_optional::<CigFramingOptions, D>(
7960 self.framing
7961 .as_ref()
7962 .map(<CigFramingOptions as fidl::encoding::ValueTypeMarker>::borrow),
7963 encoder,
7964 offset + cur_offset,
7965 depth,
7966 )?;
7967
7968 _prev_end_offset = cur_offset + envelope_size;
7969 if 5 > max_ordinal {
7970 return Ok(());
7971 }
7972
7973 let cur_offset: usize = (5 - 1) * envelope_size;
7976
7977 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7979
7980 fidl::encoding::encode_in_envelope_optional::<u16, D>(
7985 self.max_transport_latency_c_to_p
7986 .as_ref()
7987 .map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
7988 encoder,
7989 offset + cur_offset,
7990 depth,
7991 )?;
7992
7993 _prev_end_offset = cur_offset + envelope_size;
7994 if 6 > max_ordinal {
7995 return Ok(());
7996 }
7997
7998 let cur_offset: usize = (6 - 1) * envelope_size;
8001
8002 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8004
8005 fidl::encoding::encode_in_envelope_optional::<u16, D>(
8010 self.max_transport_latency_p_to_c
8011 .as_ref()
8012 .map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
8013 encoder,
8014 offset + cur_offset,
8015 depth,
8016 )?;
8017
8018 _prev_end_offset = cur_offset + envelope_size;
8019
8020 Ok(())
8021 }
8022 }
8023
8024 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for CigParameters {
8025 #[inline(always)]
8026 fn new_empty() -> Self {
8027 Self::default()
8028 }
8029
8030 unsafe fn decode(
8031 &mut self,
8032 decoder: &mut fidl::encoding::Decoder<'_, D>,
8033 offset: usize,
8034 mut depth: fidl::encoding::Depth,
8035 ) -> fidl::Result<()> {
8036 decoder.debug_check_bounds::<Self>(offset);
8037 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
8038 None => return Err(fidl::Error::NotNullable),
8039 Some(len) => len,
8040 };
8041 if len == 0 {
8043 return Ok(());
8044 };
8045 depth.increment()?;
8046 let envelope_size = 8;
8047 let bytes_len = len * envelope_size;
8048 let offset = decoder.out_of_line_offset(bytes_len)?;
8049 let mut _next_ordinal_to_read = 0;
8051 let mut next_offset = offset;
8052 let end_offset = offset + bytes_len;
8053 _next_ordinal_to_read += 1;
8054 if next_offset >= end_offset {
8055 return Ok(());
8056 }
8057
8058 while _next_ordinal_to_read < 1 {
8060 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8061 _next_ordinal_to_read += 1;
8062 next_offset += envelope_size;
8063 }
8064
8065 let next_out_of_line = decoder.next_out_of_line();
8066 let handles_before = decoder.remaining_handles();
8067 if let Some((inlined, num_bytes, num_handles)) =
8068 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8069 {
8070 let member_inline_size =
8071 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8072 if inlined != (member_inline_size <= 4) {
8073 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8074 }
8075 let inner_offset;
8076 let mut inner_depth = depth.clone();
8077 if inlined {
8078 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8079 inner_offset = next_offset;
8080 } else {
8081 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8082 inner_depth.increment()?;
8083 }
8084 let val_ref =
8085 self.sdu_interval_c_to_p.get_or_insert_with(|| fidl::new_empty!(u32, D));
8086 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
8087 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8088 {
8089 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8090 }
8091 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8092 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8093 }
8094 }
8095
8096 next_offset += envelope_size;
8097 _next_ordinal_to_read += 1;
8098 if next_offset >= end_offset {
8099 return Ok(());
8100 }
8101
8102 while _next_ordinal_to_read < 2 {
8104 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8105 _next_ordinal_to_read += 1;
8106 next_offset += envelope_size;
8107 }
8108
8109 let next_out_of_line = decoder.next_out_of_line();
8110 let handles_before = decoder.remaining_handles();
8111 if let Some((inlined, num_bytes, num_handles)) =
8112 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8113 {
8114 let member_inline_size =
8115 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8116 if inlined != (member_inline_size <= 4) {
8117 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8118 }
8119 let inner_offset;
8120 let mut inner_depth = depth.clone();
8121 if inlined {
8122 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8123 inner_offset = next_offset;
8124 } else {
8125 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8126 inner_depth.increment()?;
8127 }
8128 let val_ref =
8129 self.sdu_interval_p_to_c.get_or_insert_with(|| fidl::new_empty!(u32, D));
8130 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
8131 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8132 {
8133 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8134 }
8135 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8136 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8137 }
8138 }
8139
8140 next_offset += envelope_size;
8141 _next_ordinal_to_read += 1;
8142 if next_offset >= end_offset {
8143 return Ok(());
8144 }
8145
8146 while _next_ordinal_to_read < 3 {
8148 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8149 _next_ordinal_to_read += 1;
8150 next_offset += envelope_size;
8151 }
8152
8153 let next_out_of_line = decoder.next_out_of_line();
8154 let handles_before = decoder.remaining_handles();
8155 if let Some((inlined, num_bytes, num_handles)) =
8156 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8157 {
8158 let member_inline_size =
8159 <CigPacking as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8160 if inlined != (member_inline_size <= 4) {
8161 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8162 }
8163 let inner_offset;
8164 let mut inner_depth = depth.clone();
8165 if inlined {
8166 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8167 inner_offset = next_offset;
8168 } else {
8169 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8170 inner_depth.increment()?;
8171 }
8172 let val_ref = self.packing.get_or_insert_with(|| fidl::new_empty!(CigPacking, D));
8173 fidl::decode!(CigPacking, D, val_ref, decoder, inner_offset, inner_depth)?;
8174 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8175 {
8176 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8177 }
8178 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8179 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8180 }
8181 }
8182
8183 next_offset += envelope_size;
8184 _next_ordinal_to_read += 1;
8185 if next_offset >= end_offset {
8186 return Ok(());
8187 }
8188
8189 while _next_ordinal_to_read < 4 {
8191 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8192 _next_ordinal_to_read += 1;
8193 next_offset += envelope_size;
8194 }
8195
8196 let next_out_of_line = decoder.next_out_of_line();
8197 let handles_before = decoder.remaining_handles();
8198 if let Some((inlined, num_bytes, num_handles)) =
8199 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8200 {
8201 let member_inline_size =
8202 <CigFramingOptions as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8203 if inlined != (member_inline_size <= 4) {
8204 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8205 }
8206 let inner_offset;
8207 let mut inner_depth = depth.clone();
8208 if inlined {
8209 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8210 inner_offset = next_offset;
8211 } else {
8212 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8213 inner_depth.increment()?;
8214 }
8215 let val_ref =
8216 self.framing.get_or_insert_with(|| fidl::new_empty!(CigFramingOptions, D));
8217 fidl::decode!(CigFramingOptions, D, val_ref, decoder, inner_offset, inner_depth)?;
8218 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8219 {
8220 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8221 }
8222 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8223 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8224 }
8225 }
8226
8227 next_offset += envelope_size;
8228 _next_ordinal_to_read += 1;
8229 if next_offset >= end_offset {
8230 return Ok(());
8231 }
8232
8233 while _next_ordinal_to_read < 5 {
8235 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8236 _next_ordinal_to_read += 1;
8237 next_offset += envelope_size;
8238 }
8239
8240 let next_out_of_line = decoder.next_out_of_line();
8241 let handles_before = decoder.remaining_handles();
8242 if let Some((inlined, num_bytes, num_handles)) =
8243 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8244 {
8245 let member_inline_size =
8246 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8247 if inlined != (member_inline_size <= 4) {
8248 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8249 }
8250 let inner_offset;
8251 let mut inner_depth = depth.clone();
8252 if inlined {
8253 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8254 inner_offset = next_offset;
8255 } else {
8256 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8257 inner_depth.increment()?;
8258 }
8259 let val_ref = self
8260 .max_transport_latency_c_to_p
8261 .get_or_insert_with(|| fidl::new_empty!(u16, D));
8262 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
8263 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8264 {
8265 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8266 }
8267 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8268 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8269 }
8270 }
8271
8272 next_offset += envelope_size;
8273 _next_ordinal_to_read += 1;
8274 if next_offset >= end_offset {
8275 return Ok(());
8276 }
8277
8278 while _next_ordinal_to_read < 6 {
8280 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8281 _next_ordinal_to_read += 1;
8282 next_offset += envelope_size;
8283 }
8284
8285 let next_out_of_line = decoder.next_out_of_line();
8286 let handles_before = decoder.remaining_handles();
8287 if let Some((inlined, num_bytes, num_handles)) =
8288 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8289 {
8290 let member_inline_size =
8291 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8292 if inlined != (member_inline_size <= 4) {
8293 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8294 }
8295 let inner_offset;
8296 let mut inner_depth = depth.clone();
8297 if inlined {
8298 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8299 inner_offset = next_offset;
8300 } else {
8301 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8302 inner_depth.increment()?;
8303 }
8304 let val_ref = self
8305 .max_transport_latency_p_to_c
8306 .get_or_insert_with(|| fidl::new_empty!(u16, D));
8307 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
8308 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8309 {
8310 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8311 }
8312 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8313 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8314 }
8315 }
8316
8317 next_offset += envelope_size;
8318
8319 while next_offset < end_offset {
8321 _next_ordinal_to_read += 1;
8322 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8323 next_offset += envelope_size;
8324 }
8325
8326 Ok(())
8327 }
8328 }
8329
8330 impl CisEstablishedParameters {
8331 #[inline(always)]
8332 fn max_ordinal_present(&self) -> u64 {
8333 if let Some(_) = self.peripheral_to_central_params {
8334 return 6;
8335 }
8336 if let Some(_) = self.central_to_peripheral_params {
8337 return 5;
8338 }
8339 if let Some(_) = self.iso_interval {
8340 return 4;
8341 }
8342 if let Some(_) = self.max_subevents {
8343 return 3;
8344 }
8345 if let Some(_) = self.cis_sync_delay {
8346 return 2;
8347 }
8348 if let Some(_) = self.cig_sync_delay {
8349 return 1;
8350 }
8351 0
8352 }
8353 }
8354
8355 impl fidl::encoding::ValueTypeMarker for CisEstablishedParameters {
8356 type Borrowed<'a> = &'a Self;
8357 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
8358 value
8359 }
8360 }
8361
8362 unsafe impl fidl::encoding::TypeMarker for CisEstablishedParameters {
8363 type Owned = Self;
8364
8365 #[inline(always)]
8366 fn inline_align(_context: fidl::encoding::Context) -> usize {
8367 8
8368 }
8369
8370 #[inline(always)]
8371 fn inline_size(_context: fidl::encoding::Context) -> usize {
8372 16
8373 }
8374 }
8375
8376 unsafe impl<D: fidl::encoding::ResourceDialect>
8377 fidl::encoding::Encode<CisEstablishedParameters, D> for &CisEstablishedParameters
8378 {
8379 unsafe fn encode(
8380 self,
8381 encoder: &mut fidl::encoding::Encoder<'_, D>,
8382 offset: usize,
8383 mut depth: fidl::encoding::Depth,
8384 ) -> fidl::Result<()> {
8385 encoder.debug_check_bounds::<CisEstablishedParameters>(offset);
8386 let max_ordinal: u64 = self.max_ordinal_present();
8388 encoder.write_num(max_ordinal, offset);
8389 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
8390 if max_ordinal == 0 {
8392 return Ok(());
8393 }
8394 depth.increment()?;
8395 let envelope_size = 8;
8396 let bytes_len = max_ordinal as usize * envelope_size;
8397 #[allow(unused_variables)]
8398 let offset = encoder.out_of_line_offset(bytes_len);
8399 let mut _prev_end_offset: usize = 0;
8400 if 1 > max_ordinal {
8401 return Ok(());
8402 }
8403
8404 let cur_offset: usize = (1 - 1) * envelope_size;
8407
8408 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8410
8411 fidl::encoding::encode_in_envelope_optional::<i64, D>(
8416 self.cig_sync_delay.as_ref().map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
8417 encoder,
8418 offset + cur_offset,
8419 depth,
8420 )?;
8421
8422 _prev_end_offset = cur_offset + envelope_size;
8423 if 2 > max_ordinal {
8424 return Ok(());
8425 }
8426
8427 let cur_offset: usize = (2 - 1) * envelope_size;
8430
8431 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8433
8434 fidl::encoding::encode_in_envelope_optional::<i64, D>(
8439 self.cis_sync_delay.as_ref().map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
8440 encoder,
8441 offset + cur_offset,
8442 depth,
8443 )?;
8444
8445 _prev_end_offset = cur_offset + envelope_size;
8446 if 3 > max_ordinal {
8447 return Ok(());
8448 }
8449
8450 let cur_offset: usize = (3 - 1) * envelope_size;
8453
8454 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8456
8457 fidl::encoding::encode_in_envelope_optional::<u8, D>(
8462 self.max_subevents.as_ref().map(<u8 as fidl::encoding::ValueTypeMarker>::borrow),
8463 encoder,
8464 offset + cur_offset,
8465 depth,
8466 )?;
8467
8468 _prev_end_offset = cur_offset + envelope_size;
8469 if 4 > max_ordinal {
8470 return Ok(());
8471 }
8472
8473 let cur_offset: usize = (4 - 1) * envelope_size;
8476
8477 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8479
8480 fidl::encoding::encode_in_envelope_optional::<i64, D>(
8485 self.iso_interval.as_ref().map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
8486 encoder,
8487 offset + cur_offset,
8488 depth,
8489 )?;
8490
8491 _prev_end_offset = cur_offset + envelope_size;
8492 if 5 > max_ordinal {
8493 return Ok(());
8494 }
8495
8496 let cur_offset: usize = (5 - 1) * envelope_size;
8499
8500 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8502
8503 fidl::encoding::encode_in_envelope_optional::<CisUnidirectionalParams, D>(
8508 self.central_to_peripheral_params
8509 .as_ref()
8510 .map(<CisUnidirectionalParams as fidl::encoding::ValueTypeMarker>::borrow),
8511 encoder,
8512 offset + cur_offset,
8513 depth,
8514 )?;
8515
8516 _prev_end_offset = cur_offset + envelope_size;
8517 if 6 > max_ordinal {
8518 return Ok(());
8519 }
8520
8521 let cur_offset: usize = (6 - 1) * envelope_size;
8524
8525 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8527
8528 fidl::encoding::encode_in_envelope_optional::<CisUnidirectionalParams, D>(
8533 self.peripheral_to_central_params
8534 .as_ref()
8535 .map(<CisUnidirectionalParams as fidl::encoding::ValueTypeMarker>::borrow),
8536 encoder,
8537 offset + cur_offset,
8538 depth,
8539 )?;
8540
8541 _prev_end_offset = cur_offset + envelope_size;
8542
8543 Ok(())
8544 }
8545 }
8546
8547 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
8548 for CisEstablishedParameters
8549 {
8550 #[inline(always)]
8551 fn new_empty() -> Self {
8552 Self::default()
8553 }
8554
8555 unsafe fn decode(
8556 &mut self,
8557 decoder: &mut fidl::encoding::Decoder<'_, D>,
8558 offset: usize,
8559 mut depth: fidl::encoding::Depth,
8560 ) -> fidl::Result<()> {
8561 decoder.debug_check_bounds::<Self>(offset);
8562 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
8563 None => return Err(fidl::Error::NotNullable),
8564 Some(len) => len,
8565 };
8566 if len == 0 {
8568 return Ok(());
8569 };
8570 depth.increment()?;
8571 let envelope_size = 8;
8572 let bytes_len = len * envelope_size;
8573 let offset = decoder.out_of_line_offset(bytes_len)?;
8574 let mut _next_ordinal_to_read = 0;
8576 let mut next_offset = offset;
8577 let end_offset = offset + bytes_len;
8578 _next_ordinal_to_read += 1;
8579 if next_offset >= end_offset {
8580 return Ok(());
8581 }
8582
8583 while _next_ordinal_to_read < 1 {
8585 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8586 _next_ordinal_to_read += 1;
8587 next_offset += envelope_size;
8588 }
8589
8590 let next_out_of_line = decoder.next_out_of_line();
8591 let handles_before = decoder.remaining_handles();
8592 if let Some((inlined, num_bytes, num_handles)) =
8593 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8594 {
8595 let member_inline_size =
8596 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8597 if inlined != (member_inline_size <= 4) {
8598 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8599 }
8600 let inner_offset;
8601 let mut inner_depth = depth.clone();
8602 if inlined {
8603 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8604 inner_offset = next_offset;
8605 } else {
8606 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8607 inner_depth.increment()?;
8608 }
8609 let val_ref = self.cig_sync_delay.get_or_insert_with(|| fidl::new_empty!(i64, D));
8610 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
8611 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8612 {
8613 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8614 }
8615 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8616 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8617 }
8618 }
8619
8620 next_offset += envelope_size;
8621 _next_ordinal_to_read += 1;
8622 if next_offset >= end_offset {
8623 return Ok(());
8624 }
8625
8626 while _next_ordinal_to_read < 2 {
8628 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8629 _next_ordinal_to_read += 1;
8630 next_offset += envelope_size;
8631 }
8632
8633 let next_out_of_line = decoder.next_out_of_line();
8634 let handles_before = decoder.remaining_handles();
8635 if let Some((inlined, num_bytes, num_handles)) =
8636 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8637 {
8638 let member_inline_size =
8639 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8640 if inlined != (member_inline_size <= 4) {
8641 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8642 }
8643 let inner_offset;
8644 let mut inner_depth = depth.clone();
8645 if inlined {
8646 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8647 inner_offset = next_offset;
8648 } else {
8649 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8650 inner_depth.increment()?;
8651 }
8652 let val_ref = self.cis_sync_delay.get_or_insert_with(|| fidl::new_empty!(i64, D));
8653 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
8654 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8655 {
8656 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8657 }
8658 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8659 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8660 }
8661 }
8662
8663 next_offset += envelope_size;
8664 _next_ordinal_to_read += 1;
8665 if next_offset >= end_offset {
8666 return Ok(());
8667 }
8668
8669 while _next_ordinal_to_read < 3 {
8671 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8672 _next_ordinal_to_read += 1;
8673 next_offset += envelope_size;
8674 }
8675
8676 let next_out_of_line = decoder.next_out_of_line();
8677 let handles_before = decoder.remaining_handles();
8678 if let Some((inlined, num_bytes, num_handles)) =
8679 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8680 {
8681 let member_inline_size =
8682 <u8 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8683 if inlined != (member_inline_size <= 4) {
8684 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8685 }
8686 let inner_offset;
8687 let mut inner_depth = depth.clone();
8688 if inlined {
8689 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8690 inner_offset = next_offset;
8691 } else {
8692 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8693 inner_depth.increment()?;
8694 }
8695 let val_ref = self.max_subevents.get_or_insert_with(|| fidl::new_empty!(u8, D));
8696 fidl::decode!(u8, D, val_ref, decoder, inner_offset, inner_depth)?;
8697 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8698 {
8699 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8700 }
8701 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8702 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8703 }
8704 }
8705
8706 next_offset += envelope_size;
8707 _next_ordinal_to_read += 1;
8708 if next_offset >= end_offset {
8709 return Ok(());
8710 }
8711
8712 while _next_ordinal_to_read < 4 {
8714 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8715 _next_ordinal_to_read += 1;
8716 next_offset += envelope_size;
8717 }
8718
8719 let next_out_of_line = decoder.next_out_of_line();
8720 let handles_before = decoder.remaining_handles();
8721 if let Some((inlined, num_bytes, num_handles)) =
8722 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8723 {
8724 let member_inline_size =
8725 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8726 if inlined != (member_inline_size <= 4) {
8727 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8728 }
8729 let inner_offset;
8730 let mut inner_depth = depth.clone();
8731 if inlined {
8732 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8733 inner_offset = next_offset;
8734 } else {
8735 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8736 inner_depth.increment()?;
8737 }
8738 let val_ref = self.iso_interval.get_or_insert_with(|| fidl::new_empty!(i64, D));
8739 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
8740 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8741 {
8742 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8743 }
8744 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8745 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8746 }
8747 }
8748
8749 next_offset += envelope_size;
8750 _next_ordinal_to_read += 1;
8751 if next_offset >= end_offset {
8752 return Ok(());
8753 }
8754
8755 while _next_ordinal_to_read < 5 {
8757 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8758 _next_ordinal_to_read += 1;
8759 next_offset += envelope_size;
8760 }
8761
8762 let next_out_of_line = decoder.next_out_of_line();
8763 let handles_before = decoder.remaining_handles();
8764 if let Some((inlined, num_bytes, num_handles)) =
8765 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8766 {
8767 let member_inline_size =
8768 <CisUnidirectionalParams as fidl::encoding::TypeMarker>::inline_size(
8769 decoder.context,
8770 );
8771 if inlined != (member_inline_size <= 4) {
8772 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8773 }
8774 let inner_offset;
8775 let mut inner_depth = depth.clone();
8776 if inlined {
8777 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8778 inner_offset = next_offset;
8779 } else {
8780 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8781 inner_depth.increment()?;
8782 }
8783 let val_ref = self
8784 .central_to_peripheral_params
8785 .get_or_insert_with(|| fidl::new_empty!(CisUnidirectionalParams, D));
8786 fidl::decode!(
8787 CisUnidirectionalParams,
8788 D,
8789 val_ref,
8790 decoder,
8791 inner_offset,
8792 inner_depth
8793 )?;
8794 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8795 {
8796 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8797 }
8798 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8799 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8800 }
8801 }
8802
8803 next_offset += envelope_size;
8804 _next_ordinal_to_read += 1;
8805 if next_offset >= end_offset {
8806 return Ok(());
8807 }
8808
8809 while _next_ordinal_to_read < 6 {
8811 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8812 _next_ordinal_to_read += 1;
8813 next_offset += envelope_size;
8814 }
8815
8816 let next_out_of_line = decoder.next_out_of_line();
8817 let handles_before = decoder.remaining_handles();
8818 if let Some((inlined, num_bytes, num_handles)) =
8819 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8820 {
8821 let member_inline_size =
8822 <CisUnidirectionalParams as fidl::encoding::TypeMarker>::inline_size(
8823 decoder.context,
8824 );
8825 if inlined != (member_inline_size <= 4) {
8826 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8827 }
8828 let inner_offset;
8829 let mut inner_depth = depth.clone();
8830 if inlined {
8831 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8832 inner_offset = next_offset;
8833 } else {
8834 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8835 inner_depth.increment()?;
8836 }
8837 let val_ref = self
8838 .peripheral_to_central_params
8839 .get_or_insert_with(|| fidl::new_empty!(CisUnidirectionalParams, D));
8840 fidl::decode!(
8841 CisUnidirectionalParams,
8842 D,
8843 val_ref,
8844 decoder,
8845 inner_offset,
8846 inner_depth
8847 )?;
8848 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8849 {
8850 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8851 }
8852 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8853 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8854 }
8855 }
8856
8857 next_offset += envelope_size;
8858
8859 while next_offset < end_offset {
8861 _next_ordinal_to_read += 1;
8862 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8863 next_offset += envelope_size;
8864 }
8865
8866 Ok(())
8867 }
8868 }
8869
8870 impl CisParameters {
8871 #[inline(always)]
8872 fn max_ordinal_present(&self) -> u64 {
8873 if let Some(_) = self.id {
8874 return 2;
8875 }
8876 if let Some(_) = self.cis_id {
8877 return 1;
8878 }
8879 0
8880 }
8881 }
8882
8883 impl fidl::encoding::ValueTypeMarker for CisParameters {
8884 type Borrowed<'a> = &'a Self;
8885 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
8886 value
8887 }
8888 }
8889
8890 unsafe impl fidl::encoding::TypeMarker for CisParameters {
8891 type Owned = Self;
8892
8893 #[inline(always)]
8894 fn inline_align(_context: fidl::encoding::Context) -> usize {
8895 8
8896 }
8897
8898 #[inline(always)]
8899 fn inline_size(_context: fidl::encoding::Context) -> usize {
8900 16
8901 }
8902 }
8903
8904 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<CisParameters, D>
8905 for &CisParameters
8906 {
8907 unsafe fn encode(
8908 self,
8909 encoder: &mut fidl::encoding::Encoder<'_, D>,
8910 offset: usize,
8911 mut depth: fidl::encoding::Depth,
8912 ) -> fidl::Result<()> {
8913 encoder.debug_check_bounds::<CisParameters>(offset);
8914 let max_ordinal: u64 = self.max_ordinal_present();
8916 encoder.write_num(max_ordinal, offset);
8917 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
8918 if max_ordinal == 0 {
8920 return Ok(());
8921 }
8922 depth.increment()?;
8923 let envelope_size = 8;
8924 let bytes_len = max_ordinal as usize * envelope_size;
8925 #[allow(unused_variables)]
8926 let offset = encoder.out_of_line_offset(bytes_len);
8927 let mut _prev_end_offset: usize = 0;
8928 if 1 > max_ordinal {
8929 return Ok(());
8930 }
8931
8932 let cur_offset: usize = (1 - 1) * envelope_size;
8935
8936 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8938
8939 fidl::encoding::encode_in_envelope_optional::<u8, D>(
8944 self.cis_id.as_ref().map(<u8 as fidl::encoding::ValueTypeMarker>::borrow),
8945 encoder,
8946 offset + cur_offset,
8947 depth,
8948 )?;
8949
8950 _prev_end_offset = cur_offset + envelope_size;
8951 if 2 > max_ordinal {
8952 return Ok(());
8953 }
8954
8955 let cur_offset: usize = (2 - 1) * envelope_size;
8958
8959 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8961
8962 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_bluetooth__common::PeerId, D>(
8967 self.id.as_ref().map(<fidl_fuchsia_bluetooth__common::PeerId as fidl::encoding::ValueTypeMarker>::borrow),
8968 encoder, offset + cur_offset, depth
8969 )?;
8970
8971 _prev_end_offset = cur_offset + envelope_size;
8972
8973 Ok(())
8974 }
8975 }
8976
8977 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for CisParameters {
8978 #[inline(always)]
8979 fn new_empty() -> Self {
8980 Self::default()
8981 }
8982
8983 unsafe fn decode(
8984 &mut self,
8985 decoder: &mut fidl::encoding::Decoder<'_, D>,
8986 offset: usize,
8987 mut depth: fidl::encoding::Depth,
8988 ) -> fidl::Result<()> {
8989 decoder.debug_check_bounds::<Self>(offset);
8990 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
8991 None => return Err(fidl::Error::NotNullable),
8992 Some(len) => len,
8993 };
8994 if len == 0 {
8996 return Ok(());
8997 };
8998 depth.increment()?;
8999 let envelope_size = 8;
9000 let bytes_len = len * envelope_size;
9001 let offset = decoder.out_of_line_offset(bytes_len)?;
9002 let mut _next_ordinal_to_read = 0;
9004 let mut next_offset = offset;
9005 let end_offset = offset + bytes_len;
9006 _next_ordinal_to_read += 1;
9007 if next_offset >= end_offset {
9008 return Ok(());
9009 }
9010
9011 while _next_ordinal_to_read < 1 {
9013 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9014 _next_ordinal_to_read += 1;
9015 next_offset += envelope_size;
9016 }
9017
9018 let next_out_of_line = decoder.next_out_of_line();
9019 let handles_before = decoder.remaining_handles();
9020 if let Some((inlined, num_bytes, num_handles)) =
9021 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9022 {
9023 let member_inline_size =
9024 <u8 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9025 if inlined != (member_inline_size <= 4) {
9026 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9027 }
9028 let inner_offset;
9029 let mut inner_depth = depth.clone();
9030 if inlined {
9031 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9032 inner_offset = next_offset;
9033 } else {
9034 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9035 inner_depth.increment()?;
9036 }
9037 let val_ref = self.cis_id.get_or_insert_with(|| fidl::new_empty!(u8, D));
9038 fidl::decode!(u8, D, val_ref, decoder, inner_offset, inner_depth)?;
9039 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9040 {
9041 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9042 }
9043 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9044 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9045 }
9046 }
9047
9048 next_offset += envelope_size;
9049 _next_ordinal_to_read += 1;
9050 if next_offset >= end_offset {
9051 return Ok(());
9052 }
9053
9054 while _next_ordinal_to_read < 2 {
9056 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9057 _next_ordinal_to_read += 1;
9058 next_offset += envelope_size;
9059 }
9060
9061 let next_out_of_line = decoder.next_out_of_line();
9062 let handles_before = decoder.remaining_handles();
9063 if let Some((inlined, num_bytes, num_handles)) =
9064 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9065 {
9066 let member_inline_size = <fidl_fuchsia_bluetooth__common::PeerId as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9067 if inlined != (member_inline_size <= 4) {
9068 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9069 }
9070 let inner_offset;
9071 let mut inner_depth = depth.clone();
9072 if inlined {
9073 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9074 inner_offset = next_offset;
9075 } else {
9076 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9077 inner_depth.increment()?;
9078 }
9079 let val_ref = self.id.get_or_insert_with(|| {
9080 fidl::new_empty!(fidl_fuchsia_bluetooth__common::PeerId, D)
9081 });
9082 fidl::decode!(
9083 fidl_fuchsia_bluetooth__common::PeerId,
9084 D,
9085 val_ref,
9086 decoder,
9087 inner_offset,
9088 inner_depth
9089 )?;
9090 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9091 {
9092 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9093 }
9094 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9095 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9096 }
9097 }
9098
9099 next_offset += envelope_size;
9100
9101 while next_offset < end_offset {
9103 _next_ordinal_to_read += 1;
9104 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9105 next_offset += envelope_size;
9106 }
9107
9108 Ok(())
9109 }
9110 }
9111
9112 impl CisUnidirectionalParams {
9113 #[inline(always)]
9114 fn max_ordinal_present(&self) -> u64 {
9115 if let Some(_) = self.flush_timeout {
9116 return 3;
9117 }
9118 if let Some(_) = self.burst_number {
9119 return 2;
9120 }
9121 if let Some(_) = self.transport_latency {
9122 return 1;
9123 }
9124 0
9125 }
9126 }
9127
9128 impl fidl::encoding::ValueTypeMarker for CisUnidirectionalParams {
9129 type Borrowed<'a> = &'a Self;
9130 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
9131 value
9132 }
9133 }
9134
9135 unsafe impl fidl::encoding::TypeMarker for CisUnidirectionalParams {
9136 type Owned = Self;
9137
9138 #[inline(always)]
9139 fn inline_align(_context: fidl::encoding::Context) -> usize {
9140 8
9141 }
9142
9143 #[inline(always)]
9144 fn inline_size(_context: fidl::encoding::Context) -> usize {
9145 16
9146 }
9147 }
9148
9149 unsafe impl<D: fidl::encoding::ResourceDialect>
9150 fidl::encoding::Encode<CisUnidirectionalParams, D> for &CisUnidirectionalParams
9151 {
9152 unsafe fn encode(
9153 self,
9154 encoder: &mut fidl::encoding::Encoder<'_, D>,
9155 offset: usize,
9156 mut depth: fidl::encoding::Depth,
9157 ) -> fidl::Result<()> {
9158 encoder.debug_check_bounds::<CisUnidirectionalParams>(offset);
9159 let max_ordinal: u64 = self.max_ordinal_present();
9161 encoder.write_num(max_ordinal, offset);
9162 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
9163 if max_ordinal == 0 {
9165 return Ok(());
9166 }
9167 depth.increment()?;
9168 let envelope_size = 8;
9169 let bytes_len = max_ordinal as usize * envelope_size;
9170 #[allow(unused_variables)]
9171 let offset = encoder.out_of_line_offset(bytes_len);
9172 let mut _prev_end_offset: usize = 0;
9173 if 1 > max_ordinal {
9174 return Ok(());
9175 }
9176
9177 let cur_offset: usize = (1 - 1) * envelope_size;
9180
9181 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9183
9184 fidl::encoding::encode_in_envelope_optional::<i64, D>(
9189 self.transport_latency
9190 .as_ref()
9191 .map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
9192 encoder,
9193 offset + cur_offset,
9194 depth,
9195 )?;
9196
9197 _prev_end_offset = cur_offset + envelope_size;
9198 if 2 > max_ordinal {
9199 return Ok(());
9200 }
9201
9202 let cur_offset: usize = (2 - 1) * envelope_size;
9205
9206 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9208
9209 fidl::encoding::encode_in_envelope_optional::<u8, D>(
9214 self.burst_number.as_ref().map(<u8 as fidl::encoding::ValueTypeMarker>::borrow),
9215 encoder,
9216 offset + cur_offset,
9217 depth,
9218 )?;
9219
9220 _prev_end_offset = cur_offset + envelope_size;
9221 if 3 > max_ordinal {
9222 return Ok(());
9223 }
9224
9225 let cur_offset: usize = (3 - 1) * envelope_size;
9228
9229 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9231
9232 fidl::encoding::encode_in_envelope_optional::<u8, D>(
9237 self.flush_timeout.as_ref().map(<u8 as fidl::encoding::ValueTypeMarker>::borrow),
9238 encoder,
9239 offset + cur_offset,
9240 depth,
9241 )?;
9242
9243 _prev_end_offset = cur_offset + envelope_size;
9244
9245 Ok(())
9246 }
9247 }
9248
9249 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
9250 for CisUnidirectionalParams
9251 {
9252 #[inline(always)]
9253 fn new_empty() -> Self {
9254 Self::default()
9255 }
9256
9257 unsafe fn decode(
9258 &mut self,
9259 decoder: &mut fidl::encoding::Decoder<'_, D>,
9260 offset: usize,
9261 mut depth: fidl::encoding::Depth,
9262 ) -> fidl::Result<()> {
9263 decoder.debug_check_bounds::<Self>(offset);
9264 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
9265 None => return Err(fidl::Error::NotNullable),
9266 Some(len) => len,
9267 };
9268 if len == 0 {
9270 return Ok(());
9271 };
9272 depth.increment()?;
9273 let envelope_size = 8;
9274 let bytes_len = len * envelope_size;
9275 let offset = decoder.out_of_line_offset(bytes_len)?;
9276 let mut _next_ordinal_to_read = 0;
9278 let mut next_offset = offset;
9279 let end_offset = offset + bytes_len;
9280 _next_ordinal_to_read += 1;
9281 if next_offset >= end_offset {
9282 return Ok(());
9283 }
9284
9285 while _next_ordinal_to_read < 1 {
9287 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9288 _next_ordinal_to_read += 1;
9289 next_offset += envelope_size;
9290 }
9291
9292 let next_out_of_line = decoder.next_out_of_line();
9293 let handles_before = decoder.remaining_handles();
9294 if let Some((inlined, num_bytes, num_handles)) =
9295 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9296 {
9297 let member_inline_size =
9298 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9299 if inlined != (member_inline_size <= 4) {
9300 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9301 }
9302 let inner_offset;
9303 let mut inner_depth = depth.clone();
9304 if inlined {
9305 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9306 inner_offset = next_offset;
9307 } else {
9308 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9309 inner_depth.increment()?;
9310 }
9311 let val_ref =
9312 self.transport_latency.get_or_insert_with(|| fidl::new_empty!(i64, D));
9313 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
9314 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9315 {
9316 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9317 }
9318 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9319 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9320 }
9321 }
9322
9323 next_offset += envelope_size;
9324 _next_ordinal_to_read += 1;
9325 if next_offset >= end_offset {
9326 return Ok(());
9327 }
9328
9329 while _next_ordinal_to_read < 2 {
9331 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9332 _next_ordinal_to_read += 1;
9333 next_offset += envelope_size;
9334 }
9335
9336 let next_out_of_line = decoder.next_out_of_line();
9337 let handles_before = decoder.remaining_handles();
9338 if let Some((inlined, num_bytes, num_handles)) =
9339 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9340 {
9341 let member_inline_size =
9342 <u8 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9343 if inlined != (member_inline_size <= 4) {
9344 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9345 }
9346 let inner_offset;
9347 let mut inner_depth = depth.clone();
9348 if inlined {
9349 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9350 inner_offset = next_offset;
9351 } else {
9352 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9353 inner_depth.increment()?;
9354 }
9355 let val_ref = self.burst_number.get_or_insert_with(|| fidl::new_empty!(u8, D));
9356 fidl::decode!(u8, D, val_ref, decoder, inner_offset, inner_depth)?;
9357 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9358 {
9359 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9360 }
9361 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9362 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9363 }
9364 }
9365
9366 next_offset += envelope_size;
9367 _next_ordinal_to_read += 1;
9368 if next_offset >= end_offset {
9369 return Ok(());
9370 }
9371
9372 while _next_ordinal_to_read < 3 {
9374 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9375 _next_ordinal_to_read += 1;
9376 next_offset += envelope_size;
9377 }
9378
9379 let next_out_of_line = decoder.next_out_of_line();
9380 let handles_before = decoder.remaining_handles();
9381 if let Some((inlined, num_bytes, num_handles)) =
9382 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9383 {
9384 let member_inline_size =
9385 <u8 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9386 if inlined != (member_inline_size <= 4) {
9387 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9388 }
9389 let inner_offset;
9390 let mut inner_depth = depth.clone();
9391 if inlined {
9392 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9393 inner_offset = next_offset;
9394 } else {
9395 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9396 inner_depth.increment()?;
9397 }
9398 let val_ref = self.flush_timeout.get_or_insert_with(|| fidl::new_empty!(u8, D));
9399 fidl::decode!(u8, D, val_ref, decoder, inner_offset, inner_depth)?;
9400 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9401 {
9402 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9403 }
9404 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9405 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9406 }
9407 }
9408
9409 next_offset += envelope_size;
9410
9411 while next_offset < end_offset {
9413 _next_ordinal_to_read += 1;
9414 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9415 next_offset += envelope_size;
9416 }
9417
9418 Ok(())
9419 }
9420 }
9421
9422 impl CodecDelayGetCodecLocalDelayRangeRequest {
9423 #[inline(always)]
9424 fn max_ordinal_present(&self) -> u64 {
9425 if let Some(_) = self.codec_attributes {
9426 return 3;
9427 }
9428 if let Some(_) = self.data_direction {
9429 return 2;
9430 }
9431 if let Some(_) = self.logical_transport_type {
9432 return 1;
9433 }
9434 0
9435 }
9436 }
9437
9438 impl fidl::encoding::ValueTypeMarker for CodecDelayGetCodecLocalDelayRangeRequest {
9439 type Borrowed<'a> = &'a Self;
9440 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
9441 value
9442 }
9443 }
9444
9445 unsafe impl fidl::encoding::TypeMarker for CodecDelayGetCodecLocalDelayRangeRequest {
9446 type Owned = Self;
9447
9448 #[inline(always)]
9449 fn inline_align(_context: fidl::encoding::Context) -> usize {
9450 8
9451 }
9452
9453 #[inline(always)]
9454 fn inline_size(_context: fidl::encoding::Context) -> usize {
9455 16
9456 }
9457 }
9458
9459 unsafe impl<D: fidl::encoding::ResourceDialect>
9460 fidl::encoding::Encode<CodecDelayGetCodecLocalDelayRangeRequest, D>
9461 for &CodecDelayGetCodecLocalDelayRangeRequest
9462 {
9463 unsafe fn encode(
9464 self,
9465 encoder: &mut fidl::encoding::Encoder<'_, D>,
9466 offset: usize,
9467 mut depth: fidl::encoding::Depth,
9468 ) -> fidl::Result<()> {
9469 encoder.debug_check_bounds::<CodecDelayGetCodecLocalDelayRangeRequest>(offset);
9470 let max_ordinal: u64 = self.max_ordinal_present();
9472 encoder.write_num(max_ordinal, offset);
9473 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
9474 if max_ordinal == 0 {
9476 return Ok(());
9477 }
9478 depth.increment()?;
9479 let envelope_size = 8;
9480 let bytes_len = max_ordinal as usize * envelope_size;
9481 #[allow(unused_variables)]
9482 let offset = encoder.out_of_line_offset(bytes_len);
9483 let mut _prev_end_offset: usize = 0;
9484 if 1 > max_ordinal {
9485 return Ok(());
9486 }
9487
9488 let cur_offset: usize = (1 - 1) * envelope_size;
9491
9492 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9494
9495 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_bluetooth__common::LogicalTransportType, D>(
9500 self.logical_transport_type.as_ref().map(<fidl_fuchsia_bluetooth__common::LogicalTransportType as fidl::encoding::ValueTypeMarker>::borrow),
9501 encoder, offset + cur_offset, depth
9502 )?;
9503
9504 _prev_end_offset = cur_offset + envelope_size;
9505 if 2 > max_ordinal {
9506 return Ok(());
9507 }
9508
9509 let cur_offset: usize = (2 - 1) * envelope_size;
9512
9513 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9515
9516 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_bluetooth__common::DataDirection, D>(
9521 self.data_direction.as_ref().map(<fidl_fuchsia_bluetooth__common::DataDirection as fidl::encoding::ValueTypeMarker>::borrow),
9522 encoder, offset + cur_offset, depth
9523 )?;
9524
9525 _prev_end_offset = cur_offset + envelope_size;
9526 if 3 > max_ordinal {
9527 return Ok(());
9528 }
9529
9530 let cur_offset: usize = (3 - 1) * envelope_size;
9533
9534 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9536
9537 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_bluetooth__common::CodecAttributes, D>(
9542 self.codec_attributes.as_ref().map(<fidl_fuchsia_bluetooth__common::CodecAttributes as fidl::encoding::ValueTypeMarker>::borrow),
9543 encoder, offset + cur_offset, depth
9544 )?;
9545
9546 _prev_end_offset = cur_offset + envelope_size;
9547
9548 Ok(())
9549 }
9550 }
9551
9552 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
9553 for CodecDelayGetCodecLocalDelayRangeRequest
9554 {
9555 #[inline(always)]
9556 fn new_empty() -> Self {
9557 Self::default()
9558 }
9559
9560 unsafe fn decode(
9561 &mut self,
9562 decoder: &mut fidl::encoding::Decoder<'_, D>,
9563 offset: usize,
9564 mut depth: fidl::encoding::Depth,
9565 ) -> fidl::Result<()> {
9566 decoder.debug_check_bounds::<Self>(offset);
9567 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
9568 None => return Err(fidl::Error::NotNullable),
9569 Some(len) => len,
9570 };
9571 if len == 0 {
9573 return Ok(());
9574 };
9575 depth.increment()?;
9576 let envelope_size = 8;
9577 let bytes_len = len * envelope_size;
9578 let offset = decoder.out_of_line_offset(bytes_len)?;
9579 let mut _next_ordinal_to_read = 0;
9581 let mut next_offset = offset;
9582 let end_offset = offset + bytes_len;
9583 _next_ordinal_to_read += 1;
9584 if next_offset >= end_offset {
9585 return Ok(());
9586 }
9587
9588 while _next_ordinal_to_read < 1 {
9590 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9591 _next_ordinal_to_read += 1;
9592 next_offset += envelope_size;
9593 }
9594
9595 let next_out_of_line = decoder.next_out_of_line();
9596 let handles_before = decoder.remaining_handles();
9597 if let Some((inlined, num_bytes, num_handles)) =
9598 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9599 {
9600 let member_inline_size = <fidl_fuchsia_bluetooth__common::LogicalTransportType as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9601 if inlined != (member_inline_size <= 4) {
9602 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9603 }
9604 let inner_offset;
9605 let mut inner_depth = depth.clone();
9606 if inlined {
9607 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9608 inner_offset = next_offset;
9609 } else {
9610 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9611 inner_depth.increment()?;
9612 }
9613 let val_ref = self.logical_transport_type.get_or_insert_with(|| {
9614 fidl::new_empty!(fidl_fuchsia_bluetooth__common::LogicalTransportType, D)
9615 });
9616 fidl::decode!(
9617 fidl_fuchsia_bluetooth__common::LogicalTransportType,
9618 D,
9619 val_ref,
9620 decoder,
9621 inner_offset,
9622 inner_depth
9623 )?;
9624 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9625 {
9626 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9627 }
9628 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9629 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9630 }
9631 }
9632
9633 next_offset += envelope_size;
9634 _next_ordinal_to_read += 1;
9635 if next_offset >= end_offset {
9636 return Ok(());
9637 }
9638
9639 while _next_ordinal_to_read < 2 {
9641 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9642 _next_ordinal_to_read += 1;
9643 next_offset += envelope_size;
9644 }
9645
9646 let next_out_of_line = decoder.next_out_of_line();
9647 let handles_before = decoder.remaining_handles();
9648 if let Some((inlined, num_bytes, num_handles)) =
9649 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9650 {
9651 let member_inline_size = <fidl_fuchsia_bluetooth__common::DataDirection as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9652 if inlined != (member_inline_size <= 4) {
9653 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9654 }
9655 let inner_offset;
9656 let mut inner_depth = depth.clone();
9657 if inlined {
9658 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9659 inner_offset = next_offset;
9660 } else {
9661 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9662 inner_depth.increment()?;
9663 }
9664 let val_ref = self.data_direction.get_or_insert_with(|| {
9665 fidl::new_empty!(fidl_fuchsia_bluetooth__common::DataDirection, D)
9666 });
9667 fidl::decode!(
9668 fidl_fuchsia_bluetooth__common::DataDirection,
9669 D,
9670 val_ref,
9671 decoder,
9672 inner_offset,
9673 inner_depth
9674 )?;
9675 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9676 {
9677 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9678 }
9679 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9680 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9681 }
9682 }
9683
9684 next_offset += envelope_size;
9685 _next_ordinal_to_read += 1;
9686 if next_offset >= end_offset {
9687 return Ok(());
9688 }
9689
9690 while _next_ordinal_to_read < 3 {
9692 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9693 _next_ordinal_to_read += 1;
9694 next_offset += envelope_size;
9695 }
9696
9697 let next_out_of_line = decoder.next_out_of_line();
9698 let handles_before = decoder.remaining_handles();
9699 if let Some((inlined, num_bytes, num_handles)) =
9700 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9701 {
9702 let member_inline_size = <fidl_fuchsia_bluetooth__common::CodecAttributes as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9703 if inlined != (member_inline_size <= 4) {
9704 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9705 }
9706 let inner_offset;
9707 let mut inner_depth = depth.clone();
9708 if inlined {
9709 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9710 inner_offset = next_offset;
9711 } else {
9712 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9713 inner_depth.increment()?;
9714 }
9715 let val_ref = self.codec_attributes.get_or_insert_with(|| {
9716 fidl::new_empty!(fidl_fuchsia_bluetooth__common::CodecAttributes, D)
9717 });
9718 fidl::decode!(
9719 fidl_fuchsia_bluetooth__common::CodecAttributes,
9720 D,
9721 val_ref,
9722 decoder,
9723 inner_offset,
9724 inner_depth
9725 )?;
9726 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9727 {
9728 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9729 }
9730 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9731 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9732 }
9733 }
9734
9735 next_offset += envelope_size;
9736
9737 while next_offset < end_offset {
9739 _next_ordinal_to_read += 1;
9740 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9741 next_offset += envelope_size;
9742 }
9743
9744 Ok(())
9745 }
9746 }
9747
9748 impl CodecDelayGetCodecLocalDelayRangeResponse {
9749 #[inline(always)]
9750 fn max_ordinal_present(&self) -> u64 {
9751 if let Some(_) = self.max_controller_delay {
9752 return 2;
9753 }
9754 if let Some(_) = self.min_controller_delay {
9755 return 1;
9756 }
9757 0
9758 }
9759 }
9760
9761 impl fidl::encoding::ValueTypeMarker for CodecDelayGetCodecLocalDelayRangeResponse {
9762 type Borrowed<'a> = &'a Self;
9763 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
9764 value
9765 }
9766 }
9767
9768 unsafe impl fidl::encoding::TypeMarker for CodecDelayGetCodecLocalDelayRangeResponse {
9769 type Owned = Self;
9770
9771 #[inline(always)]
9772 fn inline_align(_context: fidl::encoding::Context) -> usize {
9773 8
9774 }
9775
9776 #[inline(always)]
9777 fn inline_size(_context: fidl::encoding::Context) -> usize {
9778 16
9779 }
9780 }
9781
9782 unsafe impl<D: fidl::encoding::ResourceDialect>
9783 fidl::encoding::Encode<CodecDelayGetCodecLocalDelayRangeResponse, D>
9784 for &CodecDelayGetCodecLocalDelayRangeResponse
9785 {
9786 unsafe fn encode(
9787 self,
9788 encoder: &mut fidl::encoding::Encoder<'_, D>,
9789 offset: usize,
9790 mut depth: fidl::encoding::Depth,
9791 ) -> fidl::Result<()> {
9792 encoder.debug_check_bounds::<CodecDelayGetCodecLocalDelayRangeResponse>(offset);
9793 let max_ordinal: u64 = self.max_ordinal_present();
9795 encoder.write_num(max_ordinal, offset);
9796 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
9797 if max_ordinal == 0 {
9799 return Ok(());
9800 }
9801 depth.increment()?;
9802 let envelope_size = 8;
9803 let bytes_len = max_ordinal as usize * envelope_size;
9804 #[allow(unused_variables)]
9805 let offset = encoder.out_of_line_offset(bytes_len);
9806 let mut _prev_end_offset: usize = 0;
9807 if 1 > max_ordinal {
9808 return Ok(());
9809 }
9810
9811 let cur_offset: usize = (1 - 1) * envelope_size;
9814
9815 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9817
9818 fidl::encoding::encode_in_envelope_optional::<i64, D>(
9823 self.min_controller_delay
9824 .as_ref()
9825 .map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
9826 encoder,
9827 offset + cur_offset,
9828 depth,
9829 )?;
9830
9831 _prev_end_offset = cur_offset + envelope_size;
9832 if 2 > max_ordinal {
9833 return Ok(());
9834 }
9835
9836 let cur_offset: usize = (2 - 1) * envelope_size;
9839
9840 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9842
9843 fidl::encoding::encode_in_envelope_optional::<i64, D>(
9848 self.max_controller_delay
9849 .as_ref()
9850 .map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
9851 encoder,
9852 offset + cur_offset,
9853 depth,
9854 )?;
9855
9856 _prev_end_offset = cur_offset + envelope_size;
9857
9858 Ok(())
9859 }
9860 }
9861
9862 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
9863 for CodecDelayGetCodecLocalDelayRangeResponse
9864 {
9865 #[inline(always)]
9866 fn new_empty() -> Self {
9867 Self::default()
9868 }
9869
9870 unsafe fn decode(
9871 &mut self,
9872 decoder: &mut fidl::encoding::Decoder<'_, D>,
9873 offset: usize,
9874 mut depth: fidl::encoding::Depth,
9875 ) -> fidl::Result<()> {
9876 decoder.debug_check_bounds::<Self>(offset);
9877 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
9878 None => return Err(fidl::Error::NotNullable),
9879 Some(len) => len,
9880 };
9881 if len == 0 {
9883 return Ok(());
9884 };
9885 depth.increment()?;
9886 let envelope_size = 8;
9887 let bytes_len = len * envelope_size;
9888 let offset = decoder.out_of_line_offset(bytes_len)?;
9889 let mut _next_ordinal_to_read = 0;
9891 let mut next_offset = offset;
9892 let end_offset = offset + bytes_len;
9893 _next_ordinal_to_read += 1;
9894 if next_offset >= end_offset {
9895 return Ok(());
9896 }
9897
9898 while _next_ordinal_to_read < 1 {
9900 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9901 _next_ordinal_to_read += 1;
9902 next_offset += envelope_size;
9903 }
9904
9905 let next_out_of_line = decoder.next_out_of_line();
9906 let handles_before = decoder.remaining_handles();
9907 if let Some((inlined, num_bytes, num_handles)) =
9908 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9909 {
9910 let member_inline_size =
9911 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9912 if inlined != (member_inline_size <= 4) {
9913 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9914 }
9915 let inner_offset;
9916 let mut inner_depth = depth.clone();
9917 if inlined {
9918 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9919 inner_offset = next_offset;
9920 } else {
9921 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9922 inner_depth.increment()?;
9923 }
9924 let val_ref =
9925 self.min_controller_delay.get_or_insert_with(|| fidl::new_empty!(i64, D));
9926 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
9927 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9928 {
9929 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9930 }
9931 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9932 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9933 }
9934 }
9935
9936 next_offset += envelope_size;
9937 _next_ordinal_to_read += 1;
9938 if next_offset >= end_offset {
9939 return Ok(());
9940 }
9941
9942 while _next_ordinal_to_read < 2 {
9944 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9945 _next_ordinal_to_read += 1;
9946 next_offset += envelope_size;
9947 }
9948
9949 let next_out_of_line = decoder.next_out_of_line();
9950 let handles_before = decoder.remaining_handles();
9951 if let Some((inlined, num_bytes, num_handles)) =
9952 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9953 {
9954 let member_inline_size =
9955 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9956 if inlined != (member_inline_size <= 4) {
9957 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9958 }
9959 let inner_offset;
9960 let mut inner_depth = depth.clone();
9961 if inlined {
9962 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9963 inner_offset = next_offset;
9964 } else {
9965 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9966 inner_depth.increment()?;
9967 }
9968 let val_ref =
9969 self.max_controller_delay.get_or_insert_with(|| fidl::new_empty!(i64, D));
9970 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
9971 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9972 {
9973 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9974 }
9975 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9976 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9977 }
9978 }
9979
9980 next_offset += envelope_size;
9981
9982 while next_offset < end_offset {
9984 _next_ordinal_to_read += 1;
9985 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9986 next_offset += envelope_size;
9987 }
9988
9989 Ok(())
9990 }
9991 }
9992
9993 impl ConnectedIsochronousGroupEstablishStreamsRequest {
9994 #[inline(always)]
9995 fn max_ordinal_present(&self) -> u64 {
9996 if let Some(_) = self.cis_params {
9997 return 1;
9998 }
9999 0
10000 }
10001 }
10002
10003 impl fidl::encoding::ValueTypeMarker for ConnectedIsochronousGroupEstablishStreamsRequest {
10004 type Borrowed<'a> = &'a Self;
10005 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
10006 value
10007 }
10008 }
10009
10010 unsafe impl fidl::encoding::TypeMarker for ConnectedIsochronousGroupEstablishStreamsRequest {
10011 type Owned = Self;
10012
10013 #[inline(always)]
10014 fn inline_align(_context: fidl::encoding::Context) -> usize {
10015 8
10016 }
10017
10018 #[inline(always)]
10019 fn inline_size(_context: fidl::encoding::Context) -> usize {
10020 16
10021 }
10022 }
10023
10024 unsafe impl<D: fidl::encoding::ResourceDialect>
10025 fidl::encoding::Encode<ConnectedIsochronousGroupEstablishStreamsRequest, D>
10026 for &ConnectedIsochronousGroupEstablishStreamsRequest
10027 {
10028 unsafe fn encode(
10029 self,
10030 encoder: &mut fidl::encoding::Encoder<'_, D>,
10031 offset: usize,
10032 mut depth: fidl::encoding::Depth,
10033 ) -> fidl::Result<()> {
10034 encoder.debug_check_bounds::<ConnectedIsochronousGroupEstablishStreamsRequest>(offset);
10035 let max_ordinal: u64 = self.max_ordinal_present();
10037 encoder.write_num(max_ordinal, offset);
10038 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
10039 if max_ordinal == 0 {
10041 return Ok(());
10042 }
10043 depth.increment()?;
10044 let envelope_size = 8;
10045 let bytes_len = max_ordinal as usize * envelope_size;
10046 #[allow(unused_variables)]
10047 let offset = encoder.out_of_line_offset(bytes_len);
10048 let mut _prev_end_offset: usize = 0;
10049 if 1 > max_ordinal {
10050 return Ok(());
10051 }
10052
10053 let cur_offset: usize = (1 - 1) * envelope_size;
10056
10057 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10059
10060 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<CisParameters, 31>, D>(
10065 self.cis_params.as_ref().map(<fidl::encoding::Vector<CisParameters, 31> as fidl::encoding::ValueTypeMarker>::borrow),
10066 encoder, offset + cur_offset, depth
10067 )?;
10068
10069 _prev_end_offset = cur_offset + envelope_size;
10070
10071 Ok(())
10072 }
10073 }
10074
10075 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
10076 for ConnectedIsochronousGroupEstablishStreamsRequest
10077 {
10078 #[inline(always)]
10079 fn new_empty() -> Self {
10080 Self::default()
10081 }
10082
10083 unsafe fn decode(
10084 &mut self,
10085 decoder: &mut fidl::encoding::Decoder<'_, D>,
10086 offset: usize,
10087 mut depth: fidl::encoding::Depth,
10088 ) -> fidl::Result<()> {
10089 decoder.debug_check_bounds::<Self>(offset);
10090 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
10091 None => return Err(fidl::Error::NotNullable),
10092 Some(len) => len,
10093 };
10094 if len == 0 {
10096 return Ok(());
10097 };
10098 depth.increment()?;
10099 let envelope_size = 8;
10100 let bytes_len = len * envelope_size;
10101 let offset = decoder.out_of_line_offset(bytes_len)?;
10102 let mut _next_ordinal_to_read = 0;
10104 let mut next_offset = offset;
10105 let end_offset = offset + bytes_len;
10106 _next_ordinal_to_read += 1;
10107 if next_offset >= end_offset {
10108 return Ok(());
10109 }
10110
10111 while _next_ordinal_to_read < 1 {
10113 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10114 _next_ordinal_to_read += 1;
10115 next_offset += envelope_size;
10116 }
10117
10118 let next_out_of_line = decoder.next_out_of_line();
10119 let handles_before = decoder.remaining_handles();
10120 if let Some((inlined, num_bytes, num_handles)) =
10121 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10122 {
10123 let member_inline_size = <fidl::encoding::Vector<CisParameters, 31> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
10124 if inlined != (member_inline_size <= 4) {
10125 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10126 }
10127 let inner_offset;
10128 let mut inner_depth = depth.clone();
10129 if inlined {
10130 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10131 inner_offset = next_offset;
10132 } else {
10133 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10134 inner_depth.increment()?;
10135 }
10136 let val_ref = self.cis_params.get_or_insert_with(
10137 || fidl::new_empty!(fidl::encoding::Vector<CisParameters, 31>, D),
10138 );
10139 fidl::decode!(fidl::encoding::Vector<CisParameters, 31>, D, val_ref, decoder, inner_offset, inner_depth)?;
10140 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10141 {
10142 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10143 }
10144 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10145 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10146 }
10147 }
10148
10149 next_offset += envelope_size;
10150
10151 while next_offset < end_offset {
10153 _next_ordinal_to_read += 1;
10154 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10155 next_offset += envelope_size;
10156 }
10157
10158 Ok(())
10159 }
10160 }
10161
10162 impl ConnectionOptions {
10163 #[inline(always)]
10164 fn max_ordinal_present(&self) -> u64 {
10165 if let Some(_) = self.service_filter {
10166 return 2;
10167 }
10168 if let Some(_) = self.bondable_mode {
10169 return 1;
10170 }
10171 0
10172 }
10173 }
10174
10175 impl fidl::encoding::ValueTypeMarker for ConnectionOptions {
10176 type Borrowed<'a> = &'a Self;
10177 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
10178 value
10179 }
10180 }
10181
10182 unsafe impl fidl::encoding::TypeMarker for ConnectionOptions {
10183 type Owned = Self;
10184
10185 #[inline(always)]
10186 fn inline_align(_context: fidl::encoding::Context) -> usize {
10187 8
10188 }
10189
10190 #[inline(always)]
10191 fn inline_size(_context: fidl::encoding::Context) -> usize {
10192 16
10193 }
10194 }
10195
10196 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ConnectionOptions, D>
10197 for &ConnectionOptions
10198 {
10199 unsafe fn encode(
10200 self,
10201 encoder: &mut fidl::encoding::Encoder<'_, D>,
10202 offset: usize,
10203 mut depth: fidl::encoding::Depth,
10204 ) -> fidl::Result<()> {
10205 encoder.debug_check_bounds::<ConnectionOptions>(offset);
10206 let max_ordinal: u64 = self.max_ordinal_present();
10208 encoder.write_num(max_ordinal, offset);
10209 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
10210 if max_ordinal == 0 {
10212 return Ok(());
10213 }
10214 depth.increment()?;
10215 let envelope_size = 8;
10216 let bytes_len = max_ordinal as usize * envelope_size;
10217 #[allow(unused_variables)]
10218 let offset = encoder.out_of_line_offset(bytes_len);
10219 let mut _prev_end_offset: usize = 0;
10220 if 1 > max_ordinal {
10221 return Ok(());
10222 }
10223
10224 let cur_offset: usize = (1 - 1) * envelope_size;
10227
10228 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10230
10231 fidl::encoding::encode_in_envelope_optional::<bool, D>(
10236 self.bondable_mode.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
10237 encoder,
10238 offset + cur_offset,
10239 depth,
10240 )?;
10241
10242 _prev_end_offset = cur_offset + envelope_size;
10243 if 2 > max_ordinal {
10244 return Ok(());
10245 }
10246
10247 let cur_offset: usize = (2 - 1) * envelope_size;
10250
10251 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10253
10254 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_bluetooth__common::Uuid, D>(
10259 self.service_filter.as_ref().map(<fidl_fuchsia_bluetooth__common::Uuid as fidl::encoding::ValueTypeMarker>::borrow),
10260 encoder, offset + cur_offset, depth
10261 )?;
10262
10263 _prev_end_offset = cur_offset + envelope_size;
10264
10265 Ok(())
10266 }
10267 }
10268
10269 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ConnectionOptions {
10270 #[inline(always)]
10271 fn new_empty() -> Self {
10272 Self::default()
10273 }
10274
10275 unsafe fn decode(
10276 &mut self,
10277 decoder: &mut fidl::encoding::Decoder<'_, D>,
10278 offset: usize,
10279 mut depth: fidl::encoding::Depth,
10280 ) -> fidl::Result<()> {
10281 decoder.debug_check_bounds::<Self>(offset);
10282 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
10283 None => return Err(fidl::Error::NotNullable),
10284 Some(len) => len,
10285 };
10286 if len == 0 {
10288 return Ok(());
10289 };
10290 depth.increment()?;
10291 let envelope_size = 8;
10292 let bytes_len = len * envelope_size;
10293 let offset = decoder.out_of_line_offset(bytes_len)?;
10294 let mut _next_ordinal_to_read = 0;
10296 let mut next_offset = offset;
10297 let end_offset = offset + bytes_len;
10298 _next_ordinal_to_read += 1;
10299 if next_offset >= end_offset {
10300 return Ok(());
10301 }
10302
10303 while _next_ordinal_to_read < 1 {
10305 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10306 _next_ordinal_to_read += 1;
10307 next_offset += envelope_size;
10308 }
10309
10310 let next_out_of_line = decoder.next_out_of_line();
10311 let handles_before = decoder.remaining_handles();
10312 if let Some((inlined, num_bytes, num_handles)) =
10313 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10314 {
10315 let member_inline_size =
10316 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
10317 if inlined != (member_inline_size <= 4) {
10318 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10319 }
10320 let inner_offset;
10321 let mut inner_depth = depth.clone();
10322 if inlined {
10323 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10324 inner_offset = next_offset;
10325 } else {
10326 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10327 inner_depth.increment()?;
10328 }
10329 let val_ref = self.bondable_mode.get_or_insert_with(|| fidl::new_empty!(bool, D));
10330 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
10331 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10332 {
10333 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10334 }
10335 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10336 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10337 }
10338 }
10339
10340 next_offset += envelope_size;
10341 _next_ordinal_to_read += 1;
10342 if next_offset >= end_offset {
10343 return Ok(());
10344 }
10345
10346 while _next_ordinal_to_read < 2 {
10348 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10349 _next_ordinal_to_read += 1;
10350 next_offset += envelope_size;
10351 }
10352
10353 let next_out_of_line = decoder.next_out_of_line();
10354 let handles_before = decoder.remaining_handles();
10355 if let Some((inlined, num_bytes, num_handles)) =
10356 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10357 {
10358 let member_inline_size = <fidl_fuchsia_bluetooth__common::Uuid as fidl::encoding::TypeMarker>::inline_size(decoder.context);
10359 if inlined != (member_inline_size <= 4) {
10360 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10361 }
10362 let inner_offset;
10363 let mut inner_depth = depth.clone();
10364 if inlined {
10365 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10366 inner_offset = next_offset;
10367 } else {
10368 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10369 inner_depth.increment()?;
10370 }
10371 let val_ref = self.service_filter.get_or_insert_with(|| {
10372 fidl::new_empty!(fidl_fuchsia_bluetooth__common::Uuid, D)
10373 });
10374 fidl::decode!(
10375 fidl_fuchsia_bluetooth__common::Uuid,
10376 D,
10377 val_ref,
10378 decoder,
10379 inner_offset,
10380 inner_depth
10381 )?;
10382 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10383 {
10384 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10385 }
10386 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10387 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10388 }
10389 }
10390
10391 next_offset += envelope_size;
10392
10393 while next_offset < end_offset {
10395 _next_ordinal_to_read += 1;
10396 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10397 next_offset += envelope_size;
10398 }
10399
10400 Ok(())
10401 }
10402 }
10403
10404 impl ConnectionTransferPeriodicAdvertisingSyncRequest {
10405 #[inline(always)]
10406 fn max_ordinal_present(&self) -> u64 {
10407 if let Some(_) = self.service_data {
10408 return 2;
10409 }
10410 if let Some(_) = self.sync_id {
10411 return 1;
10412 }
10413 0
10414 }
10415 }
10416
10417 impl fidl::encoding::ValueTypeMarker for ConnectionTransferPeriodicAdvertisingSyncRequest {
10418 type Borrowed<'a> = &'a Self;
10419 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
10420 value
10421 }
10422 }
10423
10424 unsafe impl fidl::encoding::TypeMarker for ConnectionTransferPeriodicAdvertisingSyncRequest {
10425 type Owned = Self;
10426
10427 #[inline(always)]
10428 fn inline_align(_context: fidl::encoding::Context) -> usize {
10429 8
10430 }
10431
10432 #[inline(always)]
10433 fn inline_size(_context: fidl::encoding::Context) -> usize {
10434 16
10435 }
10436 }
10437
10438 unsafe impl<D: fidl::encoding::ResourceDialect>
10439 fidl::encoding::Encode<ConnectionTransferPeriodicAdvertisingSyncRequest, D>
10440 for &ConnectionTransferPeriodicAdvertisingSyncRequest
10441 {
10442 unsafe fn encode(
10443 self,
10444 encoder: &mut fidl::encoding::Encoder<'_, D>,
10445 offset: usize,
10446 mut depth: fidl::encoding::Depth,
10447 ) -> fidl::Result<()> {
10448 encoder.debug_check_bounds::<ConnectionTransferPeriodicAdvertisingSyncRequest>(offset);
10449 let max_ordinal: u64 = self.max_ordinal_present();
10451 encoder.write_num(max_ordinal, offset);
10452 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
10453 if max_ordinal == 0 {
10455 return Ok(());
10456 }
10457 depth.increment()?;
10458 let envelope_size = 8;
10459 let bytes_len = max_ordinal as usize * envelope_size;
10460 #[allow(unused_variables)]
10461 let offset = encoder.out_of_line_offset(bytes_len);
10462 let mut _prev_end_offset: usize = 0;
10463 if 1 > max_ordinal {
10464 return Ok(());
10465 }
10466
10467 let cur_offset: usize = (1 - 1) * envelope_size;
10470
10471 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10473
10474 fidl::encoding::encode_in_envelope_optional::<PeriodicAdvertisingSyncId, D>(
10479 self.sync_id
10480 .as_ref()
10481 .map(<PeriodicAdvertisingSyncId as fidl::encoding::ValueTypeMarker>::borrow),
10482 encoder,
10483 offset + cur_offset,
10484 depth,
10485 )?;
10486
10487 _prev_end_offset = cur_offset + envelope_size;
10488 if 2 > max_ordinal {
10489 return Ok(());
10490 }
10491
10492 let cur_offset: usize = (2 - 1) * envelope_size;
10495
10496 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10498
10499 fidl::encoding::encode_in_envelope_optional::<u16, D>(
10504 self.service_data.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
10505 encoder,
10506 offset + cur_offset,
10507 depth,
10508 )?;
10509
10510 _prev_end_offset = cur_offset + envelope_size;
10511
10512 Ok(())
10513 }
10514 }
10515
10516 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
10517 for ConnectionTransferPeriodicAdvertisingSyncRequest
10518 {
10519 #[inline(always)]
10520 fn new_empty() -> Self {
10521 Self::default()
10522 }
10523
10524 unsafe fn decode(
10525 &mut self,
10526 decoder: &mut fidl::encoding::Decoder<'_, D>,
10527 offset: usize,
10528 mut depth: fidl::encoding::Depth,
10529 ) -> fidl::Result<()> {
10530 decoder.debug_check_bounds::<Self>(offset);
10531 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
10532 None => return Err(fidl::Error::NotNullable),
10533 Some(len) => len,
10534 };
10535 if len == 0 {
10537 return Ok(());
10538 };
10539 depth.increment()?;
10540 let envelope_size = 8;
10541 let bytes_len = len * envelope_size;
10542 let offset = decoder.out_of_line_offset(bytes_len)?;
10543 let mut _next_ordinal_to_read = 0;
10545 let mut next_offset = offset;
10546 let end_offset = offset + bytes_len;
10547 _next_ordinal_to_read += 1;
10548 if next_offset >= end_offset {
10549 return Ok(());
10550 }
10551
10552 while _next_ordinal_to_read < 1 {
10554 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10555 _next_ordinal_to_read += 1;
10556 next_offset += envelope_size;
10557 }
10558
10559 let next_out_of_line = decoder.next_out_of_line();
10560 let handles_before = decoder.remaining_handles();
10561 if let Some((inlined, num_bytes, num_handles)) =
10562 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10563 {
10564 let member_inline_size =
10565 <PeriodicAdvertisingSyncId as fidl::encoding::TypeMarker>::inline_size(
10566 decoder.context,
10567 );
10568 if inlined != (member_inline_size <= 4) {
10569 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10570 }
10571 let inner_offset;
10572 let mut inner_depth = depth.clone();
10573 if inlined {
10574 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10575 inner_offset = next_offset;
10576 } else {
10577 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10578 inner_depth.increment()?;
10579 }
10580 let val_ref = self
10581 .sync_id
10582 .get_or_insert_with(|| fidl::new_empty!(PeriodicAdvertisingSyncId, D));
10583 fidl::decode!(
10584 PeriodicAdvertisingSyncId,
10585 D,
10586 val_ref,
10587 decoder,
10588 inner_offset,
10589 inner_depth
10590 )?;
10591 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10592 {
10593 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10594 }
10595 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10596 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10597 }
10598 }
10599
10600 next_offset += envelope_size;
10601 _next_ordinal_to_read += 1;
10602 if next_offset >= end_offset {
10603 return Ok(());
10604 }
10605
10606 while _next_ordinal_to_read < 2 {
10608 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10609 _next_ordinal_to_read += 1;
10610 next_offset += envelope_size;
10611 }
10612
10613 let next_out_of_line = decoder.next_out_of_line();
10614 let handles_before = decoder.remaining_handles();
10615 if let Some((inlined, num_bytes, num_handles)) =
10616 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10617 {
10618 let member_inline_size =
10619 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
10620 if inlined != (member_inline_size <= 4) {
10621 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10622 }
10623 let inner_offset;
10624 let mut inner_depth = depth.clone();
10625 if inlined {
10626 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10627 inner_offset = next_offset;
10628 } else {
10629 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10630 inner_depth.increment()?;
10631 }
10632 let val_ref = self.service_data.get_or_insert_with(|| fidl::new_empty!(u16, D));
10633 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
10634 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10635 {
10636 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10637 }
10638 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10639 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10640 }
10641 }
10642
10643 next_offset += envelope_size;
10644
10645 while next_offset < end_offset {
10647 _next_ordinal_to_read += 1;
10648 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10649 next_offset += envelope_size;
10650 }
10651
10652 Ok(())
10653 }
10654 }
10655
10656 impl Extended {
10657 #[inline(always)]
10658 fn max_ordinal_present(&self) -> u64 {
10659 0
10660 }
10661 }
10662
10663 impl fidl::encoding::ValueTypeMarker for Extended {
10664 type Borrowed<'a> = &'a Self;
10665 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
10666 value
10667 }
10668 }
10669
10670 unsafe impl fidl::encoding::TypeMarker for Extended {
10671 type Owned = Self;
10672
10673 #[inline(always)]
10674 fn inline_align(_context: fidl::encoding::Context) -> usize {
10675 8
10676 }
10677
10678 #[inline(always)]
10679 fn inline_size(_context: fidl::encoding::Context) -> usize {
10680 16
10681 }
10682 }
10683
10684 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Extended, D> for &Extended {
10685 unsafe fn encode(
10686 self,
10687 encoder: &mut fidl::encoding::Encoder<'_, D>,
10688 offset: usize,
10689 mut depth: fidl::encoding::Depth,
10690 ) -> fidl::Result<()> {
10691 encoder.debug_check_bounds::<Extended>(offset);
10692 let max_ordinal: u64 = self.max_ordinal_present();
10694 encoder.write_num(max_ordinal, offset);
10695 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
10696 if max_ordinal == 0 {
10698 return Ok(());
10699 }
10700 depth.increment()?;
10701 let envelope_size = 8;
10702 let bytes_len = max_ordinal as usize * envelope_size;
10703 #[allow(unused_variables)]
10704 let offset = encoder.out_of_line_offset(bytes_len);
10705 let mut _prev_end_offset: usize = 0;
10706
10707 Ok(())
10708 }
10709 }
10710
10711 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Extended {
10712 #[inline(always)]
10713 fn new_empty() -> Self {
10714 Self::default()
10715 }
10716
10717 unsafe fn decode(
10718 &mut self,
10719 decoder: &mut fidl::encoding::Decoder<'_, D>,
10720 offset: usize,
10721 mut depth: fidl::encoding::Depth,
10722 ) -> fidl::Result<()> {
10723 decoder.debug_check_bounds::<Self>(offset);
10724 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
10725 None => return Err(fidl::Error::NotNullable),
10726 Some(len) => len,
10727 };
10728 if len == 0 {
10730 return Ok(());
10731 };
10732 depth.increment()?;
10733 let envelope_size = 8;
10734 let bytes_len = len * envelope_size;
10735 let offset = decoder.out_of_line_offset(bytes_len)?;
10736 let mut _next_ordinal_to_read = 0;
10738 let mut next_offset = offset;
10739 let end_offset = offset + bytes_len;
10740
10741 while next_offset < end_offset {
10743 _next_ordinal_to_read += 1;
10744 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10745 next_offset += envelope_size;
10746 }
10747
10748 Ok(())
10749 }
10750 }
10751
10752 impl Filter {
10753 #[inline(always)]
10754 fn max_ordinal_present(&self) -> u64 {
10755 if let Some(_) = self.solicitation_uuid {
10756 return 7;
10757 }
10758 if let Some(_) = self.max_path_loss {
10759 return 6;
10760 }
10761 if let Some(_) = self.name {
10762 return 5;
10763 }
10764 if let Some(_) = self.connectable {
10765 return 4;
10766 }
10767 if let Some(_) = self.manufacturer_id {
10768 return 3;
10769 }
10770 if let Some(_) = self.service_data_uuid {
10771 return 2;
10772 }
10773 if let Some(_) = self.service_uuid {
10774 return 1;
10775 }
10776 0
10777 }
10778 }
10779
10780 impl fidl::encoding::ValueTypeMarker for Filter {
10781 type Borrowed<'a> = &'a Self;
10782 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
10783 value
10784 }
10785 }
10786
10787 unsafe impl fidl::encoding::TypeMarker for Filter {
10788 type Owned = Self;
10789
10790 #[inline(always)]
10791 fn inline_align(_context: fidl::encoding::Context) -> usize {
10792 8
10793 }
10794
10795 #[inline(always)]
10796 fn inline_size(_context: fidl::encoding::Context) -> usize {
10797 16
10798 }
10799 }
10800
10801 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Filter, D> for &Filter {
10802 unsafe fn encode(
10803 self,
10804 encoder: &mut fidl::encoding::Encoder<'_, D>,
10805 offset: usize,
10806 mut depth: fidl::encoding::Depth,
10807 ) -> fidl::Result<()> {
10808 encoder.debug_check_bounds::<Filter>(offset);
10809 let max_ordinal: u64 = self.max_ordinal_present();
10811 encoder.write_num(max_ordinal, offset);
10812 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
10813 if max_ordinal == 0 {
10815 return Ok(());
10816 }
10817 depth.increment()?;
10818 let envelope_size = 8;
10819 let bytes_len = max_ordinal as usize * envelope_size;
10820 #[allow(unused_variables)]
10821 let offset = encoder.out_of_line_offset(bytes_len);
10822 let mut _prev_end_offset: usize = 0;
10823 if 1 > max_ordinal {
10824 return Ok(());
10825 }
10826
10827 let cur_offset: usize = (1 - 1) * envelope_size;
10830
10831 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10833
10834 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_bluetooth__common::Uuid, D>(
10839 self.service_uuid.as_ref().map(<fidl_fuchsia_bluetooth__common::Uuid as fidl::encoding::ValueTypeMarker>::borrow),
10840 encoder, offset + cur_offset, depth
10841 )?;
10842
10843 _prev_end_offset = cur_offset + envelope_size;
10844 if 2 > max_ordinal {
10845 return Ok(());
10846 }
10847
10848 let cur_offset: usize = (2 - 1) * envelope_size;
10851
10852 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10854
10855 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_bluetooth__common::Uuid, D>(
10860 self.service_data_uuid.as_ref().map(<fidl_fuchsia_bluetooth__common::Uuid as fidl::encoding::ValueTypeMarker>::borrow),
10861 encoder, offset + cur_offset, depth
10862 )?;
10863
10864 _prev_end_offset = cur_offset + envelope_size;
10865 if 3 > max_ordinal {
10866 return Ok(());
10867 }
10868
10869 let cur_offset: usize = (3 - 1) * envelope_size;
10872
10873 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10875
10876 fidl::encoding::encode_in_envelope_optional::<u16, D>(
10881 self.manufacturer_id.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
10882 encoder,
10883 offset + cur_offset,
10884 depth,
10885 )?;
10886
10887 _prev_end_offset = cur_offset + envelope_size;
10888 if 4 > max_ordinal {
10889 return Ok(());
10890 }
10891
10892 let cur_offset: usize = (4 - 1) * envelope_size;
10895
10896 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10898
10899 fidl::encoding::encode_in_envelope_optional::<bool, D>(
10904 self.connectable.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
10905 encoder,
10906 offset + cur_offset,
10907 depth,
10908 )?;
10909
10910 _prev_end_offset = cur_offset + envelope_size;
10911 if 5 > max_ordinal {
10912 return Ok(());
10913 }
10914
10915 let cur_offset: usize = (5 - 1) * envelope_size;
10918
10919 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10921
10922 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<248>, D>(
10927 self.name.as_ref().map(
10928 <fidl::encoding::BoundedString<248> as fidl::encoding::ValueTypeMarker>::borrow,
10929 ),
10930 encoder,
10931 offset + cur_offset,
10932 depth,
10933 )?;
10934
10935 _prev_end_offset = cur_offset + envelope_size;
10936 if 6 > max_ordinal {
10937 return Ok(());
10938 }
10939
10940 let cur_offset: usize = (6 - 1) * envelope_size;
10943
10944 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10946
10947 fidl::encoding::encode_in_envelope_optional::<i8, D>(
10952 self.max_path_loss.as_ref().map(<i8 as fidl::encoding::ValueTypeMarker>::borrow),
10953 encoder,
10954 offset + cur_offset,
10955 depth,
10956 )?;
10957
10958 _prev_end_offset = cur_offset + envelope_size;
10959 if 7 > max_ordinal {
10960 return Ok(());
10961 }
10962
10963 let cur_offset: usize = (7 - 1) * envelope_size;
10966
10967 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10969
10970 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_bluetooth__common::Uuid, D>(
10975 self.solicitation_uuid.as_ref().map(<fidl_fuchsia_bluetooth__common::Uuid as fidl::encoding::ValueTypeMarker>::borrow),
10976 encoder, offset + cur_offset, depth
10977 )?;
10978
10979 _prev_end_offset = cur_offset + envelope_size;
10980
10981 Ok(())
10982 }
10983 }
10984
10985 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Filter {
10986 #[inline(always)]
10987 fn new_empty() -> Self {
10988 Self::default()
10989 }
10990
10991 unsafe fn decode(
10992 &mut self,
10993 decoder: &mut fidl::encoding::Decoder<'_, D>,
10994 offset: usize,
10995 mut depth: fidl::encoding::Depth,
10996 ) -> fidl::Result<()> {
10997 decoder.debug_check_bounds::<Self>(offset);
10998 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
10999 None => return Err(fidl::Error::NotNullable),
11000 Some(len) => len,
11001 };
11002 if len == 0 {
11004 return Ok(());
11005 };
11006 depth.increment()?;
11007 let envelope_size = 8;
11008 let bytes_len = len * envelope_size;
11009 let offset = decoder.out_of_line_offset(bytes_len)?;
11010 let mut _next_ordinal_to_read = 0;
11012 let mut next_offset = offset;
11013 let end_offset = offset + bytes_len;
11014 _next_ordinal_to_read += 1;
11015 if next_offset >= end_offset {
11016 return Ok(());
11017 }
11018
11019 while _next_ordinal_to_read < 1 {
11021 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11022 _next_ordinal_to_read += 1;
11023 next_offset += envelope_size;
11024 }
11025
11026 let next_out_of_line = decoder.next_out_of_line();
11027 let handles_before = decoder.remaining_handles();
11028 if let Some((inlined, num_bytes, num_handles)) =
11029 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11030 {
11031 let member_inline_size = <fidl_fuchsia_bluetooth__common::Uuid as fidl::encoding::TypeMarker>::inline_size(decoder.context);
11032 if inlined != (member_inline_size <= 4) {
11033 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11034 }
11035 let inner_offset;
11036 let mut inner_depth = depth.clone();
11037 if inlined {
11038 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11039 inner_offset = next_offset;
11040 } else {
11041 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11042 inner_depth.increment()?;
11043 }
11044 let val_ref = self.service_uuid.get_or_insert_with(|| {
11045 fidl::new_empty!(fidl_fuchsia_bluetooth__common::Uuid, D)
11046 });
11047 fidl::decode!(
11048 fidl_fuchsia_bluetooth__common::Uuid,
11049 D,
11050 val_ref,
11051 decoder,
11052 inner_offset,
11053 inner_depth
11054 )?;
11055 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11056 {
11057 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11058 }
11059 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11060 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11061 }
11062 }
11063
11064 next_offset += envelope_size;
11065 _next_ordinal_to_read += 1;
11066 if next_offset >= end_offset {
11067 return Ok(());
11068 }
11069
11070 while _next_ordinal_to_read < 2 {
11072 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11073 _next_ordinal_to_read += 1;
11074 next_offset += envelope_size;
11075 }
11076
11077 let next_out_of_line = decoder.next_out_of_line();
11078 let handles_before = decoder.remaining_handles();
11079 if let Some((inlined, num_bytes, num_handles)) =
11080 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11081 {
11082 let member_inline_size = <fidl_fuchsia_bluetooth__common::Uuid as fidl::encoding::TypeMarker>::inline_size(decoder.context);
11083 if inlined != (member_inline_size <= 4) {
11084 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11085 }
11086 let inner_offset;
11087 let mut inner_depth = depth.clone();
11088 if inlined {
11089 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11090 inner_offset = next_offset;
11091 } else {
11092 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11093 inner_depth.increment()?;
11094 }
11095 let val_ref = self.service_data_uuid.get_or_insert_with(|| {
11096 fidl::new_empty!(fidl_fuchsia_bluetooth__common::Uuid, D)
11097 });
11098 fidl::decode!(
11099 fidl_fuchsia_bluetooth__common::Uuid,
11100 D,
11101 val_ref,
11102 decoder,
11103 inner_offset,
11104 inner_depth
11105 )?;
11106 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11107 {
11108 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11109 }
11110 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11111 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11112 }
11113 }
11114
11115 next_offset += envelope_size;
11116 _next_ordinal_to_read += 1;
11117 if next_offset >= end_offset {
11118 return Ok(());
11119 }
11120
11121 while _next_ordinal_to_read < 3 {
11123 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11124 _next_ordinal_to_read += 1;
11125 next_offset += envelope_size;
11126 }
11127
11128 let next_out_of_line = decoder.next_out_of_line();
11129 let handles_before = decoder.remaining_handles();
11130 if let Some((inlined, num_bytes, num_handles)) =
11131 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11132 {
11133 let member_inline_size =
11134 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
11135 if inlined != (member_inline_size <= 4) {
11136 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11137 }
11138 let inner_offset;
11139 let mut inner_depth = depth.clone();
11140 if inlined {
11141 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11142 inner_offset = next_offset;
11143 } else {
11144 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11145 inner_depth.increment()?;
11146 }
11147 let val_ref = self.manufacturer_id.get_or_insert_with(|| fidl::new_empty!(u16, D));
11148 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
11149 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11150 {
11151 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11152 }
11153 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11154 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11155 }
11156 }
11157
11158 next_offset += envelope_size;
11159 _next_ordinal_to_read += 1;
11160 if next_offset >= end_offset {
11161 return Ok(());
11162 }
11163
11164 while _next_ordinal_to_read < 4 {
11166 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11167 _next_ordinal_to_read += 1;
11168 next_offset += envelope_size;
11169 }
11170
11171 let next_out_of_line = decoder.next_out_of_line();
11172 let handles_before = decoder.remaining_handles();
11173 if let Some((inlined, num_bytes, num_handles)) =
11174 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11175 {
11176 let member_inline_size =
11177 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
11178 if inlined != (member_inline_size <= 4) {
11179 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11180 }
11181 let inner_offset;
11182 let mut inner_depth = depth.clone();
11183 if inlined {
11184 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11185 inner_offset = next_offset;
11186 } else {
11187 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11188 inner_depth.increment()?;
11189 }
11190 let val_ref = self.connectable.get_or_insert_with(|| fidl::new_empty!(bool, D));
11191 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
11192 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11193 {
11194 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11195 }
11196 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11197 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11198 }
11199 }
11200
11201 next_offset += envelope_size;
11202 _next_ordinal_to_read += 1;
11203 if next_offset >= end_offset {
11204 return Ok(());
11205 }
11206
11207 while _next_ordinal_to_read < 5 {
11209 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11210 _next_ordinal_to_read += 1;
11211 next_offset += envelope_size;
11212 }
11213
11214 let next_out_of_line = decoder.next_out_of_line();
11215 let handles_before = decoder.remaining_handles();
11216 if let Some((inlined, num_bytes, num_handles)) =
11217 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11218 {
11219 let member_inline_size =
11220 <fidl::encoding::BoundedString<248> as fidl::encoding::TypeMarker>::inline_size(
11221 decoder.context,
11222 );
11223 if inlined != (member_inline_size <= 4) {
11224 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11225 }
11226 let inner_offset;
11227 let mut inner_depth = depth.clone();
11228 if inlined {
11229 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11230 inner_offset = next_offset;
11231 } else {
11232 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11233 inner_depth.increment()?;
11234 }
11235 let val_ref = self
11236 .name
11237 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<248>, D));
11238 fidl::decode!(
11239 fidl::encoding::BoundedString<248>,
11240 D,
11241 val_ref,
11242 decoder,
11243 inner_offset,
11244 inner_depth
11245 )?;
11246 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11247 {
11248 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11249 }
11250 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11251 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11252 }
11253 }
11254
11255 next_offset += envelope_size;
11256 _next_ordinal_to_read += 1;
11257 if next_offset >= end_offset {
11258 return Ok(());
11259 }
11260
11261 while _next_ordinal_to_read < 6 {
11263 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11264 _next_ordinal_to_read += 1;
11265 next_offset += envelope_size;
11266 }
11267
11268 let next_out_of_line = decoder.next_out_of_line();
11269 let handles_before = decoder.remaining_handles();
11270 if let Some((inlined, num_bytes, num_handles)) =
11271 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11272 {
11273 let member_inline_size =
11274 <i8 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
11275 if inlined != (member_inline_size <= 4) {
11276 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11277 }
11278 let inner_offset;
11279 let mut inner_depth = depth.clone();
11280 if inlined {
11281 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11282 inner_offset = next_offset;
11283 } else {
11284 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11285 inner_depth.increment()?;
11286 }
11287 let val_ref = self.max_path_loss.get_or_insert_with(|| fidl::new_empty!(i8, D));
11288 fidl::decode!(i8, D, val_ref, decoder, inner_offset, inner_depth)?;
11289 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11290 {
11291 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11292 }
11293 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11294 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11295 }
11296 }
11297
11298 next_offset += envelope_size;
11299 _next_ordinal_to_read += 1;
11300 if next_offset >= end_offset {
11301 return Ok(());
11302 }
11303
11304 while _next_ordinal_to_read < 7 {
11306 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11307 _next_ordinal_to_read += 1;
11308 next_offset += envelope_size;
11309 }
11310
11311 let next_out_of_line = decoder.next_out_of_line();
11312 let handles_before = decoder.remaining_handles();
11313 if let Some((inlined, num_bytes, num_handles)) =
11314 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11315 {
11316 let member_inline_size = <fidl_fuchsia_bluetooth__common::Uuid as fidl::encoding::TypeMarker>::inline_size(decoder.context);
11317 if inlined != (member_inline_size <= 4) {
11318 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11319 }
11320 let inner_offset;
11321 let mut inner_depth = depth.clone();
11322 if inlined {
11323 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11324 inner_offset = next_offset;
11325 } else {
11326 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11327 inner_depth.increment()?;
11328 }
11329 let val_ref = self.solicitation_uuid.get_or_insert_with(|| {
11330 fidl::new_empty!(fidl_fuchsia_bluetooth__common::Uuid, D)
11331 });
11332 fidl::decode!(
11333 fidl_fuchsia_bluetooth__common::Uuid,
11334 D,
11335 val_ref,
11336 decoder,
11337 inner_offset,
11338 inner_depth
11339 )?;
11340 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11341 {
11342 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11343 }
11344 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11345 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11346 }
11347 }
11348
11349 next_offset += envelope_size;
11350
11351 while next_offset < end_offset {
11353 _next_ordinal_to_read += 1;
11354 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11355 next_offset += envelope_size;
11356 }
11357
11358 Ok(())
11359 }
11360 }
11361
11362 impl IsochronousStreamOnEstablishedRequest {
11363 #[inline(always)]
11364 fn max_ordinal_present(&self) -> u64 {
11365 if let Some(_) = self.established_params {
11366 return 2;
11367 }
11368 if let Some(_) = self.result {
11369 return 1;
11370 }
11371 0
11372 }
11373 }
11374
11375 impl fidl::encoding::ValueTypeMarker for IsochronousStreamOnEstablishedRequest {
11376 type Borrowed<'a> = &'a Self;
11377 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
11378 value
11379 }
11380 }
11381
11382 unsafe impl fidl::encoding::TypeMarker for IsochronousStreamOnEstablishedRequest {
11383 type Owned = Self;
11384
11385 #[inline(always)]
11386 fn inline_align(_context: fidl::encoding::Context) -> usize {
11387 8
11388 }
11389
11390 #[inline(always)]
11391 fn inline_size(_context: fidl::encoding::Context) -> usize {
11392 16
11393 }
11394 }
11395
11396 unsafe impl<D: fidl::encoding::ResourceDialect>
11397 fidl::encoding::Encode<IsochronousStreamOnEstablishedRequest, D>
11398 for &IsochronousStreamOnEstablishedRequest
11399 {
11400 unsafe fn encode(
11401 self,
11402 encoder: &mut fidl::encoding::Encoder<'_, D>,
11403 offset: usize,
11404 mut depth: fidl::encoding::Depth,
11405 ) -> fidl::Result<()> {
11406 encoder.debug_check_bounds::<IsochronousStreamOnEstablishedRequest>(offset);
11407 let max_ordinal: u64 = self.max_ordinal_present();
11409 encoder.write_num(max_ordinal, offset);
11410 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
11411 if max_ordinal == 0 {
11413 return Ok(());
11414 }
11415 depth.increment()?;
11416 let envelope_size = 8;
11417 let bytes_len = max_ordinal as usize * envelope_size;
11418 #[allow(unused_variables)]
11419 let offset = encoder.out_of_line_offset(bytes_len);
11420 let mut _prev_end_offset: usize = 0;
11421 if 1 > max_ordinal {
11422 return Ok(());
11423 }
11424
11425 let cur_offset: usize = (1 - 1) * envelope_size;
11428
11429 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11431
11432 fidl::encoding::encode_in_envelope_optional::<i32, D>(
11437 self.result.as_ref().map(<i32 as fidl::encoding::ValueTypeMarker>::borrow),
11438 encoder,
11439 offset + cur_offset,
11440 depth,
11441 )?;
11442
11443 _prev_end_offset = cur_offset + envelope_size;
11444 if 2 > max_ordinal {
11445 return Ok(());
11446 }
11447
11448 let cur_offset: usize = (2 - 1) * envelope_size;
11451
11452 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11454
11455 fidl::encoding::encode_in_envelope_optional::<CisEstablishedParameters, D>(
11460 self.established_params
11461 .as_ref()
11462 .map(<CisEstablishedParameters as fidl::encoding::ValueTypeMarker>::borrow),
11463 encoder,
11464 offset + cur_offset,
11465 depth,
11466 )?;
11467
11468 _prev_end_offset = cur_offset + envelope_size;
11469
11470 Ok(())
11471 }
11472 }
11473
11474 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
11475 for IsochronousStreamOnEstablishedRequest
11476 {
11477 #[inline(always)]
11478 fn new_empty() -> Self {
11479 Self::default()
11480 }
11481
11482 unsafe fn decode(
11483 &mut self,
11484 decoder: &mut fidl::encoding::Decoder<'_, D>,
11485 offset: usize,
11486 mut depth: fidl::encoding::Depth,
11487 ) -> fidl::Result<()> {
11488 decoder.debug_check_bounds::<Self>(offset);
11489 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
11490 None => return Err(fidl::Error::NotNullable),
11491 Some(len) => len,
11492 };
11493 if len == 0 {
11495 return Ok(());
11496 };
11497 depth.increment()?;
11498 let envelope_size = 8;
11499 let bytes_len = len * envelope_size;
11500 let offset = decoder.out_of_line_offset(bytes_len)?;
11501 let mut _next_ordinal_to_read = 0;
11503 let mut next_offset = offset;
11504 let end_offset = offset + bytes_len;
11505 _next_ordinal_to_read += 1;
11506 if next_offset >= end_offset {
11507 return Ok(());
11508 }
11509
11510 while _next_ordinal_to_read < 1 {
11512 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11513 _next_ordinal_to_read += 1;
11514 next_offset += envelope_size;
11515 }
11516
11517 let next_out_of_line = decoder.next_out_of_line();
11518 let handles_before = decoder.remaining_handles();
11519 if let Some((inlined, num_bytes, num_handles)) =
11520 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11521 {
11522 let member_inline_size =
11523 <i32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
11524 if inlined != (member_inline_size <= 4) {
11525 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11526 }
11527 let inner_offset;
11528 let mut inner_depth = depth.clone();
11529 if inlined {
11530 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11531 inner_offset = next_offset;
11532 } else {
11533 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11534 inner_depth.increment()?;
11535 }
11536 let val_ref = self.result.get_or_insert_with(|| fidl::new_empty!(i32, D));
11537 fidl::decode!(i32, D, val_ref, decoder, inner_offset, inner_depth)?;
11538 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11539 {
11540 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11541 }
11542 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11543 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11544 }
11545 }
11546
11547 next_offset += envelope_size;
11548 _next_ordinal_to_read += 1;
11549 if next_offset >= end_offset {
11550 return Ok(());
11551 }
11552
11553 while _next_ordinal_to_read < 2 {
11555 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11556 _next_ordinal_to_read += 1;
11557 next_offset += envelope_size;
11558 }
11559
11560 let next_out_of_line = decoder.next_out_of_line();
11561 let handles_before = decoder.remaining_handles();
11562 if let Some((inlined, num_bytes, num_handles)) =
11563 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11564 {
11565 let member_inline_size =
11566 <CisEstablishedParameters as fidl::encoding::TypeMarker>::inline_size(
11567 decoder.context,
11568 );
11569 if inlined != (member_inline_size <= 4) {
11570 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11571 }
11572 let inner_offset;
11573 let mut inner_depth = depth.clone();
11574 if inlined {
11575 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11576 inner_offset = next_offset;
11577 } else {
11578 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11579 inner_depth.increment()?;
11580 }
11581 let val_ref = self
11582 .established_params
11583 .get_or_insert_with(|| fidl::new_empty!(CisEstablishedParameters, D));
11584 fidl::decode!(
11585 CisEstablishedParameters,
11586 D,
11587 val_ref,
11588 decoder,
11589 inner_offset,
11590 inner_depth
11591 )?;
11592 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11593 {
11594 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11595 }
11596 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11597 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11598 }
11599 }
11600
11601 next_offset += envelope_size;
11602
11603 while next_offset < end_offset {
11605 _next_ordinal_to_read += 1;
11606 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11607 next_offset += envelope_size;
11608 }
11609
11610 Ok(())
11611 }
11612 }
11613
11614 impl IsochronousStreamSetupDataPathRequest {
11615 #[inline(always)]
11616 fn max_ordinal_present(&self) -> u64 {
11617 if let Some(_) = self.controller_delay {
11618 return 3;
11619 }
11620 if let Some(_) = self.codec_attributes {
11621 return 2;
11622 }
11623 if let Some(_) = self.data_direction {
11624 return 1;
11625 }
11626 0
11627 }
11628 }
11629
11630 impl fidl::encoding::ValueTypeMarker for IsochronousStreamSetupDataPathRequest {
11631 type Borrowed<'a> = &'a Self;
11632 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
11633 value
11634 }
11635 }
11636
11637 unsafe impl fidl::encoding::TypeMarker for IsochronousStreamSetupDataPathRequest {
11638 type Owned = Self;
11639
11640 #[inline(always)]
11641 fn inline_align(_context: fidl::encoding::Context) -> usize {
11642 8
11643 }
11644
11645 #[inline(always)]
11646 fn inline_size(_context: fidl::encoding::Context) -> usize {
11647 16
11648 }
11649 }
11650
11651 unsafe impl<D: fidl::encoding::ResourceDialect>
11652 fidl::encoding::Encode<IsochronousStreamSetupDataPathRequest, D>
11653 for &IsochronousStreamSetupDataPathRequest
11654 {
11655 unsafe fn encode(
11656 self,
11657 encoder: &mut fidl::encoding::Encoder<'_, D>,
11658 offset: usize,
11659 mut depth: fidl::encoding::Depth,
11660 ) -> fidl::Result<()> {
11661 encoder.debug_check_bounds::<IsochronousStreamSetupDataPathRequest>(offset);
11662 let max_ordinal: u64 = self.max_ordinal_present();
11664 encoder.write_num(max_ordinal, offset);
11665 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
11666 if max_ordinal == 0 {
11668 return Ok(());
11669 }
11670 depth.increment()?;
11671 let envelope_size = 8;
11672 let bytes_len = max_ordinal as usize * envelope_size;
11673 #[allow(unused_variables)]
11674 let offset = encoder.out_of_line_offset(bytes_len);
11675 let mut _prev_end_offset: usize = 0;
11676 if 1 > max_ordinal {
11677 return Ok(());
11678 }
11679
11680 let cur_offset: usize = (1 - 1) * envelope_size;
11683
11684 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11686
11687 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_bluetooth__common::DataDirection, D>(
11692 self.data_direction.as_ref().map(<fidl_fuchsia_bluetooth__common::DataDirection as fidl::encoding::ValueTypeMarker>::borrow),
11693 encoder, offset + cur_offset, depth
11694 )?;
11695
11696 _prev_end_offset = cur_offset + envelope_size;
11697 if 2 > max_ordinal {
11698 return Ok(());
11699 }
11700
11701 let cur_offset: usize = (2 - 1) * envelope_size;
11704
11705 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11707
11708 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_bluetooth__common::CodecAttributes, D>(
11713 self.codec_attributes.as_ref().map(<fidl_fuchsia_bluetooth__common::CodecAttributes as fidl::encoding::ValueTypeMarker>::borrow),
11714 encoder, offset + cur_offset, depth
11715 )?;
11716
11717 _prev_end_offset = cur_offset + envelope_size;
11718 if 3 > max_ordinal {
11719 return Ok(());
11720 }
11721
11722 let cur_offset: usize = (3 - 1) * envelope_size;
11725
11726 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11728
11729 fidl::encoding::encode_in_envelope_optional::<i64, D>(
11734 self.controller_delay
11735 .as_ref()
11736 .map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
11737 encoder,
11738 offset + cur_offset,
11739 depth,
11740 )?;
11741
11742 _prev_end_offset = cur_offset + envelope_size;
11743
11744 Ok(())
11745 }
11746 }
11747
11748 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
11749 for IsochronousStreamSetupDataPathRequest
11750 {
11751 #[inline(always)]
11752 fn new_empty() -> Self {
11753 Self::default()
11754 }
11755
11756 unsafe fn decode(
11757 &mut self,
11758 decoder: &mut fidl::encoding::Decoder<'_, D>,
11759 offset: usize,
11760 mut depth: fidl::encoding::Depth,
11761 ) -> fidl::Result<()> {
11762 decoder.debug_check_bounds::<Self>(offset);
11763 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
11764 None => return Err(fidl::Error::NotNullable),
11765 Some(len) => len,
11766 };
11767 if len == 0 {
11769 return Ok(());
11770 };
11771 depth.increment()?;
11772 let envelope_size = 8;
11773 let bytes_len = len * envelope_size;
11774 let offset = decoder.out_of_line_offset(bytes_len)?;
11775 let mut _next_ordinal_to_read = 0;
11777 let mut next_offset = offset;
11778 let end_offset = offset + bytes_len;
11779 _next_ordinal_to_read += 1;
11780 if next_offset >= end_offset {
11781 return Ok(());
11782 }
11783
11784 while _next_ordinal_to_read < 1 {
11786 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11787 _next_ordinal_to_read += 1;
11788 next_offset += envelope_size;
11789 }
11790
11791 let next_out_of_line = decoder.next_out_of_line();
11792 let handles_before = decoder.remaining_handles();
11793 if let Some((inlined, num_bytes, num_handles)) =
11794 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11795 {
11796 let member_inline_size = <fidl_fuchsia_bluetooth__common::DataDirection as fidl::encoding::TypeMarker>::inline_size(decoder.context);
11797 if inlined != (member_inline_size <= 4) {
11798 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11799 }
11800 let inner_offset;
11801 let mut inner_depth = depth.clone();
11802 if inlined {
11803 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11804 inner_offset = next_offset;
11805 } else {
11806 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11807 inner_depth.increment()?;
11808 }
11809 let val_ref = self.data_direction.get_or_insert_with(|| {
11810 fidl::new_empty!(fidl_fuchsia_bluetooth__common::DataDirection, D)
11811 });
11812 fidl::decode!(
11813 fidl_fuchsia_bluetooth__common::DataDirection,
11814 D,
11815 val_ref,
11816 decoder,
11817 inner_offset,
11818 inner_depth
11819 )?;
11820 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11821 {
11822 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11823 }
11824 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11825 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11826 }
11827 }
11828
11829 next_offset += envelope_size;
11830 _next_ordinal_to_read += 1;
11831 if next_offset >= end_offset {
11832 return Ok(());
11833 }
11834
11835 while _next_ordinal_to_read < 2 {
11837 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11838 _next_ordinal_to_read += 1;
11839 next_offset += envelope_size;
11840 }
11841
11842 let next_out_of_line = decoder.next_out_of_line();
11843 let handles_before = decoder.remaining_handles();
11844 if let Some((inlined, num_bytes, num_handles)) =
11845 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11846 {
11847 let member_inline_size = <fidl_fuchsia_bluetooth__common::CodecAttributes as fidl::encoding::TypeMarker>::inline_size(decoder.context);
11848 if inlined != (member_inline_size <= 4) {
11849 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11850 }
11851 let inner_offset;
11852 let mut inner_depth = depth.clone();
11853 if inlined {
11854 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11855 inner_offset = next_offset;
11856 } else {
11857 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11858 inner_depth.increment()?;
11859 }
11860 let val_ref = self.codec_attributes.get_or_insert_with(|| {
11861 fidl::new_empty!(fidl_fuchsia_bluetooth__common::CodecAttributes, D)
11862 });
11863 fidl::decode!(
11864 fidl_fuchsia_bluetooth__common::CodecAttributes,
11865 D,
11866 val_ref,
11867 decoder,
11868 inner_offset,
11869 inner_depth
11870 )?;
11871 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11872 {
11873 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11874 }
11875 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11876 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11877 }
11878 }
11879
11880 next_offset += envelope_size;
11881 _next_ordinal_to_read += 1;
11882 if next_offset >= end_offset {
11883 return Ok(());
11884 }
11885
11886 while _next_ordinal_to_read < 3 {
11888 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11889 _next_ordinal_to_read += 1;
11890 next_offset += envelope_size;
11891 }
11892
11893 let next_out_of_line = decoder.next_out_of_line();
11894 let handles_before = decoder.remaining_handles();
11895 if let Some((inlined, num_bytes, num_handles)) =
11896 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11897 {
11898 let member_inline_size =
11899 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
11900 if inlined != (member_inline_size <= 4) {
11901 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11902 }
11903 let inner_offset;
11904 let mut inner_depth = depth.clone();
11905 if inlined {
11906 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11907 inner_offset = next_offset;
11908 } else {
11909 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11910 inner_depth.increment()?;
11911 }
11912 let val_ref = self.controller_delay.get_or_insert_with(|| fidl::new_empty!(i64, D));
11913 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
11914 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11915 {
11916 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11917 }
11918 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11919 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11920 }
11921 }
11922
11923 next_offset += envelope_size;
11924
11925 while next_offset < end_offset {
11927 _next_ordinal_to_read += 1;
11928 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11929 next_offset += envelope_size;
11930 }
11931
11932 Ok(())
11933 }
11934 }
11935
11936 impl IsochronousStreamWriteRequest {
11937 #[inline(always)]
11938 fn max_ordinal_present(&self) -> u64 {
11939 if let Some(_) = self.data {
11940 return 1;
11941 }
11942 0
11943 }
11944 }
11945
11946 impl fidl::encoding::ValueTypeMarker for IsochronousStreamWriteRequest {
11947 type Borrowed<'a> = &'a Self;
11948 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
11949 value
11950 }
11951 }
11952
11953 unsafe impl fidl::encoding::TypeMarker for IsochronousStreamWriteRequest {
11954 type Owned = Self;
11955
11956 #[inline(always)]
11957 fn inline_align(_context: fidl::encoding::Context) -> usize {
11958 8
11959 }
11960
11961 #[inline(always)]
11962 fn inline_size(_context: fidl::encoding::Context) -> usize {
11963 16
11964 }
11965 }
11966
11967 unsafe impl<D: fidl::encoding::ResourceDialect>
11968 fidl::encoding::Encode<IsochronousStreamWriteRequest, D>
11969 for &IsochronousStreamWriteRequest
11970 {
11971 unsafe fn encode(
11972 self,
11973 encoder: &mut fidl::encoding::Encoder<'_, D>,
11974 offset: usize,
11975 mut depth: fidl::encoding::Depth,
11976 ) -> fidl::Result<()> {
11977 encoder.debug_check_bounds::<IsochronousStreamWriteRequest>(offset);
11978 let max_ordinal: u64 = self.max_ordinal_present();
11980 encoder.write_num(max_ordinal, offset);
11981 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
11982 if max_ordinal == 0 {
11984 return Ok(());
11985 }
11986 depth.increment()?;
11987 let envelope_size = 8;
11988 let bytes_len = max_ordinal as usize * envelope_size;
11989 #[allow(unused_variables)]
11990 let offset = encoder.out_of_line_offset(bytes_len);
11991 let mut _prev_end_offset: usize = 0;
11992 if 1 > max_ordinal {
11993 return Ok(());
11994 }
11995
11996 let cur_offset: usize = (1 - 1) * envelope_size;
11999
12000 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12002
12003 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u8, 4095>, D>(
12008 self.data.as_ref().map(
12009 <fidl::encoding::Vector<u8, 4095> as fidl::encoding::ValueTypeMarker>::borrow,
12010 ),
12011 encoder,
12012 offset + cur_offset,
12013 depth,
12014 )?;
12015
12016 _prev_end_offset = cur_offset + envelope_size;
12017
12018 Ok(())
12019 }
12020 }
12021
12022 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
12023 for IsochronousStreamWriteRequest
12024 {
12025 #[inline(always)]
12026 fn new_empty() -> Self {
12027 Self::default()
12028 }
12029
12030 unsafe fn decode(
12031 &mut self,
12032 decoder: &mut fidl::encoding::Decoder<'_, D>,
12033 offset: usize,
12034 mut depth: fidl::encoding::Depth,
12035 ) -> fidl::Result<()> {
12036 decoder.debug_check_bounds::<Self>(offset);
12037 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
12038 None => return Err(fidl::Error::NotNullable),
12039 Some(len) => len,
12040 };
12041 if len == 0 {
12043 return Ok(());
12044 };
12045 depth.increment()?;
12046 let envelope_size = 8;
12047 let bytes_len = len * envelope_size;
12048 let offset = decoder.out_of_line_offset(bytes_len)?;
12049 let mut _next_ordinal_to_read = 0;
12051 let mut next_offset = offset;
12052 let end_offset = offset + bytes_len;
12053 _next_ordinal_to_read += 1;
12054 if next_offset >= end_offset {
12055 return Ok(());
12056 }
12057
12058 while _next_ordinal_to_read < 1 {
12060 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12061 _next_ordinal_to_read += 1;
12062 next_offset += envelope_size;
12063 }
12064
12065 let next_out_of_line = decoder.next_out_of_line();
12066 let handles_before = decoder.remaining_handles();
12067 if let Some((inlined, num_bytes, num_handles)) =
12068 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12069 {
12070 let member_inline_size =
12071 <fidl::encoding::Vector<u8, 4095> as fidl::encoding::TypeMarker>::inline_size(
12072 decoder.context,
12073 );
12074 if inlined != (member_inline_size <= 4) {
12075 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12076 }
12077 let inner_offset;
12078 let mut inner_depth = depth.clone();
12079 if inlined {
12080 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12081 inner_offset = next_offset;
12082 } else {
12083 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12084 inner_depth.increment()?;
12085 }
12086 let val_ref = self
12087 .data
12088 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u8, 4095>, D));
12089 fidl::decode!(fidl::encoding::Vector<u8, 4095>, D, val_ref, decoder, inner_offset, inner_depth)?;
12090 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12091 {
12092 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12093 }
12094 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12095 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12096 }
12097 }
12098
12099 next_offset += envelope_size;
12100
12101 while next_offset < end_offset {
12103 _next_ordinal_to_read += 1;
12104 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12105 next_offset += envelope_size;
12106 }
12107
12108 Ok(())
12109 }
12110 }
12111
12112 impl IsochronousStreamReadResponse {
12113 #[inline(always)]
12114 fn max_ordinal_present(&self) -> u64 {
12115 if let Some(_) = self.timestamp {
12116 return 4;
12117 }
12118 if let Some(_) = self.status_flag {
12119 return 3;
12120 }
12121 if let Some(_) = self.sequence_number {
12122 return 2;
12123 }
12124 if let Some(_) = self.data {
12125 return 1;
12126 }
12127 0
12128 }
12129 }
12130
12131 impl fidl::encoding::ValueTypeMarker for IsochronousStreamReadResponse {
12132 type Borrowed<'a> = &'a Self;
12133 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
12134 value
12135 }
12136 }
12137
12138 unsafe impl fidl::encoding::TypeMarker for IsochronousStreamReadResponse {
12139 type Owned = Self;
12140
12141 #[inline(always)]
12142 fn inline_align(_context: fidl::encoding::Context) -> usize {
12143 8
12144 }
12145
12146 #[inline(always)]
12147 fn inline_size(_context: fidl::encoding::Context) -> usize {
12148 16
12149 }
12150 }
12151
12152 unsafe impl<D: fidl::encoding::ResourceDialect>
12153 fidl::encoding::Encode<IsochronousStreamReadResponse, D>
12154 for &IsochronousStreamReadResponse
12155 {
12156 unsafe fn encode(
12157 self,
12158 encoder: &mut fidl::encoding::Encoder<'_, D>,
12159 offset: usize,
12160 mut depth: fidl::encoding::Depth,
12161 ) -> fidl::Result<()> {
12162 encoder.debug_check_bounds::<IsochronousStreamReadResponse>(offset);
12163 let max_ordinal: u64 = self.max_ordinal_present();
12165 encoder.write_num(max_ordinal, offset);
12166 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
12167 if max_ordinal == 0 {
12169 return Ok(());
12170 }
12171 depth.increment()?;
12172 let envelope_size = 8;
12173 let bytes_len = max_ordinal as usize * envelope_size;
12174 #[allow(unused_variables)]
12175 let offset = encoder.out_of_line_offset(bytes_len);
12176 let mut _prev_end_offset: usize = 0;
12177 if 1 > max_ordinal {
12178 return Ok(());
12179 }
12180
12181 let cur_offset: usize = (1 - 1) * envelope_size;
12184
12185 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12187
12188 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u8>, D>(
12193 self.data.as_ref().map(<fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow),
12194 encoder, offset + cur_offset, depth
12195 )?;
12196
12197 _prev_end_offset = cur_offset + envelope_size;
12198 if 2 > max_ordinal {
12199 return Ok(());
12200 }
12201
12202 let cur_offset: usize = (2 - 1) * envelope_size;
12205
12206 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12208
12209 fidl::encoding::encode_in_envelope_optional::<u16, D>(
12214 self.sequence_number.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
12215 encoder,
12216 offset + cur_offset,
12217 depth,
12218 )?;
12219
12220 _prev_end_offset = cur_offset + envelope_size;
12221 if 3 > max_ordinal {
12222 return Ok(());
12223 }
12224
12225 let cur_offset: usize = (3 - 1) * envelope_size;
12228
12229 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12231
12232 fidl::encoding::encode_in_envelope_optional::<IsoPacketStatusFlag, D>(
12237 self.status_flag
12238 .as_ref()
12239 .map(<IsoPacketStatusFlag as fidl::encoding::ValueTypeMarker>::borrow),
12240 encoder,
12241 offset + cur_offset,
12242 depth,
12243 )?;
12244
12245 _prev_end_offset = cur_offset + envelope_size;
12246 if 4 > max_ordinal {
12247 return Ok(());
12248 }
12249
12250 let cur_offset: usize = (4 - 1) * envelope_size;
12253
12254 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12256
12257 fidl::encoding::encode_in_envelope_optional::<i64, D>(
12262 self.timestamp.as_ref().map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
12263 encoder,
12264 offset + cur_offset,
12265 depth,
12266 )?;
12267
12268 _prev_end_offset = cur_offset + envelope_size;
12269
12270 Ok(())
12271 }
12272 }
12273
12274 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
12275 for IsochronousStreamReadResponse
12276 {
12277 #[inline(always)]
12278 fn new_empty() -> Self {
12279 Self::default()
12280 }
12281
12282 unsafe fn decode(
12283 &mut self,
12284 decoder: &mut fidl::encoding::Decoder<'_, D>,
12285 offset: usize,
12286 mut depth: fidl::encoding::Depth,
12287 ) -> fidl::Result<()> {
12288 decoder.debug_check_bounds::<Self>(offset);
12289 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
12290 None => return Err(fidl::Error::NotNullable),
12291 Some(len) => len,
12292 };
12293 if len == 0 {
12295 return Ok(());
12296 };
12297 depth.increment()?;
12298 let envelope_size = 8;
12299 let bytes_len = len * envelope_size;
12300 let offset = decoder.out_of_line_offset(bytes_len)?;
12301 let mut _next_ordinal_to_read = 0;
12303 let mut next_offset = offset;
12304 let end_offset = offset + bytes_len;
12305 _next_ordinal_to_read += 1;
12306 if next_offset >= end_offset {
12307 return Ok(());
12308 }
12309
12310 while _next_ordinal_to_read < 1 {
12312 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12313 _next_ordinal_to_read += 1;
12314 next_offset += envelope_size;
12315 }
12316
12317 let next_out_of_line = decoder.next_out_of_line();
12318 let handles_before = decoder.remaining_handles();
12319 if let Some((inlined, num_bytes, num_handles)) =
12320 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12321 {
12322 let member_inline_size = <fidl::encoding::UnboundedVector<u8> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
12323 if inlined != (member_inline_size <= 4) {
12324 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12325 }
12326 let inner_offset;
12327 let mut inner_depth = depth.clone();
12328 if inlined {
12329 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12330 inner_offset = next_offset;
12331 } else {
12332 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12333 inner_depth.increment()?;
12334 }
12335 let val_ref = self.data.get_or_insert_with(|| {
12336 fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D)
12337 });
12338 fidl::decode!(
12339 fidl::encoding::UnboundedVector<u8>,
12340 D,
12341 val_ref,
12342 decoder,
12343 inner_offset,
12344 inner_depth
12345 )?;
12346 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12347 {
12348 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12349 }
12350 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12351 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12352 }
12353 }
12354
12355 next_offset += envelope_size;
12356 _next_ordinal_to_read += 1;
12357 if next_offset >= end_offset {
12358 return Ok(());
12359 }
12360
12361 while _next_ordinal_to_read < 2 {
12363 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12364 _next_ordinal_to_read += 1;
12365 next_offset += envelope_size;
12366 }
12367
12368 let next_out_of_line = decoder.next_out_of_line();
12369 let handles_before = decoder.remaining_handles();
12370 if let Some((inlined, num_bytes, num_handles)) =
12371 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12372 {
12373 let member_inline_size =
12374 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
12375 if inlined != (member_inline_size <= 4) {
12376 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12377 }
12378 let inner_offset;
12379 let mut inner_depth = depth.clone();
12380 if inlined {
12381 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12382 inner_offset = next_offset;
12383 } else {
12384 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12385 inner_depth.increment()?;
12386 }
12387 let val_ref = self.sequence_number.get_or_insert_with(|| fidl::new_empty!(u16, D));
12388 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
12389 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12390 {
12391 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12392 }
12393 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12394 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12395 }
12396 }
12397
12398 next_offset += envelope_size;
12399 _next_ordinal_to_read += 1;
12400 if next_offset >= end_offset {
12401 return Ok(());
12402 }
12403
12404 while _next_ordinal_to_read < 3 {
12406 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12407 _next_ordinal_to_read += 1;
12408 next_offset += envelope_size;
12409 }
12410
12411 let next_out_of_line = decoder.next_out_of_line();
12412 let handles_before = decoder.remaining_handles();
12413 if let Some((inlined, num_bytes, num_handles)) =
12414 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12415 {
12416 let member_inline_size =
12417 <IsoPacketStatusFlag as fidl::encoding::TypeMarker>::inline_size(
12418 decoder.context,
12419 );
12420 if inlined != (member_inline_size <= 4) {
12421 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12422 }
12423 let inner_offset;
12424 let mut inner_depth = depth.clone();
12425 if inlined {
12426 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12427 inner_offset = next_offset;
12428 } else {
12429 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12430 inner_depth.increment()?;
12431 }
12432 let val_ref = self
12433 .status_flag
12434 .get_or_insert_with(|| fidl::new_empty!(IsoPacketStatusFlag, D));
12435 fidl::decode!(IsoPacketStatusFlag, D, val_ref, decoder, inner_offset, inner_depth)?;
12436 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12437 {
12438 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12439 }
12440 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12441 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12442 }
12443 }
12444
12445 next_offset += envelope_size;
12446 _next_ordinal_to_read += 1;
12447 if next_offset >= end_offset {
12448 return Ok(());
12449 }
12450
12451 while _next_ordinal_to_read < 4 {
12453 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12454 _next_ordinal_to_read += 1;
12455 next_offset += envelope_size;
12456 }
12457
12458 let next_out_of_line = decoder.next_out_of_line();
12459 let handles_before = decoder.remaining_handles();
12460 if let Some((inlined, num_bytes, num_handles)) =
12461 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12462 {
12463 let member_inline_size =
12464 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
12465 if inlined != (member_inline_size <= 4) {
12466 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12467 }
12468 let inner_offset;
12469 let mut inner_depth = depth.clone();
12470 if inlined {
12471 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12472 inner_offset = next_offset;
12473 } else {
12474 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12475 inner_depth.increment()?;
12476 }
12477 let val_ref = self.timestamp.get_or_insert_with(|| fidl::new_empty!(i64, D));
12478 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
12479 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12480 {
12481 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12482 }
12483 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12484 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12485 }
12486 }
12487
12488 next_offset += envelope_size;
12489
12490 while next_offset < end_offset {
12492 _next_ordinal_to_read += 1;
12493 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12494 next_offset += envelope_size;
12495 }
12496
12497 Ok(())
12498 }
12499 }
12500
12501 impl Legacy {
12502 #[inline(always)]
12503 fn max_ordinal_present(&self) -> u64 {
12504 0
12505 }
12506 }
12507
12508 impl fidl::encoding::ValueTypeMarker for Legacy {
12509 type Borrowed<'a> = &'a Self;
12510 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
12511 value
12512 }
12513 }
12514
12515 unsafe impl fidl::encoding::TypeMarker for Legacy {
12516 type Owned = Self;
12517
12518 #[inline(always)]
12519 fn inline_align(_context: fidl::encoding::Context) -> usize {
12520 8
12521 }
12522
12523 #[inline(always)]
12524 fn inline_size(_context: fidl::encoding::Context) -> usize {
12525 16
12526 }
12527 }
12528
12529 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Legacy, D> for &Legacy {
12530 unsafe fn encode(
12531 self,
12532 encoder: &mut fidl::encoding::Encoder<'_, D>,
12533 offset: usize,
12534 mut depth: fidl::encoding::Depth,
12535 ) -> fidl::Result<()> {
12536 encoder.debug_check_bounds::<Legacy>(offset);
12537 let max_ordinal: u64 = self.max_ordinal_present();
12539 encoder.write_num(max_ordinal, offset);
12540 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
12541 if max_ordinal == 0 {
12543 return Ok(());
12544 }
12545 depth.increment()?;
12546 let envelope_size = 8;
12547 let bytes_len = max_ordinal as usize * envelope_size;
12548 #[allow(unused_variables)]
12549 let offset = encoder.out_of_line_offset(bytes_len);
12550 let mut _prev_end_offset: usize = 0;
12551
12552 Ok(())
12553 }
12554 }
12555
12556 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Legacy {
12557 #[inline(always)]
12558 fn new_empty() -> Self {
12559 Self::default()
12560 }
12561
12562 unsafe fn decode(
12563 &mut self,
12564 decoder: &mut fidl::encoding::Decoder<'_, D>,
12565 offset: usize,
12566 mut depth: fidl::encoding::Depth,
12567 ) -> fidl::Result<()> {
12568 decoder.debug_check_bounds::<Self>(offset);
12569 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
12570 None => return Err(fidl::Error::NotNullable),
12571 Some(len) => len,
12572 };
12573 if len == 0 {
12575 return Ok(());
12576 };
12577 depth.increment()?;
12578 let envelope_size = 8;
12579 let bytes_len = len * envelope_size;
12580 let offset = decoder.out_of_line_offset(bytes_len)?;
12581 let mut _next_ordinal_to_read = 0;
12583 let mut next_offset = offset;
12584 let end_offset = offset + bytes_len;
12585
12586 while next_offset < end_offset {
12588 _next_ordinal_to_read += 1;
12589 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12590 next_offset += envelope_size;
12591 }
12592
12593 Ok(())
12594 }
12595 }
12596
12597 impl Peer {
12598 #[inline(always)]
12599 fn max_ordinal_present(&self) -> u64 {
12600 if let Some(_) = self.periodic_advertising_interval {
12601 return 10;
12602 }
12603 if let Some(_) = self.advertising_sid {
12604 return 9;
12605 }
12606 if let Some(_) = self.last_updated {
12607 return 8;
12608 }
12609 if let Some(_) = self.bonded {
12610 return 7;
12611 }
12612 if let Some(_) = self.data {
12613 return 6;
12614 }
12615 if let Some(_) = self.name {
12616 return 5;
12617 }
12618 if let Some(_) = self.advertising_data {
12619 return 4;
12620 }
12621 if let Some(_) = self.rssi {
12622 return 3;
12623 }
12624 if let Some(_) = self.connectable {
12625 return 2;
12626 }
12627 if let Some(_) = self.id {
12628 return 1;
12629 }
12630 0
12631 }
12632 }
12633
12634 impl fidl::encoding::ValueTypeMarker for Peer {
12635 type Borrowed<'a> = &'a Self;
12636 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
12637 value
12638 }
12639 }
12640
12641 unsafe impl fidl::encoding::TypeMarker for Peer {
12642 type Owned = Self;
12643
12644 #[inline(always)]
12645 fn inline_align(_context: fidl::encoding::Context) -> usize {
12646 8
12647 }
12648
12649 #[inline(always)]
12650 fn inline_size(_context: fidl::encoding::Context) -> usize {
12651 16
12652 }
12653 }
12654
12655 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Peer, D> for &Peer {
12656 unsafe fn encode(
12657 self,
12658 encoder: &mut fidl::encoding::Encoder<'_, D>,
12659 offset: usize,
12660 mut depth: fidl::encoding::Depth,
12661 ) -> fidl::Result<()> {
12662 encoder.debug_check_bounds::<Peer>(offset);
12663 let max_ordinal: u64 = self.max_ordinal_present();
12665 encoder.write_num(max_ordinal, offset);
12666 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
12667 if max_ordinal == 0 {
12669 return Ok(());
12670 }
12671 depth.increment()?;
12672 let envelope_size = 8;
12673 let bytes_len = max_ordinal as usize * envelope_size;
12674 #[allow(unused_variables)]
12675 let offset = encoder.out_of_line_offset(bytes_len);
12676 let mut _prev_end_offset: usize = 0;
12677 if 1 > max_ordinal {
12678 return Ok(());
12679 }
12680
12681 let cur_offset: usize = (1 - 1) * envelope_size;
12684
12685 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12687
12688 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_bluetooth__common::PeerId, D>(
12693 self.id.as_ref().map(<fidl_fuchsia_bluetooth__common::PeerId as fidl::encoding::ValueTypeMarker>::borrow),
12694 encoder, offset + cur_offset, depth
12695 )?;
12696
12697 _prev_end_offset = cur_offset + envelope_size;
12698 if 2 > max_ordinal {
12699 return Ok(());
12700 }
12701
12702 let cur_offset: usize = (2 - 1) * envelope_size;
12705
12706 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12708
12709 fidl::encoding::encode_in_envelope_optional::<bool, D>(
12714 self.connectable.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
12715 encoder,
12716 offset + cur_offset,
12717 depth,
12718 )?;
12719
12720 _prev_end_offset = cur_offset + envelope_size;
12721 if 3 > max_ordinal {
12722 return Ok(());
12723 }
12724
12725 let cur_offset: usize = (3 - 1) * envelope_size;
12728
12729 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12731
12732 fidl::encoding::encode_in_envelope_optional::<i8, D>(
12737 self.rssi.as_ref().map(<i8 as fidl::encoding::ValueTypeMarker>::borrow),
12738 encoder,
12739 offset + cur_offset,
12740 depth,
12741 )?;
12742
12743 _prev_end_offset = cur_offset + envelope_size;
12744 if 4 > max_ordinal {
12745 return Ok(());
12746 }
12747
12748 let cur_offset: usize = (4 - 1) * envelope_size;
12751
12752 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12754
12755 fidl::encoding::encode_in_envelope_optional::<AdvertisingData, D>(
12760 self.advertising_data
12761 .as_ref()
12762 .map(<AdvertisingData as fidl::encoding::ValueTypeMarker>::borrow),
12763 encoder,
12764 offset + cur_offset,
12765 depth,
12766 )?;
12767
12768 _prev_end_offset = cur_offset + envelope_size;
12769 if 5 > max_ordinal {
12770 return Ok(());
12771 }
12772
12773 let cur_offset: usize = (5 - 1) * envelope_size;
12776
12777 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12779
12780 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<248>, D>(
12785 self.name.as_ref().map(
12786 <fidl::encoding::BoundedString<248> as fidl::encoding::ValueTypeMarker>::borrow,
12787 ),
12788 encoder,
12789 offset + cur_offset,
12790 depth,
12791 )?;
12792
12793 _prev_end_offset = cur_offset + envelope_size;
12794 if 6 > max_ordinal {
12795 return Ok(());
12796 }
12797
12798 let cur_offset: usize = (6 - 1) * envelope_size;
12801
12802 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12804
12805 fidl::encoding::encode_in_envelope_optional::<ScanData, D>(
12810 self.data.as_ref().map(<ScanData as fidl::encoding::ValueTypeMarker>::borrow),
12811 encoder,
12812 offset + cur_offset,
12813 depth,
12814 )?;
12815
12816 _prev_end_offset = cur_offset + envelope_size;
12817 if 7 > max_ordinal {
12818 return Ok(());
12819 }
12820
12821 let cur_offset: usize = (7 - 1) * envelope_size;
12824
12825 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12827
12828 fidl::encoding::encode_in_envelope_optional::<bool, D>(
12833 self.bonded.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
12834 encoder,
12835 offset + cur_offset,
12836 depth,
12837 )?;
12838
12839 _prev_end_offset = cur_offset + envelope_size;
12840 if 8 > max_ordinal {
12841 return Ok(());
12842 }
12843
12844 let cur_offset: usize = (8 - 1) * envelope_size;
12847
12848 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12850
12851 fidl::encoding::encode_in_envelope_optional::<i64, D>(
12856 self.last_updated.as_ref().map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
12857 encoder,
12858 offset + cur_offset,
12859 depth,
12860 )?;
12861
12862 _prev_end_offset = cur_offset + envelope_size;
12863 if 9 > max_ordinal {
12864 return Ok(());
12865 }
12866
12867 let cur_offset: usize = (9 - 1) * envelope_size;
12870
12871 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12873
12874 fidl::encoding::encode_in_envelope_optional::<u8, D>(
12879 self.advertising_sid.as_ref().map(<u8 as fidl::encoding::ValueTypeMarker>::borrow),
12880 encoder,
12881 offset + cur_offset,
12882 depth,
12883 )?;
12884
12885 _prev_end_offset = cur_offset + envelope_size;
12886 if 10 > max_ordinal {
12887 return Ok(());
12888 }
12889
12890 let cur_offset: usize = (10 - 1) * envelope_size;
12893
12894 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12896
12897 fidl::encoding::encode_in_envelope_optional::<u16, D>(
12902 self.periodic_advertising_interval
12903 .as_ref()
12904 .map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
12905 encoder,
12906 offset + cur_offset,
12907 depth,
12908 )?;
12909
12910 _prev_end_offset = cur_offset + envelope_size;
12911
12912 Ok(())
12913 }
12914 }
12915
12916 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Peer {
12917 #[inline(always)]
12918 fn new_empty() -> Self {
12919 Self::default()
12920 }
12921
12922 unsafe fn decode(
12923 &mut self,
12924 decoder: &mut fidl::encoding::Decoder<'_, D>,
12925 offset: usize,
12926 mut depth: fidl::encoding::Depth,
12927 ) -> fidl::Result<()> {
12928 decoder.debug_check_bounds::<Self>(offset);
12929 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
12930 None => return Err(fidl::Error::NotNullable),
12931 Some(len) => len,
12932 };
12933 if len == 0 {
12935 return Ok(());
12936 };
12937 depth.increment()?;
12938 let envelope_size = 8;
12939 let bytes_len = len * envelope_size;
12940 let offset = decoder.out_of_line_offset(bytes_len)?;
12941 let mut _next_ordinal_to_read = 0;
12943 let mut next_offset = offset;
12944 let end_offset = offset + bytes_len;
12945 _next_ordinal_to_read += 1;
12946 if next_offset >= end_offset {
12947 return Ok(());
12948 }
12949
12950 while _next_ordinal_to_read < 1 {
12952 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12953 _next_ordinal_to_read += 1;
12954 next_offset += envelope_size;
12955 }
12956
12957 let next_out_of_line = decoder.next_out_of_line();
12958 let handles_before = decoder.remaining_handles();
12959 if let Some((inlined, num_bytes, num_handles)) =
12960 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12961 {
12962 let member_inline_size = <fidl_fuchsia_bluetooth__common::PeerId as fidl::encoding::TypeMarker>::inline_size(decoder.context);
12963 if inlined != (member_inline_size <= 4) {
12964 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12965 }
12966 let inner_offset;
12967 let mut inner_depth = depth.clone();
12968 if inlined {
12969 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12970 inner_offset = next_offset;
12971 } else {
12972 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12973 inner_depth.increment()?;
12974 }
12975 let val_ref = self.id.get_or_insert_with(|| {
12976 fidl::new_empty!(fidl_fuchsia_bluetooth__common::PeerId, D)
12977 });
12978 fidl::decode!(
12979 fidl_fuchsia_bluetooth__common::PeerId,
12980 D,
12981 val_ref,
12982 decoder,
12983 inner_offset,
12984 inner_depth
12985 )?;
12986 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12987 {
12988 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12989 }
12990 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12991 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12992 }
12993 }
12994
12995 next_offset += envelope_size;
12996 _next_ordinal_to_read += 1;
12997 if next_offset >= end_offset {
12998 return Ok(());
12999 }
13000
13001 while _next_ordinal_to_read < 2 {
13003 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13004 _next_ordinal_to_read += 1;
13005 next_offset += envelope_size;
13006 }
13007
13008 let next_out_of_line = decoder.next_out_of_line();
13009 let handles_before = decoder.remaining_handles();
13010 if let Some((inlined, num_bytes, num_handles)) =
13011 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13012 {
13013 let member_inline_size =
13014 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
13015 if inlined != (member_inline_size <= 4) {
13016 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13017 }
13018 let inner_offset;
13019 let mut inner_depth = depth.clone();
13020 if inlined {
13021 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13022 inner_offset = next_offset;
13023 } else {
13024 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13025 inner_depth.increment()?;
13026 }
13027 let val_ref = self.connectable.get_or_insert_with(|| fidl::new_empty!(bool, D));
13028 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
13029 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13030 {
13031 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13032 }
13033 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13034 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13035 }
13036 }
13037
13038 next_offset += envelope_size;
13039 _next_ordinal_to_read += 1;
13040 if next_offset >= end_offset {
13041 return Ok(());
13042 }
13043
13044 while _next_ordinal_to_read < 3 {
13046 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13047 _next_ordinal_to_read += 1;
13048 next_offset += envelope_size;
13049 }
13050
13051 let next_out_of_line = decoder.next_out_of_line();
13052 let handles_before = decoder.remaining_handles();
13053 if let Some((inlined, num_bytes, num_handles)) =
13054 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13055 {
13056 let member_inline_size =
13057 <i8 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
13058 if inlined != (member_inline_size <= 4) {
13059 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13060 }
13061 let inner_offset;
13062 let mut inner_depth = depth.clone();
13063 if inlined {
13064 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13065 inner_offset = next_offset;
13066 } else {
13067 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13068 inner_depth.increment()?;
13069 }
13070 let val_ref = self.rssi.get_or_insert_with(|| fidl::new_empty!(i8, D));
13071 fidl::decode!(i8, D, val_ref, decoder, inner_offset, inner_depth)?;
13072 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13073 {
13074 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13075 }
13076 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13077 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13078 }
13079 }
13080
13081 next_offset += envelope_size;
13082 _next_ordinal_to_read += 1;
13083 if next_offset >= end_offset {
13084 return Ok(());
13085 }
13086
13087 while _next_ordinal_to_read < 4 {
13089 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13090 _next_ordinal_to_read += 1;
13091 next_offset += envelope_size;
13092 }
13093
13094 let next_out_of_line = decoder.next_out_of_line();
13095 let handles_before = decoder.remaining_handles();
13096 if let Some((inlined, num_bytes, num_handles)) =
13097 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13098 {
13099 let member_inline_size =
13100 <AdvertisingData as fidl::encoding::TypeMarker>::inline_size(decoder.context);
13101 if inlined != (member_inline_size <= 4) {
13102 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13103 }
13104 let inner_offset;
13105 let mut inner_depth = depth.clone();
13106 if inlined {
13107 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13108 inner_offset = next_offset;
13109 } else {
13110 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13111 inner_depth.increment()?;
13112 }
13113 let val_ref = self
13114 .advertising_data
13115 .get_or_insert_with(|| fidl::new_empty!(AdvertisingData, D));
13116 fidl::decode!(AdvertisingData, D, val_ref, decoder, inner_offset, inner_depth)?;
13117 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13118 {
13119 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13120 }
13121 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13122 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13123 }
13124 }
13125
13126 next_offset += envelope_size;
13127 _next_ordinal_to_read += 1;
13128 if next_offset >= end_offset {
13129 return Ok(());
13130 }
13131
13132 while _next_ordinal_to_read < 5 {
13134 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13135 _next_ordinal_to_read += 1;
13136 next_offset += envelope_size;
13137 }
13138
13139 let next_out_of_line = decoder.next_out_of_line();
13140 let handles_before = decoder.remaining_handles();
13141 if let Some((inlined, num_bytes, num_handles)) =
13142 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13143 {
13144 let member_inline_size =
13145 <fidl::encoding::BoundedString<248> as fidl::encoding::TypeMarker>::inline_size(
13146 decoder.context,
13147 );
13148 if inlined != (member_inline_size <= 4) {
13149 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13150 }
13151 let inner_offset;
13152 let mut inner_depth = depth.clone();
13153 if inlined {
13154 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13155 inner_offset = next_offset;
13156 } else {
13157 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13158 inner_depth.increment()?;
13159 }
13160 let val_ref = self
13161 .name
13162 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<248>, D));
13163 fidl::decode!(
13164 fidl::encoding::BoundedString<248>,
13165 D,
13166 val_ref,
13167 decoder,
13168 inner_offset,
13169 inner_depth
13170 )?;
13171 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13172 {
13173 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13174 }
13175 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13176 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13177 }
13178 }
13179
13180 next_offset += envelope_size;
13181 _next_ordinal_to_read += 1;
13182 if next_offset >= end_offset {
13183 return Ok(());
13184 }
13185
13186 while _next_ordinal_to_read < 6 {
13188 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13189 _next_ordinal_to_read += 1;
13190 next_offset += envelope_size;
13191 }
13192
13193 let next_out_of_line = decoder.next_out_of_line();
13194 let handles_before = decoder.remaining_handles();
13195 if let Some((inlined, num_bytes, num_handles)) =
13196 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13197 {
13198 let member_inline_size =
13199 <ScanData as fidl::encoding::TypeMarker>::inline_size(decoder.context);
13200 if inlined != (member_inline_size <= 4) {
13201 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13202 }
13203 let inner_offset;
13204 let mut inner_depth = depth.clone();
13205 if inlined {
13206 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13207 inner_offset = next_offset;
13208 } else {
13209 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13210 inner_depth.increment()?;
13211 }
13212 let val_ref = self.data.get_or_insert_with(|| fidl::new_empty!(ScanData, D));
13213 fidl::decode!(ScanData, D, val_ref, decoder, inner_offset, inner_depth)?;
13214 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13215 {
13216 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13217 }
13218 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13219 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13220 }
13221 }
13222
13223 next_offset += envelope_size;
13224 _next_ordinal_to_read += 1;
13225 if next_offset >= end_offset {
13226 return Ok(());
13227 }
13228
13229 while _next_ordinal_to_read < 7 {
13231 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13232 _next_ordinal_to_read += 1;
13233 next_offset += envelope_size;
13234 }
13235
13236 let next_out_of_line = decoder.next_out_of_line();
13237 let handles_before = decoder.remaining_handles();
13238 if let Some((inlined, num_bytes, num_handles)) =
13239 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13240 {
13241 let member_inline_size =
13242 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
13243 if inlined != (member_inline_size <= 4) {
13244 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13245 }
13246 let inner_offset;
13247 let mut inner_depth = depth.clone();
13248 if inlined {
13249 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13250 inner_offset = next_offset;
13251 } else {
13252 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13253 inner_depth.increment()?;
13254 }
13255 let val_ref = self.bonded.get_or_insert_with(|| fidl::new_empty!(bool, D));
13256 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
13257 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13258 {
13259 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13260 }
13261 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13262 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13263 }
13264 }
13265
13266 next_offset += envelope_size;
13267 _next_ordinal_to_read += 1;
13268 if next_offset >= end_offset {
13269 return Ok(());
13270 }
13271
13272 while _next_ordinal_to_read < 8 {
13274 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13275 _next_ordinal_to_read += 1;
13276 next_offset += envelope_size;
13277 }
13278
13279 let next_out_of_line = decoder.next_out_of_line();
13280 let handles_before = decoder.remaining_handles();
13281 if let Some((inlined, num_bytes, num_handles)) =
13282 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13283 {
13284 let member_inline_size =
13285 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
13286 if inlined != (member_inline_size <= 4) {
13287 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13288 }
13289 let inner_offset;
13290 let mut inner_depth = depth.clone();
13291 if inlined {
13292 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13293 inner_offset = next_offset;
13294 } else {
13295 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13296 inner_depth.increment()?;
13297 }
13298 let val_ref = self.last_updated.get_or_insert_with(|| fidl::new_empty!(i64, D));
13299 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
13300 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13301 {
13302 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13303 }
13304 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13305 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13306 }
13307 }
13308
13309 next_offset += envelope_size;
13310 _next_ordinal_to_read += 1;
13311 if next_offset >= end_offset {
13312 return Ok(());
13313 }
13314
13315 while _next_ordinal_to_read < 9 {
13317 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13318 _next_ordinal_to_read += 1;
13319 next_offset += envelope_size;
13320 }
13321
13322 let next_out_of_line = decoder.next_out_of_line();
13323 let handles_before = decoder.remaining_handles();
13324 if let Some((inlined, num_bytes, num_handles)) =
13325 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13326 {
13327 let member_inline_size =
13328 <u8 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
13329 if inlined != (member_inline_size <= 4) {
13330 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13331 }
13332 let inner_offset;
13333 let mut inner_depth = depth.clone();
13334 if inlined {
13335 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13336 inner_offset = next_offset;
13337 } else {
13338 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13339 inner_depth.increment()?;
13340 }
13341 let val_ref = self.advertising_sid.get_or_insert_with(|| fidl::new_empty!(u8, D));
13342 fidl::decode!(u8, D, val_ref, decoder, inner_offset, inner_depth)?;
13343 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13344 {
13345 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13346 }
13347 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13348 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13349 }
13350 }
13351
13352 next_offset += envelope_size;
13353 _next_ordinal_to_read += 1;
13354 if next_offset >= end_offset {
13355 return Ok(());
13356 }
13357
13358 while _next_ordinal_to_read < 10 {
13360 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13361 _next_ordinal_to_read += 1;
13362 next_offset += envelope_size;
13363 }
13364
13365 let next_out_of_line = decoder.next_out_of_line();
13366 let handles_before = decoder.remaining_handles();
13367 if let Some((inlined, num_bytes, num_handles)) =
13368 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13369 {
13370 let member_inline_size =
13371 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
13372 if inlined != (member_inline_size <= 4) {
13373 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13374 }
13375 let inner_offset;
13376 let mut inner_depth = depth.clone();
13377 if inlined {
13378 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13379 inner_offset = next_offset;
13380 } else {
13381 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13382 inner_depth.increment()?;
13383 }
13384 let val_ref = self
13385 .periodic_advertising_interval
13386 .get_or_insert_with(|| fidl::new_empty!(u16, D));
13387 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
13388 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13389 {
13390 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13391 }
13392 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13393 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13394 }
13395 }
13396
13397 next_offset += envelope_size;
13398
13399 while next_offset < end_offset {
13401 _next_ordinal_to_read += 1;
13402 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13403 next_offset += envelope_size;
13404 }
13405
13406 Ok(())
13407 }
13408 }
13409
13410 impl PeriodicAdvertisingReport {
13411 #[inline(always)]
13412 fn max_ordinal_present(&self) -> u64 {
13413 if let Some(_) = self.timestamp {
13414 return 5;
13415 }
13416 if let Some(_) = self.subevent {
13417 return 4;
13418 }
13419 if let Some(_) = self.event_counter {
13420 return 3;
13421 }
13422 if let Some(_) = self.data {
13423 return 2;
13424 }
13425 if let Some(_) = self.rssi {
13426 return 1;
13427 }
13428 0
13429 }
13430 }
13431
13432 impl fidl::encoding::ValueTypeMarker for PeriodicAdvertisingReport {
13433 type Borrowed<'a> = &'a Self;
13434 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
13435 value
13436 }
13437 }
13438
13439 unsafe impl fidl::encoding::TypeMarker for PeriodicAdvertisingReport {
13440 type Owned = Self;
13441
13442 #[inline(always)]
13443 fn inline_align(_context: fidl::encoding::Context) -> usize {
13444 8
13445 }
13446
13447 #[inline(always)]
13448 fn inline_size(_context: fidl::encoding::Context) -> usize {
13449 16
13450 }
13451 }
13452
13453 unsafe impl<D: fidl::encoding::ResourceDialect>
13454 fidl::encoding::Encode<PeriodicAdvertisingReport, D> for &PeriodicAdvertisingReport
13455 {
13456 unsafe fn encode(
13457 self,
13458 encoder: &mut fidl::encoding::Encoder<'_, D>,
13459 offset: usize,
13460 mut depth: fidl::encoding::Depth,
13461 ) -> fidl::Result<()> {
13462 encoder.debug_check_bounds::<PeriodicAdvertisingReport>(offset);
13463 let max_ordinal: u64 = self.max_ordinal_present();
13465 encoder.write_num(max_ordinal, offset);
13466 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
13467 if max_ordinal == 0 {
13469 return Ok(());
13470 }
13471 depth.increment()?;
13472 let envelope_size = 8;
13473 let bytes_len = max_ordinal as usize * envelope_size;
13474 #[allow(unused_variables)]
13475 let offset = encoder.out_of_line_offset(bytes_len);
13476 let mut _prev_end_offset: usize = 0;
13477 if 1 > max_ordinal {
13478 return Ok(());
13479 }
13480
13481 let cur_offset: usize = (1 - 1) * envelope_size;
13484
13485 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13487
13488 fidl::encoding::encode_in_envelope_optional::<i8, D>(
13493 self.rssi.as_ref().map(<i8 as fidl::encoding::ValueTypeMarker>::borrow),
13494 encoder,
13495 offset + cur_offset,
13496 depth,
13497 )?;
13498
13499 _prev_end_offset = cur_offset + envelope_size;
13500 if 2 > max_ordinal {
13501 return Ok(());
13502 }
13503
13504 let cur_offset: usize = (2 - 1) * envelope_size;
13507
13508 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13510
13511 fidl::encoding::encode_in_envelope_optional::<ScanData, D>(
13516 self.data.as_ref().map(<ScanData as fidl::encoding::ValueTypeMarker>::borrow),
13517 encoder,
13518 offset + cur_offset,
13519 depth,
13520 )?;
13521
13522 _prev_end_offset = cur_offset + envelope_size;
13523 if 3 > max_ordinal {
13524 return Ok(());
13525 }
13526
13527 let cur_offset: usize = (3 - 1) * envelope_size;
13530
13531 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13533
13534 fidl::encoding::encode_in_envelope_optional::<u16, D>(
13539 self.event_counter.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
13540 encoder,
13541 offset + cur_offset,
13542 depth,
13543 )?;
13544
13545 _prev_end_offset = cur_offset + envelope_size;
13546 if 4 > max_ordinal {
13547 return Ok(());
13548 }
13549
13550 let cur_offset: usize = (4 - 1) * envelope_size;
13553
13554 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13556
13557 fidl::encoding::encode_in_envelope_optional::<u8, D>(
13562 self.subevent.as_ref().map(<u8 as fidl::encoding::ValueTypeMarker>::borrow),
13563 encoder,
13564 offset + cur_offset,
13565 depth,
13566 )?;
13567
13568 _prev_end_offset = cur_offset + envelope_size;
13569 if 5 > max_ordinal {
13570 return Ok(());
13571 }
13572
13573 let cur_offset: usize = (5 - 1) * envelope_size;
13576
13577 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13579
13580 fidl::encoding::encode_in_envelope_optional::<i64, D>(
13585 self.timestamp.as_ref().map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
13586 encoder,
13587 offset + cur_offset,
13588 depth,
13589 )?;
13590
13591 _prev_end_offset = cur_offset + envelope_size;
13592
13593 Ok(())
13594 }
13595 }
13596
13597 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
13598 for PeriodicAdvertisingReport
13599 {
13600 #[inline(always)]
13601 fn new_empty() -> Self {
13602 Self::default()
13603 }
13604
13605 unsafe fn decode(
13606 &mut self,
13607 decoder: &mut fidl::encoding::Decoder<'_, D>,
13608 offset: usize,
13609 mut depth: fidl::encoding::Depth,
13610 ) -> fidl::Result<()> {
13611 decoder.debug_check_bounds::<Self>(offset);
13612 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
13613 None => return Err(fidl::Error::NotNullable),
13614 Some(len) => len,
13615 };
13616 if len == 0 {
13618 return Ok(());
13619 };
13620 depth.increment()?;
13621 let envelope_size = 8;
13622 let bytes_len = len * envelope_size;
13623 let offset = decoder.out_of_line_offset(bytes_len)?;
13624 let mut _next_ordinal_to_read = 0;
13626 let mut next_offset = offset;
13627 let end_offset = offset + bytes_len;
13628 _next_ordinal_to_read += 1;
13629 if next_offset >= end_offset {
13630 return Ok(());
13631 }
13632
13633 while _next_ordinal_to_read < 1 {
13635 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13636 _next_ordinal_to_read += 1;
13637 next_offset += envelope_size;
13638 }
13639
13640 let next_out_of_line = decoder.next_out_of_line();
13641 let handles_before = decoder.remaining_handles();
13642 if let Some((inlined, num_bytes, num_handles)) =
13643 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13644 {
13645 let member_inline_size =
13646 <i8 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
13647 if inlined != (member_inline_size <= 4) {
13648 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13649 }
13650 let inner_offset;
13651 let mut inner_depth = depth.clone();
13652 if inlined {
13653 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13654 inner_offset = next_offset;
13655 } else {
13656 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13657 inner_depth.increment()?;
13658 }
13659 let val_ref = self.rssi.get_or_insert_with(|| fidl::new_empty!(i8, D));
13660 fidl::decode!(i8, D, val_ref, decoder, inner_offset, inner_depth)?;
13661 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13662 {
13663 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13664 }
13665 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13666 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13667 }
13668 }
13669
13670 next_offset += envelope_size;
13671 _next_ordinal_to_read += 1;
13672 if next_offset >= end_offset {
13673 return Ok(());
13674 }
13675
13676 while _next_ordinal_to_read < 2 {
13678 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13679 _next_ordinal_to_read += 1;
13680 next_offset += envelope_size;
13681 }
13682
13683 let next_out_of_line = decoder.next_out_of_line();
13684 let handles_before = decoder.remaining_handles();
13685 if let Some((inlined, num_bytes, num_handles)) =
13686 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13687 {
13688 let member_inline_size =
13689 <ScanData as fidl::encoding::TypeMarker>::inline_size(decoder.context);
13690 if inlined != (member_inline_size <= 4) {
13691 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13692 }
13693 let inner_offset;
13694 let mut inner_depth = depth.clone();
13695 if inlined {
13696 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13697 inner_offset = next_offset;
13698 } else {
13699 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13700 inner_depth.increment()?;
13701 }
13702 let val_ref = self.data.get_or_insert_with(|| fidl::new_empty!(ScanData, D));
13703 fidl::decode!(ScanData, D, val_ref, decoder, inner_offset, inner_depth)?;
13704 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13705 {
13706 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13707 }
13708 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13709 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13710 }
13711 }
13712
13713 next_offset += envelope_size;
13714 _next_ordinal_to_read += 1;
13715 if next_offset >= end_offset {
13716 return Ok(());
13717 }
13718
13719 while _next_ordinal_to_read < 3 {
13721 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13722 _next_ordinal_to_read += 1;
13723 next_offset += envelope_size;
13724 }
13725
13726 let next_out_of_line = decoder.next_out_of_line();
13727 let handles_before = decoder.remaining_handles();
13728 if let Some((inlined, num_bytes, num_handles)) =
13729 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13730 {
13731 let member_inline_size =
13732 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
13733 if inlined != (member_inline_size <= 4) {
13734 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13735 }
13736 let inner_offset;
13737 let mut inner_depth = depth.clone();
13738 if inlined {
13739 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13740 inner_offset = next_offset;
13741 } else {
13742 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13743 inner_depth.increment()?;
13744 }
13745 let val_ref = self.event_counter.get_or_insert_with(|| fidl::new_empty!(u16, D));
13746 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
13747 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13748 {
13749 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13750 }
13751 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13752 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13753 }
13754 }
13755
13756 next_offset += envelope_size;
13757 _next_ordinal_to_read += 1;
13758 if next_offset >= end_offset {
13759 return Ok(());
13760 }
13761
13762 while _next_ordinal_to_read < 4 {
13764 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13765 _next_ordinal_to_read += 1;
13766 next_offset += envelope_size;
13767 }
13768
13769 let next_out_of_line = decoder.next_out_of_line();
13770 let handles_before = decoder.remaining_handles();
13771 if let Some((inlined, num_bytes, num_handles)) =
13772 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13773 {
13774 let member_inline_size =
13775 <u8 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
13776 if inlined != (member_inline_size <= 4) {
13777 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13778 }
13779 let inner_offset;
13780 let mut inner_depth = depth.clone();
13781 if inlined {
13782 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13783 inner_offset = next_offset;
13784 } else {
13785 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13786 inner_depth.increment()?;
13787 }
13788 let val_ref = self.subevent.get_or_insert_with(|| fidl::new_empty!(u8, D));
13789 fidl::decode!(u8, D, val_ref, decoder, inner_offset, inner_depth)?;
13790 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13791 {
13792 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13793 }
13794 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13795 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13796 }
13797 }
13798
13799 next_offset += envelope_size;
13800 _next_ordinal_to_read += 1;
13801 if next_offset >= end_offset {
13802 return Ok(());
13803 }
13804
13805 while _next_ordinal_to_read < 5 {
13807 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13808 _next_ordinal_to_read += 1;
13809 next_offset += envelope_size;
13810 }
13811
13812 let next_out_of_line = decoder.next_out_of_line();
13813 let handles_before = decoder.remaining_handles();
13814 if let Some((inlined, num_bytes, num_handles)) =
13815 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13816 {
13817 let member_inline_size =
13818 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
13819 if inlined != (member_inline_size <= 4) {
13820 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13821 }
13822 let inner_offset;
13823 let mut inner_depth = depth.clone();
13824 if inlined {
13825 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13826 inner_offset = next_offset;
13827 } else {
13828 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13829 inner_depth.increment()?;
13830 }
13831 let val_ref = self.timestamp.get_or_insert_with(|| fidl::new_empty!(i64, D));
13832 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
13833 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13834 {
13835 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13836 }
13837 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13838 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13839 }
13840 }
13841
13842 next_offset += envelope_size;
13843
13844 while next_offset < end_offset {
13846 _next_ordinal_to_read += 1;
13847 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13848 next_offset += envelope_size;
13849 }
13850
13851 Ok(())
13852 }
13853 }
13854
13855 impl PeriodicAdvertisingSyncConfiguration {
13856 #[inline(always)]
13857 fn max_ordinal_present(&self) -> u64 {
13858 if let Some(_) = self.filter_duplicates {
13859 return 1;
13860 }
13861 0
13862 }
13863 }
13864
13865 impl fidl::encoding::ValueTypeMarker for PeriodicAdvertisingSyncConfiguration {
13866 type Borrowed<'a> = &'a Self;
13867 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
13868 value
13869 }
13870 }
13871
13872 unsafe impl fidl::encoding::TypeMarker for PeriodicAdvertisingSyncConfiguration {
13873 type Owned = Self;
13874
13875 #[inline(always)]
13876 fn inline_align(_context: fidl::encoding::Context) -> usize {
13877 8
13878 }
13879
13880 #[inline(always)]
13881 fn inline_size(_context: fidl::encoding::Context) -> usize {
13882 16
13883 }
13884 }
13885
13886 unsafe impl<D: fidl::encoding::ResourceDialect>
13887 fidl::encoding::Encode<PeriodicAdvertisingSyncConfiguration, D>
13888 for &PeriodicAdvertisingSyncConfiguration
13889 {
13890 unsafe fn encode(
13891 self,
13892 encoder: &mut fidl::encoding::Encoder<'_, D>,
13893 offset: usize,
13894 mut depth: fidl::encoding::Depth,
13895 ) -> fidl::Result<()> {
13896 encoder.debug_check_bounds::<PeriodicAdvertisingSyncConfiguration>(offset);
13897 let max_ordinal: u64 = self.max_ordinal_present();
13899 encoder.write_num(max_ordinal, offset);
13900 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
13901 if max_ordinal == 0 {
13903 return Ok(());
13904 }
13905 depth.increment()?;
13906 let envelope_size = 8;
13907 let bytes_len = max_ordinal as usize * envelope_size;
13908 #[allow(unused_variables)]
13909 let offset = encoder.out_of_line_offset(bytes_len);
13910 let mut _prev_end_offset: usize = 0;
13911 if 1 > max_ordinal {
13912 return Ok(());
13913 }
13914
13915 let cur_offset: usize = (1 - 1) * envelope_size;
13918
13919 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13921
13922 fidl::encoding::encode_in_envelope_optional::<bool, D>(
13927 self.filter_duplicates
13928 .as_ref()
13929 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
13930 encoder,
13931 offset + cur_offset,
13932 depth,
13933 )?;
13934
13935 _prev_end_offset = cur_offset + envelope_size;
13936
13937 Ok(())
13938 }
13939 }
13940
13941 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
13942 for PeriodicAdvertisingSyncConfiguration
13943 {
13944 #[inline(always)]
13945 fn new_empty() -> Self {
13946 Self::default()
13947 }
13948
13949 unsafe fn decode(
13950 &mut self,
13951 decoder: &mut fidl::encoding::Decoder<'_, D>,
13952 offset: usize,
13953 mut depth: fidl::encoding::Depth,
13954 ) -> fidl::Result<()> {
13955 decoder.debug_check_bounds::<Self>(offset);
13956 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
13957 None => return Err(fidl::Error::NotNullable),
13958 Some(len) => len,
13959 };
13960 if len == 0 {
13962 return Ok(());
13963 };
13964 depth.increment()?;
13965 let envelope_size = 8;
13966 let bytes_len = len * envelope_size;
13967 let offset = decoder.out_of_line_offset(bytes_len)?;
13968 let mut _next_ordinal_to_read = 0;
13970 let mut next_offset = offset;
13971 let end_offset = offset + bytes_len;
13972 _next_ordinal_to_read += 1;
13973 if next_offset >= end_offset {
13974 return Ok(());
13975 }
13976
13977 while _next_ordinal_to_read < 1 {
13979 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13980 _next_ordinal_to_read += 1;
13981 next_offset += envelope_size;
13982 }
13983
13984 let next_out_of_line = decoder.next_out_of_line();
13985 let handles_before = decoder.remaining_handles();
13986 if let Some((inlined, num_bytes, num_handles)) =
13987 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13988 {
13989 let member_inline_size =
13990 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
13991 if inlined != (member_inline_size <= 4) {
13992 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13993 }
13994 let inner_offset;
13995 let mut inner_depth = depth.clone();
13996 if inlined {
13997 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13998 inner_offset = next_offset;
13999 } else {
14000 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14001 inner_depth.increment()?;
14002 }
14003 let val_ref =
14004 self.filter_duplicates.get_or_insert_with(|| fidl::new_empty!(bool, D));
14005 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
14006 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14007 {
14008 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14009 }
14010 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14011 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14012 }
14013 }
14014
14015 next_offset += envelope_size;
14016
14017 while next_offset < end_offset {
14019 _next_ordinal_to_read += 1;
14020 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14021 next_offset += envelope_size;
14022 }
14023
14024 Ok(())
14025 }
14026 }
14027
14028 impl PeriodicAdvertisingSyncOnEstablishedRequest {
14029 #[inline(always)]
14030 fn max_ordinal_present(&self) -> u64 {
14031 if let Some(_) = self.periodic_advertising_interval {
14032 return 7;
14033 }
14034 if let Some(_) = self.phy {
14035 return 6;
14036 }
14037 if let Some(_) = self.advertising_sid {
14038 return 5;
14039 }
14040 if let Some(_) = self.service_data {
14041 return 4;
14042 }
14043 if let Some(_) = self.peer_id {
14044 return 3;
14045 }
14046 if let Some(_) = self.subevents_count {
14047 return 2;
14048 }
14049 if let Some(_) = self.id {
14050 return 1;
14051 }
14052 0
14053 }
14054 }
14055
14056 impl fidl::encoding::ValueTypeMarker for PeriodicAdvertisingSyncOnEstablishedRequest {
14057 type Borrowed<'a> = &'a Self;
14058 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
14059 value
14060 }
14061 }
14062
14063 unsafe impl fidl::encoding::TypeMarker for PeriodicAdvertisingSyncOnEstablishedRequest {
14064 type Owned = Self;
14065
14066 #[inline(always)]
14067 fn inline_align(_context: fidl::encoding::Context) -> usize {
14068 8
14069 }
14070
14071 #[inline(always)]
14072 fn inline_size(_context: fidl::encoding::Context) -> usize {
14073 16
14074 }
14075 }
14076
14077 unsafe impl<D: fidl::encoding::ResourceDialect>
14078 fidl::encoding::Encode<PeriodicAdvertisingSyncOnEstablishedRequest, D>
14079 for &PeriodicAdvertisingSyncOnEstablishedRequest
14080 {
14081 unsafe fn encode(
14082 self,
14083 encoder: &mut fidl::encoding::Encoder<'_, D>,
14084 offset: usize,
14085 mut depth: fidl::encoding::Depth,
14086 ) -> fidl::Result<()> {
14087 encoder.debug_check_bounds::<PeriodicAdvertisingSyncOnEstablishedRequest>(offset);
14088 let max_ordinal: u64 = self.max_ordinal_present();
14090 encoder.write_num(max_ordinal, offset);
14091 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
14092 if max_ordinal == 0 {
14094 return Ok(());
14095 }
14096 depth.increment()?;
14097 let envelope_size = 8;
14098 let bytes_len = max_ordinal as usize * envelope_size;
14099 #[allow(unused_variables)]
14100 let offset = encoder.out_of_line_offset(bytes_len);
14101 let mut _prev_end_offset: usize = 0;
14102 if 1 > max_ordinal {
14103 return Ok(());
14104 }
14105
14106 let cur_offset: usize = (1 - 1) * envelope_size;
14109
14110 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14112
14113 fidl::encoding::encode_in_envelope_optional::<PeriodicAdvertisingSyncId, D>(
14118 self.id
14119 .as_ref()
14120 .map(<PeriodicAdvertisingSyncId as fidl::encoding::ValueTypeMarker>::borrow),
14121 encoder,
14122 offset + cur_offset,
14123 depth,
14124 )?;
14125
14126 _prev_end_offset = cur_offset + envelope_size;
14127 if 2 > max_ordinal {
14128 return Ok(());
14129 }
14130
14131 let cur_offset: usize = (2 - 1) * envelope_size;
14134
14135 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14137
14138 fidl::encoding::encode_in_envelope_optional::<u8, D>(
14143 self.subevents_count.as_ref().map(<u8 as fidl::encoding::ValueTypeMarker>::borrow),
14144 encoder,
14145 offset + cur_offset,
14146 depth,
14147 )?;
14148
14149 _prev_end_offset = cur_offset + envelope_size;
14150 if 3 > max_ordinal {
14151 return Ok(());
14152 }
14153
14154 let cur_offset: usize = (3 - 1) * envelope_size;
14157
14158 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14160
14161 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_bluetooth__common::PeerId, D>(
14166 self.peer_id.as_ref().map(<fidl_fuchsia_bluetooth__common::PeerId as fidl::encoding::ValueTypeMarker>::borrow),
14167 encoder, offset + cur_offset, depth
14168 )?;
14169
14170 _prev_end_offset = cur_offset + envelope_size;
14171 if 4 > max_ordinal {
14172 return Ok(());
14173 }
14174
14175 let cur_offset: usize = (4 - 1) * envelope_size;
14178
14179 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14181
14182 fidl::encoding::encode_in_envelope_optional::<u16, D>(
14187 self.service_data.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
14188 encoder,
14189 offset + cur_offset,
14190 depth,
14191 )?;
14192
14193 _prev_end_offset = cur_offset + envelope_size;
14194 if 5 > max_ordinal {
14195 return Ok(());
14196 }
14197
14198 let cur_offset: usize = (5 - 1) * envelope_size;
14201
14202 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14204
14205 fidl::encoding::encode_in_envelope_optional::<u8, D>(
14210 self.advertising_sid.as_ref().map(<u8 as fidl::encoding::ValueTypeMarker>::borrow),
14211 encoder,
14212 offset + cur_offset,
14213 depth,
14214 )?;
14215
14216 _prev_end_offset = cur_offset + envelope_size;
14217 if 6 > max_ordinal {
14218 return Ok(());
14219 }
14220
14221 let cur_offset: usize = (6 - 1) * envelope_size;
14224
14225 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14227
14228 fidl::encoding::encode_in_envelope_optional::<PhysicalLayer, D>(
14233 self.phy.as_ref().map(<PhysicalLayer as fidl::encoding::ValueTypeMarker>::borrow),
14234 encoder,
14235 offset + cur_offset,
14236 depth,
14237 )?;
14238
14239 _prev_end_offset = cur_offset + envelope_size;
14240 if 7 > max_ordinal {
14241 return Ok(());
14242 }
14243
14244 let cur_offset: usize = (7 - 1) * envelope_size;
14247
14248 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14250
14251 fidl::encoding::encode_in_envelope_optional::<u16, D>(
14256 self.periodic_advertising_interval
14257 .as_ref()
14258 .map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
14259 encoder,
14260 offset + cur_offset,
14261 depth,
14262 )?;
14263
14264 _prev_end_offset = cur_offset + envelope_size;
14265
14266 Ok(())
14267 }
14268 }
14269
14270 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
14271 for PeriodicAdvertisingSyncOnEstablishedRequest
14272 {
14273 #[inline(always)]
14274 fn new_empty() -> Self {
14275 Self::default()
14276 }
14277
14278 unsafe fn decode(
14279 &mut self,
14280 decoder: &mut fidl::encoding::Decoder<'_, D>,
14281 offset: usize,
14282 mut depth: fidl::encoding::Depth,
14283 ) -> fidl::Result<()> {
14284 decoder.debug_check_bounds::<Self>(offset);
14285 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
14286 None => return Err(fidl::Error::NotNullable),
14287 Some(len) => len,
14288 };
14289 if len == 0 {
14291 return Ok(());
14292 };
14293 depth.increment()?;
14294 let envelope_size = 8;
14295 let bytes_len = len * envelope_size;
14296 let offset = decoder.out_of_line_offset(bytes_len)?;
14297 let mut _next_ordinal_to_read = 0;
14299 let mut next_offset = offset;
14300 let end_offset = offset + bytes_len;
14301 _next_ordinal_to_read += 1;
14302 if next_offset >= end_offset {
14303 return Ok(());
14304 }
14305
14306 while _next_ordinal_to_read < 1 {
14308 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14309 _next_ordinal_to_read += 1;
14310 next_offset += envelope_size;
14311 }
14312
14313 let next_out_of_line = decoder.next_out_of_line();
14314 let handles_before = decoder.remaining_handles();
14315 if let Some((inlined, num_bytes, num_handles)) =
14316 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14317 {
14318 let member_inline_size =
14319 <PeriodicAdvertisingSyncId as fidl::encoding::TypeMarker>::inline_size(
14320 decoder.context,
14321 );
14322 if inlined != (member_inline_size <= 4) {
14323 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14324 }
14325 let inner_offset;
14326 let mut inner_depth = depth.clone();
14327 if inlined {
14328 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14329 inner_offset = next_offset;
14330 } else {
14331 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14332 inner_depth.increment()?;
14333 }
14334 let val_ref =
14335 self.id.get_or_insert_with(|| fidl::new_empty!(PeriodicAdvertisingSyncId, D));
14336 fidl::decode!(
14337 PeriodicAdvertisingSyncId,
14338 D,
14339 val_ref,
14340 decoder,
14341 inner_offset,
14342 inner_depth
14343 )?;
14344 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14345 {
14346 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14347 }
14348 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14349 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14350 }
14351 }
14352
14353 next_offset += envelope_size;
14354 _next_ordinal_to_read += 1;
14355 if next_offset >= end_offset {
14356 return Ok(());
14357 }
14358
14359 while _next_ordinal_to_read < 2 {
14361 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14362 _next_ordinal_to_read += 1;
14363 next_offset += envelope_size;
14364 }
14365
14366 let next_out_of_line = decoder.next_out_of_line();
14367 let handles_before = decoder.remaining_handles();
14368 if let Some((inlined, num_bytes, num_handles)) =
14369 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14370 {
14371 let member_inline_size =
14372 <u8 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
14373 if inlined != (member_inline_size <= 4) {
14374 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14375 }
14376 let inner_offset;
14377 let mut inner_depth = depth.clone();
14378 if inlined {
14379 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14380 inner_offset = next_offset;
14381 } else {
14382 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14383 inner_depth.increment()?;
14384 }
14385 let val_ref = self.subevents_count.get_or_insert_with(|| fidl::new_empty!(u8, D));
14386 fidl::decode!(u8, D, val_ref, decoder, inner_offset, inner_depth)?;
14387 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14388 {
14389 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14390 }
14391 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14392 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14393 }
14394 }
14395
14396 next_offset += envelope_size;
14397 _next_ordinal_to_read += 1;
14398 if next_offset >= end_offset {
14399 return Ok(());
14400 }
14401
14402 while _next_ordinal_to_read < 3 {
14404 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14405 _next_ordinal_to_read += 1;
14406 next_offset += envelope_size;
14407 }
14408
14409 let next_out_of_line = decoder.next_out_of_line();
14410 let handles_before = decoder.remaining_handles();
14411 if let Some((inlined, num_bytes, num_handles)) =
14412 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14413 {
14414 let member_inline_size = <fidl_fuchsia_bluetooth__common::PeerId as fidl::encoding::TypeMarker>::inline_size(decoder.context);
14415 if inlined != (member_inline_size <= 4) {
14416 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14417 }
14418 let inner_offset;
14419 let mut inner_depth = depth.clone();
14420 if inlined {
14421 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14422 inner_offset = next_offset;
14423 } else {
14424 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14425 inner_depth.increment()?;
14426 }
14427 let val_ref = self.peer_id.get_or_insert_with(|| {
14428 fidl::new_empty!(fidl_fuchsia_bluetooth__common::PeerId, D)
14429 });
14430 fidl::decode!(
14431 fidl_fuchsia_bluetooth__common::PeerId,
14432 D,
14433 val_ref,
14434 decoder,
14435 inner_offset,
14436 inner_depth
14437 )?;
14438 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14439 {
14440 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14441 }
14442 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14443 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14444 }
14445 }
14446
14447 next_offset += envelope_size;
14448 _next_ordinal_to_read += 1;
14449 if next_offset >= end_offset {
14450 return Ok(());
14451 }
14452
14453 while _next_ordinal_to_read < 4 {
14455 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14456 _next_ordinal_to_read += 1;
14457 next_offset += envelope_size;
14458 }
14459
14460 let next_out_of_line = decoder.next_out_of_line();
14461 let handles_before = decoder.remaining_handles();
14462 if let Some((inlined, num_bytes, num_handles)) =
14463 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14464 {
14465 let member_inline_size =
14466 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
14467 if inlined != (member_inline_size <= 4) {
14468 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14469 }
14470 let inner_offset;
14471 let mut inner_depth = depth.clone();
14472 if inlined {
14473 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14474 inner_offset = next_offset;
14475 } else {
14476 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14477 inner_depth.increment()?;
14478 }
14479 let val_ref = self.service_data.get_or_insert_with(|| fidl::new_empty!(u16, D));
14480 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
14481 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14482 {
14483 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14484 }
14485 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14486 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14487 }
14488 }
14489
14490 next_offset += envelope_size;
14491 _next_ordinal_to_read += 1;
14492 if next_offset >= end_offset {
14493 return Ok(());
14494 }
14495
14496 while _next_ordinal_to_read < 5 {
14498 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14499 _next_ordinal_to_read += 1;
14500 next_offset += envelope_size;
14501 }
14502
14503 let next_out_of_line = decoder.next_out_of_line();
14504 let handles_before = decoder.remaining_handles();
14505 if let Some((inlined, num_bytes, num_handles)) =
14506 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14507 {
14508 let member_inline_size =
14509 <u8 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
14510 if inlined != (member_inline_size <= 4) {
14511 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14512 }
14513 let inner_offset;
14514 let mut inner_depth = depth.clone();
14515 if inlined {
14516 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14517 inner_offset = next_offset;
14518 } else {
14519 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14520 inner_depth.increment()?;
14521 }
14522 let val_ref = self.advertising_sid.get_or_insert_with(|| fidl::new_empty!(u8, D));
14523 fidl::decode!(u8, D, val_ref, decoder, inner_offset, inner_depth)?;
14524 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14525 {
14526 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14527 }
14528 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14529 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14530 }
14531 }
14532
14533 next_offset += envelope_size;
14534 _next_ordinal_to_read += 1;
14535 if next_offset >= end_offset {
14536 return Ok(());
14537 }
14538
14539 while _next_ordinal_to_read < 6 {
14541 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14542 _next_ordinal_to_read += 1;
14543 next_offset += envelope_size;
14544 }
14545
14546 let next_out_of_line = decoder.next_out_of_line();
14547 let handles_before = decoder.remaining_handles();
14548 if let Some((inlined, num_bytes, num_handles)) =
14549 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14550 {
14551 let member_inline_size =
14552 <PhysicalLayer as fidl::encoding::TypeMarker>::inline_size(decoder.context);
14553 if inlined != (member_inline_size <= 4) {
14554 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14555 }
14556 let inner_offset;
14557 let mut inner_depth = depth.clone();
14558 if inlined {
14559 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14560 inner_offset = next_offset;
14561 } else {
14562 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14563 inner_depth.increment()?;
14564 }
14565 let val_ref = self.phy.get_or_insert_with(|| fidl::new_empty!(PhysicalLayer, D));
14566 fidl::decode!(PhysicalLayer, D, val_ref, decoder, inner_offset, inner_depth)?;
14567 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14568 {
14569 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14570 }
14571 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14572 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14573 }
14574 }
14575
14576 next_offset += envelope_size;
14577 _next_ordinal_to_read += 1;
14578 if next_offset >= end_offset {
14579 return Ok(());
14580 }
14581
14582 while _next_ordinal_to_read < 7 {
14584 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14585 _next_ordinal_to_read += 1;
14586 next_offset += envelope_size;
14587 }
14588
14589 let next_out_of_line = decoder.next_out_of_line();
14590 let handles_before = decoder.remaining_handles();
14591 if let Some((inlined, num_bytes, num_handles)) =
14592 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14593 {
14594 let member_inline_size =
14595 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
14596 if inlined != (member_inline_size <= 4) {
14597 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14598 }
14599 let inner_offset;
14600 let mut inner_depth = depth.clone();
14601 if inlined {
14602 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14603 inner_offset = next_offset;
14604 } else {
14605 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14606 inner_depth.increment()?;
14607 }
14608 let val_ref = self
14609 .periodic_advertising_interval
14610 .get_or_insert_with(|| fidl::new_empty!(u16, D));
14611 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
14612 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14613 {
14614 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14615 }
14616 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14617 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14618 }
14619 }
14620
14621 next_offset += envelope_size;
14622
14623 while next_offset < end_offset {
14625 _next_ordinal_to_read += 1;
14626 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14627 next_offset += envelope_size;
14628 }
14629
14630 Ok(())
14631 }
14632 }
14633
14634 impl PeriodicAdvertisingSyncSyncToSubeventsRequest {
14635 #[inline(always)]
14636 fn max_ordinal_present(&self) -> u64 {
14637 if let Some(_) = self.subevents {
14638 return 1;
14639 }
14640 0
14641 }
14642 }
14643
14644 impl fidl::encoding::ValueTypeMarker for PeriodicAdvertisingSyncSyncToSubeventsRequest {
14645 type Borrowed<'a> = &'a Self;
14646 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
14647 value
14648 }
14649 }
14650
14651 unsafe impl fidl::encoding::TypeMarker for PeriodicAdvertisingSyncSyncToSubeventsRequest {
14652 type Owned = Self;
14653
14654 #[inline(always)]
14655 fn inline_align(_context: fidl::encoding::Context) -> usize {
14656 8
14657 }
14658
14659 #[inline(always)]
14660 fn inline_size(_context: fidl::encoding::Context) -> usize {
14661 16
14662 }
14663 }
14664
14665 unsafe impl<D: fidl::encoding::ResourceDialect>
14666 fidl::encoding::Encode<PeriodicAdvertisingSyncSyncToSubeventsRequest, D>
14667 for &PeriodicAdvertisingSyncSyncToSubeventsRequest
14668 {
14669 unsafe fn encode(
14670 self,
14671 encoder: &mut fidl::encoding::Encoder<'_, D>,
14672 offset: usize,
14673 mut depth: fidl::encoding::Depth,
14674 ) -> fidl::Result<()> {
14675 encoder.debug_check_bounds::<PeriodicAdvertisingSyncSyncToSubeventsRequest>(offset);
14676 let max_ordinal: u64 = self.max_ordinal_present();
14678 encoder.write_num(max_ordinal, offset);
14679 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
14680 if max_ordinal == 0 {
14682 return Ok(());
14683 }
14684 depth.increment()?;
14685 let envelope_size = 8;
14686 let bytes_len = max_ordinal as usize * envelope_size;
14687 #[allow(unused_variables)]
14688 let offset = encoder.out_of_line_offset(bytes_len);
14689 let mut _prev_end_offset: usize = 0;
14690 if 1 > max_ordinal {
14691 return Ok(());
14692 }
14693
14694 let cur_offset: usize = (1 - 1) * envelope_size;
14697
14698 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14700
14701 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u8, 128>, D>(
14706 self.subevents.as_ref().map(
14707 <fidl::encoding::Vector<u8, 128> as fidl::encoding::ValueTypeMarker>::borrow,
14708 ),
14709 encoder,
14710 offset + cur_offset,
14711 depth,
14712 )?;
14713
14714 _prev_end_offset = cur_offset + envelope_size;
14715
14716 Ok(())
14717 }
14718 }
14719
14720 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
14721 for PeriodicAdvertisingSyncSyncToSubeventsRequest
14722 {
14723 #[inline(always)]
14724 fn new_empty() -> Self {
14725 Self::default()
14726 }
14727
14728 unsafe fn decode(
14729 &mut self,
14730 decoder: &mut fidl::encoding::Decoder<'_, D>,
14731 offset: usize,
14732 mut depth: fidl::encoding::Depth,
14733 ) -> fidl::Result<()> {
14734 decoder.debug_check_bounds::<Self>(offset);
14735 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
14736 None => return Err(fidl::Error::NotNullable),
14737 Some(len) => len,
14738 };
14739 if len == 0 {
14741 return Ok(());
14742 };
14743 depth.increment()?;
14744 let envelope_size = 8;
14745 let bytes_len = len * envelope_size;
14746 let offset = decoder.out_of_line_offset(bytes_len)?;
14747 let mut _next_ordinal_to_read = 0;
14749 let mut next_offset = offset;
14750 let end_offset = offset + bytes_len;
14751 _next_ordinal_to_read += 1;
14752 if next_offset >= end_offset {
14753 return Ok(());
14754 }
14755
14756 while _next_ordinal_to_read < 1 {
14758 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14759 _next_ordinal_to_read += 1;
14760 next_offset += envelope_size;
14761 }
14762
14763 let next_out_of_line = decoder.next_out_of_line();
14764 let handles_before = decoder.remaining_handles();
14765 if let Some((inlined, num_bytes, num_handles)) =
14766 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14767 {
14768 let member_inline_size =
14769 <fidl::encoding::Vector<u8, 128> as fidl::encoding::TypeMarker>::inline_size(
14770 decoder.context,
14771 );
14772 if inlined != (member_inline_size <= 4) {
14773 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14774 }
14775 let inner_offset;
14776 let mut inner_depth = depth.clone();
14777 if inlined {
14778 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14779 inner_offset = next_offset;
14780 } else {
14781 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14782 inner_depth.increment()?;
14783 }
14784 let val_ref = self
14785 .subevents
14786 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u8, 128>, D));
14787 fidl::decode!(fidl::encoding::Vector<u8, 128>, D, val_ref, decoder, inner_offset, inner_depth)?;
14788 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14789 {
14790 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14791 }
14792 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14793 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14794 }
14795 }
14796
14797 next_offset += envelope_size;
14798
14799 while next_offset < end_offset {
14801 _next_ordinal_to_read += 1;
14802 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14803 next_offset += envelope_size;
14804 }
14805
14806 Ok(())
14807 }
14808 }
14809
14810 impl PeriodicAdvertisingSyncWatchAdvertisingReportResponse {
14811 #[inline(always)]
14812 fn max_ordinal_present(&self) -> u64 {
14813 if let Some(_) = self.reports {
14814 return 1;
14815 }
14816 0
14817 }
14818 }
14819
14820 impl fidl::encoding::ValueTypeMarker for PeriodicAdvertisingSyncWatchAdvertisingReportResponse {
14821 type Borrowed<'a> = &'a Self;
14822 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
14823 value
14824 }
14825 }
14826
14827 unsafe impl fidl::encoding::TypeMarker for PeriodicAdvertisingSyncWatchAdvertisingReportResponse {
14828 type Owned = Self;
14829
14830 #[inline(always)]
14831 fn inline_align(_context: fidl::encoding::Context) -> usize {
14832 8
14833 }
14834
14835 #[inline(always)]
14836 fn inline_size(_context: fidl::encoding::Context) -> usize {
14837 16
14838 }
14839 }
14840
14841 unsafe impl<D: fidl::encoding::ResourceDialect>
14842 fidl::encoding::Encode<PeriodicAdvertisingSyncWatchAdvertisingReportResponse, D>
14843 for &PeriodicAdvertisingSyncWatchAdvertisingReportResponse
14844 {
14845 unsafe fn encode(
14846 self,
14847 encoder: &mut fidl::encoding::Encoder<'_, D>,
14848 offset: usize,
14849 mut depth: fidl::encoding::Depth,
14850 ) -> fidl::Result<()> {
14851 encoder.debug_check_bounds::<PeriodicAdvertisingSyncWatchAdvertisingReportResponse>(
14852 offset,
14853 );
14854 let max_ordinal: u64 = self.max_ordinal_present();
14856 encoder.write_num(max_ordinal, offset);
14857 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
14858 if max_ordinal == 0 {
14860 return Ok(());
14861 }
14862 depth.increment()?;
14863 let envelope_size = 8;
14864 let bytes_len = max_ordinal as usize * envelope_size;
14865 #[allow(unused_variables)]
14866 let offset = encoder.out_of_line_offset(bytes_len);
14867 let mut _prev_end_offset: usize = 0;
14868 if 1 > max_ordinal {
14869 return Ok(());
14870 }
14871
14872 let cur_offset: usize = (1 - 1) * envelope_size;
14875
14876 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14878
14879 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<SyncReport>, D>(
14884 self.reports.as_ref().map(<fidl::encoding::UnboundedVector<SyncReport> as fidl::encoding::ValueTypeMarker>::borrow),
14885 encoder, offset + cur_offset, depth
14886 )?;
14887
14888 _prev_end_offset = cur_offset + envelope_size;
14889
14890 Ok(())
14891 }
14892 }
14893
14894 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
14895 for PeriodicAdvertisingSyncWatchAdvertisingReportResponse
14896 {
14897 #[inline(always)]
14898 fn new_empty() -> Self {
14899 Self::default()
14900 }
14901
14902 unsafe fn decode(
14903 &mut self,
14904 decoder: &mut fidl::encoding::Decoder<'_, D>,
14905 offset: usize,
14906 mut depth: fidl::encoding::Depth,
14907 ) -> fidl::Result<()> {
14908 decoder.debug_check_bounds::<Self>(offset);
14909 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
14910 None => return Err(fidl::Error::NotNullable),
14911 Some(len) => len,
14912 };
14913 if len == 0 {
14915 return Ok(());
14916 };
14917 depth.increment()?;
14918 let envelope_size = 8;
14919 let bytes_len = len * envelope_size;
14920 let offset = decoder.out_of_line_offset(bytes_len)?;
14921 let mut _next_ordinal_to_read = 0;
14923 let mut next_offset = offset;
14924 let end_offset = offset + bytes_len;
14925 _next_ordinal_to_read += 1;
14926 if next_offset >= end_offset {
14927 return Ok(());
14928 }
14929
14930 while _next_ordinal_to_read < 1 {
14932 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14933 _next_ordinal_to_read += 1;
14934 next_offset += envelope_size;
14935 }
14936
14937 let next_out_of_line = decoder.next_out_of_line();
14938 let handles_before = decoder.remaining_handles();
14939 if let Some((inlined, num_bytes, num_handles)) =
14940 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14941 {
14942 let member_inline_size = <fidl::encoding::UnboundedVector<SyncReport> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
14943 if inlined != (member_inline_size <= 4) {
14944 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14945 }
14946 let inner_offset;
14947 let mut inner_depth = depth.clone();
14948 if inlined {
14949 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14950 inner_offset = next_offset;
14951 } else {
14952 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14953 inner_depth.increment()?;
14954 }
14955 let val_ref = self.reports.get_or_insert_with(|| {
14956 fidl::new_empty!(fidl::encoding::UnboundedVector<SyncReport>, D)
14957 });
14958 fidl::decode!(
14959 fidl::encoding::UnboundedVector<SyncReport>,
14960 D,
14961 val_ref,
14962 decoder,
14963 inner_offset,
14964 inner_depth
14965 )?;
14966 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14967 {
14968 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14969 }
14970 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14971 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14972 }
14973 }
14974
14975 next_offset += envelope_size;
14976
14977 while next_offset < end_offset {
14979 _next_ordinal_to_read += 1;
14980 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14981 next_offset += envelope_size;
14982 }
14983
14984 Ok(())
14985 }
14986 }
14987
14988 impl ScanData {
14989 #[inline(always)]
14990 fn max_ordinal_present(&self) -> u64 {
14991 if let Some(_) = self.broadcast_name {
14992 return 9;
14993 }
14994 if let Some(_) = self.resolvable_set_identifier {
14995 return 8;
14996 }
14997 if let Some(_) = self.timestamp {
14998 return 7;
14999 }
15000 if let Some(_) = self.uris {
15001 return 6;
15002 }
15003 if let Some(_) = self.manufacturer_data {
15004 return 5;
15005 }
15006 if let Some(_) = self.service_data {
15007 return 4;
15008 }
15009 if let Some(_) = self.service_uuids {
15010 return 3;
15011 }
15012 if let Some(_) = self.appearance {
15013 return 2;
15014 }
15015 if let Some(_) = self.tx_power {
15016 return 1;
15017 }
15018 0
15019 }
15020 }
15021
15022 impl fidl::encoding::ValueTypeMarker for ScanData {
15023 type Borrowed<'a> = &'a Self;
15024 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
15025 value
15026 }
15027 }
15028
15029 unsafe impl fidl::encoding::TypeMarker for ScanData {
15030 type Owned = Self;
15031
15032 #[inline(always)]
15033 fn inline_align(_context: fidl::encoding::Context) -> usize {
15034 8
15035 }
15036
15037 #[inline(always)]
15038 fn inline_size(_context: fidl::encoding::Context) -> usize {
15039 16
15040 }
15041 }
15042
15043 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ScanData, D> for &ScanData {
15044 unsafe fn encode(
15045 self,
15046 encoder: &mut fidl::encoding::Encoder<'_, D>,
15047 offset: usize,
15048 mut depth: fidl::encoding::Depth,
15049 ) -> fidl::Result<()> {
15050 encoder.debug_check_bounds::<ScanData>(offset);
15051 let max_ordinal: u64 = self.max_ordinal_present();
15053 encoder.write_num(max_ordinal, offset);
15054 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
15055 if max_ordinal == 0 {
15057 return Ok(());
15058 }
15059 depth.increment()?;
15060 let envelope_size = 8;
15061 let bytes_len = max_ordinal as usize * envelope_size;
15062 #[allow(unused_variables)]
15063 let offset = encoder.out_of_line_offset(bytes_len);
15064 let mut _prev_end_offset: usize = 0;
15065 if 1 > max_ordinal {
15066 return Ok(());
15067 }
15068
15069 let cur_offset: usize = (1 - 1) * envelope_size;
15072
15073 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
15075
15076 fidl::encoding::encode_in_envelope_optional::<i8, D>(
15081 self.tx_power.as_ref().map(<i8 as fidl::encoding::ValueTypeMarker>::borrow),
15082 encoder,
15083 offset + cur_offset,
15084 depth,
15085 )?;
15086
15087 _prev_end_offset = cur_offset + envelope_size;
15088 if 2 > max_ordinal {
15089 return Ok(());
15090 }
15091
15092 let cur_offset: usize = (2 - 1) * envelope_size;
15095
15096 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
15098
15099 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_bluetooth__common::Appearance, D>(
15104 self.appearance.as_ref().map(<fidl_fuchsia_bluetooth__common::Appearance as fidl::encoding::ValueTypeMarker>::borrow),
15105 encoder, offset + cur_offset, depth
15106 )?;
15107
15108 _prev_end_offset = cur_offset + envelope_size;
15109 if 3 > max_ordinal {
15110 return Ok(());
15111 }
15112
15113 let cur_offset: usize = (3 - 1) * envelope_size;
15116
15117 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
15119
15120 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<fidl_fuchsia_bluetooth__common::Uuid>, D>(
15125 self.service_uuids.as_ref().map(<fidl::encoding::UnboundedVector<fidl_fuchsia_bluetooth__common::Uuid> as fidl::encoding::ValueTypeMarker>::borrow),
15126 encoder, offset + cur_offset, depth
15127 )?;
15128
15129 _prev_end_offset = cur_offset + envelope_size;
15130 if 4 > max_ordinal {
15131 return Ok(());
15132 }
15133
15134 let cur_offset: usize = (4 - 1) * envelope_size;
15137
15138 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
15140
15141 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<ServiceData>, D>(
15146 self.service_data.as_ref().map(<fidl::encoding::UnboundedVector<ServiceData> as fidl::encoding::ValueTypeMarker>::borrow),
15147 encoder, offset + cur_offset, depth
15148 )?;
15149
15150 _prev_end_offset = cur_offset + envelope_size;
15151 if 5 > max_ordinal {
15152 return Ok(());
15153 }
15154
15155 let cur_offset: usize = (5 - 1) * envelope_size;
15158
15159 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
15161
15162 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<ManufacturerData>, D>(
15167 self.manufacturer_data.as_ref().map(<fidl::encoding::UnboundedVector<ManufacturerData> as fidl::encoding::ValueTypeMarker>::borrow),
15168 encoder, offset + cur_offset, depth
15169 )?;
15170
15171 _prev_end_offset = cur_offset + envelope_size;
15172 if 6 > max_ordinal {
15173 return Ok(());
15174 }
15175
15176 let cur_offset: usize = (6 - 1) * envelope_size;
15179
15180 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
15182
15183 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<278>>, D>(
15188 self.uris.as_ref().map(<fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<278>> as fidl::encoding::ValueTypeMarker>::borrow),
15189 encoder, offset + cur_offset, depth
15190 )?;
15191
15192 _prev_end_offset = cur_offset + envelope_size;
15193 if 7 > max_ordinal {
15194 return Ok(());
15195 }
15196
15197 let cur_offset: usize = (7 - 1) * envelope_size;
15200
15201 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
15203
15204 fidl::encoding::encode_in_envelope_optional::<i64, D>(
15209 self.timestamp.as_ref().map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
15210 encoder,
15211 offset + cur_offset,
15212 depth,
15213 )?;
15214
15215 _prev_end_offset = cur_offset + envelope_size;
15216 if 8 > max_ordinal {
15217 return Ok(());
15218 }
15219
15220 let cur_offset: usize = (8 - 1) * envelope_size;
15223
15224 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
15226
15227 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
15232 self.resolvable_set_identifier
15233 .as_ref()
15234 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
15235 encoder,
15236 offset + cur_offset,
15237 depth,
15238 )?;
15239
15240 _prev_end_offset = cur_offset + envelope_size;
15241 if 9 > max_ordinal {
15242 return Ok(());
15243 }
15244
15245 let cur_offset: usize = (9 - 1) * envelope_size;
15248
15249 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
15251
15252 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<128>, D>(
15257 self.broadcast_name.as_ref().map(
15258 <fidl::encoding::BoundedString<128> as fidl::encoding::ValueTypeMarker>::borrow,
15259 ),
15260 encoder,
15261 offset + cur_offset,
15262 depth,
15263 )?;
15264
15265 _prev_end_offset = cur_offset + envelope_size;
15266
15267 Ok(())
15268 }
15269 }
15270
15271 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ScanData {
15272 #[inline(always)]
15273 fn new_empty() -> Self {
15274 Self::default()
15275 }
15276
15277 unsafe fn decode(
15278 &mut self,
15279 decoder: &mut fidl::encoding::Decoder<'_, D>,
15280 offset: usize,
15281 mut depth: fidl::encoding::Depth,
15282 ) -> fidl::Result<()> {
15283 decoder.debug_check_bounds::<Self>(offset);
15284 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
15285 None => return Err(fidl::Error::NotNullable),
15286 Some(len) => len,
15287 };
15288 if len == 0 {
15290 return Ok(());
15291 };
15292 depth.increment()?;
15293 let envelope_size = 8;
15294 let bytes_len = len * envelope_size;
15295 let offset = decoder.out_of_line_offset(bytes_len)?;
15296 let mut _next_ordinal_to_read = 0;
15298 let mut next_offset = offset;
15299 let end_offset = offset + bytes_len;
15300 _next_ordinal_to_read += 1;
15301 if next_offset >= end_offset {
15302 return Ok(());
15303 }
15304
15305 while _next_ordinal_to_read < 1 {
15307 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15308 _next_ordinal_to_read += 1;
15309 next_offset += envelope_size;
15310 }
15311
15312 let next_out_of_line = decoder.next_out_of_line();
15313 let handles_before = decoder.remaining_handles();
15314 if let Some((inlined, num_bytes, num_handles)) =
15315 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15316 {
15317 let member_inline_size =
15318 <i8 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
15319 if inlined != (member_inline_size <= 4) {
15320 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15321 }
15322 let inner_offset;
15323 let mut inner_depth = depth.clone();
15324 if inlined {
15325 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15326 inner_offset = next_offset;
15327 } else {
15328 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15329 inner_depth.increment()?;
15330 }
15331 let val_ref = self.tx_power.get_or_insert_with(|| fidl::new_empty!(i8, D));
15332 fidl::decode!(i8, D, val_ref, decoder, inner_offset, inner_depth)?;
15333 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15334 {
15335 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15336 }
15337 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15338 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15339 }
15340 }
15341
15342 next_offset += envelope_size;
15343 _next_ordinal_to_read += 1;
15344 if next_offset >= end_offset {
15345 return Ok(());
15346 }
15347
15348 while _next_ordinal_to_read < 2 {
15350 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15351 _next_ordinal_to_read += 1;
15352 next_offset += envelope_size;
15353 }
15354
15355 let next_out_of_line = decoder.next_out_of_line();
15356 let handles_before = decoder.remaining_handles();
15357 if let Some((inlined, num_bytes, num_handles)) =
15358 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15359 {
15360 let member_inline_size = <fidl_fuchsia_bluetooth__common::Appearance as fidl::encoding::TypeMarker>::inline_size(decoder.context);
15361 if inlined != (member_inline_size <= 4) {
15362 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15363 }
15364 let inner_offset;
15365 let mut inner_depth = depth.clone();
15366 if inlined {
15367 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15368 inner_offset = next_offset;
15369 } else {
15370 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15371 inner_depth.increment()?;
15372 }
15373 let val_ref = self.appearance.get_or_insert_with(|| {
15374 fidl::new_empty!(fidl_fuchsia_bluetooth__common::Appearance, D)
15375 });
15376 fidl::decode!(
15377 fidl_fuchsia_bluetooth__common::Appearance,
15378 D,
15379 val_ref,
15380 decoder,
15381 inner_offset,
15382 inner_depth
15383 )?;
15384 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15385 {
15386 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15387 }
15388 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15389 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15390 }
15391 }
15392
15393 next_offset += envelope_size;
15394 _next_ordinal_to_read += 1;
15395 if next_offset >= end_offset {
15396 return Ok(());
15397 }
15398
15399 while _next_ordinal_to_read < 3 {
15401 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15402 _next_ordinal_to_read += 1;
15403 next_offset += envelope_size;
15404 }
15405
15406 let next_out_of_line = decoder.next_out_of_line();
15407 let handles_before = decoder.remaining_handles();
15408 if let Some((inlined, num_bytes, num_handles)) =
15409 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15410 {
15411 let member_inline_size = <fidl::encoding::UnboundedVector<
15412 fidl_fuchsia_bluetooth__common::Uuid,
15413 > as fidl::encoding::TypeMarker>::inline_size(
15414 decoder.context
15415 );
15416 if inlined != (member_inline_size <= 4) {
15417 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15418 }
15419 let inner_offset;
15420 let mut inner_depth = depth.clone();
15421 if inlined {
15422 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15423 inner_offset = next_offset;
15424 } else {
15425 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15426 inner_depth.increment()?;
15427 }
15428 let val_ref = self.service_uuids.get_or_insert_with(|| {
15429 fidl::new_empty!(
15430 fidl::encoding::UnboundedVector<fidl_fuchsia_bluetooth__common::Uuid>,
15431 D
15432 )
15433 });
15434 fidl::decode!(
15435 fidl::encoding::UnboundedVector<fidl_fuchsia_bluetooth__common::Uuid>,
15436 D,
15437 val_ref,
15438 decoder,
15439 inner_offset,
15440 inner_depth
15441 )?;
15442 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15443 {
15444 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15445 }
15446 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15447 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15448 }
15449 }
15450
15451 next_offset += envelope_size;
15452 _next_ordinal_to_read += 1;
15453 if next_offset >= end_offset {
15454 return Ok(());
15455 }
15456
15457 while _next_ordinal_to_read < 4 {
15459 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15460 _next_ordinal_to_read += 1;
15461 next_offset += envelope_size;
15462 }
15463
15464 let next_out_of_line = decoder.next_out_of_line();
15465 let handles_before = decoder.remaining_handles();
15466 if let Some((inlined, num_bytes, num_handles)) =
15467 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15468 {
15469 let member_inline_size = <fidl::encoding::UnboundedVector<ServiceData> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
15470 if inlined != (member_inline_size <= 4) {
15471 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15472 }
15473 let inner_offset;
15474 let mut inner_depth = depth.clone();
15475 if inlined {
15476 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15477 inner_offset = next_offset;
15478 } else {
15479 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15480 inner_depth.increment()?;
15481 }
15482 let val_ref = self.service_data.get_or_insert_with(|| {
15483 fidl::new_empty!(fidl::encoding::UnboundedVector<ServiceData>, D)
15484 });
15485 fidl::decode!(
15486 fidl::encoding::UnboundedVector<ServiceData>,
15487 D,
15488 val_ref,
15489 decoder,
15490 inner_offset,
15491 inner_depth
15492 )?;
15493 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15494 {
15495 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15496 }
15497 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15498 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15499 }
15500 }
15501
15502 next_offset += envelope_size;
15503 _next_ordinal_to_read += 1;
15504 if next_offset >= end_offset {
15505 return Ok(());
15506 }
15507
15508 while _next_ordinal_to_read < 5 {
15510 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15511 _next_ordinal_to_read += 1;
15512 next_offset += envelope_size;
15513 }
15514
15515 let next_out_of_line = decoder.next_out_of_line();
15516 let handles_before = decoder.remaining_handles();
15517 if let Some((inlined, num_bytes, num_handles)) =
15518 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15519 {
15520 let member_inline_size = <fidl::encoding::UnboundedVector<ManufacturerData> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
15521 if inlined != (member_inline_size <= 4) {
15522 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15523 }
15524 let inner_offset;
15525 let mut inner_depth = depth.clone();
15526 if inlined {
15527 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15528 inner_offset = next_offset;
15529 } else {
15530 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15531 inner_depth.increment()?;
15532 }
15533 let val_ref = self.manufacturer_data.get_or_insert_with(|| {
15534 fidl::new_empty!(fidl::encoding::UnboundedVector<ManufacturerData>, D)
15535 });
15536 fidl::decode!(
15537 fidl::encoding::UnboundedVector<ManufacturerData>,
15538 D,
15539 val_ref,
15540 decoder,
15541 inner_offset,
15542 inner_depth
15543 )?;
15544 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15545 {
15546 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15547 }
15548 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15549 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15550 }
15551 }
15552
15553 next_offset += envelope_size;
15554 _next_ordinal_to_read += 1;
15555 if next_offset >= end_offset {
15556 return Ok(());
15557 }
15558
15559 while _next_ordinal_to_read < 6 {
15561 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15562 _next_ordinal_to_read += 1;
15563 next_offset += envelope_size;
15564 }
15565
15566 let next_out_of_line = decoder.next_out_of_line();
15567 let handles_before = decoder.remaining_handles();
15568 if let Some((inlined, num_bytes, num_handles)) =
15569 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15570 {
15571 let member_inline_size = <fidl::encoding::UnboundedVector<
15572 fidl::encoding::BoundedString<278>,
15573 > as fidl::encoding::TypeMarker>::inline_size(
15574 decoder.context
15575 );
15576 if inlined != (member_inline_size <= 4) {
15577 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15578 }
15579 let inner_offset;
15580 let mut inner_depth = depth.clone();
15581 if inlined {
15582 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15583 inner_offset = next_offset;
15584 } else {
15585 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15586 inner_depth.increment()?;
15587 }
15588 let val_ref = self.uris.get_or_insert_with(|| {
15589 fidl::new_empty!(
15590 fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<278>>,
15591 D
15592 )
15593 });
15594 fidl::decode!(
15595 fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<278>>,
15596 D,
15597 val_ref,
15598 decoder,
15599 inner_offset,
15600 inner_depth
15601 )?;
15602 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15603 {
15604 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15605 }
15606 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15607 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15608 }
15609 }
15610
15611 next_offset += envelope_size;
15612 _next_ordinal_to_read += 1;
15613 if next_offset >= end_offset {
15614 return Ok(());
15615 }
15616
15617 while _next_ordinal_to_read < 7 {
15619 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15620 _next_ordinal_to_read += 1;
15621 next_offset += envelope_size;
15622 }
15623
15624 let next_out_of_line = decoder.next_out_of_line();
15625 let handles_before = decoder.remaining_handles();
15626 if let Some((inlined, num_bytes, num_handles)) =
15627 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15628 {
15629 let member_inline_size =
15630 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
15631 if inlined != (member_inline_size <= 4) {
15632 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15633 }
15634 let inner_offset;
15635 let mut inner_depth = depth.clone();
15636 if inlined {
15637 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15638 inner_offset = next_offset;
15639 } else {
15640 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15641 inner_depth.increment()?;
15642 }
15643 let val_ref = self.timestamp.get_or_insert_with(|| fidl::new_empty!(i64, D));
15644 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
15645 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15646 {
15647 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15648 }
15649 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15650 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15651 }
15652 }
15653
15654 next_offset += envelope_size;
15655 _next_ordinal_to_read += 1;
15656 if next_offset >= end_offset {
15657 return Ok(());
15658 }
15659
15660 while _next_ordinal_to_read < 8 {
15662 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15663 _next_ordinal_to_read += 1;
15664 next_offset += envelope_size;
15665 }
15666
15667 let next_out_of_line = decoder.next_out_of_line();
15668 let handles_before = decoder.remaining_handles();
15669 if let Some((inlined, num_bytes, num_handles)) =
15670 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15671 {
15672 let member_inline_size =
15673 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
15674 decoder.context,
15675 );
15676 if inlined != (member_inline_size <= 4) {
15677 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15678 }
15679 let inner_offset;
15680 let mut inner_depth = depth.clone();
15681 if inlined {
15682 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15683 inner_offset = next_offset;
15684 } else {
15685 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15686 inner_depth.increment()?;
15687 }
15688 let val_ref = self
15689 .resolvable_set_identifier
15690 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
15691 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
15692 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15693 {
15694 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15695 }
15696 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15697 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15698 }
15699 }
15700
15701 next_offset += envelope_size;
15702 _next_ordinal_to_read += 1;
15703 if next_offset >= end_offset {
15704 return Ok(());
15705 }
15706
15707 while _next_ordinal_to_read < 9 {
15709 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15710 _next_ordinal_to_read += 1;
15711 next_offset += envelope_size;
15712 }
15713
15714 let next_out_of_line = decoder.next_out_of_line();
15715 let handles_before = decoder.remaining_handles();
15716 if let Some((inlined, num_bytes, num_handles)) =
15717 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15718 {
15719 let member_inline_size =
15720 <fidl::encoding::BoundedString<128> as fidl::encoding::TypeMarker>::inline_size(
15721 decoder.context,
15722 );
15723 if inlined != (member_inline_size <= 4) {
15724 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15725 }
15726 let inner_offset;
15727 let mut inner_depth = depth.clone();
15728 if inlined {
15729 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15730 inner_offset = next_offset;
15731 } else {
15732 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15733 inner_depth.increment()?;
15734 }
15735 let val_ref = self
15736 .broadcast_name
15737 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<128>, D));
15738 fidl::decode!(
15739 fidl::encoding::BoundedString<128>,
15740 D,
15741 val_ref,
15742 decoder,
15743 inner_offset,
15744 inner_depth
15745 )?;
15746 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15747 {
15748 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15749 }
15750 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15751 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15752 }
15753 }
15754
15755 next_offset += envelope_size;
15756
15757 while next_offset < end_offset {
15759 _next_ordinal_to_read += 1;
15760 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15761 next_offset += envelope_size;
15762 }
15763
15764 Ok(())
15765 }
15766 }
15767
15768 impl ScanOptions {
15769 #[inline(always)]
15770 fn max_ordinal_present(&self) -> u64 {
15771 if let Some(_) = self.filters {
15772 return 1;
15773 }
15774 0
15775 }
15776 }
15777
15778 impl fidl::encoding::ValueTypeMarker for ScanOptions {
15779 type Borrowed<'a> = &'a Self;
15780 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
15781 value
15782 }
15783 }
15784
15785 unsafe impl fidl::encoding::TypeMarker for ScanOptions {
15786 type Owned = Self;
15787
15788 #[inline(always)]
15789 fn inline_align(_context: fidl::encoding::Context) -> usize {
15790 8
15791 }
15792
15793 #[inline(always)]
15794 fn inline_size(_context: fidl::encoding::Context) -> usize {
15795 16
15796 }
15797 }
15798
15799 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ScanOptions, D>
15800 for &ScanOptions
15801 {
15802 unsafe fn encode(
15803 self,
15804 encoder: &mut fidl::encoding::Encoder<'_, D>,
15805 offset: usize,
15806 mut depth: fidl::encoding::Depth,
15807 ) -> fidl::Result<()> {
15808 encoder.debug_check_bounds::<ScanOptions>(offset);
15809 let max_ordinal: u64 = self.max_ordinal_present();
15811 encoder.write_num(max_ordinal, offset);
15812 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
15813 if max_ordinal == 0 {
15815 return Ok(());
15816 }
15817 depth.increment()?;
15818 let envelope_size = 8;
15819 let bytes_len = max_ordinal as usize * envelope_size;
15820 #[allow(unused_variables)]
15821 let offset = encoder.out_of_line_offset(bytes_len);
15822 let mut _prev_end_offset: usize = 0;
15823 if 1 > max_ordinal {
15824 return Ok(());
15825 }
15826
15827 let cur_offset: usize = (1 - 1) * envelope_size;
15830
15831 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
15833
15834 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<Filter>, D>(
15839 self.filters.as_ref().map(<fidl::encoding::UnboundedVector<Filter> as fidl::encoding::ValueTypeMarker>::borrow),
15840 encoder, offset + cur_offset, depth
15841 )?;
15842
15843 _prev_end_offset = cur_offset + envelope_size;
15844
15845 Ok(())
15846 }
15847 }
15848
15849 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ScanOptions {
15850 #[inline(always)]
15851 fn new_empty() -> Self {
15852 Self::default()
15853 }
15854
15855 unsafe fn decode(
15856 &mut self,
15857 decoder: &mut fidl::encoding::Decoder<'_, D>,
15858 offset: usize,
15859 mut depth: fidl::encoding::Depth,
15860 ) -> fidl::Result<()> {
15861 decoder.debug_check_bounds::<Self>(offset);
15862 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
15863 None => return Err(fidl::Error::NotNullable),
15864 Some(len) => len,
15865 };
15866 if len == 0 {
15868 return Ok(());
15869 };
15870 depth.increment()?;
15871 let envelope_size = 8;
15872 let bytes_len = len * envelope_size;
15873 let offset = decoder.out_of_line_offset(bytes_len)?;
15874 let mut _next_ordinal_to_read = 0;
15876 let mut next_offset = offset;
15877 let end_offset = offset + bytes_len;
15878 _next_ordinal_to_read += 1;
15879 if next_offset >= end_offset {
15880 return Ok(());
15881 }
15882
15883 while _next_ordinal_to_read < 1 {
15885 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15886 _next_ordinal_to_read += 1;
15887 next_offset += envelope_size;
15888 }
15889
15890 let next_out_of_line = decoder.next_out_of_line();
15891 let handles_before = decoder.remaining_handles();
15892 if let Some((inlined, num_bytes, num_handles)) =
15893 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15894 {
15895 let member_inline_size = <fidl::encoding::UnboundedVector<Filter> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
15896 if inlined != (member_inline_size <= 4) {
15897 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15898 }
15899 let inner_offset;
15900 let mut inner_depth = depth.clone();
15901 if inlined {
15902 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15903 inner_offset = next_offset;
15904 } else {
15905 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15906 inner_depth.increment()?;
15907 }
15908 let val_ref = self.filters.get_or_insert_with(|| {
15909 fidl::new_empty!(fidl::encoding::UnboundedVector<Filter>, D)
15910 });
15911 fidl::decode!(
15912 fidl::encoding::UnboundedVector<Filter>,
15913 D,
15914 val_ref,
15915 decoder,
15916 inner_offset,
15917 inner_depth
15918 )?;
15919 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15920 {
15921 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15922 }
15923 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15924 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15925 }
15926 }
15927
15928 next_offset += envelope_size;
15929
15930 while next_offset < end_offset {
15932 _next_ordinal_to_read += 1;
15933 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15934 next_offset += envelope_size;
15935 }
15936
15937 Ok(())
15938 }
15939 }
15940
15941 impl fidl::encoding::ValueTypeMarker for AdvertisingProcedure {
15942 type Borrowed<'a> = &'a Self;
15943 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
15944 value
15945 }
15946 }
15947
15948 unsafe impl fidl::encoding::TypeMarker for AdvertisingProcedure {
15949 type Owned = Self;
15950
15951 #[inline(always)]
15952 fn inline_align(_context: fidl::encoding::Context) -> usize {
15953 8
15954 }
15955
15956 #[inline(always)]
15957 fn inline_size(_context: fidl::encoding::Context) -> usize {
15958 16
15959 }
15960 }
15961
15962 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<AdvertisingProcedure, D>
15963 for &AdvertisingProcedure
15964 {
15965 #[inline]
15966 unsafe fn encode(
15967 self,
15968 encoder: &mut fidl::encoding::Encoder<'_, D>,
15969 offset: usize,
15970 _depth: fidl::encoding::Depth,
15971 ) -> fidl::Result<()> {
15972 encoder.debug_check_bounds::<AdvertisingProcedure>(offset);
15973 encoder.write_num::<u64>(self.ordinal(), offset);
15974 match self {
15975 AdvertisingProcedure::Legacy(ref val) => {
15976 fidl::encoding::encode_in_envelope::<Legacy, D>(
15977 <Legacy as fidl::encoding::ValueTypeMarker>::borrow(val),
15978 encoder,
15979 offset + 8,
15980 _depth,
15981 )
15982 }
15983 AdvertisingProcedure::Extended(ref val) => {
15984 fidl::encoding::encode_in_envelope::<Extended, D>(
15985 <Extended as fidl::encoding::ValueTypeMarker>::borrow(val),
15986 encoder,
15987 offset + 8,
15988 _depth,
15989 )
15990 }
15991 AdvertisingProcedure::__SourceBreaking { .. } => Err(fidl::Error::UnknownUnionTag),
15992 }
15993 }
15994 }
15995
15996 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for AdvertisingProcedure {
15997 #[inline(always)]
15998 fn new_empty() -> Self {
15999 Self::__SourceBreaking { unknown_ordinal: 0 }
16000 }
16001
16002 #[inline]
16003 unsafe fn decode(
16004 &mut self,
16005 decoder: &mut fidl::encoding::Decoder<'_, D>,
16006 offset: usize,
16007 mut depth: fidl::encoding::Depth,
16008 ) -> fidl::Result<()> {
16009 decoder.debug_check_bounds::<Self>(offset);
16010 #[allow(unused_variables)]
16011 let next_out_of_line = decoder.next_out_of_line();
16012 let handles_before = decoder.remaining_handles();
16013 let (ordinal, inlined, num_bytes, num_handles) =
16014 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
16015
16016 let member_inline_size = match ordinal {
16017 1 => <Legacy as fidl::encoding::TypeMarker>::inline_size(decoder.context),
16018 2 => <Extended as fidl::encoding::TypeMarker>::inline_size(decoder.context),
16019 0 => return Err(fidl::Error::UnknownUnionTag),
16020 _ => num_bytes as usize,
16021 };
16022
16023 if inlined != (member_inline_size <= 4) {
16024 return Err(fidl::Error::InvalidInlineBitInEnvelope);
16025 }
16026 let _inner_offset;
16027 if inlined {
16028 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
16029 _inner_offset = offset + 8;
16030 } else {
16031 depth.increment()?;
16032 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
16033 }
16034 match ordinal {
16035 1 => {
16036 #[allow(irrefutable_let_patterns)]
16037 if let AdvertisingProcedure::Legacy(_) = self {
16038 } else {
16040 *self = AdvertisingProcedure::Legacy(fidl::new_empty!(Legacy, D));
16042 }
16043 #[allow(irrefutable_let_patterns)]
16044 if let AdvertisingProcedure::Legacy(ref mut val) = self {
16045 fidl::decode!(Legacy, D, val, decoder, _inner_offset, depth)?;
16046 } else {
16047 unreachable!()
16048 }
16049 }
16050 2 => {
16051 #[allow(irrefutable_let_patterns)]
16052 if let AdvertisingProcedure::Extended(_) = self {
16053 } else {
16055 *self = AdvertisingProcedure::Extended(fidl::new_empty!(Extended, D));
16057 }
16058 #[allow(irrefutable_let_patterns)]
16059 if let AdvertisingProcedure::Extended(ref mut val) = self {
16060 fidl::decode!(Extended, D, val, decoder, _inner_offset, depth)?;
16061 } else {
16062 unreachable!()
16063 }
16064 }
16065 #[allow(deprecated)]
16066 ordinal => {
16067 for _ in 0..num_handles {
16068 decoder.drop_next_handle()?;
16069 }
16070 *self = AdvertisingProcedure::__SourceBreaking { unknown_ordinal: ordinal };
16071 }
16072 }
16073 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
16074 return Err(fidl::Error::InvalidNumBytesInEnvelope);
16075 }
16076 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
16077 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
16078 }
16079 Ok(())
16080 }
16081 }
16082
16083 impl fidl::encoding::ValueTypeMarker for SyncReport {
16084 type Borrowed<'a> = &'a Self;
16085 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
16086 value
16087 }
16088 }
16089
16090 unsafe impl fidl::encoding::TypeMarker for SyncReport {
16091 type Owned = Self;
16092
16093 #[inline(always)]
16094 fn inline_align(_context: fidl::encoding::Context) -> usize {
16095 8
16096 }
16097
16098 #[inline(always)]
16099 fn inline_size(_context: fidl::encoding::Context) -> usize {
16100 16
16101 }
16102 }
16103
16104 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<SyncReport, D>
16105 for &SyncReport
16106 {
16107 #[inline]
16108 unsafe fn encode(
16109 self,
16110 encoder: &mut fidl::encoding::Encoder<'_, D>,
16111 offset: usize,
16112 _depth: fidl::encoding::Depth,
16113 ) -> fidl::Result<()> {
16114 encoder.debug_check_bounds::<SyncReport>(offset);
16115 encoder.write_num::<u64>(self.ordinal(), offset);
16116 match self {
16117 SyncReport::PeriodicAdvertisingReport(ref val) => {
16118 fidl::encoding::encode_in_envelope::<PeriodicAdvertisingReport, D>(
16119 <PeriodicAdvertisingReport as fidl::encoding::ValueTypeMarker>::borrow(val),
16120 encoder, offset + 8, _depth
16121 )
16122 }
16123 SyncReport::BroadcastIsochronousGroupInfoReport(ref val) => {
16124 fidl::encoding::encode_in_envelope::<BroadcastIsochronousGroupInfoReport, D>(
16125 <BroadcastIsochronousGroupInfoReport as fidl::encoding::ValueTypeMarker>::borrow(val),
16126 encoder, offset + 8, _depth
16127 )
16128 }
16129 SyncReport::__SourceBreaking { .. } => Err(fidl::Error::UnknownUnionTag),
16130 }
16131 }
16132 }
16133
16134 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for SyncReport {
16135 #[inline(always)]
16136 fn new_empty() -> Self {
16137 Self::__SourceBreaking { unknown_ordinal: 0 }
16138 }
16139
16140 #[inline]
16141 unsafe fn decode(
16142 &mut self,
16143 decoder: &mut fidl::encoding::Decoder<'_, D>,
16144 offset: usize,
16145 mut depth: fidl::encoding::Depth,
16146 ) -> fidl::Result<()> {
16147 decoder.debug_check_bounds::<Self>(offset);
16148 #[allow(unused_variables)]
16149 let next_out_of_line = decoder.next_out_of_line();
16150 let handles_before = decoder.remaining_handles();
16151 let (ordinal, inlined, num_bytes, num_handles) =
16152 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
16153
16154 let member_inline_size = match ordinal {
16155 1 => <PeriodicAdvertisingReport as fidl::encoding::TypeMarker>::inline_size(
16156 decoder.context,
16157 ),
16158 2 => {
16159 <BroadcastIsochronousGroupInfoReport as fidl::encoding::TypeMarker>::inline_size(
16160 decoder.context,
16161 )
16162 }
16163 0 => return Err(fidl::Error::UnknownUnionTag),
16164 _ => num_bytes as usize,
16165 };
16166
16167 if inlined != (member_inline_size <= 4) {
16168 return Err(fidl::Error::InvalidInlineBitInEnvelope);
16169 }
16170 let _inner_offset;
16171 if inlined {
16172 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
16173 _inner_offset = offset + 8;
16174 } else {
16175 depth.increment()?;
16176 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
16177 }
16178 match ordinal {
16179 1 => {
16180 #[allow(irrefutable_let_patterns)]
16181 if let SyncReport::PeriodicAdvertisingReport(_) = self {
16182 } else {
16184 *self = SyncReport::PeriodicAdvertisingReport(fidl::new_empty!(
16186 PeriodicAdvertisingReport,
16187 D
16188 ));
16189 }
16190 #[allow(irrefutable_let_patterns)]
16191 if let SyncReport::PeriodicAdvertisingReport(ref mut val) = self {
16192 fidl::decode!(
16193 PeriodicAdvertisingReport,
16194 D,
16195 val,
16196 decoder,
16197 _inner_offset,
16198 depth
16199 )?;
16200 } else {
16201 unreachable!()
16202 }
16203 }
16204 2 => {
16205 #[allow(irrefutable_let_patterns)]
16206 if let SyncReport::BroadcastIsochronousGroupInfoReport(_) = self {
16207 } else {
16209 *self = SyncReport::BroadcastIsochronousGroupInfoReport(fidl::new_empty!(
16211 BroadcastIsochronousGroupInfoReport,
16212 D
16213 ));
16214 }
16215 #[allow(irrefutable_let_patterns)]
16216 if let SyncReport::BroadcastIsochronousGroupInfoReport(ref mut val) = self {
16217 fidl::decode!(
16218 BroadcastIsochronousGroupInfoReport,
16219 D,
16220 val,
16221 decoder,
16222 _inner_offset,
16223 depth
16224 )?;
16225 } else {
16226 unreachable!()
16227 }
16228 }
16229 #[allow(deprecated)]
16230 ordinal => {
16231 for _ in 0..num_handles {
16232 decoder.drop_next_handle()?;
16233 }
16234 *self = SyncReport::__SourceBreaking { unknown_ordinal: ordinal };
16235 }
16236 }
16237 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
16238 return Err(fidl::Error::InvalidNumBytesInEnvelope);
16239 }
16240 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
16241 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
16242 }
16243 Ok(())
16244 }
16245 }
16246}