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 CigParameters {
979 pub sdu_interval_c_to_p: Option<u32>,
983 pub sdu_interval_p_to_c: Option<u32>,
987 pub packing: Option<CigPacking>,
991 pub framing: Option<CigFramingOptions>,
994 pub max_transport_latency_c_to_p: Option<u16>,
998 pub max_transport_latency_p_to_c: Option<u16>,
1002 #[doc(hidden)]
1003 pub __source_breaking: fidl::marker::SourceBreaking,
1004}
1005
1006impl fidl::Persistable for CigParameters {}
1007
1008#[derive(Clone, Debug, Default, PartialEq)]
1010pub struct CisEstablishedParameters {
1011 pub cig_sync_delay: Option<i64>,
1016 pub cis_sync_delay: Option<i64>,
1021 pub max_subevents: Option<u8>,
1025 pub iso_interval: Option<i64>,
1029 pub central_to_peripheral_params: Option<CisUnidirectionalParams>,
1034 pub peripheral_to_central_params: Option<CisUnidirectionalParams>,
1039 #[doc(hidden)]
1040 pub __source_breaking: fidl::marker::SourceBreaking,
1041}
1042
1043impl fidl::Persistable for CisEstablishedParameters {}
1044
1045#[derive(Clone, Debug, Default, PartialEq)]
1046pub struct CisParameters {
1047 pub cis_id: Option<u8>,
1050 pub id: Option<fidl_fuchsia_bluetooth__common::PeerId>,
1053 #[doc(hidden)]
1054 pub __source_breaking: fidl::marker::SourceBreaking,
1055}
1056
1057impl fidl::Persistable for CisParameters {}
1058
1059#[derive(Clone, Debug, Default, PartialEq)]
1061pub struct CisUnidirectionalParams {
1062 pub transport_latency: Option<i64>,
1066 pub burst_number: Option<u8>,
1070 pub flush_timeout: Option<u8>,
1074 #[doc(hidden)]
1075 pub __source_breaking: fidl::marker::SourceBreaking,
1076}
1077
1078impl fidl::Persistable for CisUnidirectionalParams {}
1079
1080#[derive(Clone, Debug, Default, PartialEq)]
1081pub struct CodecDelayGetCodecLocalDelayRangeRequest {
1082 pub logical_transport_type: Option<fidl_fuchsia_bluetooth__common::LogicalTransportType>,
1085 pub data_direction: Option<fidl_fuchsia_bluetooth__common::DataDirection>,
1087 pub codec_attributes: Option<fidl_fuchsia_bluetooth__common::CodecAttributes>,
1089 #[doc(hidden)]
1090 pub __source_breaking: fidl::marker::SourceBreaking,
1091}
1092
1093impl fidl::Persistable for CodecDelayGetCodecLocalDelayRangeRequest {}
1094
1095#[derive(Clone, Debug, Default, PartialEq)]
1096pub struct CodecDelayGetCodecLocalDelayRangeResponse {
1097 pub min_controller_delay: Option<i64>,
1100 pub max_controller_delay: Option<i64>,
1103 #[doc(hidden)]
1104 pub __source_breaking: fidl::marker::SourceBreaking,
1105}
1106
1107impl fidl::Persistable for CodecDelayGetCodecLocalDelayRangeResponse {}
1108
1109#[derive(Clone, Debug, Default, PartialEq)]
1110pub struct ConnectedIsochronousGroupEstablishStreamsRequest {
1111 pub cis_params: Option<Vec<CisParameters>>,
1113 #[doc(hidden)]
1114 pub __source_breaking: fidl::marker::SourceBreaking,
1115}
1116
1117impl fidl::Persistable for ConnectedIsochronousGroupEstablishStreamsRequest {}
1118
1119#[derive(Clone, Debug, Default, PartialEq)]
1122pub struct ConnectionOptions {
1123 pub bondable_mode: Option<bool>,
1128 pub service_filter: Option<fidl_fuchsia_bluetooth__common::Uuid>,
1131 #[doc(hidden)]
1132 pub __source_breaking: fidl::marker::SourceBreaking,
1133}
1134
1135impl fidl::Persistable for ConnectionOptions {}
1136
1137#[derive(Clone, Debug, Default, PartialEq)]
1138pub struct ConnectionTransferPeriodicAdvertisingSyncRequest {
1139 pub sync_id: Option<PeriodicAdvertisingSyncId>,
1141 pub service_data: Option<u16>,
1145 #[doc(hidden)]
1146 pub __source_breaking: fidl::marker::SourceBreaking,
1147}
1148
1149impl fidl::Persistable for ConnectionTransferPeriodicAdvertisingSyncRequest {}
1150
1151#[derive(Clone, Debug, Default, PartialEq)]
1152pub struct Extended {
1153 #[doc(hidden)]
1154 pub __source_breaking: fidl::marker::SourceBreaking,
1155}
1156
1157impl fidl::Persistable for Extended {}
1158
1159#[derive(Clone, Debug, Default, PartialEq)]
1162pub struct Filter {
1163 pub service_uuid: Option<fidl_fuchsia_bluetooth__common::Uuid>,
1165 pub service_data_uuid: Option<fidl_fuchsia_bluetooth__common::Uuid>,
1167 pub manufacturer_id: Option<u16>,
1173 pub connectable: Option<bool>,
1178 pub name: Option<String>,
1181 pub max_path_loss: Option<i8>,
1193 pub solicitation_uuid: Option<fidl_fuchsia_bluetooth__common::Uuid>,
1197 #[doc(hidden)]
1198 pub __source_breaking: fidl::marker::SourceBreaking,
1199}
1200
1201impl fidl::Persistable for Filter {}
1202
1203#[derive(Clone, Debug, Default, PartialEq)]
1204pub struct IsochronousStreamOnEstablishedRequest {
1205 pub result: Option<i32>,
1208 pub established_params: Option<CisEstablishedParameters>,
1210 #[doc(hidden)]
1211 pub __source_breaking: fidl::marker::SourceBreaking,
1212}
1213
1214impl fidl::Persistable for IsochronousStreamOnEstablishedRequest {}
1215
1216#[derive(Clone, Debug, Default, PartialEq)]
1217pub struct IsochronousStreamSetupDataPathRequest {
1218 pub data_direction: Option<fidl_fuchsia_bluetooth__common::DataDirection>,
1221 pub codec_attributes: Option<fidl_fuchsia_bluetooth__common::CodecAttributes>,
1224 pub controller_delay: Option<i64>,
1228 #[doc(hidden)]
1229 pub __source_breaking: fidl::marker::SourceBreaking,
1230}
1231
1232impl fidl::Persistable for IsochronousStreamSetupDataPathRequest {}
1233
1234#[derive(Clone, Debug, Default, PartialEq)]
1235pub struct IsochronousStreamWriteRequest {
1236 pub data: Option<Vec<u8>>,
1238 #[doc(hidden)]
1239 pub __source_breaking: fidl::marker::SourceBreaking,
1240}
1241
1242impl fidl::Persistable for IsochronousStreamWriteRequest {}
1243
1244#[derive(Clone, Debug, Default, PartialEq)]
1245pub struct IsochronousStreamReadResponse {
1246 pub data: Option<Vec<u8>>,
1249 pub sequence_number: Option<u16>,
1252 pub status_flag: Option<IsoPacketStatusFlag>,
1255 pub timestamp: Option<i64>,
1258 #[doc(hidden)]
1259 pub __source_breaking: fidl::marker::SourceBreaking,
1260}
1261
1262impl fidl::Persistable for IsochronousStreamReadResponse {}
1263
1264#[derive(Clone, Debug, Default, PartialEq)]
1265pub struct Legacy {
1266 #[doc(hidden)]
1267 pub __source_breaking: fidl::marker::SourceBreaking,
1268}
1269
1270impl fidl::Persistable for Legacy {}
1271
1272#[derive(Clone, Debug, Default, PartialEq)]
1275pub struct Peer {
1276 pub id: Option<fidl_fuchsia_bluetooth__common::PeerId>,
1280 pub connectable: Option<bool>,
1285 pub rssi: Option<i8>,
1291 pub advertising_data: Option<AdvertisingData>,
1292 pub name: Option<String>,
1297 pub data: Option<ScanData>,
1300 pub bonded: Option<bool>,
1304 pub last_updated: Option<i64>,
1309 pub advertising_sid: Option<u8>,
1313 pub periodic_advertising_interval: Option<u16>,
1320 #[doc(hidden)]
1321 pub __source_breaking: fidl::marker::SourceBreaking,
1322}
1323
1324impl fidl::Persistable for Peer {}
1325
1326#[derive(Clone, Debug, Default, PartialEq)]
1327pub struct PeriodicAdvertisingReport {
1328 pub rssi: Option<i8>,
1330 pub data: Option<ScanData>,
1332 pub event_counter: Option<u16>,
1335 pub subevent: Option<u8>,
1337 pub timestamp: Option<i64>,
1339 #[doc(hidden)]
1340 pub __source_breaking: fidl::marker::SourceBreaking,
1341}
1342
1343impl fidl::Persistable for PeriodicAdvertisingReport {}
1344
1345#[derive(Clone, Debug, Default, PartialEq)]
1346pub struct PeriodicAdvertisingSyncConfiguration {
1347 pub filter_duplicates: Option<bool>,
1351 #[doc(hidden)]
1352 pub __source_breaking: fidl::marker::SourceBreaking,
1353}
1354
1355impl fidl::Persistable for PeriodicAdvertisingSyncConfiguration {}
1356
1357#[derive(Clone, Debug, Default, PartialEq)]
1358pub struct PeriodicAdvertisingSyncOnEstablishedRequest {
1359 pub id: Option<PeriodicAdvertisingSyncId>,
1361 pub subevents_count: Option<u8>,
1363 pub peer_id: Option<fidl_fuchsia_bluetooth__common::PeerId>,
1364 pub service_data: Option<u16>,
1367 pub advertising_sid: Option<u8>,
1368 pub phy: Option<PhysicalLayer>,
1369 pub periodic_advertising_interval: Option<u16>,
1373 #[doc(hidden)]
1374 pub __source_breaking: fidl::marker::SourceBreaking,
1375}
1376
1377impl fidl::Persistable for PeriodicAdvertisingSyncOnEstablishedRequest {}
1378
1379#[derive(Clone, Debug, Default, PartialEq)]
1380pub struct PeriodicAdvertisingSyncSyncToSubeventsRequest {
1381 pub subevents: Option<Vec<u8>>,
1383 #[doc(hidden)]
1384 pub __source_breaking: fidl::marker::SourceBreaking,
1385}
1386
1387impl fidl::Persistable for PeriodicAdvertisingSyncSyncToSubeventsRequest {}
1388
1389#[derive(Clone, Debug, Default, PartialEq)]
1390pub struct PeriodicAdvertisingSyncWatchAdvertisingReportResponse {
1391 pub reports: Option<Vec<SyncReport>>,
1392 #[doc(hidden)]
1393 pub __source_breaking: fidl::marker::SourceBreaking,
1394}
1395
1396impl fidl::Persistable for PeriodicAdvertisingSyncWatchAdvertisingReportResponse {}
1397
1398#[derive(Clone, Debug, Default, PartialEq)]
1400pub struct ScanData {
1401 pub tx_power: Option<i8>,
1406 pub appearance: Option<fidl_fuchsia_bluetooth__common::Appearance>,
1408 pub service_uuids: Option<Vec<fidl_fuchsia_bluetooth__common::Uuid>>,
1410 pub service_data: Option<Vec<ServiceData>>,
1412 pub manufacturer_data: Option<Vec<ManufacturerData>>,
1414 pub uris: Option<Vec<String>>,
1420 pub timestamp: Option<i64>,
1422 pub resolvable_set_identifier: Option<[u8; 6]>,
1426 pub broadcast_name: Option<String>,
1435 #[doc(hidden)]
1436 pub __source_breaking: fidl::marker::SourceBreaking,
1437}
1438
1439impl fidl::Persistable for ScanData {}
1440
1441#[derive(Clone, Debug, Default, PartialEq)]
1443pub struct ScanOptions {
1444 pub filters: Option<Vec<Filter>>,
1449 #[doc(hidden)]
1450 pub __source_breaking: fidl::marker::SourceBreaking,
1451}
1452
1453impl fidl::Persistable for ScanOptions {}
1454
1455#[derive(Clone, Debug)]
1456pub enum AdvertisingProcedure {
1457 Legacy(Legacy),
1460 Extended(Extended),
1470 #[doc(hidden)]
1471 __SourceBreaking { unknown_ordinal: u64 },
1472}
1473
1474#[macro_export]
1476macro_rules! AdvertisingProcedureUnknown {
1477 () => {
1478 _
1479 };
1480}
1481
1482impl PartialEq for AdvertisingProcedure {
1484 fn eq(&self, other: &Self) -> bool {
1485 match (self, other) {
1486 (Self::Legacy(x), Self::Legacy(y)) => *x == *y,
1487 (Self::Extended(x), Self::Extended(y)) => *x == *y,
1488 _ => false,
1489 }
1490 }
1491}
1492
1493impl AdvertisingProcedure {
1494 #[inline]
1495 pub fn ordinal(&self) -> u64 {
1496 match *self {
1497 Self::Legacy(_) => 1,
1498 Self::Extended(_) => 2,
1499 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
1500 }
1501 }
1502
1503 #[inline]
1504 pub fn unknown_variant_for_testing() -> Self {
1505 Self::__SourceBreaking { unknown_ordinal: 0 }
1506 }
1507
1508 #[inline]
1509 pub fn is_unknown(&self) -> bool {
1510 match self {
1511 Self::__SourceBreaking { .. } => true,
1512 _ => false,
1513 }
1514 }
1515}
1516
1517impl fidl::Persistable for AdvertisingProcedure {}
1518
1519#[derive(Clone, Debug)]
1520pub enum SyncReport {
1521 PeriodicAdvertisingReport(PeriodicAdvertisingReport),
1522 BroadcastIsochronousGroupInfoReport(BroadcastIsochronousGroupInfoReport),
1523 #[doc(hidden)]
1524 __SourceBreaking {
1525 unknown_ordinal: u64,
1526 },
1527}
1528
1529#[macro_export]
1531macro_rules! SyncReportUnknown {
1532 () => {
1533 _
1534 };
1535}
1536
1537impl PartialEq for SyncReport {
1539 fn eq(&self, other: &Self) -> bool {
1540 match (self, other) {
1541 (Self::PeriodicAdvertisingReport(x), Self::PeriodicAdvertisingReport(y)) => *x == *y,
1542 (
1543 Self::BroadcastIsochronousGroupInfoReport(x),
1544 Self::BroadcastIsochronousGroupInfoReport(y),
1545 ) => *x == *y,
1546 _ => false,
1547 }
1548 }
1549}
1550
1551impl SyncReport {
1552 #[inline]
1553 pub fn ordinal(&self) -> u64 {
1554 match *self {
1555 Self::PeriodicAdvertisingReport(_) => 1,
1556 Self::BroadcastIsochronousGroupInfoReport(_) => 2,
1557 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
1558 }
1559 }
1560
1561 #[inline]
1562 pub fn unknown_variant_for_testing() -> Self {
1563 Self::__SourceBreaking { unknown_ordinal: 0 }
1564 }
1565
1566 #[inline]
1567 pub fn is_unknown(&self) -> bool {
1568 match self {
1569 Self::__SourceBreaking { .. } => true,
1570 _ => false,
1571 }
1572 }
1573}
1574
1575impl fidl::Persistable for SyncReport {}
1576
1577pub mod advertised_peripheral_ordinals {
1578 pub const ON_CONNECTED: u64 = 0x607b7716457eb178;
1579}
1580
1581pub mod advertising_handle_ordinals {}
1582
1583pub mod central_ordinals {
1584 pub const LISTEN_L2CAP: u64 = 0x39c6e9001d102338;
1585 pub const SCAN: u64 = 0x41f7121798dfe15f;
1586 pub const CONNECT: u64 = 0x31a3065f2a6913c4;
1587 pub const SYNC_TO_PERIODIC_ADVERTISING: u64 = 0x1db6df126a00c5b9;
1588 pub const CREATE_CONNECTED_ISOCHRONOUS_GROUP: u64 = 0x60323e70ae22e13;
1589 pub const GET_PERIPHERALS: u64 = 0x37ba777499c683a8;
1590 pub const GET_PERIPHERAL: u64 = 0x97f5a2f2d9c13da;
1591 pub const START_SCAN: u64 = 0xeb4cf0cd0e1132b;
1592 pub const STOP_SCAN: u64 = 0x5f79ee6a0bb037a0;
1593 pub const CONNECT_PERIPHERAL: u64 = 0x714d6c32d066d75a;
1594 pub const DISCONNECT_PERIPHERAL: u64 = 0xa9430da197362fd;
1595 pub const ON_SCAN_STATE_CHANGED: u64 = 0x5f8edc23cad04d3f;
1596 pub const ON_DEVICE_DISCOVERED: u64 = 0x708dadf20d66db6;
1597 pub const ON_PERIPHERAL_DISCONNECTED: u64 = 0x4e4c6b979b2126df;
1598}
1599
1600pub mod channel_listener_ordinals {
1601 pub const ACCEPT: u64 = 0x6f535bd36b20fc7b;
1602}
1603
1604pub mod channel_listener_registry_ordinals {
1605 pub const LISTEN_L2CAP: u64 = 0x39c6e9001d102338;
1606}
1607
1608pub mod codec_delay_ordinals {
1609 pub const GET_CODEC_LOCAL_DELAY_RANGE: u64 = 0x1cf34fdeed80b4d;
1610}
1611
1612pub mod connected_isochronous_group_ordinals {
1613 pub const ESTABLISH_STREAMS: u64 = 0xc7296c5edb4dacc;
1614 pub const REMOVE: u64 = 0xbed433babd20503;
1615}
1616
1617pub mod connection_ordinals {
1618 pub const GET_CODEC_LOCAL_DELAY_RANGE: u64 = 0x1cf34fdeed80b4d;
1619 pub const REQUEST_GATT_CLIENT: u64 = 0x2a670e0fec6ccc6b;
1620 pub const ACCEPT_CIS: u64 = 0x7e6338c237088144;
1621 pub const CONNECT_L2CAP: u64 = 0x12351316feaebce9;
1622 pub const TRANSFER_PERIODIC_ADVERTISING_SYNC: u64 = 0x1117a10b5ba1e219;
1623 pub const ACCEPT_PERIODIC_ADVERTISING_SYNC_TRANSFER: u64 = 0x441a31a7effa7e2b;
1624}
1625
1626pub mod isochronous_stream_ordinals {
1627 pub const ON_ESTABLISHED: u64 = 0x341c50e9d10f3421;
1628 pub const SETUP_DATA_PATH: u64 = 0x7ec1e2b9cc6d2fbe;
1629 pub const READ: u64 = 0x6d7d8b4950ed3a32;
1630 pub const WRITE: u64 = 0x5282e90b667d0d43;
1631}
1632
1633pub mod periodic_advertising_sync_ordinals {
1634 pub const ON_ESTABLISHED: u64 = 0x4a5c307761c40fdc;
1635 pub const ON_ERROR: u64 = 0x1c051673126ce4a;
1636 pub const WATCH_ADVERTISING_REPORT: u64 = 0x2ea610fea0e7d337;
1637 pub const SYNC_TO_SUBEVENTS: u64 = 0x653c5dab1f1d80ed;
1638 pub const CANCEL: u64 = 0xd617c037eaf5d92;
1639}
1640
1641pub mod peripheral_ordinals {
1642 pub const LISTEN_L2CAP: u64 = 0x39c6e9001d102338;
1643 pub const ADVERTISE: u64 = 0x2d9ec9260c32c17f;
1644 pub const START_ADVERTISING: u64 = 0x5875c1c575f00f7d;
1645 pub const ON_PEER_CONNECTED: u64 = 0x16135d464299e356;
1646}
1647
1648pub mod privileged_peripheral_ordinals {
1649 pub const LISTEN_L2CAP: u64 = 0x39c6e9001d102338;
1650 pub const ADVERTISE: u64 = 0x2d9ec9260c32c17f;
1651 pub const START_ADVERTISING: u64 = 0x5875c1c575f00f7d;
1652 pub const ON_PEER_CONNECTED: u64 = 0x16135d464299e356;
1653}
1654
1655pub mod scan_result_watcher_ordinals {
1656 pub const WATCH: u64 = 0x713a122e949f301a;
1657}
1658
1659mod internal {
1660 use super::*;
1661 unsafe impl fidl::encoding::TypeMarker for AdvertisingModeHint {
1662 type Owned = Self;
1663
1664 #[inline(always)]
1665 fn inline_align(_context: fidl::encoding::Context) -> usize {
1666 std::mem::align_of::<u8>()
1667 }
1668
1669 #[inline(always)]
1670 fn inline_size(_context: fidl::encoding::Context) -> usize {
1671 std::mem::size_of::<u8>()
1672 }
1673
1674 #[inline(always)]
1675 fn encode_is_copy() -> bool {
1676 true
1677 }
1678
1679 #[inline(always)]
1680 fn decode_is_copy() -> bool {
1681 false
1682 }
1683 }
1684
1685 impl fidl::encoding::ValueTypeMarker for AdvertisingModeHint {
1686 type Borrowed<'a> = Self;
1687 #[inline(always)]
1688 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1689 *value
1690 }
1691 }
1692
1693 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
1694 for AdvertisingModeHint
1695 {
1696 #[inline]
1697 unsafe fn encode(
1698 self,
1699 encoder: &mut fidl::encoding::Encoder<'_, D>,
1700 offset: usize,
1701 _depth: fidl::encoding::Depth,
1702 ) -> fidl::Result<()> {
1703 encoder.debug_check_bounds::<Self>(offset);
1704 encoder.write_num(self.into_primitive(), offset);
1705 Ok(())
1706 }
1707 }
1708
1709 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for AdvertisingModeHint {
1710 #[inline(always)]
1711 fn new_empty() -> Self {
1712 Self::VeryFast
1713 }
1714
1715 #[inline]
1716 unsafe fn decode(
1717 &mut self,
1718 decoder: &mut fidl::encoding::Decoder<'_, D>,
1719 offset: usize,
1720 _depth: fidl::encoding::Depth,
1721 ) -> fidl::Result<()> {
1722 decoder.debug_check_bounds::<Self>(offset);
1723 let prim = decoder.read_num::<u8>(offset);
1724
1725 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
1726 Ok(())
1727 }
1728 }
1729 unsafe impl fidl::encoding::TypeMarker for CentralError {
1730 type Owned = Self;
1731
1732 #[inline(always)]
1733 fn inline_align(_context: fidl::encoding::Context) -> usize {
1734 std::mem::align_of::<u32>()
1735 }
1736
1737 #[inline(always)]
1738 fn inline_size(_context: fidl::encoding::Context) -> usize {
1739 std::mem::size_of::<u32>()
1740 }
1741
1742 #[inline(always)]
1743 fn encode_is_copy() -> bool {
1744 true
1745 }
1746
1747 #[inline(always)]
1748 fn decode_is_copy() -> bool {
1749 false
1750 }
1751 }
1752
1753 impl fidl::encoding::ValueTypeMarker for CentralError {
1754 type Borrowed<'a> = Self;
1755 #[inline(always)]
1756 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1757 *value
1758 }
1759 }
1760
1761 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for CentralError {
1762 #[inline]
1763 unsafe fn encode(
1764 self,
1765 encoder: &mut fidl::encoding::Encoder<'_, D>,
1766 offset: usize,
1767 _depth: fidl::encoding::Depth,
1768 ) -> fidl::Result<()> {
1769 encoder.debug_check_bounds::<Self>(offset);
1770 encoder.write_num(self.into_primitive(), offset);
1771 Ok(())
1772 }
1773 }
1774
1775 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for CentralError {
1776 #[inline(always)]
1777 fn new_empty() -> Self {
1778 Self::Aborted
1779 }
1780
1781 #[inline]
1782 unsafe fn decode(
1783 &mut self,
1784 decoder: &mut fidl::encoding::Decoder<'_, D>,
1785 offset: usize,
1786 _depth: fidl::encoding::Depth,
1787 ) -> fidl::Result<()> {
1788 decoder.debug_check_bounds::<Self>(offset);
1789 let prim = decoder.read_num::<u32>(offset);
1790
1791 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
1792 Ok(())
1793 }
1794 }
1795 unsafe impl fidl::encoding::TypeMarker for CigFramingOptions {
1796 type Owned = Self;
1797
1798 #[inline(always)]
1799 fn inline_align(_context: fidl::encoding::Context) -> usize {
1800 std::mem::align_of::<u32>()
1801 }
1802
1803 #[inline(always)]
1804 fn inline_size(_context: fidl::encoding::Context) -> usize {
1805 std::mem::size_of::<u32>()
1806 }
1807
1808 #[inline(always)]
1809 fn encode_is_copy() -> bool {
1810 true
1811 }
1812
1813 #[inline(always)]
1814 fn decode_is_copy() -> bool {
1815 false
1816 }
1817 }
1818
1819 impl fidl::encoding::ValueTypeMarker for CigFramingOptions {
1820 type Borrowed<'a> = Self;
1821 #[inline(always)]
1822 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1823 *value
1824 }
1825 }
1826
1827 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
1828 for CigFramingOptions
1829 {
1830 #[inline]
1831 unsafe fn encode(
1832 self,
1833 encoder: &mut fidl::encoding::Encoder<'_, D>,
1834 offset: usize,
1835 _depth: fidl::encoding::Depth,
1836 ) -> fidl::Result<()> {
1837 encoder.debug_check_bounds::<Self>(offset);
1838 encoder.write_num(self.into_primitive(), offset);
1839 Ok(())
1840 }
1841 }
1842
1843 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for CigFramingOptions {
1844 #[inline(always)]
1845 fn new_empty() -> Self {
1846 Self::Unframed
1847 }
1848
1849 #[inline]
1850 unsafe fn decode(
1851 &mut self,
1852 decoder: &mut fidl::encoding::Decoder<'_, D>,
1853 offset: usize,
1854 _depth: fidl::encoding::Depth,
1855 ) -> fidl::Result<()> {
1856 decoder.debug_check_bounds::<Self>(offset);
1857 let prim = decoder.read_num::<u32>(offset);
1858
1859 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
1860 Ok(())
1861 }
1862 }
1863 unsafe impl fidl::encoding::TypeMarker for CigPacking {
1864 type Owned = Self;
1865
1866 #[inline(always)]
1867 fn inline_align(_context: fidl::encoding::Context) -> usize {
1868 std::mem::align_of::<u32>()
1869 }
1870
1871 #[inline(always)]
1872 fn inline_size(_context: fidl::encoding::Context) -> usize {
1873 std::mem::size_of::<u32>()
1874 }
1875
1876 #[inline(always)]
1877 fn encode_is_copy() -> bool {
1878 false
1879 }
1880
1881 #[inline(always)]
1882 fn decode_is_copy() -> bool {
1883 false
1884 }
1885 }
1886
1887 impl fidl::encoding::ValueTypeMarker for CigPacking {
1888 type Borrowed<'a> = Self;
1889 #[inline(always)]
1890 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1891 *value
1892 }
1893 }
1894
1895 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for CigPacking {
1896 #[inline]
1897 unsafe fn encode(
1898 self,
1899 encoder: &mut fidl::encoding::Encoder<'_, D>,
1900 offset: usize,
1901 _depth: fidl::encoding::Depth,
1902 ) -> fidl::Result<()> {
1903 encoder.debug_check_bounds::<Self>(offset);
1904 encoder.write_num(self.into_primitive(), offset);
1905 Ok(())
1906 }
1907 }
1908
1909 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for CigPacking {
1910 #[inline(always)]
1911 fn new_empty() -> Self {
1912 Self::unknown()
1913 }
1914
1915 #[inline]
1916 unsafe fn decode(
1917 &mut self,
1918 decoder: &mut fidl::encoding::Decoder<'_, D>,
1919 offset: usize,
1920 _depth: fidl::encoding::Depth,
1921 ) -> fidl::Result<()> {
1922 decoder.debug_check_bounds::<Self>(offset);
1923 let prim = decoder.read_num::<u32>(offset);
1924
1925 *self = Self::from_primitive_allow_unknown(prim);
1926 Ok(())
1927 }
1928 }
1929 unsafe impl fidl::encoding::TypeMarker for CreateCigError {
1930 type Owned = Self;
1931
1932 #[inline(always)]
1933 fn inline_align(_context: fidl::encoding::Context) -> usize {
1934 std::mem::align_of::<u32>()
1935 }
1936
1937 #[inline(always)]
1938 fn inline_size(_context: fidl::encoding::Context) -> usize {
1939 std::mem::size_of::<u32>()
1940 }
1941
1942 #[inline(always)]
1943 fn encode_is_copy() -> bool {
1944 false
1945 }
1946
1947 #[inline(always)]
1948 fn decode_is_copy() -> bool {
1949 false
1950 }
1951 }
1952
1953 impl fidl::encoding::ValueTypeMarker for CreateCigError {
1954 type Borrowed<'a> = Self;
1955 #[inline(always)]
1956 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1957 *value
1958 }
1959 }
1960
1961 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for CreateCigError {
1962 #[inline]
1963 unsafe fn encode(
1964 self,
1965 encoder: &mut fidl::encoding::Encoder<'_, D>,
1966 offset: usize,
1967 _depth: fidl::encoding::Depth,
1968 ) -> fidl::Result<()> {
1969 encoder.debug_check_bounds::<Self>(offset);
1970 encoder.write_num(self.into_primitive(), offset);
1971 Ok(())
1972 }
1973 }
1974
1975 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for CreateCigError {
1976 #[inline(always)]
1977 fn new_empty() -> Self {
1978 Self::unknown()
1979 }
1980
1981 #[inline]
1982 unsafe fn decode(
1983 &mut self,
1984 decoder: &mut fidl::encoding::Decoder<'_, D>,
1985 offset: usize,
1986 _depth: fidl::encoding::Depth,
1987 ) -> fidl::Result<()> {
1988 decoder.debug_check_bounds::<Self>(offset);
1989 let prim = decoder.read_num::<u32>(offset);
1990
1991 *self = Self::from_primitive_allow_unknown(prim);
1992 Ok(())
1993 }
1994 }
1995 unsafe impl fidl::encoding::TypeMarker for EstablishStreamsError {
1996 type Owned = Self;
1997
1998 #[inline(always)]
1999 fn inline_align(_context: fidl::encoding::Context) -> usize {
2000 std::mem::align_of::<u32>()
2001 }
2002
2003 #[inline(always)]
2004 fn inline_size(_context: fidl::encoding::Context) -> usize {
2005 std::mem::size_of::<u32>()
2006 }
2007
2008 #[inline(always)]
2009 fn encode_is_copy() -> bool {
2010 false
2011 }
2012
2013 #[inline(always)]
2014 fn decode_is_copy() -> bool {
2015 false
2016 }
2017 }
2018
2019 impl fidl::encoding::ValueTypeMarker for EstablishStreamsError {
2020 type Borrowed<'a> = Self;
2021 #[inline(always)]
2022 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2023 *value
2024 }
2025 }
2026
2027 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
2028 for EstablishStreamsError
2029 {
2030 #[inline]
2031 unsafe fn encode(
2032 self,
2033 encoder: &mut fidl::encoding::Encoder<'_, D>,
2034 offset: usize,
2035 _depth: fidl::encoding::Depth,
2036 ) -> fidl::Result<()> {
2037 encoder.debug_check_bounds::<Self>(offset);
2038 encoder.write_num(self.into_primitive(), offset);
2039 Ok(())
2040 }
2041 }
2042
2043 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for EstablishStreamsError {
2044 #[inline(always)]
2045 fn new_empty() -> Self {
2046 Self::unknown()
2047 }
2048
2049 #[inline]
2050 unsafe fn decode(
2051 &mut self,
2052 decoder: &mut fidl::encoding::Decoder<'_, D>,
2053 offset: usize,
2054 _depth: fidl::encoding::Depth,
2055 ) -> fidl::Result<()> {
2056 decoder.debug_check_bounds::<Self>(offset);
2057 let prim = decoder.read_num::<u32>(offset);
2058
2059 *self = Self::from_primitive_allow_unknown(prim);
2060 Ok(())
2061 }
2062 }
2063 unsafe impl fidl::encoding::TypeMarker for IsoPacketStatusFlag {
2064 type Owned = Self;
2065
2066 #[inline(always)]
2067 fn inline_align(_context: fidl::encoding::Context) -> usize {
2068 std::mem::align_of::<u8>()
2069 }
2070
2071 #[inline(always)]
2072 fn inline_size(_context: fidl::encoding::Context) -> usize {
2073 std::mem::size_of::<u8>()
2074 }
2075
2076 #[inline(always)]
2077 fn encode_is_copy() -> bool {
2078 true
2079 }
2080
2081 #[inline(always)]
2082 fn decode_is_copy() -> bool {
2083 false
2084 }
2085 }
2086
2087 impl fidl::encoding::ValueTypeMarker for IsoPacketStatusFlag {
2088 type Borrowed<'a> = Self;
2089 #[inline(always)]
2090 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2091 *value
2092 }
2093 }
2094
2095 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
2096 for IsoPacketStatusFlag
2097 {
2098 #[inline]
2099 unsafe fn encode(
2100 self,
2101 encoder: &mut fidl::encoding::Encoder<'_, D>,
2102 offset: usize,
2103 _depth: fidl::encoding::Depth,
2104 ) -> fidl::Result<()> {
2105 encoder.debug_check_bounds::<Self>(offset);
2106 encoder.write_num(self.into_primitive(), offset);
2107 Ok(())
2108 }
2109 }
2110
2111 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for IsoPacketStatusFlag {
2112 #[inline(always)]
2113 fn new_empty() -> Self {
2114 Self::ValidData
2115 }
2116
2117 #[inline]
2118 unsafe fn decode(
2119 &mut self,
2120 decoder: &mut fidl::encoding::Decoder<'_, D>,
2121 offset: usize,
2122 _depth: fidl::encoding::Depth,
2123 ) -> fidl::Result<()> {
2124 decoder.debug_check_bounds::<Self>(offset);
2125 let prim = decoder.read_num::<u8>(offset);
2126
2127 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
2128 Ok(())
2129 }
2130 }
2131 unsafe impl fidl::encoding::TypeMarker for PeriodicAdvertisingSyncError {
2132 type Owned = Self;
2133
2134 #[inline(always)]
2135 fn inline_align(_context: fidl::encoding::Context) -> usize {
2136 std::mem::align_of::<u32>()
2137 }
2138
2139 #[inline(always)]
2140 fn inline_size(_context: fidl::encoding::Context) -> usize {
2141 std::mem::size_of::<u32>()
2142 }
2143
2144 #[inline(always)]
2145 fn encode_is_copy() -> bool {
2146 false
2147 }
2148
2149 #[inline(always)]
2150 fn decode_is_copy() -> bool {
2151 false
2152 }
2153 }
2154
2155 impl fidl::encoding::ValueTypeMarker for PeriodicAdvertisingSyncError {
2156 type Borrowed<'a> = Self;
2157 #[inline(always)]
2158 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2159 *value
2160 }
2161 }
2162
2163 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
2164 for PeriodicAdvertisingSyncError
2165 {
2166 #[inline]
2167 unsafe fn encode(
2168 self,
2169 encoder: &mut fidl::encoding::Encoder<'_, D>,
2170 offset: usize,
2171 _depth: fidl::encoding::Depth,
2172 ) -> fidl::Result<()> {
2173 encoder.debug_check_bounds::<Self>(offset);
2174 encoder.write_num(self.into_primitive(), offset);
2175 Ok(())
2176 }
2177 }
2178
2179 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2180 for PeriodicAdvertisingSyncError
2181 {
2182 #[inline(always)]
2183 fn new_empty() -> Self {
2184 Self::unknown()
2185 }
2186
2187 #[inline]
2188 unsafe fn decode(
2189 &mut self,
2190 decoder: &mut fidl::encoding::Decoder<'_, D>,
2191 offset: usize,
2192 _depth: fidl::encoding::Depth,
2193 ) -> fidl::Result<()> {
2194 decoder.debug_check_bounds::<Self>(offset);
2195 let prim = decoder.read_num::<u32>(offset);
2196
2197 *self = Self::from_primitive_allow_unknown(prim);
2198 Ok(())
2199 }
2200 }
2201 unsafe impl fidl::encoding::TypeMarker for PeriodicAdvertisingSyncTransferError {
2202 type Owned = Self;
2203
2204 #[inline(always)]
2205 fn inline_align(_context: fidl::encoding::Context) -> usize {
2206 std::mem::align_of::<u32>()
2207 }
2208
2209 #[inline(always)]
2210 fn inline_size(_context: fidl::encoding::Context) -> usize {
2211 std::mem::size_of::<u32>()
2212 }
2213
2214 #[inline(always)]
2215 fn encode_is_copy() -> bool {
2216 false
2217 }
2218
2219 #[inline(always)]
2220 fn decode_is_copy() -> bool {
2221 false
2222 }
2223 }
2224
2225 impl fidl::encoding::ValueTypeMarker for PeriodicAdvertisingSyncTransferError {
2226 type Borrowed<'a> = Self;
2227 #[inline(always)]
2228 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2229 *value
2230 }
2231 }
2232
2233 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
2234 for PeriodicAdvertisingSyncTransferError
2235 {
2236 #[inline]
2237 unsafe fn encode(
2238 self,
2239 encoder: &mut fidl::encoding::Encoder<'_, D>,
2240 offset: usize,
2241 _depth: fidl::encoding::Depth,
2242 ) -> fidl::Result<()> {
2243 encoder.debug_check_bounds::<Self>(offset);
2244 encoder.write_num(self.into_primitive(), offset);
2245 Ok(())
2246 }
2247 }
2248
2249 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2250 for PeriodicAdvertisingSyncTransferError
2251 {
2252 #[inline(always)]
2253 fn new_empty() -> Self {
2254 Self::unknown()
2255 }
2256
2257 #[inline]
2258 unsafe fn decode(
2259 &mut self,
2260 decoder: &mut fidl::encoding::Decoder<'_, D>,
2261 offset: usize,
2262 _depth: fidl::encoding::Depth,
2263 ) -> fidl::Result<()> {
2264 decoder.debug_check_bounds::<Self>(offset);
2265 let prim = decoder.read_num::<u32>(offset);
2266
2267 *self = Self::from_primitive_allow_unknown(prim);
2268 Ok(())
2269 }
2270 }
2271 unsafe impl fidl::encoding::TypeMarker for PeripheralError {
2272 type Owned = Self;
2273
2274 #[inline(always)]
2275 fn inline_align(_context: fidl::encoding::Context) -> usize {
2276 std::mem::align_of::<u32>()
2277 }
2278
2279 #[inline(always)]
2280 fn inline_size(_context: fidl::encoding::Context) -> usize {
2281 std::mem::size_of::<u32>()
2282 }
2283
2284 #[inline(always)]
2285 fn encode_is_copy() -> bool {
2286 true
2287 }
2288
2289 #[inline(always)]
2290 fn decode_is_copy() -> bool {
2291 false
2292 }
2293 }
2294
2295 impl fidl::encoding::ValueTypeMarker for PeripheralError {
2296 type Borrowed<'a> = Self;
2297 #[inline(always)]
2298 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2299 *value
2300 }
2301 }
2302
2303 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
2304 for PeripheralError
2305 {
2306 #[inline]
2307 unsafe fn encode(
2308 self,
2309 encoder: &mut fidl::encoding::Encoder<'_, D>,
2310 offset: usize,
2311 _depth: fidl::encoding::Depth,
2312 ) -> fidl::Result<()> {
2313 encoder.debug_check_bounds::<Self>(offset);
2314 encoder.write_num(self.into_primitive(), offset);
2315 Ok(())
2316 }
2317 }
2318
2319 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for PeripheralError {
2320 #[inline(always)]
2321 fn new_empty() -> Self {
2322 Self::NotSupported
2323 }
2324
2325 #[inline]
2326 unsafe fn decode(
2327 &mut self,
2328 decoder: &mut fidl::encoding::Decoder<'_, D>,
2329 offset: usize,
2330 _depth: fidl::encoding::Depth,
2331 ) -> fidl::Result<()> {
2332 decoder.debug_check_bounds::<Self>(offset);
2333 let prim = decoder.read_num::<u32>(offset);
2334
2335 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
2336 Ok(())
2337 }
2338 }
2339 unsafe impl fidl::encoding::TypeMarker for PhysicalLayer {
2340 type Owned = Self;
2341
2342 #[inline(always)]
2343 fn inline_align(_context: fidl::encoding::Context) -> usize {
2344 std::mem::align_of::<u8>()
2345 }
2346
2347 #[inline(always)]
2348 fn inline_size(_context: fidl::encoding::Context) -> usize {
2349 std::mem::size_of::<u8>()
2350 }
2351
2352 #[inline(always)]
2353 fn encode_is_copy() -> bool {
2354 false
2355 }
2356
2357 #[inline(always)]
2358 fn decode_is_copy() -> bool {
2359 false
2360 }
2361 }
2362
2363 impl fidl::encoding::ValueTypeMarker for PhysicalLayer {
2364 type Borrowed<'a> = Self;
2365 #[inline(always)]
2366 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2367 *value
2368 }
2369 }
2370
2371 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for PhysicalLayer {
2372 #[inline]
2373 unsafe fn encode(
2374 self,
2375 encoder: &mut fidl::encoding::Encoder<'_, D>,
2376 offset: usize,
2377 _depth: fidl::encoding::Depth,
2378 ) -> fidl::Result<()> {
2379 encoder.debug_check_bounds::<Self>(offset);
2380 encoder.write_num(self.into_primitive(), offset);
2381 Ok(())
2382 }
2383 }
2384
2385 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for PhysicalLayer {
2386 #[inline(always)]
2387 fn new_empty() -> Self {
2388 Self::unknown()
2389 }
2390
2391 #[inline]
2392 unsafe fn decode(
2393 &mut self,
2394 decoder: &mut fidl::encoding::Decoder<'_, D>,
2395 offset: usize,
2396 _depth: fidl::encoding::Depth,
2397 ) -> fidl::Result<()> {
2398 decoder.debug_check_bounds::<Self>(offset);
2399 let prim = decoder.read_num::<u8>(offset);
2400
2401 *self = Self::from_primitive_allow_unknown(prim);
2402 Ok(())
2403 }
2404 }
2405
2406 impl fidl::encoding::ValueTypeMarker for AdvertisingDataDeprecated {
2407 type Borrowed<'a> = &'a Self;
2408 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2409 value
2410 }
2411 }
2412
2413 unsafe impl fidl::encoding::TypeMarker for AdvertisingDataDeprecated {
2414 type Owned = Self;
2415
2416 #[inline(always)]
2417 fn inline_align(_context: fidl::encoding::Context) -> usize {
2418 8
2419 }
2420
2421 #[inline(always)]
2422 fn inline_size(_context: fidl::encoding::Context) -> usize {
2423 112
2424 }
2425 }
2426
2427 unsafe impl<D: fidl::encoding::ResourceDialect>
2428 fidl::encoding::Encode<AdvertisingDataDeprecated, D> for &AdvertisingDataDeprecated
2429 {
2430 #[inline]
2431 unsafe fn encode(
2432 self,
2433 encoder: &mut fidl::encoding::Encoder<'_, D>,
2434 offset: usize,
2435 _depth: fidl::encoding::Depth,
2436 ) -> fidl::Result<()> {
2437 encoder.debug_check_bounds::<AdvertisingDataDeprecated>(offset);
2438 fidl::encoding::Encode::<AdvertisingDataDeprecated, D>::encode(
2440 (
2441 <fidl::encoding::Optional<fidl::encoding::BoundedString<248>> as fidl::encoding::ValueTypeMarker>::borrow(&self.name),
2442 <fidl::encoding::Boxed<fidl_fuchsia_bluetooth__common::Int8> as fidl::encoding::ValueTypeMarker>::borrow(&self.tx_power_level),
2443 <fidl::encoding::Boxed<fidl_fuchsia_bluetooth__common::UInt16> as fidl::encoding::ValueTypeMarker>::borrow(&self.appearance),
2444 <fidl::encoding::Optional<fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<36>>> as fidl::encoding::ValueTypeMarker>::borrow(&self.service_uuids),
2445 <fidl::encoding::Optional<fidl::encoding::UnboundedVector<ServiceDataEntry>> as fidl::encoding::ValueTypeMarker>::borrow(&self.service_data),
2446 <fidl::encoding::Optional<fidl::encoding::UnboundedVector<ManufacturerSpecificDataEntry>> as fidl::encoding::ValueTypeMarker>::borrow(&self.manufacturer_specific_data),
2447 <fidl::encoding::Optional<fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<36>>> as fidl::encoding::ValueTypeMarker>::borrow(&self.solicited_service_uuids),
2448 <fidl::encoding::Optional<fidl::encoding::UnboundedVector<fidl::encoding::UnboundedString>> as fidl::encoding::ValueTypeMarker>::borrow(&self.uris),
2449 ),
2450 encoder, offset, _depth
2451 )
2452 }
2453 }
2454 unsafe impl<
2455 D: fidl::encoding::ResourceDialect,
2456 T0: fidl::encoding::Encode<fidl::encoding::Optional<fidl::encoding::BoundedString<248>>, D>,
2457 T1: fidl::encoding::Encode<fidl::encoding::Boxed<fidl_fuchsia_bluetooth__common::Int8>, D>,
2458 T2: fidl::encoding::Encode<fidl::encoding::Boxed<fidl_fuchsia_bluetooth__common::UInt16>, D>,
2459 T3: fidl::encoding::Encode<
2460 fidl::encoding::Optional<
2461 fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<36>>,
2462 >,
2463 D,
2464 >,
2465 T4: fidl::encoding::Encode<
2466 fidl::encoding::Optional<fidl::encoding::UnboundedVector<ServiceDataEntry>>,
2467 D,
2468 >,
2469 T5: fidl::encoding::Encode<
2470 fidl::encoding::Optional<
2471 fidl::encoding::UnboundedVector<ManufacturerSpecificDataEntry>,
2472 >,
2473 D,
2474 >,
2475 T6: fidl::encoding::Encode<
2476 fidl::encoding::Optional<
2477 fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<36>>,
2478 >,
2479 D,
2480 >,
2481 T7: fidl::encoding::Encode<
2482 fidl::encoding::Optional<
2483 fidl::encoding::UnboundedVector<fidl::encoding::UnboundedString>,
2484 >,
2485 D,
2486 >,
2487 > fidl::encoding::Encode<AdvertisingDataDeprecated, D> for (T0, T1, T2, T3, T4, T5, T6, T7)
2488 {
2489 #[inline]
2490 unsafe fn encode(
2491 self,
2492 encoder: &mut fidl::encoding::Encoder<'_, D>,
2493 offset: usize,
2494 depth: fidl::encoding::Depth,
2495 ) -> fidl::Result<()> {
2496 encoder.debug_check_bounds::<AdvertisingDataDeprecated>(offset);
2497 self.0.encode(encoder, offset + 0, depth)?;
2501 self.1.encode(encoder, offset + 16, depth)?;
2502 self.2.encode(encoder, offset + 24, depth)?;
2503 self.3.encode(encoder, offset + 32, depth)?;
2504 self.4.encode(encoder, offset + 48, depth)?;
2505 self.5.encode(encoder, offset + 64, depth)?;
2506 self.6.encode(encoder, offset + 80, depth)?;
2507 self.7.encode(encoder, offset + 96, depth)?;
2508 Ok(())
2509 }
2510 }
2511
2512 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2513 for AdvertisingDataDeprecated
2514 {
2515 #[inline(always)]
2516 fn new_empty() -> Self {
2517 Self {
2518 name: fidl::new_empty!(
2519 fidl::encoding::Optional<fidl::encoding::BoundedString<248>>,
2520 D
2521 ),
2522 tx_power_level: fidl::new_empty!(
2523 fidl::encoding::Boxed<fidl_fuchsia_bluetooth__common::Int8>,
2524 D
2525 ),
2526 appearance: fidl::new_empty!(
2527 fidl::encoding::Boxed<fidl_fuchsia_bluetooth__common::UInt16>,
2528 D
2529 ),
2530 service_uuids: fidl::new_empty!(
2531 fidl::encoding::Optional<
2532 fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<36>>,
2533 >,
2534 D
2535 ),
2536 service_data: fidl::new_empty!(
2537 fidl::encoding::Optional<fidl::encoding::UnboundedVector<ServiceDataEntry>>,
2538 D
2539 ),
2540 manufacturer_specific_data: fidl::new_empty!(
2541 fidl::encoding::Optional<
2542 fidl::encoding::UnboundedVector<ManufacturerSpecificDataEntry>,
2543 >,
2544 D
2545 ),
2546 solicited_service_uuids: fidl::new_empty!(
2547 fidl::encoding::Optional<
2548 fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<36>>,
2549 >,
2550 D
2551 ),
2552 uris: fidl::new_empty!(
2553 fidl::encoding::Optional<
2554 fidl::encoding::UnboundedVector<fidl::encoding::UnboundedString>,
2555 >,
2556 D
2557 ),
2558 }
2559 }
2560
2561 #[inline]
2562 unsafe fn decode(
2563 &mut self,
2564 decoder: &mut fidl::encoding::Decoder<'_, D>,
2565 offset: usize,
2566 _depth: fidl::encoding::Depth,
2567 ) -> fidl::Result<()> {
2568 decoder.debug_check_bounds::<Self>(offset);
2569 fidl::decode!(
2571 fidl::encoding::Optional<fidl::encoding::BoundedString<248>>,
2572 D,
2573 &mut self.name,
2574 decoder,
2575 offset + 0,
2576 _depth
2577 )?;
2578 fidl::decode!(
2579 fidl::encoding::Boxed<fidl_fuchsia_bluetooth__common::Int8>,
2580 D,
2581 &mut self.tx_power_level,
2582 decoder,
2583 offset + 16,
2584 _depth
2585 )?;
2586 fidl::decode!(
2587 fidl::encoding::Boxed<fidl_fuchsia_bluetooth__common::UInt16>,
2588 D,
2589 &mut self.appearance,
2590 decoder,
2591 offset + 24,
2592 _depth
2593 )?;
2594 fidl::decode!(
2595 fidl::encoding::Optional<
2596 fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<36>>,
2597 >,
2598 D,
2599 &mut self.service_uuids,
2600 decoder,
2601 offset + 32,
2602 _depth
2603 )?;
2604 fidl::decode!(
2605 fidl::encoding::Optional<fidl::encoding::UnboundedVector<ServiceDataEntry>>,
2606 D,
2607 &mut self.service_data,
2608 decoder,
2609 offset + 48,
2610 _depth
2611 )?;
2612 fidl::decode!(
2613 fidl::encoding::Optional<
2614 fidl::encoding::UnboundedVector<ManufacturerSpecificDataEntry>,
2615 >,
2616 D,
2617 &mut self.manufacturer_specific_data,
2618 decoder,
2619 offset + 64,
2620 _depth
2621 )?;
2622 fidl::decode!(
2623 fidl::encoding::Optional<
2624 fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<36>>,
2625 >,
2626 D,
2627 &mut self.solicited_service_uuids,
2628 decoder,
2629 offset + 80,
2630 _depth
2631 )?;
2632 fidl::decode!(
2633 fidl::encoding::Optional<
2634 fidl::encoding::UnboundedVector<fidl::encoding::UnboundedString>,
2635 >,
2636 D,
2637 &mut self.uris,
2638 decoder,
2639 offset + 96,
2640 _depth
2641 )?;
2642 Ok(())
2643 }
2644 }
2645
2646 impl fidl::encoding::ValueTypeMarker for CentralConnectPeripheralResponse {
2647 type Borrowed<'a> = &'a Self;
2648 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2649 value
2650 }
2651 }
2652
2653 unsafe impl fidl::encoding::TypeMarker for CentralConnectPeripheralResponse {
2654 type Owned = Self;
2655
2656 #[inline(always)]
2657 fn inline_align(_context: fidl::encoding::Context) -> usize {
2658 8
2659 }
2660
2661 #[inline(always)]
2662 fn inline_size(_context: fidl::encoding::Context) -> usize {
2663 8
2664 }
2665 }
2666
2667 unsafe impl<D: fidl::encoding::ResourceDialect>
2668 fidl::encoding::Encode<CentralConnectPeripheralResponse, D>
2669 for &CentralConnectPeripheralResponse
2670 {
2671 #[inline]
2672 unsafe fn encode(
2673 self,
2674 encoder: &mut fidl::encoding::Encoder<'_, D>,
2675 offset: usize,
2676 _depth: fidl::encoding::Depth,
2677 ) -> fidl::Result<()> {
2678 encoder.debug_check_bounds::<CentralConnectPeripheralResponse>(offset);
2679 fidl::encoding::Encode::<CentralConnectPeripheralResponse, D>::encode(
2681 (
2682 <fidl_fuchsia_bluetooth__common::Status as fidl::encoding::ValueTypeMarker>::borrow(&self.status),
2683 ),
2684 encoder, offset, _depth
2685 )
2686 }
2687 }
2688 unsafe impl<
2689 D: fidl::encoding::ResourceDialect,
2690 T0: fidl::encoding::Encode<fidl_fuchsia_bluetooth__common::Status, D>,
2691 > fidl::encoding::Encode<CentralConnectPeripheralResponse, D> for (T0,)
2692 {
2693 #[inline]
2694 unsafe fn encode(
2695 self,
2696 encoder: &mut fidl::encoding::Encoder<'_, D>,
2697 offset: usize,
2698 depth: fidl::encoding::Depth,
2699 ) -> fidl::Result<()> {
2700 encoder.debug_check_bounds::<CentralConnectPeripheralResponse>(offset);
2701 self.0.encode(encoder, offset + 0, depth)?;
2705 Ok(())
2706 }
2707 }
2708
2709 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2710 for CentralConnectPeripheralResponse
2711 {
2712 #[inline(always)]
2713 fn new_empty() -> Self {
2714 Self { status: fidl::new_empty!(fidl_fuchsia_bluetooth__common::Status, D) }
2715 }
2716
2717 #[inline]
2718 unsafe fn decode(
2719 &mut self,
2720 decoder: &mut fidl::encoding::Decoder<'_, D>,
2721 offset: usize,
2722 _depth: fidl::encoding::Depth,
2723 ) -> fidl::Result<()> {
2724 decoder.debug_check_bounds::<Self>(offset);
2725 fidl::decode!(
2727 fidl_fuchsia_bluetooth__common::Status,
2728 D,
2729 &mut self.status,
2730 decoder,
2731 offset + 0,
2732 _depth
2733 )?;
2734 Ok(())
2735 }
2736 }
2737
2738 impl fidl::encoding::ValueTypeMarker for CentralDisconnectPeripheralRequest {
2739 type Borrowed<'a> = &'a Self;
2740 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2741 value
2742 }
2743 }
2744
2745 unsafe impl fidl::encoding::TypeMarker for CentralDisconnectPeripheralRequest {
2746 type Owned = Self;
2747
2748 #[inline(always)]
2749 fn inline_align(_context: fidl::encoding::Context) -> usize {
2750 8
2751 }
2752
2753 #[inline(always)]
2754 fn inline_size(_context: fidl::encoding::Context) -> usize {
2755 16
2756 }
2757 }
2758
2759 unsafe impl<D: fidl::encoding::ResourceDialect>
2760 fidl::encoding::Encode<CentralDisconnectPeripheralRequest, D>
2761 for &CentralDisconnectPeripheralRequest
2762 {
2763 #[inline]
2764 unsafe fn encode(
2765 self,
2766 encoder: &mut fidl::encoding::Encoder<'_, D>,
2767 offset: usize,
2768 _depth: fidl::encoding::Depth,
2769 ) -> fidl::Result<()> {
2770 encoder.debug_check_bounds::<CentralDisconnectPeripheralRequest>(offset);
2771 fidl::encoding::Encode::<CentralDisconnectPeripheralRequest, D>::encode(
2773 (<fidl::encoding::BoundedString<16> as fidl::encoding::ValueTypeMarker>::borrow(
2774 &self.identifier,
2775 ),),
2776 encoder,
2777 offset,
2778 _depth,
2779 )
2780 }
2781 }
2782 unsafe impl<
2783 D: fidl::encoding::ResourceDialect,
2784 T0: fidl::encoding::Encode<fidl::encoding::BoundedString<16>, D>,
2785 > fidl::encoding::Encode<CentralDisconnectPeripheralRequest, D> for (T0,)
2786 {
2787 #[inline]
2788 unsafe fn encode(
2789 self,
2790 encoder: &mut fidl::encoding::Encoder<'_, D>,
2791 offset: usize,
2792 depth: fidl::encoding::Depth,
2793 ) -> fidl::Result<()> {
2794 encoder.debug_check_bounds::<CentralDisconnectPeripheralRequest>(offset);
2795 self.0.encode(encoder, offset + 0, depth)?;
2799 Ok(())
2800 }
2801 }
2802
2803 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2804 for CentralDisconnectPeripheralRequest
2805 {
2806 #[inline(always)]
2807 fn new_empty() -> Self {
2808 Self { identifier: fidl::new_empty!(fidl::encoding::BoundedString<16>, D) }
2809 }
2810
2811 #[inline]
2812 unsafe fn decode(
2813 &mut self,
2814 decoder: &mut fidl::encoding::Decoder<'_, D>,
2815 offset: usize,
2816 _depth: fidl::encoding::Depth,
2817 ) -> fidl::Result<()> {
2818 decoder.debug_check_bounds::<Self>(offset);
2819 fidl::decode!(
2821 fidl::encoding::BoundedString<16>,
2822 D,
2823 &mut self.identifier,
2824 decoder,
2825 offset + 0,
2826 _depth
2827 )?;
2828 Ok(())
2829 }
2830 }
2831
2832 impl fidl::encoding::ValueTypeMarker for CentralDisconnectPeripheralResponse {
2833 type Borrowed<'a> = &'a Self;
2834 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2835 value
2836 }
2837 }
2838
2839 unsafe impl fidl::encoding::TypeMarker for CentralDisconnectPeripheralResponse {
2840 type Owned = Self;
2841
2842 #[inline(always)]
2843 fn inline_align(_context: fidl::encoding::Context) -> usize {
2844 8
2845 }
2846
2847 #[inline(always)]
2848 fn inline_size(_context: fidl::encoding::Context) -> usize {
2849 8
2850 }
2851 }
2852
2853 unsafe impl<D: fidl::encoding::ResourceDialect>
2854 fidl::encoding::Encode<CentralDisconnectPeripheralResponse, D>
2855 for &CentralDisconnectPeripheralResponse
2856 {
2857 #[inline]
2858 unsafe fn encode(
2859 self,
2860 encoder: &mut fidl::encoding::Encoder<'_, D>,
2861 offset: usize,
2862 _depth: fidl::encoding::Depth,
2863 ) -> fidl::Result<()> {
2864 encoder.debug_check_bounds::<CentralDisconnectPeripheralResponse>(offset);
2865 fidl::encoding::Encode::<CentralDisconnectPeripheralResponse, D>::encode(
2867 (
2868 <fidl_fuchsia_bluetooth__common::Status as fidl::encoding::ValueTypeMarker>::borrow(&self.status),
2869 ),
2870 encoder, offset, _depth
2871 )
2872 }
2873 }
2874 unsafe impl<
2875 D: fidl::encoding::ResourceDialect,
2876 T0: fidl::encoding::Encode<fidl_fuchsia_bluetooth__common::Status, D>,
2877 > fidl::encoding::Encode<CentralDisconnectPeripheralResponse, D> for (T0,)
2878 {
2879 #[inline]
2880 unsafe fn encode(
2881 self,
2882 encoder: &mut fidl::encoding::Encoder<'_, D>,
2883 offset: usize,
2884 depth: fidl::encoding::Depth,
2885 ) -> fidl::Result<()> {
2886 encoder.debug_check_bounds::<CentralDisconnectPeripheralResponse>(offset);
2887 self.0.encode(encoder, offset + 0, depth)?;
2891 Ok(())
2892 }
2893 }
2894
2895 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2896 for CentralDisconnectPeripheralResponse
2897 {
2898 #[inline(always)]
2899 fn new_empty() -> Self {
2900 Self { status: fidl::new_empty!(fidl_fuchsia_bluetooth__common::Status, D) }
2901 }
2902
2903 #[inline]
2904 unsafe fn decode(
2905 &mut self,
2906 decoder: &mut fidl::encoding::Decoder<'_, D>,
2907 offset: usize,
2908 _depth: fidl::encoding::Depth,
2909 ) -> fidl::Result<()> {
2910 decoder.debug_check_bounds::<Self>(offset);
2911 fidl::decode!(
2913 fidl_fuchsia_bluetooth__common::Status,
2914 D,
2915 &mut self.status,
2916 decoder,
2917 offset + 0,
2918 _depth
2919 )?;
2920 Ok(())
2921 }
2922 }
2923
2924 impl fidl::encoding::ValueTypeMarker for CentralGetPeripheralRequest {
2925 type Borrowed<'a> = &'a Self;
2926 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2927 value
2928 }
2929 }
2930
2931 unsafe impl fidl::encoding::TypeMarker for CentralGetPeripheralRequest {
2932 type Owned = Self;
2933
2934 #[inline(always)]
2935 fn inline_align(_context: fidl::encoding::Context) -> usize {
2936 8
2937 }
2938
2939 #[inline(always)]
2940 fn inline_size(_context: fidl::encoding::Context) -> usize {
2941 16
2942 }
2943 }
2944
2945 unsafe impl<D: fidl::encoding::ResourceDialect>
2946 fidl::encoding::Encode<CentralGetPeripheralRequest, D> for &CentralGetPeripheralRequest
2947 {
2948 #[inline]
2949 unsafe fn encode(
2950 self,
2951 encoder: &mut fidl::encoding::Encoder<'_, D>,
2952 offset: usize,
2953 _depth: fidl::encoding::Depth,
2954 ) -> fidl::Result<()> {
2955 encoder.debug_check_bounds::<CentralGetPeripheralRequest>(offset);
2956 fidl::encoding::Encode::<CentralGetPeripheralRequest, D>::encode(
2958 (<fidl::encoding::BoundedString<16> as fidl::encoding::ValueTypeMarker>::borrow(
2959 &self.identifier,
2960 ),),
2961 encoder,
2962 offset,
2963 _depth,
2964 )
2965 }
2966 }
2967 unsafe impl<
2968 D: fidl::encoding::ResourceDialect,
2969 T0: fidl::encoding::Encode<fidl::encoding::BoundedString<16>, D>,
2970 > fidl::encoding::Encode<CentralGetPeripheralRequest, D> for (T0,)
2971 {
2972 #[inline]
2973 unsafe fn encode(
2974 self,
2975 encoder: &mut fidl::encoding::Encoder<'_, D>,
2976 offset: usize,
2977 depth: fidl::encoding::Depth,
2978 ) -> fidl::Result<()> {
2979 encoder.debug_check_bounds::<CentralGetPeripheralRequest>(offset);
2980 self.0.encode(encoder, offset + 0, depth)?;
2984 Ok(())
2985 }
2986 }
2987
2988 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2989 for CentralGetPeripheralRequest
2990 {
2991 #[inline(always)]
2992 fn new_empty() -> Self {
2993 Self { identifier: fidl::new_empty!(fidl::encoding::BoundedString<16>, D) }
2994 }
2995
2996 #[inline]
2997 unsafe fn decode(
2998 &mut self,
2999 decoder: &mut fidl::encoding::Decoder<'_, D>,
3000 offset: usize,
3001 _depth: fidl::encoding::Depth,
3002 ) -> fidl::Result<()> {
3003 decoder.debug_check_bounds::<Self>(offset);
3004 fidl::decode!(
3006 fidl::encoding::BoundedString<16>,
3007 D,
3008 &mut self.identifier,
3009 decoder,
3010 offset + 0,
3011 _depth
3012 )?;
3013 Ok(())
3014 }
3015 }
3016
3017 impl fidl::encoding::ValueTypeMarker for CentralGetPeripheralResponse {
3018 type Borrowed<'a> = &'a Self;
3019 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3020 value
3021 }
3022 }
3023
3024 unsafe impl fidl::encoding::TypeMarker for CentralGetPeripheralResponse {
3025 type Owned = Self;
3026
3027 #[inline(always)]
3028 fn inline_align(_context: fidl::encoding::Context) -> usize {
3029 8
3030 }
3031
3032 #[inline(always)]
3033 fn inline_size(_context: fidl::encoding::Context) -> usize {
3034 8
3035 }
3036 }
3037
3038 unsafe impl<D: fidl::encoding::ResourceDialect>
3039 fidl::encoding::Encode<CentralGetPeripheralResponse, D> for &CentralGetPeripheralResponse
3040 {
3041 #[inline]
3042 unsafe fn encode(
3043 self,
3044 encoder: &mut fidl::encoding::Encoder<'_, D>,
3045 offset: usize,
3046 _depth: fidl::encoding::Depth,
3047 ) -> fidl::Result<()> {
3048 encoder.debug_check_bounds::<CentralGetPeripheralResponse>(offset);
3049 fidl::encoding::Encode::<CentralGetPeripheralResponse, D>::encode(
3051 (<fidl::encoding::Boxed<RemoteDevice> as fidl::encoding::ValueTypeMarker>::borrow(
3052 &self.peripheral,
3053 ),),
3054 encoder,
3055 offset,
3056 _depth,
3057 )
3058 }
3059 }
3060 unsafe impl<
3061 D: fidl::encoding::ResourceDialect,
3062 T0: fidl::encoding::Encode<fidl::encoding::Boxed<RemoteDevice>, D>,
3063 > fidl::encoding::Encode<CentralGetPeripheralResponse, D> for (T0,)
3064 {
3065 #[inline]
3066 unsafe fn encode(
3067 self,
3068 encoder: &mut fidl::encoding::Encoder<'_, D>,
3069 offset: usize,
3070 depth: fidl::encoding::Depth,
3071 ) -> fidl::Result<()> {
3072 encoder.debug_check_bounds::<CentralGetPeripheralResponse>(offset);
3073 self.0.encode(encoder, offset + 0, depth)?;
3077 Ok(())
3078 }
3079 }
3080
3081 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3082 for CentralGetPeripheralResponse
3083 {
3084 #[inline(always)]
3085 fn new_empty() -> Self {
3086 Self { peripheral: fidl::new_empty!(fidl::encoding::Boxed<RemoteDevice>, D) }
3087 }
3088
3089 #[inline]
3090 unsafe fn decode(
3091 &mut self,
3092 decoder: &mut fidl::encoding::Decoder<'_, D>,
3093 offset: usize,
3094 _depth: fidl::encoding::Depth,
3095 ) -> fidl::Result<()> {
3096 decoder.debug_check_bounds::<Self>(offset);
3097 fidl::decode!(
3099 fidl::encoding::Boxed<RemoteDevice>,
3100 D,
3101 &mut self.peripheral,
3102 decoder,
3103 offset + 0,
3104 _depth
3105 )?;
3106 Ok(())
3107 }
3108 }
3109
3110 impl fidl::encoding::ValueTypeMarker for CentralGetPeripheralsRequest {
3111 type Borrowed<'a> = &'a Self;
3112 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3113 value
3114 }
3115 }
3116
3117 unsafe impl fidl::encoding::TypeMarker for CentralGetPeripheralsRequest {
3118 type Owned = Self;
3119
3120 #[inline(always)]
3121 fn inline_align(_context: fidl::encoding::Context) -> usize {
3122 8
3123 }
3124
3125 #[inline(always)]
3126 fn inline_size(_context: fidl::encoding::Context) -> usize {
3127 16
3128 }
3129 }
3130
3131 unsafe impl<D: fidl::encoding::ResourceDialect>
3132 fidl::encoding::Encode<CentralGetPeripheralsRequest, D> for &CentralGetPeripheralsRequest
3133 {
3134 #[inline]
3135 unsafe fn encode(
3136 self,
3137 encoder: &mut fidl::encoding::Encoder<'_, D>,
3138 offset: usize,
3139 _depth: fidl::encoding::Depth,
3140 ) -> fidl::Result<()> {
3141 encoder.debug_check_bounds::<CentralGetPeripheralsRequest>(offset);
3142 fidl::encoding::Encode::<CentralGetPeripheralsRequest, D>::encode(
3144 (<fidl::encoding::Optional<
3145 fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<36>>,
3146 > as fidl::encoding::ValueTypeMarker>::borrow(&self.service_uuids),),
3147 encoder,
3148 offset,
3149 _depth,
3150 )
3151 }
3152 }
3153 unsafe impl<
3154 D: fidl::encoding::ResourceDialect,
3155 T0: fidl::encoding::Encode<
3156 fidl::encoding::Optional<
3157 fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<36>>,
3158 >,
3159 D,
3160 >,
3161 > fidl::encoding::Encode<CentralGetPeripheralsRequest, D> for (T0,)
3162 {
3163 #[inline]
3164 unsafe fn encode(
3165 self,
3166 encoder: &mut fidl::encoding::Encoder<'_, D>,
3167 offset: usize,
3168 depth: fidl::encoding::Depth,
3169 ) -> fidl::Result<()> {
3170 encoder.debug_check_bounds::<CentralGetPeripheralsRequest>(offset);
3171 self.0.encode(encoder, offset + 0, depth)?;
3175 Ok(())
3176 }
3177 }
3178
3179 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3180 for CentralGetPeripheralsRequest
3181 {
3182 #[inline(always)]
3183 fn new_empty() -> Self {
3184 Self {
3185 service_uuids: fidl::new_empty!(
3186 fidl::encoding::Optional<
3187 fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<36>>,
3188 >,
3189 D
3190 ),
3191 }
3192 }
3193
3194 #[inline]
3195 unsafe fn decode(
3196 &mut self,
3197 decoder: &mut fidl::encoding::Decoder<'_, D>,
3198 offset: usize,
3199 _depth: fidl::encoding::Depth,
3200 ) -> fidl::Result<()> {
3201 decoder.debug_check_bounds::<Self>(offset);
3202 fidl::decode!(
3204 fidl::encoding::Optional<
3205 fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<36>>,
3206 >,
3207 D,
3208 &mut self.service_uuids,
3209 decoder,
3210 offset + 0,
3211 _depth
3212 )?;
3213 Ok(())
3214 }
3215 }
3216
3217 impl fidl::encoding::ValueTypeMarker for CentralGetPeripheralsResponse {
3218 type Borrowed<'a> = &'a Self;
3219 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3220 value
3221 }
3222 }
3223
3224 unsafe impl fidl::encoding::TypeMarker for CentralGetPeripheralsResponse {
3225 type Owned = Self;
3226
3227 #[inline(always)]
3228 fn inline_align(_context: fidl::encoding::Context) -> usize {
3229 8
3230 }
3231
3232 #[inline(always)]
3233 fn inline_size(_context: fidl::encoding::Context) -> usize {
3234 16
3235 }
3236 }
3237
3238 unsafe impl<D: fidl::encoding::ResourceDialect>
3239 fidl::encoding::Encode<CentralGetPeripheralsResponse, D>
3240 for &CentralGetPeripheralsResponse
3241 {
3242 #[inline]
3243 unsafe fn encode(
3244 self,
3245 encoder: &mut fidl::encoding::Encoder<'_, D>,
3246 offset: usize,
3247 _depth: fidl::encoding::Depth,
3248 ) -> fidl::Result<()> {
3249 encoder.debug_check_bounds::<CentralGetPeripheralsResponse>(offset);
3250 fidl::encoding::Encode::<CentralGetPeripheralsResponse, D>::encode(
3252 (
3253 <fidl::encoding::UnboundedVector<RemoteDevice> as fidl::encoding::ValueTypeMarker>::borrow(&self.peripherals),
3254 ),
3255 encoder, offset, _depth
3256 )
3257 }
3258 }
3259 unsafe impl<
3260 D: fidl::encoding::ResourceDialect,
3261 T0: fidl::encoding::Encode<fidl::encoding::UnboundedVector<RemoteDevice>, D>,
3262 > fidl::encoding::Encode<CentralGetPeripheralsResponse, D> for (T0,)
3263 {
3264 #[inline]
3265 unsafe fn encode(
3266 self,
3267 encoder: &mut fidl::encoding::Encoder<'_, D>,
3268 offset: usize,
3269 depth: fidl::encoding::Depth,
3270 ) -> fidl::Result<()> {
3271 encoder.debug_check_bounds::<CentralGetPeripheralsResponse>(offset);
3272 self.0.encode(encoder, offset + 0, depth)?;
3276 Ok(())
3277 }
3278 }
3279
3280 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3281 for CentralGetPeripheralsResponse
3282 {
3283 #[inline(always)]
3284 fn new_empty() -> Self {
3285 Self { peripherals: fidl::new_empty!(fidl::encoding::UnboundedVector<RemoteDevice>, D) }
3286 }
3287
3288 #[inline]
3289 unsafe fn decode(
3290 &mut self,
3291 decoder: &mut fidl::encoding::Decoder<'_, D>,
3292 offset: usize,
3293 _depth: fidl::encoding::Depth,
3294 ) -> fidl::Result<()> {
3295 decoder.debug_check_bounds::<Self>(offset);
3296 fidl::decode!(
3298 fidl::encoding::UnboundedVector<RemoteDevice>,
3299 D,
3300 &mut self.peripherals,
3301 decoder,
3302 offset + 0,
3303 _depth
3304 )?;
3305 Ok(())
3306 }
3307 }
3308
3309 impl fidl::encoding::ValueTypeMarker for CentralOnDeviceDiscoveredRequest {
3310 type Borrowed<'a> = &'a Self;
3311 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3312 value
3313 }
3314 }
3315
3316 unsafe impl fidl::encoding::TypeMarker for CentralOnDeviceDiscoveredRequest {
3317 type Owned = Self;
3318
3319 #[inline(always)]
3320 fn inline_align(_context: fidl::encoding::Context) -> usize {
3321 8
3322 }
3323
3324 #[inline(always)]
3325 fn inline_size(_context: fidl::encoding::Context) -> usize {
3326 40
3327 }
3328 }
3329
3330 unsafe impl<D: fidl::encoding::ResourceDialect>
3331 fidl::encoding::Encode<CentralOnDeviceDiscoveredRequest, D>
3332 for &CentralOnDeviceDiscoveredRequest
3333 {
3334 #[inline]
3335 unsafe fn encode(
3336 self,
3337 encoder: &mut fidl::encoding::Encoder<'_, D>,
3338 offset: usize,
3339 _depth: fidl::encoding::Depth,
3340 ) -> fidl::Result<()> {
3341 encoder.debug_check_bounds::<CentralOnDeviceDiscoveredRequest>(offset);
3342 fidl::encoding::Encode::<CentralOnDeviceDiscoveredRequest, D>::encode(
3344 (<RemoteDevice as fidl::encoding::ValueTypeMarker>::borrow(&self.device),),
3345 encoder,
3346 offset,
3347 _depth,
3348 )
3349 }
3350 }
3351 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<RemoteDevice, D>>
3352 fidl::encoding::Encode<CentralOnDeviceDiscoveredRequest, D> for (T0,)
3353 {
3354 #[inline]
3355 unsafe fn encode(
3356 self,
3357 encoder: &mut fidl::encoding::Encoder<'_, D>,
3358 offset: usize,
3359 depth: fidl::encoding::Depth,
3360 ) -> fidl::Result<()> {
3361 encoder.debug_check_bounds::<CentralOnDeviceDiscoveredRequest>(offset);
3362 self.0.encode(encoder, offset + 0, depth)?;
3366 Ok(())
3367 }
3368 }
3369
3370 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3371 for CentralOnDeviceDiscoveredRequest
3372 {
3373 #[inline(always)]
3374 fn new_empty() -> Self {
3375 Self { device: fidl::new_empty!(RemoteDevice, D) }
3376 }
3377
3378 #[inline]
3379 unsafe fn decode(
3380 &mut self,
3381 decoder: &mut fidl::encoding::Decoder<'_, D>,
3382 offset: usize,
3383 _depth: fidl::encoding::Depth,
3384 ) -> fidl::Result<()> {
3385 decoder.debug_check_bounds::<Self>(offset);
3386 fidl::decode!(RemoteDevice, D, &mut self.device, decoder, offset + 0, _depth)?;
3388 Ok(())
3389 }
3390 }
3391
3392 impl fidl::encoding::ValueTypeMarker for CentralOnPeripheralDisconnectedRequest {
3393 type Borrowed<'a> = &'a Self;
3394 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3395 value
3396 }
3397 }
3398
3399 unsafe impl fidl::encoding::TypeMarker for CentralOnPeripheralDisconnectedRequest {
3400 type Owned = Self;
3401
3402 #[inline(always)]
3403 fn inline_align(_context: fidl::encoding::Context) -> usize {
3404 8
3405 }
3406
3407 #[inline(always)]
3408 fn inline_size(_context: fidl::encoding::Context) -> usize {
3409 16
3410 }
3411 }
3412
3413 unsafe impl<D: fidl::encoding::ResourceDialect>
3414 fidl::encoding::Encode<CentralOnPeripheralDisconnectedRequest, D>
3415 for &CentralOnPeripheralDisconnectedRequest
3416 {
3417 #[inline]
3418 unsafe fn encode(
3419 self,
3420 encoder: &mut fidl::encoding::Encoder<'_, D>,
3421 offset: usize,
3422 _depth: fidl::encoding::Depth,
3423 ) -> fidl::Result<()> {
3424 encoder.debug_check_bounds::<CentralOnPeripheralDisconnectedRequest>(offset);
3425 fidl::encoding::Encode::<CentralOnPeripheralDisconnectedRequest, D>::encode(
3427 (<fidl::encoding::BoundedString<16> as fidl::encoding::ValueTypeMarker>::borrow(
3428 &self.identifier,
3429 ),),
3430 encoder,
3431 offset,
3432 _depth,
3433 )
3434 }
3435 }
3436 unsafe impl<
3437 D: fidl::encoding::ResourceDialect,
3438 T0: fidl::encoding::Encode<fidl::encoding::BoundedString<16>, D>,
3439 > fidl::encoding::Encode<CentralOnPeripheralDisconnectedRequest, D> for (T0,)
3440 {
3441 #[inline]
3442 unsafe fn encode(
3443 self,
3444 encoder: &mut fidl::encoding::Encoder<'_, D>,
3445 offset: usize,
3446 depth: fidl::encoding::Depth,
3447 ) -> fidl::Result<()> {
3448 encoder.debug_check_bounds::<CentralOnPeripheralDisconnectedRequest>(offset);
3449 self.0.encode(encoder, offset + 0, depth)?;
3453 Ok(())
3454 }
3455 }
3456
3457 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3458 for CentralOnPeripheralDisconnectedRequest
3459 {
3460 #[inline(always)]
3461 fn new_empty() -> Self {
3462 Self { identifier: fidl::new_empty!(fidl::encoding::BoundedString<16>, D) }
3463 }
3464
3465 #[inline]
3466 unsafe fn decode(
3467 &mut self,
3468 decoder: &mut fidl::encoding::Decoder<'_, D>,
3469 offset: usize,
3470 _depth: fidl::encoding::Depth,
3471 ) -> fidl::Result<()> {
3472 decoder.debug_check_bounds::<Self>(offset);
3473 fidl::decode!(
3475 fidl::encoding::BoundedString<16>,
3476 D,
3477 &mut self.identifier,
3478 decoder,
3479 offset + 0,
3480 _depth
3481 )?;
3482 Ok(())
3483 }
3484 }
3485
3486 impl fidl::encoding::ValueTypeMarker for CentralOnScanStateChangedRequest {
3487 type Borrowed<'a> = &'a Self;
3488 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3489 value
3490 }
3491 }
3492
3493 unsafe impl fidl::encoding::TypeMarker for CentralOnScanStateChangedRequest {
3494 type Owned = Self;
3495
3496 #[inline(always)]
3497 fn inline_align(_context: fidl::encoding::Context) -> usize {
3498 1
3499 }
3500
3501 #[inline(always)]
3502 fn inline_size(_context: fidl::encoding::Context) -> usize {
3503 1
3504 }
3505 }
3506
3507 unsafe impl<D: fidl::encoding::ResourceDialect>
3508 fidl::encoding::Encode<CentralOnScanStateChangedRequest, D>
3509 for &CentralOnScanStateChangedRequest
3510 {
3511 #[inline]
3512 unsafe fn encode(
3513 self,
3514 encoder: &mut fidl::encoding::Encoder<'_, D>,
3515 offset: usize,
3516 _depth: fidl::encoding::Depth,
3517 ) -> fidl::Result<()> {
3518 encoder.debug_check_bounds::<CentralOnScanStateChangedRequest>(offset);
3519 fidl::encoding::Encode::<CentralOnScanStateChangedRequest, D>::encode(
3521 (<bool as fidl::encoding::ValueTypeMarker>::borrow(&self.scanning),),
3522 encoder,
3523 offset,
3524 _depth,
3525 )
3526 }
3527 }
3528 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<bool, D>>
3529 fidl::encoding::Encode<CentralOnScanStateChangedRequest, D> for (T0,)
3530 {
3531 #[inline]
3532 unsafe fn encode(
3533 self,
3534 encoder: &mut fidl::encoding::Encoder<'_, D>,
3535 offset: usize,
3536 depth: fidl::encoding::Depth,
3537 ) -> fidl::Result<()> {
3538 encoder.debug_check_bounds::<CentralOnScanStateChangedRequest>(offset);
3539 self.0.encode(encoder, offset + 0, depth)?;
3543 Ok(())
3544 }
3545 }
3546
3547 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3548 for CentralOnScanStateChangedRequest
3549 {
3550 #[inline(always)]
3551 fn new_empty() -> Self {
3552 Self { scanning: fidl::new_empty!(bool, D) }
3553 }
3554
3555 #[inline]
3556 unsafe fn decode(
3557 &mut self,
3558 decoder: &mut fidl::encoding::Decoder<'_, D>,
3559 offset: usize,
3560 _depth: fidl::encoding::Depth,
3561 ) -> fidl::Result<()> {
3562 decoder.debug_check_bounds::<Self>(offset);
3563 fidl::decode!(bool, D, &mut self.scanning, decoder, offset + 0, _depth)?;
3565 Ok(())
3566 }
3567 }
3568
3569 impl fidl::encoding::ValueTypeMarker for CentralStartScanRequest {
3570 type Borrowed<'a> = &'a Self;
3571 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3572 value
3573 }
3574 }
3575
3576 unsafe impl fidl::encoding::TypeMarker for CentralStartScanRequest {
3577 type Owned = Self;
3578
3579 #[inline(always)]
3580 fn inline_align(_context: fidl::encoding::Context) -> usize {
3581 8
3582 }
3583
3584 #[inline(always)]
3585 fn inline_size(_context: fidl::encoding::Context) -> usize {
3586 8
3587 }
3588 }
3589
3590 unsafe impl<D: fidl::encoding::ResourceDialect>
3591 fidl::encoding::Encode<CentralStartScanRequest, D> for &CentralStartScanRequest
3592 {
3593 #[inline]
3594 unsafe fn encode(
3595 self,
3596 encoder: &mut fidl::encoding::Encoder<'_, D>,
3597 offset: usize,
3598 _depth: fidl::encoding::Depth,
3599 ) -> fidl::Result<()> {
3600 encoder.debug_check_bounds::<CentralStartScanRequest>(offset);
3601 fidl::encoding::Encode::<CentralStartScanRequest, D>::encode(
3603 (<fidl::encoding::Boxed<ScanFilter> as fidl::encoding::ValueTypeMarker>::borrow(
3604 &self.filter,
3605 ),),
3606 encoder,
3607 offset,
3608 _depth,
3609 )
3610 }
3611 }
3612 unsafe impl<
3613 D: fidl::encoding::ResourceDialect,
3614 T0: fidl::encoding::Encode<fidl::encoding::Boxed<ScanFilter>, D>,
3615 > fidl::encoding::Encode<CentralStartScanRequest, D> for (T0,)
3616 {
3617 #[inline]
3618 unsafe fn encode(
3619 self,
3620 encoder: &mut fidl::encoding::Encoder<'_, D>,
3621 offset: usize,
3622 depth: fidl::encoding::Depth,
3623 ) -> fidl::Result<()> {
3624 encoder.debug_check_bounds::<CentralStartScanRequest>(offset);
3625 self.0.encode(encoder, offset + 0, depth)?;
3629 Ok(())
3630 }
3631 }
3632
3633 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3634 for CentralStartScanRequest
3635 {
3636 #[inline(always)]
3637 fn new_empty() -> Self {
3638 Self { filter: fidl::new_empty!(fidl::encoding::Boxed<ScanFilter>, D) }
3639 }
3640
3641 #[inline]
3642 unsafe fn decode(
3643 &mut self,
3644 decoder: &mut fidl::encoding::Decoder<'_, D>,
3645 offset: usize,
3646 _depth: fidl::encoding::Depth,
3647 ) -> fidl::Result<()> {
3648 decoder.debug_check_bounds::<Self>(offset);
3649 fidl::decode!(
3651 fidl::encoding::Boxed<ScanFilter>,
3652 D,
3653 &mut self.filter,
3654 decoder,
3655 offset + 0,
3656 _depth
3657 )?;
3658 Ok(())
3659 }
3660 }
3661
3662 impl fidl::encoding::ValueTypeMarker for CentralStartScanResponse {
3663 type Borrowed<'a> = &'a Self;
3664 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3665 value
3666 }
3667 }
3668
3669 unsafe impl fidl::encoding::TypeMarker for CentralStartScanResponse {
3670 type Owned = Self;
3671
3672 #[inline(always)]
3673 fn inline_align(_context: fidl::encoding::Context) -> usize {
3674 8
3675 }
3676
3677 #[inline(always)]
3678 fn inline_size(_context: fidl::encoding::Context) -> usize {
3679 8
3680 }
3681 }
3682
3683 unsafe impl<D: fidl::encoding::ResourceDialect>
3684 fidl::encoding::Encode<CentralStartScanResponse, D> for &CentralStartScanResponse
3685 {
3686 #[inline]
3687 unsafe fn encode(
3688 self,
3689 encoder: &mut fidl::encoding::Encoder<'_, D>,
3690 offset: usize,
3691 _depth: fidl::encoding::Depth,
3692 ) -> fidl::Result<()> {
3693 encoder.debug_check_bounds::<CentralStartScanResponse>(offset);
3694 fidl::encoding::Encode::<CentralStartScanResponse, D>::encode(
3696 (
3697 <fidl_fuchsia_bluetooth__common::Status as fidl::encoding::ValueTypeMarker>::borrow(&self.status),
3698 ),
3699 encoder, offset, _depth
3700 )
3701 }
3702 }
3703 unsafe impl<
3704 D: fidl::encoding::ResourceDialect,
3705 T0: fidl::encoding::Encode<fidl_fuchsia_bluetooth__common::Status, D>,
3706 > fidl::encoding::Encode<CentralStartScanResponse, D> for (T0,)
3707 {
3708 #[inline]
3709 unsafe fn encode(
3710 self,
3711 encoder: &mut fidl::encoding::Encoder<'_, D>,
3712 offset: usize,
3713 depth: fidl::encoding::Depth,
3714 ) -> fidl::Result<()> {
3715 encoder.debug_check_bounds::<CentralStartScanResponse>(offset);
3716 self.0.encode(encoder, offset + 0, depth)?;
3720 Ok(())
3721 }
3722 }
3723
3724 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3725 for CentralStartScanResponse
3726 {
3727 #[inline(always)]
3728 fn new_empty() -> Self {
3729 Self { status: fidl::new_empty!(fidl_fuchsia_bluetooth__common::Status, D) }
3730 }
3731
3732 #[inline]
3733 unsafe fn decode(
3734 &mut self,
3735 decoder: &mut fidl::encoding::Decoder<'_, D>,
3736 offset: usize,
3737 _depth: fidl::encoding::Depth,
3738 ) -> fidl::Result<()> {
3739 decoder.debug_check_bounds::<Self>(offset);
3740 fidl::decode!(
3742 fidl_fuchsia_bluetooth__common::Status,
3743 D,
3744 &mut self.status,
3745 decoder,
3746 offset + 0,
3747 _depth
3748 )?;
3749 Ok(())
3750 }
3751 }
3752
3753 impl fidl::encoding::ValueTypeMarker for ManufacturerData {
3754 type Borrowed<'a> = &'a Self;
3755 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3756 value
3757 }
3758 }
3759
3760 unsafe impl fidl::encoding::TypeMarker for ManufacturerData {
3761 type Owned = Self;
3762
3763 #[inline(always)]
3764 fn inline_align(_context: fidl::encoding::Context) -> usize {
3765 8
3766 }
3767
3768 #[inline(always)]
3769 fn inline_size(_context: fidl::encoding::Context) -> usize {
3770 24
3771 }
3772 }
3773
3774 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ManufacturerData, D>
3775 for &ManufacturerData
3776 {
3777 #[inline]
3778 unsafe fn encode(
3779 self,
3780 encoder: &mut fidl::encoding::Encoder<'_, D>,
3781 offset: usize,
3782 _depth: fidl::encoding::Depth,
3783 ) -> fidl::Result<()> {
3784 encoder.debug_check_bounds::<ManufacturerData>(offset);
3785 fidl::encoding::Encode::<ManufacturerData, D>::encode(
3787 (
3788 <u16 as fidl::encoding::ValueTypeMarker>::borrow(&self.company_id),
3789 <fidl::encoding::Vector<u8, 252> as fidl::encoding::ValueTypeMarker>::borrow(
3790 &self.data,
3791 ),
3792 ),
3793 encoder,
3794 offset,
3795 _depth,
3796 )
3797 }
3798 }
3799 unsafe impl<
3800 D: fidl::encoding::ResourceDialect,
3801 T0: fidl::encoding::Encode<u16, D>,
3802 T1: fidl::encoding::Encode<fidl::encoding::Vector<u8, 252>, D>,
3803 > fidl::encoding::Encode<ManufacturerData, D> for (T0, T1)
3804 {
3805 #[inline]
3806 unsafe fn encode(
3807 self,
3808 encoder: &mut fidl::encoding::Encoder<'_, D>,
3809 offset: usize,
3810 depth: fidl::encoding::Depth,
3811 ) -> fidl::Result<()> {
3812 encoder.debug_check_bounds::<ManufacturerData>(offset);
3813 unsafe {
3816 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(0);
3817 (ptr as *mut u64).write_unaligned(0);
3818 }
3819 self.0.encode(encoder, offset + 0, depth)?;
3821 self.1.encode(encoder, offset + 8, depth)?;
3822 Ok(())
3823 }
3824 }
3825
3826 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ManufacturerData {
3827 #[inline(always)]
3828 fn new_empty() -> Self {
3829 Self {
3830 company_id: fidl::new_empty!(u16, D),
3831 data: fidl::new_empty!(fidl::encoding::Vector<u8, 252>, D),
3832 }
3833 }
3834
3835 #[inline]
3836 unsafe fn decode(
3837 &mut self,
3838 decoder: &mut fidl::encoding::Decoder<'_, D>,
3839 offset: usize,
3840 _depth: fidl::encoding::Depth,
3841 ) -> fidl::Result<()> {
3842 decoder.debug_check_bounds::<Self>(offset);
3843 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(0) };
3845 let padval = unsafe { (ptr as *const u64).read_unaligned() };
3846 let mask = 0xffffffffffff0000u64;
3847 let maskedval = padval & mask;
3848 if maskedval != 0 {
3849 return Err(fidl::Error::NonZeroPadding {
3850 padding_start: offset + 0 + ((mask as u64).trailing_zeros() / 8) as usize,
3851 });
3852 }
3853 fidl::decode!(u16, D, &mut self.company_id, decoder, offset + 0, _depth)?;
3854 fidl::decode!(fidl::encoding::Vector<u8, 252>, D, &mut self.data, decoder, offset + 8, _depth)?;
3855 Ok(())
3856 }
3857 }
3858
3859 impl fidl::encoding::ValueTypeMarker for ManufacturerSpecificDataEntry {
3860 type Borrowed<'a> = &'a Self;
3861 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3862 value
3863 }
3864 }
3865
3866 unsafe impl fidl::encoding::TypeMarker for ManufacturerSpecificDataEntry {
3867 type Owned = Self;
3868
3869 #[inline(always)]
3870 fn inline_align(_context: fidl::encoding::Context) -> usize {
3871 8
3872 }
3873
3874 #[inline(always)]
3875 fn inline_size(_context: fidl::encoding::Context) -> usize {
3876 24
3877 }
3878 }
3879
3880 unsafe impl<D: fidl::encoding::ResourceDialect>
3881 fidl::encoding::Encode<ManufacturerSpecificDataEntry, D>
3882 for &ManufacturerSpecificDataEntry
3883 {
3884 #[inline]
3885 unsafe fn encode(
3886 self,
3887 encoder: &mut fidl::encoding::Encoder<'_, D>,
3888 offset: usize,
3889 _depth: fidl::encoding::Depth,
3890 ) -> fidl::Result<()> {
3891 encoder.debug_check_bounds::<ManufacturerSpecificDataEntry>(offset);
3892 fidl::encoding::Encode::<ManufacturerSpecificDataEntry, D>::encode(
3894 (
3895 <u16 as fidl::encoding::ValueTypeMarker>::borrow(&self.company_id),
3896 <fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow(&self.data),
3897 ),
3898 encoder, offset, _depth
3899 )
3900 }
3901 }
3902 unsafe impl<
3903 D: fidl::encoding::ResourceDialect,
3904 T0: fidl::encoding::Encode<u16, D>,
3905 T1: fidl::encoding::Encode<fidl::encoding::UnboundedVector<u8>, D>,
3906 > fidl::encoding::Encode<ManufacturerSpecificDataEntry, D> for (T0, T1)
3907 {
3908 #[inline]
3909 unsafe fn encode(
3910 self,
3911 encoder: &mut fidl::encoding::Encoder<'_, D>,
3912 offset: usize,
3913 depth: fidl::encoding::Depth,
3914 ) -> fidl::Result<()> {
3915 encoder.debug_check_bounds::<ManufacturerSpecificDataEntry>(offset);
3916 unsafe {
3919 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(0);
3920 (ptr as *mut u64).write_unaligned(0);
3921 }
3922 self.0.encode(encoder, offset + 0, depth)?;
3924 self.1.encode(encoder, offset + 8, depth)?;
3925 Ok(())
3926 }
3927 }
3928
3929 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3930 for ManufacturerSpecificDataEntry
3931 {
3932 #[inline(always)]
3933 fn new_empty() -> Self {
3934 Self {
3935 company_id: fidl::new_empty!(u16, D),
3936 data: fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D),
3937 }
3938 }
3939
3940 #[inline]
3941 unsafe fn decode(
3942 &mut self,
3943 decoder: &mut fidl::encoding::Decoder<'_, D>,
3944 offset: usize,
3945 _depth: fidl::encoding::Depth,
3946 ) -> fidl::Result<()> {
3947 decoder.debug_check_bounds::<Self>(offset);
3948 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(0) };
3950 let padval = unsafe { (ptr as *const u64).read_unaligned() };
3951 let mask = 0xffffffffffff0000u64;
3952 let maskedval = padval & mask;
3953 if maskedval != 0 {
3954 return Err(fidl::Error::NonZeroPadding {
3955 padding_start: offset + 0 + ((mask as u64).trailing_zeros() / 8) as usize,
3956 });
3957 }
3958 fidl::decode!(u16, D, &mut self.company_id, decoder, offset + 0, _depth)?;
3959 fidl::decode!(
3960 fidl::encoding::UnboundedVector<u8>,
3961 D,
3962 &mut self.data,
3963 decoder,
3964 offset + 8,
3965 _depth
3966 )?;
3967 Ok(())
3968 }
3969 }
3970
3971 impl fidl::encoding::ValueTypeMarker for PeriodicAdvertisingSyncId {
3972 type Borrowed<'a> = &'a Self;
3973 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3974 value
3975 }
3976 }
3977
3978 unsafe impl fidl::encoding::TypeMarker for PeriodicAdvertisingSyncId {
3979 type Owned = Self;
3980
3981 #[inline(always)]
3982 fn inline_align(_context: fidl::encoding::Context) -> usize {
3983 8
3984 }
3985
3986 #[inline(always)]
3987 fn inline_size(_context: fidl::encoding::Context) -> usize {
3988 8
3989 }
3990 #[inline(always)]
3991 fn encode_is_copy() -> bool {
3992 true
3993 }
3994
3995 #[inline(always)]
3996 fn decode_is_copy() -> bool {
3997 true
3998 }
3999 }
4000
4001 unsafe impl<D: fidl::encoding::ResourceDialect>
4002 fidl::encoding::Encode<PeriodicAdvertisingSyncId, D> for &PeriodicAdvertisingSyncId
4003 {
4004 #[inline]
4005 unsafe fn encode(
4006 self,
4007 encoder: &mut fidl::encoding::Encoder<'_, D>,
4008 offset: usize,
4009 _depth: fidl::encoding::Depth,
4010 ) -> fidl::Result<()> {
4011 encoder.debug_check_bounds::<PeriodicAdvertisingSyncId>(offset);
4012 unsafe {
4013 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
4015 (buf_ptr as *mut PeriodicAdvertisingSyncId)
4016 .write_unaligned((self as *const PeriodicAdvertisingSyncId).read());
4017 }
4020 Ok(())
4021 }
4022 }
4023 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<u64, D>>
4024 fidl::encoding::Encode<PeriodicAdvertisingSyncId, D> for (T0,)
4025 {
4026 #[inline]
4027 unsafe fn encode(
4028 self,
4029 encoder: &mut fidl::encoding::Encoder<'_, D>,
4030 offset: usize,
4031 depth: fidl::encoding::Depth,
4032 ) -> fidl::Result<()> {
4033 encoder.debug_check_bounds::<PeriodicAdvertisingSyncId>(offset);
4034 self.0.encode(encoder, offset + 0, depth)?;
4038 Ok(())
4039 }
4040 }
4041
4042 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
4043 for PeriodicAdvertisingSyncId
4044 {
4045 #[inline(always)]
4046 fn new_empty() -> Self {
4047 Self { value: fidl::new_empty!(u64, D) }
4048 }
4049
4050 #[inline]
4051 unsafe fn decode(
4052 &mut self,
4053 decoder: &mut fidl::encoding::Decoder<'_, D>,
4054 offset: usize,
4055 _depth: fidl::encoding::Depth,
4056 ) -> fidl::Result<()> {
4057 decoder.debug_check_bounds::<Self>(offset);
4058 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
4059 unsafe {
4062 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 8);
4063 }
4064 Ok(())
4065 }
4066 }
4067
4068 impl fidl::encoding::ValueTypeMarker for PeriodicAdvertisingSyncOnErrorRequest {
4069 type Borrowed<'a> = &'a Self;
4070 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4071 value
4072 }
4073 }
4074
4075 unsafe impl fidl::encoding::TypeMarker for PeriodicAdvertisingSyncOnErrorRequest {
4076 type Owned = Self;
4077
4078 #[inline(always)]
4079 fn inline_align(_context: fidl::encoding::Context) -> usize {
4080 4
4081 }
4082
4083 #[inline(always)]
4084 fn inline_size(_context: fidl::encoding::Context) -> usize {
4085 4
4086 }
4087 }
4088
4089 unsafe impl<D: fidl::encoding::ResourceDialect>
4090 fidl::encoding::Encode<PeriodicAdvertisingSyncOnErrorRequest, D>
4091 for &PeriodicAdvertisingSyncOnErrorRequest
4092 {
4093 #[inline]
4094 unsafe fn encode(
4095 self,
4096 encoder: &mut fidl::encoding::Encoder<'_, D>,
4097 offset: usize,
4098 _depth: fidl::encoding::Depth,
4099 ) -> fidl::Result<()> {
4100 encoder.debug_check_bounds::<PeriodicAdvertisingSyncOnErrorRequest>(offset);
4101 fidl::encoding::Encode::<PeriodicAdvertisingSyncOnErrorRequest, D>::encode(
4103 (<PeriodicAdvertisingSyncError as fidl::encoding::ValueTypeMarker>::borrow(
4104 &self.error,
4105 ),),
4106 encoder,
4107 offset,
4108 _depth,
4109 )
4110 }
4111 }
4112 unsafe impl<
4113 D: fidl::encoding::ResourceDialect,
4114 T0: fidl::encoding::Encode<PeriodicAdvertisingSyncError, D>,
4115 > fidl::encoding::Encode<PeriodicAdvertisingSyncOnErrorRequest, D> for (T0,)
4116 {
4117 #[inline]
4118 unsafe fn encode(
4119 self,
4120 encoder: &mut fidl::encoding::Encoder<'_, D>,
4121 offset: usize,
4122 depth: fidl::encoding::Depth,
4123 ) -> fidl::Result<()> {
4124 encoder.debug_check_bounds::<PeriodicAdvertisingSyncOnErrorRequest>(offset);
4125 self.0.encode(encoder, offset + 0, depth)?;
4129 Ok(())
4130 }
4131 }
4132
4133 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
4134 for PeriodicAdvertisingSyncOnErrorRequest
4135 {
4136 #[inline(always)]
4137 fn new_empty() -> Self {
4138 Self { error: fidl::new_empty!(PeriodicAdvertisingSyncError, D) }
4139 }
4140
4141 #[inline]
4142 unsafe fn decode(
4143 &mut self,
4144 decoder: &mut fidl::encoding::Decoder<'_, D>,
4145 offset: usize,
4146 _depth: fidl::encoding::Depth,
4147 ) -> fidl::Result<()> {
4148 decoder.debug_check_bounds::<Self>(offset);
4149 fidl::decode!(
4151 PeriodicAdvertisingSyncError,
4152 D,
4153 &mut self.error,
4154 decoder,
4155 offset + 0,
4156 _depth
4157 )?;
4158 Ok(())
4159 }
4160 }
4161
4162 impl fidl::encoding::ValueTypeMarker for RemoteDevice {
4163 type Borrowed<'a> = &'a Self;
4164 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4165 value
4166 }
4167 }
4168
4169 unsafe impl fidl::encoding::TypeMarker for RemoteDevice {
4170 type Owned = Self;
4171
4172 #[inline(always)]
4173 fn inline_align(_context: fidl::encoding::Context) -> usize {
4174 8
4175 }
4176
4177 #[inline(always)]
4178 fn inline_size(_context: fidl::encoding::Context) -> usize {
4179 40
4180 }
4181 }
4182
4183 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<RemoteDevice, D>
4184 for &RemoteDevice
4185 {
4186 #[inline]
4187 unsafe fn encode(
4188 self,
4189 encoder: &mut fidl::encoding::Encoder<'_, D>,
4190 offset: usize,
4191 _depth: fidl::encoding::Depth,
4192 ) -> fidl::Result<()> {
4193 encoder.debug_check_bounds::<RemoteDevice>(offset);
4194 fidl::encoding::Encode::<RemoteDevice, D>::encode(
4196 (
4197 <fidl::encoding::BoundedString<16> as fidl::encoding::ValueTypeMarker>::borrow(&self.identifier),
4198 <bool as fidl::encoding::ValueTypeMarker>::borrow(&self.connectable),
4199 <fidl::encoding::Boxed<fidl_fuchsia_bluetooth__common::Int8> as fidl::encoding::ValueTypeMarker>::borrow(&self.rssi),
4200 <fidl::encoding::Boxed<AdvertisingDataDeprecated> as fidl::encoding::ValueTypeMarker>::borrow(&self.advertising_data),
4201 ),
4202 encoder, offset, _depth
4203 )
4204 }
4205 }
4206 unsafe impl<
4207 D: fidl::encoding::ResourceDialect,
4208 T0: fidl::encoding::Encode<fidl::encoding::BoundedString<16>, D>,
4209 T1: fidl::encoding::Encode<bool, D>,
4210 T2: fidl::encoding::Encode<fidl::encoding::Boxed<fidl_fuchsia_bluetooth__common::Int8>, D>,
4211 T3: fidl::encoding::Encode<fidl::encoding::Boxed<AdvertisingDataDeprecated>, D>,
4212 > fidl::encoding::Encode<RemoteDevice, D> for (T0, T1, T2, T3)
4213 {
4214 #[inline]
4215 unsafe fn encode(
4216 self,
4217 encoder: &mut fidl::encoding::Encoder<'_, D>,
4218 offset: usize,
4219 depth: fidl::encoding::Depth,
4220 ) -> fidl::Result<()> {
4221 encoder.debug_check_bounds::<RemoteDevice>(offset);
4222 unsafe {
4225 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(16);
4226 (ptr as *mut u64).write_unaligned(0);
4227 }
4228 self.0.encode(encoder, offset + 0, depth)?;
4230 self.1.encode(encoder, offset + 16, depth)?;
4231 self.2.encode(encoder, offset + 24, depth)?;
4232 self.3.encode(encoder, offset + 32, depth)?;
4233 Ok(())
4234 }
4235 }
4236
4237 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for RemoteDevice {
4238 #[inline(always)]
4239 fn new_empty() -> Self {
4240 Self {
4241 identifier: fidl::new_empty!(fidl::encoding::BoundedString<16>, D),
4242 connectable: fidl::new_empty!(bool, D),
4243 rssi: fidl::new_empty!(
4244 fidl::encoding::Boxed<fidl_fuchsia_bluetooth__common::Int8>,
4245 D
4246 ),
4247 advertising_data: fidl::new_empty!(
4248 fidl::encoding::Boxed<AdvertisingDataDeprecated>,
4249 D
4250 ),
4251 }
4252 }
4253
4254 #[inline]
4255 unsafe fn decode(
4256 &mut self,
4257 decoder: &mut fidl::encoding::Decoder<'_, D>,
4258 offset: usize,
4259 _depth: fidl::encoding::Depth,
4260 ) -> fidl::Result<()> {
4261 decoder.debug_check_bounds::<Self>(offset);
4262 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(16) };
4264 let padval = unsafe { (ptr as *const u64).read_unaligned() };
4265 let mask = 0xffffffffffffff00u64;
4266 let maskedval = padval & mask;
4267 if maskedval != 0 {
4268 return Err(fidl::Error::NonZeroPadding {
4269 padding_start: offset + 16 + ((mask as u64).trailing_zeros() / 8) as usize,
4270 });
4271 }
4272 fidl::decode!(
4273 fidl::encoding::BoundedString<16>,
4274 D,
4275 &mut self.identifier,
4276 decoder,
4277 offset + 0,
4278 _depth
4279 )?;
4280 fidl::decode!(bool, D, &mut self.connectable, decoder, offset + 16, _depth)?;
4281 fidl::decode!(
4282 fidl::encoding::Boxed<fidl_fuchsia_bluetooth__common::Int8>,
4283 D,
4284 &mut self.rssi,
4285 decoder,
4286 offset + 24,
4287 _depth
4288 )?;
4289 fidl::decode!(
4290 fidl::encoding::Boxed<AdvertisingDataDeprecated>,
4291 D,
4292 &mut self.advertising_data,
4293 decoder,
4294 offset + 32,
4295 _depth
4296 )?;
4297 Ok(())
4298 }
4299 }
4300
4301 impl fidl::encoding::ValueTypeMarker for ScanFilter {
4302 type Borrowed<'a> = &'a Self;
4303 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4304 value
4305 }
4306 }
4307
4308 unsafe impl fidl::encoding::TypeMarker for ScanFilter {
4309 type Owned = Self;
4310
4311 #[inline(always)]
4312 fn inline_align(_context: fidl::encoding::Context) -> usize {
4313 8
4314 }
4315
4316 #[inline(always)]
4317 fn inline_size(_context: fidl::encoding::Context) -> usize {
4318 72
4319 }
4320 }
4321
4322 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ScanFilter, D>
4323 for &ScanFilter
4324 {
4325 #[inline]
4326 unsafe fn encode(
4327 self,
4328 encoder: &mut fidl::encoding::Encoder<'_, D>,
4329 offset: usize,
4330 _depth: fidl::encoding::Depth,
4331 ) -> fidl::Result<()> {
4332 encoder.debug_check_bounds::<ScanFilter>(offset);
4333 fidl::encoding::Encode::<ScanFilter, D>::encode(
4335 (
4336 <fidl::encoding::Optional<fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<36>>> as fidl::encoding::ValueTypeMarker>::borrow(&self.service_uuids),
4337 <fidl::encoding::Optional<fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<36>>> as fidl::encoding::ValueTypeMarker>::borrow(&self.service_data_uuids),
4338 <fidl::encoding::Boxed<fidl_fuchsia_bluetooth__common::UInt16> as fidl::encoding::ValueTypeMarker>::borrow(&self.manufacturer_identifier),
4339 <fidl::encoding::Boxed<fidl_fuchsia_bluetooth__common::Bool> as fidl::encoding::ValueTypeMarker>::borrow(&self.connectable),
4340 <fidl::encoding::Optional<fidl::encoding::BoundedString<248>> as fidl::encoding::ValueTypeMarker>::borrow(&self.name_substring),
4341 <fidl::encoding::Boxed<fidl_fuchsia_bluetooth__common::Int8> as fidl::encoding::ValueTypeMarker>::borrow(&self.max_path_loss),
4342 ),
4343 encoder, offset, _depth
4344 )
4345 }
4346 }
4347 unsafe impl<
4348 D: fidl::encoding::ResourceDialect,
4349 T0: fidl::encoding::Encode<
4350 fidl::encoding::Optional<
4351 fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<36>>,
4352 >,
4353 D,
4354 >,
4355 T1: fidl::encoding::Encode<
4356 fidl::encoding::Optional<
4357 fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<36>>,
4358 >,
4359 D,
4360 >,
4361 T2: fidl::encoding::Encode<fidl::encoding::Boxed<fidl_fuchsia_bluetooth__common::UInt16>, D>,
4362 T3: fidl::encoding::Encode<fidl::encoding::Boxed<fidl_fuchsia_bluetooth__common::Bool>, D>,
4363 T4: fidl::encoding::Encode<fidl::encoding::Optional<fidl::encoding::BoundedString<248>>, D>,
4364 T5: fidl::encoding::Encode<fidl::encoding::Boxed<fidl_fuchsia_bluetooth__common::Int8>, D>,
4365 > fidl::encoding::Encode<ScanFilter, D> for (T0, T1, T2, T3, T4, T5)
4366 {
4367 #[inline]
4368 unsafe fn encode(
4369 self,
4370 encoder: &mut fidl::encoding::Encoder<'_, D>,
4371 offset: usize,
4372 depth: fidl::encoding::Depth,
4373 ) -> fidl::Result<()> {
4374 encoder.debug_check_bounds::<ScanFilter>(offset);
4375 self.0.encode(encoder, offset + 0, depth)?;
4379 self.1.encode(encoder, offset + 16, depth)?;
4380 self.2.encode(encoder, offset + 32, depth)?;
4381 self.3.encode(encoder, offset + 40, depth)?;
4382 self.4.encode(encoder, offset + 48, depth)?;
4383 self.5.encode(encoder, offset + 64, depth)?;
4384 Ok(())
4385 }
4386 }
4387
4388 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ScanFilter {
4389 #[inline(always)]
4390 fn new_empty() -> Self {
4391 Self {
4392 service_uuids: fidl::new_empty!(
4393 fidl::encoding::Optional<
4394 fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<36>>,
4395 >,
4396 D
4397 ),
4398 service_data_uuids: fidl::new_empty!(
4399 fidl::encoding::Optional<
4400 fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<36>>,
4401 >,
4402 D
4403 ),
4404 manufacturer_identifier: fidl::new_empty!(
4405 fidl::encoding::Boxed<fidl_fuchsia_bluetooth__common::UInt16>,
4406 D
4407 ),
4408 connectable: fidl::new_empty!(
4409 fidl::encoding::Boxed<fidl_fuchsia_bluetooth__common::Bool>,
4410 D
4411 ),
4412 name_substring: fidl::new_empty!(
4413 fidl::encoding::Optional<fidl::encoding::BoundedString<248>>,
4414 D
4415 ),
4416 max_path_loss: fidl::new_empty!(
4417 fidl::encoding::Boxed<fidl_fuchsia_bluetooth__common::Int8>,
4418 D
4419 ),
4420 }
4421 }
4422
4423 #[inline]
4424 unsafe fn decode(
4425 &mut self,
4426 decoder: &mut fidl::encoding::Decoder<'_, D>,
4427 offset: usize,
4428 _depth: fidl::encoding::Depth,
4429 ) -> fidl::Result<()> {
4430 decoder.debug_check_bounds::<Self>(offset);
4431 fidl::decode!(
4433 fidl::encoding::Optional<
4434 fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<36>>,
4435 >,
4436 D,
4437 &mut self.service_uuids,
4438 decoder,
4439 offset + 0,
4440 _depth
4441 )?;
4442 fidl::decode!(
4443 fidl::encoding::Optional<
4444 fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<36>>,
4445 >,
4446 D,
4447 &mut self.service_data_uuids,
4448 decoder,
4449 offset + 16,
4450 _depth
4451 )?;
4452 fidl::decode!(
4453 fidl::encoding::Boxed<fidl_fuchsia_bluetooth__common::UInt16>,
4454 D,
4455 &mut self.manufacturer_identifier,
4456 decoder,
4457 offset + 32,
4458 _depth
4459 )?;
4460 fidl::decode!(
4461 fidl::encoding::Boxed<fidl_fuchsia_bluetooth__common::Bool>,
4462 D,
4463 &mut self.connectable,
4464 decoder,
4465 offset + 40,
4466 _depth
4467 )?;
4468 fidl::decode!(
4469 fidl::encoding::Optional<fidl::encoding::BoundedString<248>>,
4470 D,
4471 &mut self.name_substring,
4472 decoder,
4473 offset + 48,
4474 _depth
4475 )?;
4476 fidl::decode!(
4477 fidl::encoding::Boxed<fidl_fuchsia_bluetooth__common::Int8>,
4478 D,
4479 &mut self.max_path_loss,
4480 decoder,
4481 offset + 64,
4482 _depth
4483 )?;
4484 Ok(())
4485 }
4486 }
4487
4488 impl fidl::encoding::ValueTypeMarker for ScanResultWatcherWatchResponse {
4489 type Borrowed<'a> = &'a Self;
4490 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4491 value
4492 }
4493 }
4494
4495 unsafe impl fidl::encoding::TypeMarker for ScanResultWatcherWatchResponse {
4496 type Owned = Self;
4497
4498 #[inline(always)]
4499 fn inline_align(_context: fidl::encoding::Context) -> usize {
4500 8
4501 }
4502
4503 #[inline(always)]
4504 fn inline_size(_context: fidl::encoding::Context) -> usize {
4505 16
4506 }
4507 }
4508
4509 unsafe impl<D: fidl::encoding::ResourceDialect>
4510 fidl::encoding::Encode<ScanResultWatcherWatchResponse, D>
4511 for &ScanResultWatcherWatchResponse
4512 {
4513 #[inline]
4514 unsafe fn encode(
4515 self,
4516 encoder: &mut fidl::encoding::Encoder<'_, D>,
4517 offset: usize,
4518 _depth: fidl::encoding::Depth,
4519 ) -> fidl::Result<()> {
4520 encoder.debug_check_bounds::<ScanResultWatcherWatchResponse>(offset);
4521 fidl::encoding::Encode::<ScanResultWatcherWatchResponse, D>::encode(
4523 (
4524 <fidl::encoding::UnboundedVector<Peer> as fidl::encoding::ValueTypeMarker>::borrow(&self.updated),
4525 ),
4526 encoder, offset, _depth
4527 )
4528 }
4529 }
4530 unsafe impl<
4531 D: fidl::encoding::ResourceDialect,
4532 T0: fidl::encoding::Encode<fidl::encoding::UnboundedVector<Peer>, D>,
4533 > fidl::encoding::Encode<ScanResultWatcherWatchResponse, D> for (T0,)
4534 {
4535 #[inline]
4536 unsafe fn encode(
4537 self,
4538 encoder: &mut fidl::encoding::Encoder<'_, D>,
4539 offset: usize,
4540 depth: fidl::encoding::Depth,
4541 ) -> fidl::Result<()> {
4542 encoder.debug_check_bounds::<ScanResultWatcherWatchResponse>(offset);
4543 self.0.encode(encoder, offset + 0, depth)?;
4547 Ok(())
4548 }
4549 }
4550
4551 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
4552 for ScanResultWatcherWatchResponse
4553 {
4554 #[inline(always)]
4555 fn new_empty() -> Self {
4556 Self { updated: fidl::new_empty!(fidl::encoding::UnboundedVector<Peer>, D) }
4557 }
4558
4559 #[inline]
4560 unsafe fn decode(
4561 &mut self,
4562 decoder: &mut fidl::encoding::Decoder<'_, D>,
4563 offset: usize,
4564 _depth: fidl::encoding::Depth,
4565 ) -> fidl::Result<()> {
4566 decoder.debug_check_bounds::<Self>(offset);
4567 fidl::decode!(
4569 fidl::encoding::UnboundedVector<Peer>,
4570 D,
4571 &mut self.updated,
4572 decoder,
4573 offset + 0,
4574 _depth
4575 )?;
4576 Ok(())
4577 }
4578 }
4579
4580 impl fidl::encoding::ValueTypeMarker for ServiceData {
4581 type Borrowed<'a> = &'a Self;
4582 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4583 value
4584 }
4585 }
4586
4587 unsafe impl fidl::encoding::TypeMarker for ServiceData {
4588 type Owned = Self;
4589
4590 #[inline(always)]
4591 fn inline_align(_context: fidl::encoding::Context) -> usize {
4592 8
4593 }
4594
4595 #[inline(always)]
4596 fn inline_size(_context: fidl::encoding::Context) -> usize {
4597 32
4598 }
4599 }
4600
4601 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ServiceData, D>
4602 for &ServiceData
4603 {
4604 #[inline]
4605 unsafe fn encode(
4606 self,
4607 encoder: &mut fidl::encoding::Encoder<'_, D>,
4608 offset: usize,
4609 _depth: fidl::encoding::Depth,
4610 ) -> fidl::Result<()> {
4611 encoder.debug_check_bounds::<ServiceData>(offset);
4612 fidl::encoding::Encode::<ServiceData, D>::encode(
4614 (
4615 <fidl_fuchsia_bluetooth__common::Uuid as fidl::encoding::ValueTypeMarker>::borrow(&self.uuid),
4616 <fidl::encoding::Vector<u8, 252> as fidl::encoding::ValueTypeMarker>::borrow(&self.data),
4617 ),
4618 encoder, offset, _depth
4619 )
4620 }
4621 }
4622 unsafe impl<
4623 D: fidl::encoding::ResourceDialect,
4624 T0: fidl::encoding::Encode<fidl_fuchsia_bluetooth__common::Uuid, D>,
4625 T1: fidl::encoding::Encode<fidl::encoding::Vector<u8, 252>, D>,
4626 > fidl::encoding::Encode<ServiceData, D> for (T0, T1)
4627 {
4628 #[inline]
4629 unsafe fn encode(
4630 self,
4631 encoder: &mut fidl::encoding::Encoder<'_, D>,
4632 offset: usize,
4633 depth: fidl::encoding::Depth,
4634 ) -> fidl::Result<()> {
4635 encoder.debug_check_bounds::<ServiceData>(offset);
4636 self.0.encode(encoder, offset + 0, depth)?;
4640 self.1.encode(encoder, offset + 16, depth)?;
4641 Ok(())
4642 }
4643 }
4644
4645 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ServiceData {
4646 #[inline(always)]
4647 fn new_empty() -> Self {
4648 Self {
4649 uuid: fidl::new_empty!(fidl_fuchsia_bluetooth__common::Uuid, D),
4650 data: fidl::new_empty!(fidl::encoding::Vector<u8, 252>, D),
4651 }
4652 }
4653
4654 #[inline]
4655 unsafe fn decode(
4656 &mut self,
4657 decoder: &mut fidl::encoding::Decoder<'_, D>,
4658 offset: usize,
4659 _depth: fidl::encoding::Depth,
4660 ) -> fidl::Result<()> {
4661 decoder.debug_check_bounds::<Self>(offset);
4662 fidl::decode!(
4664 fidl_fuchsia_bluetooth__common::Uuid,
4665 D,
4666 &mut self.uuid,
4667 decoder,
4668 offset + 0,
4669 _depth
4670 )?;
4671 fidl::decode!(fidl::encoding::Vector<u8, 252>, D, &mut self.data, decoder, offset + 16, _depth)?;
4672 Ok(())
4673 }
4674 }
4675
4676 impl fidl::encoding::ValueTypeMarker for ServiceDataEntry {
4677 type Borrowed<'a> = &'a Self;
4678 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4679 value
4680 }
4681 }
4682
4683 unsafe impl fidl::encoding::TypeMarker for ServiceDataEntry {
4684 type Owned = Self;
4685
4686 #[inline(always)]
4687 fn inline_align(_context: fidl::encoding::Context) -> usize {
4688 8
4689 }
4690
4691 #[inline(always)]
4692 fn inline_size(_context: fidl::encoding::Context) -> usize {
4693 32
4694 }
4695 }
4696
4697 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ServiceDataEntry, D>
4698 for &ServiceDataEntry
4699 {
4700 #[inline]
4701 unsafe fn encode(
4702 self,
4703 encoder: &mut fidl::encoding::Encoder<'_, D>,
4704 offset: usize,
4705 _depth: fidl::encoding::Depth,
4706 ) -> fidl::Result<()> {
4707 encoder.debug_check_bounds::<ServiceDataEntry>(offset);
4708 fidl::encoding::Encode::<ServiceDataEntry, D>::encode(
4710 (
4711 <fidl::encoding::BoundedString<36> as fidl::encoding::ValueTypeMarker>::borrow(&self.uuid),
4712 <fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow(&self.data),
4713 ),
4714 encoder, offset, _depth
4715 )
4716 }
4717 }
4718 unsafe impl<
4719 D: fidl::encoding::ResourceDialect,
4720 T0: fidl::encoding::Encode<fidl::encoding::BoundedString<36>, D>,
4721 T1: fidl::encoding::Encode<fidl::encoding::UnboundedVector<u8>, D>,
4722 > fidl::encoding::Encode<ServiceDataEntry, D> for (T0, T1)
4723 {
4724 #[inline]
4725 unsafe fn encode(
4726 self,
4727 encoder: &mut fidl::encoding::Encoder<'_, D>,
4728 offset: usize,
4729 depth: fidl::encoding::Depth,
4730 ) -> fidl::Result<()> {
4731 encoder.debug_check_bounds::<ServiceDataEntry>(offset);
4732 self.0.encode(encoder, offset + 0, depth)?;
4736 self.1.encode(encoder, offset + 16, depth)?;
4737 Ok(())
4738 }
4739 }
4740
4741 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ServiceDataEntry {
4742 #[inline(always)]
4743 fn new_empty() -> Self {
4744 Self {
4745 uuid: fidl::new_empty!(fidl::encoding::BoundedString<36>, D),
4746 data: fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D),
4747 }
4748 }
4749
4750 #[inline]
4751 unsafe fn decode(
4752 &mut self,
4753 decoder: &mut fidl::encoding::Decoder<'_, D>,
4754 offset: usize,
4755 _depth: fidl::encoding::Depth,
4756 ) -> fidl::Result<()> {
4757 decoder.debug_check_bounds::<Self>(offset);
4758 fidl::decode!(
4760 fidl::encoding::BoundedString<36>,
4761 D,
4762 &mut self.uuid,
4763 decoder,
4764 offset + 0,
4765 _depth
4766 )?;
4767 fidl::decode!(
4768 fidl::encoding::UnboundedVector<u8>,
4769 D,
4770 &mut self.data,
4771 decoder,
4772 offset + 16,
4773 _depth
4774 )?;
4775 Ok(())
4776 }
4777 }
4778
4779 impl AcceptedChannelParameters {
4780 #[inline(always)]
4781 fn max_ordinal_present(&self) -> u64 {
4782 if let Some(_) = self.max_packet_size {
4783 return 2;
4784 }
4785 if let Some(_) = self.accepted_channel_modes {
4786 return 1;
4787 }
4788 0
4789 }
4790 }
4791
4792 impl fidl::encoding::ValueTypeMarker for AcceptedChannelParameters {
4793 type Borrowed<'a> = &'a Self;
4794 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4795 value
4796 }
4797 }
4798
4799 unsafe impl fidl::encoding::TypeMarker for AcceptedChannelParameters {
4800 type Owned = Self;
4801
4802 #[inline(always)]
4803 fn inline_align(_context: fidl::encoding::Context) -> usize {
4804 8
4805 }
4806
4807 #[inline(always)]
4808 fn inline_size(_context: fidl::encoding::Context) -> usize {
4809 16
4810 }
4811 }
4812
4813 unsafe impl<D: fidl::encoding::ResourceDialect>
4814 fidl::encoding::Encode<AcceptedChannelParameters, D> for &AcceptedChannelParameters
4815 {
4816 unsafe fn encode(
4817 self,
4818 encoder: &mut fidl::encoding::Encoder<'_, D>,
4819 offset: usize,
4820 mut depth: fidl::encoding::Depth,
4821 ) -> fidl::Result<()> {
4822 encoder.debug_check_bounds::<AcceptedChannelParameters>(offset);
4823 let max_ordinal: u64 = self.max_ordinal_present();
4825 encoder.write_num(max_ordinal, offset);
4826 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
4827 if max_ordinal == 0 {
4829 return Ok(());
4830 }
4831 depth.increment()?;
4832 let envelope_size = 8;
4833 let bytes_len = max_ordinal as usize * envelope_size;
4834 #[allow(unused_variables)]
4835 let offset = encoder.out_of_line_offset(bytes_len);
4836 let mut _prev_end_offset: usize = 0;
4837 if 1 > max_ordinal {
4838 return Ok(());
4839 }
4840
4841 let cur_offset: usize = (1 - 1) * envelope_size;
4844
4845 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4847
4848 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<fidl_fuchsia_bluetooth__common::ChannelMode>, D>(
4853 self.accepted_channel_modes.as_ref().map(<fidl::encoding::UnboundedVector<fidl_fuchsia_bluetooth__common::ChannelMode> as fidl::encoding::ValueTypeMarker>::borrow),
4854 encoder, offset + cur_offset, depth
4855 )?;
4856
4857 _prev_end_offset = cur_offset + envelope_size;
4858 if 2 > max_ordinal {
4859 return Ok(());
4860 }
4861
4862 let cur_offset: usize = (2 - 1) * envelope_size;
4865
4866 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4868
4869 fidl::encoding::encode_in_envelope_optional::<u16, D>(
4874 self.max_packet_size.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
4875 encoder,
4876 offset + cur_offset,
4877 depth,
4878 )?;
4879
4880 _prev_end_offset = cur_offset + envelope_size;
4881
4882 Ok(())
4883 }
4884 }
4885
4886 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
4887 for AcceptedChannelParameters
4888 {
4889 #[inline(always)]
4890 fn new_empty() -> Self {
4891 Self::default()
4892 }
4893
4894 unsafe fn decode(
4895 &mut self,
4896 decoder: &mut fidl::encoding::Decoder<'_, D>,
4897 offset: usize,
4898 mut depth: fidl::encoding::Depth,
4899 ) -> fidl::Result<()> {
4900 decoder.debug_check_bounds::<Self>(offset);
4901 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
4902 None => return Err(fidl::Error::NotNullable),
4903 Some(len) => len,
4904 };
4905 if len == 0 {
4907 return Ok(());
4908 };
4909 depth.increment()?;
4910 let envelope_size = 8;
4911 let bytes_len = len * envelope_size;
4912 let offset = decoder.out_of_line_offset(bytes_len)?;
4913 let mut _next_ordinal_to_read = 0;
4915 let mut next_offset = offset;
4916 let end_offset = offset + bytes_len;
4917 _next_ordinal_to_read += 1;
4918 if next_offset >= end_offset {
4919 return Ok(());
4920 }
4921
4922 while _next_ordinal_to_read < 1 {
4924 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4925 _next_ordinal_to_read += 1;
4926 next_offset += envelope_size;
4927 }
4928
4929 let next_out_of_line = decoder.next_out_of_line();
4930 let handles_before = decoder.remaining_handles();
4931 if let Some((inlined, num_bytes, num_handles)) =
4932 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4933 {
4934 let member_inline_size = <fidl::encoding::UnboundedVector<
4935 fidl_fuchsia_bluetooth__common::ChannelMode,
4936 > as fidl::encoding::TypeMarker>::inline_size(
4937 decoder.context
4938 );
4939 if inlined != (member_inline_size <= 4) {
4940 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4941 }
4942 let inner_offset;
4943 let mut inner_depth = depth.clone();
4944 if inlined {
4945 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4946 inner_offset = next_offset;
4947 } else {
4948 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4949 inner_depth.increment()?;
4950 }
4951 let val_ref = self.accepted_channel_modes.get_or_insert_with(|| {
4952 fidl::new_empty!(
4953 fidl::encoding::UnboundedVector<
4954 fidl_fuchsia_bluetooth__common::ChannelMode,
4955 >,
4956 D
4957 )
4958 });
4959 fidl::decode!(
4960 fidl::encoding::UnboundedVector<fidl_fuchsia_bluetooth__common::ChannelMode>,
4961 D,
4962 val_ref,
4963 decoder,
4964 inner_offset,
4965 inner_depth
4966 )?;
4967 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4968 {
4969 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4970 }
4971 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4972 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4973 }
4974 }
4975
4976 next_offset += envelope_size;
4977 _next_ordinal_to_read += 1;
4978 if next_offset >= end_offset {
4979 return Ok(());
4980 }
4981
4982 while _next_ordinal_to_read < 2 {
4984 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4985 _next_ordinal_to_read += 1;
4986 next_offset += envelope_size;
4987 }
4988
4989 let next_out_of_line = decoder.next_out_of_line();
4990 let handles_before = decoder.remaining_handles();
4991 if let Some((inlined, num_bytes, num_handles)) =
4992 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4993 {
4994 let member_inline_size =
4995 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4996 if inlined != (member_inline_size <= 4) {
4997 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4998 }
4999 let inner_offset;
5000 let mut inner_depth = depth.clone();
5001 if inlined {
5002 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5003 inner_offset = next_offset;
5004 } else {
5005 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5006 inner_depth.increment()?;
5007 }
5008 let val_ref = self.max_packet_size.get_or_insert_with(|| fidl::new_empty!(u16, D));
5009 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
5010 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5011 {
5012 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5013 }
5014 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5015 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5016 }
5017 }
5018
5019 next_offset += envelope_size;
5020
5021 while next_offset < end_offset {
5023 _next_ordinal_to_read += 1;
5024 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5025 next_offset += envelope_size;
5026 }
5027
5028 Ok(())
5029 }
5030 }
5031
5032 impl AdvertisingData {
5033 #[inline(always)]
5034 fn max_ordinal_present(&self) -> u64 {
5035 if let Some(_) = self.broadcast_name {
5036 return 10;
5037 }
5038 if let Some(_) = self.resolvable_set_identifier {
5039 return 9;
5040 }
5041 if let Some(_) = self.include_tx_power_level {
5042 return 8;
5043 }
5044 if let Some(_) = self.uris {
5045 return 7;
5046 }
5047 if let Some(_) = self.manufacturer_data {
5048 return 6;
5049 }
5050 if let Some(_) = self.service_data {
5051 return 5;
5052 }
5053 if let Some(_) = self.service_uuids {
5054 return 4;
5055 }
5056 if let Some(_) = self.tx_power_level {
5057 return 3;
5058 }
5059 if let Some(_) = self.appearance {
5060 return 2;
5061 }
5062 if let Some(_) = self.name {
5063 return 1;
5064 }
5065 0
5066 }
5067 }
5068
5069 impl fidl::encoding::ValueTypeMarker for AdvertisingData {
5070 type Borrowed<'a> = &'a Self;
5071 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5072 value
5073 }
5074 }
5075
5076 unsafe impl fidl::encoding::TypeMarker for AdvertisingData {
5077 type Owned = Self;
5078
5079 #[inline(always)]
5080 fn inline_align(_context: fidl::encoding::Context) -> usize {
5081 8
5082 }
5083
5084 #[inline(always)]
5085 fn inline_size(_context: fidl::encoding::Context) -> usize {
5086 16
5087 }
5088 }
5089
5090 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<AdvertisingData, D>
5091 for &AdvertisingData
5092 {
5093 unsafe fn encode(
5094 self,
5095 encoder: &mut fidl::encoding::Encoder<'_, D>,
5096 offset: usize,
5097 mut depth: fidl::encoding::Depth,
5098 ) -> fidl::Result<()> {
5099 encoder.debug_check_bounds::<AdvertisingData>(offset);
5100 let max_ordinal: u64 = self.max_ordinal_present();
5102 encoder.write_num(max_ordinal, offset);
5103 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
5104 if max_ordinal == 0 {
5106 return Ok(());
5107 }
5108 depth.increment()?;
5109 let envelope_size = 8;
5110 let bytes_len = max_ordinal as usize * envelope_size;
5111 #[allow(unused_variables)]
5112 let offset = encoder.out_of_line_offset(bytes_len);
5113 let mut _prev_end_offset: usize = 0;
5114 if 1 > max_ordinal {
5115 return Ok(());
5116 }
5117
5118 let cur_offset: usize = (1 - 1) * envelope_size;
5121
5122 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5124
5125 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<248>, D>(
5130 self.name.as_ref().map(
5131 <fidl::encoding::BoundedString<248> as fidl::encoding::ValueTypeMarker>::borrow,
5132 ),
5133 encoder,
5134 offset + cur_offset,
5135 depth,
5136 )?;
5137
5138 _prev_end_offset = cur_offset + envelope_size;
5139 if 2 > max_ordinal {
5140 return Ok(());
5141 }
5142
5143 let cur_offset: usize = (2 - 1) * envelope_size;
5146
5147 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5149
5150 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_bluetooth__common::Appearance, D>(
5155 self.appearance.as_ref().map(<fidl_fuchsia_bluetooth__common::Appearance as fidl::encoding::ValueTypeMarker>::borrow),
5156 encoder, offset + cur_offset, depth
5157 )?;
5158
5159 _prev_end_offset = cur_offset + envelope_size;
5160 if 3 > max_ordinal {
5161 return Ok(());
5162 }
5163
5164 let cur_offset: usize = (3 - 1) * envelope_size;
5167
5168 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5170
5171 fidl::encoding::encode_in_envelope_optional::<i8, D>(
5176 self.tx_power_level.as_ref().map(<i8 as fidl::encoding::ValueTypeMarker>::borrow),
5177 encoder,
5178 offset + cur_offset,
5179 depth,
5180 )?;
5181
5182 _prev_end_offset = cur_offset + envelope_size;
5183 if 4 > max_ordinal {
5184 return Ok(());
5185 }
5186
5187 let cur_offset: usize = (4 - 1) * envelope_size;
5190
5191 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5193
5194 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<fidl_fuchsia_bluetooth__common::Uuid>, D>(
5199 self.service_uuids.as_ref().map(<fidl::encoding::UnboundedVector<fidl_fuchsia_bluetooth__common::Uuid> as fidl::encoding::ValueTypeMarker>::borrow),
5200 encoder, offset + cur_offset, depth
5201 )?;
5202
5203 _prev_end_offset = cur_offset + envelope_size;
5204 if 5 > max_ordinal {
5205 return Ok(());
5206 }
5207
5208 let cur_offset: usize = (5 - 1) * envelope_size;
5211
5212 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5214
5215 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<ServiceData>, D>(
5220 self.service_data.as_ref().map(<fidl::encoding::UnboundedVector<ServiceData> as fidl::encoding::ValueTypeMarker>::borrow),
5221 encoder, offset + cur_offset, depth
5222 )?;
5223
5224 _prev_end_offset = cur_offset + envelope_size;
5225 if 6 > max_ordinal {
5226 return Ok(());
5227 }
5228
5229 let cur_offset: usize = (6 - 1) * envelope_size;
5232
5233 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5235
5236 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<ManufacturerData>, D>(
5241 self.manufacturer_data.as_ref().map(<fidl::encoding::UnboundedVector<ManufacturerData> as fidl::encoding::ValueTypeMarker>::borrow),
5242 encoder, offset + cur_offset, depth
5243 )?;
5244
5245 _prev_end_offset = cur_offset + envelope_size;
5246 if 7 > max_ordinal {
5247 return Ok(());
5248 }
5249
5250 let cur_offset: usize = (7 - 1) * envelope_size;
5253
5254 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5256
5257 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<278>>, D>(
5262 self.uris.as_ref().map(<fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<278>> as fidl::encoding::ValueTypeMarker>::borrow),
5263 encoder, offset + cur_offset, depth
5264 )?;
5265
5266 _prev_end_offset = cur_offset + envelope_size;
5267 if 8 > max_ordinal {
5268 return Ok(());
5269 }
5270
5271 let cur_offset: usize = (8 - 1) * envelope_size;
5274
5275 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5277
5278 fidl::encoding::encode_in_envelope_optional::<bool, D>(
5283 self.include_tx_power_level
5284 .as_ref()
5285 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
5286 encoder,
5287 offset + cur_offset,
5288 depth,
5289 )?;
5290
5291 _prev_end_offset = cur_offset + envelope_size;
5292 if 9 > max_ordinal {
5293 return Ok(());
5294 }
5295
5296 let cur_offset: usize = (9 - 1) * envelope_size;
5299
5300 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5302
5303 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
5308 self.resolvable_set_identifier
5309 .as_ref()
5310 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
5311 encoder,
5312 offset + cur_offset,
5313 depth,
5314 )?;
5315
5316 _prev_end_offset = cur_offset + envelope_size;
5317 if 10 > max_ordinal {
5318 return Ok(());
5319 }
5320
5321 let cur_offset: usize = (10 - 1) * envelope_size;
5324
5325 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5327
5328 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<128>, D>(
5333 self.broadcast_name.as_ref().map(
5334 <fidl::encoding::BoundedString<128> as fidl::encoding::ValueTypeMarker>::borrow,
5335 ),
5336 encoder,
5337 offset + cur_offset,
5338 depth,
5339 )?;
5340
5341 _prev_end_offset = cur_offset + envelope_size;
5342
5343 Ok(())
5344 }
5345 }
5346
5347 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for AdvertisingData {
5348 #[inline(always)]
5349 fn new_empty() -> Self {
5350 Self::default()
5351 }
5352
5353 unsafe fn decode(
5354 &mut self,
5355 decoder: &mut fidl::encoding::Decoder<'_, D>,
5356 offset: usize,
5357 mut depth: fidl::encoding::Depth,
5358 ) -> fidl::Result<()> {
5359 decoder.debug_check_bounds::<Self>(offset);
5360 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
5361 None => return Err(fidl::Error::NotNullable),
5362 Some(len) => len,
5363 };
5364 if len == 0 {
5366 return Ok(());
5367 };
5368 depth.increment()?;
5369 let envelope_size = 8;
5370 let bytes_len = len * envelope_size;
5371 let offset = decoder.out_of_line_offset(bytes_len)?;
5372 let mut _next_ordinal_to_read = 0;
5374 let mut next_offset = offset;
5375 let end_offset = offset + bytes_len;
5376 _next_ordinal_to_read += 1;
5377 if next_offset >= end_offset {
5378 return Ok(());
5379 }
5380
5381 while _next_ordinal_to_read < 1 {
5383 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5384 _next_ordinal_to_read += 1;
5385 next_offset += envelope_size;
5386 }
5387
5388 let next_out_of_line = decoder.next_out_of_line();
5389 let handles_before = decoder.remaining_handles();
5390 if let Some((inlined, num_bytes, num_handles)) =
5391 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5392 {
5393 let member_inline_size =
5394 <fidl::encoding::BoundedString<248> as fidl::encoding::TypeMarker>::inline_size(
5395 decoder.context,
5396 );
5397 if inlined != (member_inline_size <= 4) {
5398 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5399 }
5400 let inner_offset;
5401 let mut inner_depth = depth.clone();
5402 if inlined {
5403 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5404 inner_offset = next_offset;
5405 } else {
5406 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5407 inner_depth.increment()?;
5408 }
5409 let val_ref = self
5410 .name
5411 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<248>, D));
5412 fidl::decode!(
5413 fidl::encoding::BoundedString<248>,
5414 D,
5415 val_ref,
5416 decoder,
5417 inner_offset,
5418 inner_depth
5419 )?;
5420 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5421 {
5422 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5423 }
5424 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5425 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5426 }
5427 }
5428
5429 next_offset += envelope_size;
5430 _next_ordinal_to_read += 1;
5431 if next_offset >= end_offset {
5432 return Ok(());
5433 }
5434
5435 while _next_ordinal_to_read < 2 {
5437 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5438 _next_ordinal_to_read += 1;
5439 next_offset += envelope_size;
5440 }
5441
5442 let next_out_of_line = decoder.next_out_of_line();
5443 let handles_before = decoder.remaining_handles();
5444 if let Some((inlined, num_bytes, num_handles)) =
5445 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5446 {
5447 let member_inline_size = <fidl_fuchsia_bluetooth__common::Appearance as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5448 if inlined != (member_inline_size <= 4) {
5449 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5450 }
5451 let inner_offset;
5452 let mut inner_depth = depth.clone();
5453 if inlined {
5454 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5455 inner_offset = next_offset;
5456 } else {
5457 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5458 inner_depth.increment()?;
5459 }
5460 let val_ref = self.appearance.get_or_insert_with(|| {
5461 fidl::new_empty!(fidl_fuchsia_bluetooth__common::Appearance, D)
5462 });
5463 fidl::decode!(
5464 fidl_fuchsia_bluetooth__common::Appearance,
5465 D,
5466 val_ref,
5467 decoder,
5468 inner_offset,
5469 inner_depth
5470 )?;
5471 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5472 {
5473 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5474 }
5475 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5476 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5477 }
5478 }
5479
5480 next_offset += envelope_size;
5481 _next_ordinal_to_read += 1;
5482 if next_offset >= end_offset {
5483 return Ok(());
5484 }
5485
5486 while _next_ordinal_to_read < 3 {
5488 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5489 _next_ordinal_to_read += 1;
5490 next_offset += envelope_size;
5491 }
5492
5493 let next_out_of_line = decoder.next_out_of_line();
5494 let handles_before = decoder.remaining_handles();
5495 if let Some((inlined, num_bytes, num_handles)) =
5496 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5497 {
5498 let member_inline_size =
5499 <i8 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5500 if inlined != (member_inline_size <= 4) {
5501 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5502 }
5503 let inner_offset;
5504 let mut inner_depth = depth.clone();
5505 if inlined {
5506 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5507 inner_offset = next_offset;
5508 } else {
5509 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5510 inner_depth.increment()?;
5511 }
5512 let val_ref = self.tx_power_level.get_or_insert_with(|| fidl::new_empty!(i8, D));
5513 fidl::decode!(i8, D, val_ref, decoder, inner_offset, inner_depth)?;
5514 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5515 {
5516 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5517 }
5518 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5519 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5520 }
5521 }
5522
5523 next_offset += envelope_size;
5524 _next_ordinal_to_read += 1;
5525 if next_offset >= end_offset {
5526 return Ok(());
5527 }
5528
5529 while _next_ordinal_to_read < 4 {
5531 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5532 _next_ordinal_to_read += 1;
5533 next_offset += envelope_size;
5534 }
5535
5536 let next_out_of_line = decoder.next_out_of_line();
5537 let handles_before = decoder.remaining_handles();
5538 if let Some((inlined, num_bytes, num_handles)) =
5539 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5540 {
5541 let member_inline_size = <fidl::encoding::UnboundedVector<
5542 fidl_fuchsia_bluetooth__common::Uuid,
5543 > as fidl::encoding::TypeMarker>::inline_size(
5544 decoder.context
5545 );
5546 if inlined != (member_inline_size <= 4) {
5547 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5548 }
5549 let inner_offset;
5550 let mut inner_depth = depth.clone();
5551 if inlined {
5552 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5553 inner_offset = next_offset;
5554 } else {
5555 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5556 inner_depth.increment()?;
5557 }
5558 let val_ref = self.service_uuids.get_or_insert_with(|| {
5559 fidl::new_empty!(
5560 fidl::encoding::UnboundedVector<fidl_fuchsia_bluetooth__common::Uuid>,
5561 D
5562 )
5563 });
5564 fidl::decode!(
5565 fidl::encoding::UnboundedVector<fidl_fuchsia_bluetooth__common::Uuid>,
5566 D,
5567 val_ref,
5568 decoder,
5569 inner_offset,
5570 inner_depth
5571 )?;
5572 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5573 {
5574 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5575 }
5576 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5577 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5578 }
5579 }
5580
5581 next_offset += envelope_size;
5582 _next_ordinal_to_read += 1;
5583 if next_offset >= end_offset {
5584 return Ok(());
5585 }
5586
5587 while _next_ordinal_to_read < 5 {
5589 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5590 _next_ordinal_to_read += 1;
5591 next_offset += envelope_size;
5592 }
5593
5594 let next_out_of_line = decoder.next_out_of_line();
5595 let handles_before = decoder.remaining_handles();
5596 if let Some((inlined, num_bytes, num_handles)) =
5597 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5598 {
5599 let member_inline_size = <fidl::encoding::UnboundedVector<ServiceData> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5600 if inlined != (member_inline_size <= 4) {
5601 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5602 }
5603 let inner_offset;
5604 let mut inner_depth = depth.clone();
5605 if inlined {
5606 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5607 inner_offset = next_offset;
5608 } else {
5609 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5610 inner_depth.increment()?;
5611 }
5612 let val_ref = self.service_data.get_or_insert_with(|| {
5613 fidl::new_empty!(fidl::encoding::UnboundedVector<ServiceData>, D)
5614 });
5615 fidl::decode!(
5616 fidl::encoding::UnboundedVector<ServiceData>,
5617 D,
5618 val_ref,
5619 decoder,
5620 inner_offset,
5621 inner_depth
5622 )?;
5623 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5624 {
5625 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5626 }
5627 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5628 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5629 }
5630 }
5631
5632 next_offset += envelope_size;
5633 _next_ordinal_to_read += 1;
5634 if next_offset >= end_offset {
5635 return Ok(());
5636 }
5637
5638 while _next_ordinal_to_read < 6 {
5640 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5641 _next_ordinal_to_read += 1;
5642 next_offset += envelope_size;
5643 }
5644
5645 let next_out_of_line = decoder.next_out_of_line();
5646 let handles_before = decoder.remaining_handles();
5647 if let Some((inlined, num_bytes, num_handles)) =
5648 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5649 {
5650 let member_inline_size = <fidl::encoding::UnboundedVector<ManufacturerData> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5651 if inlined != (member_inline_size <= 4) {
5652 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5653 }
5654 let inner_offset;
5655 let mut inner_depth = depth.clone();
5656 if inlined {
5657 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5658 inner_offset = next_offset;
5659 } else {
5660 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5661 inner_depth.increment()?;
5662 }
5663 let val_ref = self.manufacturer_data.get_or_insert_with(|| {
5664 fidl::new_empty!(fidl::encoding::UnboundedVector<ManufacturerData>, D)
5665 });
5666 fidl::decode!(
5667 fidl::encoding::UnboundedVector<ManufacturerData>,
5668 D,
5669 val_ref,
5670 decoder,
5671 inner_offset,
5672 inner_depth
5673 )?;
5674 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5675 {
5676 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5677 }
5678 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5679 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5680 }
5681 }
5682
5683 next_offset += envelope_size;
5684 _next_ordinal_to_read += 1;
5685 if next_offset >= end_offset {
5686 return Ok(());
5687 }
5688
5689 while _next_ordinal_to_read < 7 {
5691 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5692 _next_ordinal_to_read += 1;
5693 next_offset += envelope_size;
5694 }
5695
5696 let next_out_of_line = decoder.next_out_of_line();
5697 let handles_before = decoder.remaining_handles();
5698 if let Some((inlined, num_bytes, num_handles)) =
5699 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5700 {
5701 let member_inline_size = <fidl::encoding::UnboundedVector<
5702 fidl::encoding::BoundedString<278>,
5703 > as fidl::encoding::TypeMarker>::inline_size(
5704 decoder.context
5705 );
5706 if inlined != (member_inline_size <= 4) {
5707 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5708 }
5709 let inner_offset;
5710 let mut inner_depth = depth.clone();
5711 if inlined {
5712 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5713 inner_offset = next_offset;
5714 } else {
5715 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5716 inner_depth.increment()?;
5717 }
5718 let val_ref = self.uris.get_or_insert_with(|| {
5719 fidl::new_empty!(
5720 fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<278>>,
5721 D
5722 )
5723 });
5724 fidl::decode!(
5725 fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<278>>,
5726 D,
5727 val_ref,
5728 decoder,
5729 inner_offset,
5730 inner_depth
5731 )?;
5732 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5733 {
5734 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5735 }
5736 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5737 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5738 }
5739 }
5740
5741 next_offset += envelope_size;
5742 _next_ordinal_to_read += 1;
5743 if next_offset >= end_offset {
5744 return Ok(());
5745 }
5746
5747 while _next_ordinal_to_read < 8 {
5749 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5750 _next_ordinal_to_read += 1;
5751 next_offset += envelope_size;
5752 }
5753
5754 let next_out_of_line = decoder.next_out_of_line();
5755 let handles_before = decoder.remaining_handles();
5756 if let Some((inlined, num_bytes, num_handles)) =
5757 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5758 {
5759 let member_inline_size =
5760 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5761 if inlined != (member_inline_size <= 4) {
5762 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5763 }
5764 let inner_offset;
5765 let mut inner_depth = depth.clone();
5766 if inlined {
5767 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5768 inner_offset = next_offset;
5769 } else {
5770 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5771 inner_depth.increment()?;
5772 }
5773 let val_ref =
5774 self.include_tx_power_level.get_or_insert_with(|| fidl::new_empty!(bool, D));
5775 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
5776 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5777 {
5778 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5779 }
5780 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5781 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5782 }
5783 }
5784
5785 next_offset += envelope_size;
5786 _next_ordinal_to_read += 1;
5787 if next_offset >= end_offset {
5788 return Ok(());
5789 }
5790
5791 while _next_ordinal_to_read < 9 {
5793 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5794 _next_ordinal_to_read += 1;
5795 next_offset += envelope_size;
5796 }
5797
5798 let next_out_of_line = decoder.next_out_of_line();
5799 let handles_before = decoder.remaining_handles();
5800 if let Some((inlined, num_bytes, num_handles)) =
5801 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5802 {
5803 let member_inline_size =
5804 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
5805 decoder.context,
5806 );
5807 if inlined != (member_inline_size <= 4) {
5808 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5809 }
5810 let inner_offset;
5811 let mut inner_depth = depth.clone();
5812 if inlined {
5813 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5814 inner_offset = next_offset;
5815 } else {
5816 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5817 inner_depth.increment()?;
5818 }
5819 let val_ref = self
5820 .resolvable_set_identifier
5821 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
5822 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
5823 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5824 {
5825 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5826 }
5827 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5828 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5829 }
5830 }
5831
5832 next_offset += envelope_size;
5833 _next_ordinal_to_read += 1;
5834 if next_offset >= end_offset {
5835 return Ok(());
5836 }
5837
5838 while _next_ordinal_to_read < 10 {
5840 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5841 _next_ordinal_to_read += 1;
5842 next_offset += envelope_size;
5843 }
5844
5845 let next_out_of_line = decoder.next_out_of_line();
5846 let handles_before = decoder.remaining_handles();
5847 if let Some((inlined, num_bytes, num_handles)) =
5848 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5849 {
5850 let member_inline_size =
5851 <fidl::encoding::BoundedString<128> as fidl::encoding::TypeMarker>::inline_size(
5852 decoder.context,
5853 );
5854 if inlined != (member_inline_size <= 4) {
5855 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5856 }
5857 let inner_offset;
5858 let mut inner_depth = depth.clone();
5859 if inlined {
5860 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5861 inner_offset = next_offset;
5862 } else {
5863 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5864 inner_depth.increment()?;
5865 }
5866 let val_ref = self
5867 .broadcast_name
5868 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<128>, D));
5869 fidl::decode!(
5870 fidl::encoding::BoundedString<128>,
5871 D,
5872 val_ref,
5873 decoder,
5874 inner_offset,
5875 inner_depth
5876 )?;
5877 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5878 {
5879 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5880 }
5881 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5882 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5883 }
5884 }
5885
5886 next_offset += envelope_size;
5887
5888 while next_offset < end_offset {
5890 _next_ordinal_to_read += 1;
5891 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5892 next_offset += envelope_size;
5893 }
5894
5895 Ok(())
5896 }
5897 }
5898
5899 impl AdvertisingParameters {
5900 #[inline(always)]
5901 fn max_ordinal_present(&self) -> u64 {
5902 if let Some(_) = self.address_type {
5903 return 7;
5904 }
5905 if let Some(_) = self.advertising_procedure {
5906 return 6;
5907 }
5908 if let Some(_) = self.connection_options {
5909 return 5;
5910 }
5911 if let Some(_) = self.connectable {
5912 return 4;
5913 }
5914 if let Some(_) = self.mode_hint {
5915 return 3;
5916 }
5917 if let Some(_) = self.scan_response {
5918 return 2;
5919 }
5920 if let Some(_) = self.data {
5921 return 1;
5922 }
5923 0
5924 }
5925 }
5926
5927 impl fidl::encoding::ValueTypeMarker for AdvertisingParameters {
5928 type Borrowed<'a> = &'a Self;
5929 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5930 value
5931 }
5932 }
5933
5934 unsafe impl fidl::encoding::TypeMarker for AdvertisingParameters {
5935 type Owned = Self;
5936
5937 #[inline(always)]
5938 fn inline_align(_context: fidl::encoding::Context) -> usize {
5939 8
5940 }
5941
5942 #[inline(always)]
5943 fn inline_size(_context: fidl::encoding::Context) -> usize {
5944 16
5945 }
5946 }
5947
5948 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<AdvertisingParameters, D>
5949 for &AdvertisingParameters
5950 {
5951 unsafe fn encode(
5952 self,
5953 encoder: &mut fidl::encoding::Encoder<'_, D>,
5954 offset: usize,
5955 mut depth: fidl::encoding::Depth,
5956 ) -> fidl::Result<()> {
5957 encoder.debug_check_bounds::<AdvertisingParameters>(offset);
5958 let max_ordinal: u64 = self.max_ordinal_present();
5960 encoder.write_num(max_ordinal, offset);
5961 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
5962 if max_ordinal == 0 {
5964 return Ok(());
5965 }
5966 depth.increment()?;
5967 let envelope_size = 8;
5968 let bytes_len = max_ordinal as usize * envelope_size;
5969 #[allow(unused_variables)]
5970 let offset = encoder.out_of_line_offset(bytes_len);
5971 let mut _prev_end_offset: usize = 0;
5972 if 1 > max_ordinal {
5973 return Ok(());
5974 }
5975
5976 let cur_offset: usize = (1 - 1) * envelope_size;
5979
5980 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5982
5983 fidl::encoding::encode_in_envelope_optional::<AdvertisingData, D>(
5988 self.data
5989 .as_ref()
5990 .map(<AdvertisingData as fidl::encoding::ValueTypeMarker>::borrow),
5991 encoder,
5992 offset + cur_offset,
5993 depth,
5994 )?;
5995
5996 _prev_end_offset = cur_offset + envelope_size;
5997 if 2 > max_ordinal {
5998 return Ok(());
5999 }
6000
6001 let cur_offset: usize = (2 - 1) * envelope_size;
6004
6005 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6007
6008 fidl::encoding::encode_in_envelope_optional::<AdvertisingData, D>(
6013 self.scan_response
6014 .as_ref()
6015 .map(<AdvertisingData as fidl::encoding::ValueTypeMarker>::borrow),
6016 encoder,
6017 offset + cur_offset,
6018 depth,
6019 )?;
6020
6021 _prev_end_offset = cur_offset + envelope_size;
6022 if 3 > max_ordinal {
6023 return Ok(());
6024 }
6025
6026 let cur_offset: usize = (3 - 1) * envelope_size;
6029
6030 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6032
6033 fidl::encoding::encode_in_envelope_optional::<AdvertisingModeHint, D>(
6038 self.mode_hint
6039 .as_ref()
6040 .map(<AdvertisingModeHint as fidl::encoding::ValueTypeMarker>::borrow),
6041 encoder,
6042 offset + cur_offset,
6043 depth,
6044 )?;
6045
6046 _prev_end_offset = cur_offset + envelope_size;
6047 if 4 > max_ordinal {
6048 return Ok(());
6049 }
6050
6051 let cur_offset: usize = (4 - 1) * envelope_size;
6054
6055 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6057
6058 fidl::encoding::encode_in_envelope_optional::<bool, D>(
6063 self.connectable.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
6064 encoder,
6065 offset + cur_offset,
6066 depth,
6067 )?;
6068
6069 _prev_end_offset = cur_offset + envelope_size;
6070 if 5 > max_ordinal {
6071 return Ok(());
6072 }
6073
6074 let cur_offset: usize = (5 - 1) * envelope_size;
6077
6078 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6080
6081 fidl::encoding::encode_in_envelope_optional::<ConnectionOptions, D>(
6086 self.connection_options
6087 .as_ref()
6088 .map(<ConnectionOptions as fidl::encoding::ValueTypeMarker>::borrow),
6089 encoder,
6090 offset + cur_offset,
6091 depth,
6092 )?;
6093
6094 _prev_end_offset = cur_offset + envelope_size;
6095 if 6 > max_ordinal {
6096 return Ok(());
6097 }
6098
6099 let cur_offset: usize = (6 - 1) * envelope_size;
6102
6103 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6105
6106 fidl::encoding::encode_in_envelope_optional::<AdvertisingProcedure, D>(
6111 self.advertising_procedure
6112 .as_ref()
6113 .map(<AdvertisingProcedure as fidl::encoding::ValueTypeMarker>::borrow),
6114 encoder,
6115 offset + cur_offset,
6116 depth,
6117 )?;
6118
6119 _prev_end_offset = cur_offset + envelope_size;
6120 if 7 > max_ordinal {
6121 return Ok(());
6122 }
6123
6124 let cur_offset: usize = (7 - 1) * envelope_size;
6127
6128 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6130
6131 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_bluetooth__common::AddressType, D>(
6136 self.address_type.as_ref().map(<fidl_fuchsia_bluetooth__common::AddressType as fidl::encoding::ValueTypeMarker>::borrow),
6137 encoder, offset + cur_offset, depth
6138 )?;
6139
6140 _prev_end_offset = cur_offset + envelope_size;
6141
6142 Ok(())
6143 }
6144 }
6145
6146 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for AdvertisingParameters {
6147 #[inline(always)]
6148 fn new_empty() -> Self {
6149 Self::default()
6150 }
6151
6152 unsafe fn decode(
6153 &mut self,
6154 decoder: &mut fidl::encoding::Decoder<'_, D>,
6155 offset: usize,
6156 mut depth: fidl::encoding::Depth,
6157 ) -> fidl::Result<()> {
6158 decoder.debug_check_bounds::<Self>(offset);
6159 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
6160 None => return Err(fidl::Error::NotNullable),
6161 Some(len) => len,
6162 };
6163 if len == 0 {
6165 return Ok(());
6166 };
6167 depth.increment()?;
6168 let envelope_size = 8;
6169 let bytes_len = len * envelope_size;
6170 let offset = decoder.out_of_line_offset(bytes_len)?;
6171 let mut _next_ordinal_to_read = 0;
6173 let mut next_offset = offset;
6174 let end_offset = offset + bytes_len;
6175 _next_ordinal_to_read += 1;
6176 if next_offset >= end_offset {
6177 return Ok(());
6178 }
6179
6180 while _next_ordinal_to_read < 1 {
6182 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6183 _next_ordinal_to_read += 1;
6184 next_offset += envelope_size;
6185 }
6186
6187 let next_out_of_line = decoder.next_out_of_line();
6188 let handles_before = decoder.remaining_handles();
6189 if let Some((inlined, num_bytes, num_handles)) =
6190 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6191 {
6192 let member_inline_size =
6193 <AdvertisingData as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6194 if inlined != (member_inline_size <= 4) {
6195 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6196 }
6197 let inner_offset;
6198 let mut inner_depth = depth.clone();
6199 if inlined {
6200 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6201 inner_offset = next_offset;
6202 } else {
6203 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6204 inner_depth.increment()?;
6205 }
6206 let val_ref = self.data.get_or_insert_with(|| fidl::new_empty!(AdvertisingData, D));
6207 fidl::decode!(AdvertisingData, D, val_ref, decoder, inner_offset, inner_depth)?;
6208 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6209 {
6210 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6211 }
6212 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6213 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6214 }
6215 }
6216
6217 next_offset += envelope_size;
6218 _next_ordinal_to_read += 1;
6219 if next_offset >= end_offset {
6220 return Ok(());
6221 }
6222
6223 while _next_ordinal_to_read < 2 {
6225 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6226 _next_ordinal_to_read += 1;
6227 next_offset += envelope_size;
6228 }
6229
6230 let next_out_of_line = decoder.next_out_of_line();
6231 let handles_before = decoder.remaining_handles();
6232 if let Some((inlined, num_bytes, num_handles)) =
6233 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6234 {
6235 let member_inline_size =
6236 <AdvertisingData as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6237 if inlined != (member_inline_size <= 4) {
6238 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6239 }
6240 let inner_offset;
6241 let mut inner_depth = depth.clone();
6242 if inlined {
6243 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6244 inner_offset = next_offset;
6245 } else {
6246 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6247 inner_depth.increment()?;
6248 }
6249 let val_ref =
6250 self.scan_response.get_or_insert_with(|| fidl::new_empty!(AdvertisingData, D));
6251 fidl::decode!(AdvertisingData, D, val_ref, decoder, inner_offset, inner_depth)?;
6252 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6253 {
6254 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6255 }
6256 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6257 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6258 }
6259 }
6260
6261 next_offset += envelope_size;
6262 _next_ordinal_to_read += 1;
6263 if next_offset >= end_offset {
6264 return Ok(());
6265 }
6266
6267 while _next_ordinal_to_read < 3 {
6269 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6270 _next_ordinal_to_read += 1;
6271 next_offset += envelope_size;
6272 }
6273
6274 let next_out_of_line = decoder.next_out_of_line();
6275 let handles_before = decoder.remaining_handles();
6276 if let Some((inlined, num_bytes, num_handles)) =
6277 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6278 {
6279 let member_inline_size =
6280 <AdvertisingModeHint as fidl::encoding::TypeMarker>::inline_size(
6281 decoder.context,
6282 );
6283 if inlined != (member_inline_size <= 4) {
6284 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6285 }
6286 let inner_offset;
6287 let mut inner_depth = depth.clone();
6288 if inlined {
6289 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6290 inner_offset = next_offset;
6291 } else {
6292 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6293 inner_depth.increment()?;
6294 }
6295 let val_ref =
6296 self.mode_hint.get_or_insert_with(|| fidl::new_empty!(AdvertisingModeHint, D));
6297 fidl::decode!(AdvertisingModeHint, D, val_ref, decoder, inner_offset, inner_depth)?;
6298 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6299 {
6300 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6301 }
6302 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6303 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6304 }
6305 }
6306
6307 next_offset += envelope_size;
6308 _next_ordinal_to_read += 1;
6309 if next_offset >= end_offset {
6310 return Ok(());
6311 }
6312
6313 while _next_ordinal_to_read < 4 {
6315 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6316 _next_ordinal_to_read += 1;
6317 next_offset += envelope_size;
6318 }
6319
6320 let next_out_of_line = decoder.next_out_of_line();
6321 let handles_before = decoder.remaining_handles();
6322 if let Some((inlined, num_bytes, num_handles)) =
6323 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6324 {
6325 let member_inline_size =
6326 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6327 if inlined != (member_inline_size <= 4) {
6328 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6329 }
6330 let inner_offset;
6331 let mut inner_depth = depth.clone();
6332 if inlined {
6333 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6334 inner_offset = next_offset;
6335 } else {
6336 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6337 inner_depth.increment()?;
6338 }
6339 let val_ref = self.connectable.get_or_insert_with(|| fidl::new_empty!(bool, D));
6340 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
6341 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6342 {
6343 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6344 }
6345 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6346 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6347 }
6348 }
6349
6350 next_offset += envelope_size;
6351 _next_ordinal_to_read += 1;
6352 if next_offset >= end_offset {
6353 return Ok(());
6354 }
6355
6356 while _next_ordinal_to_read < 5 {
6358 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6359 _next_ordinal_to_read += 1;
6360 next_offset += envelope_size;
6361 }
6362
6363 let next_out_of_line = decoder.next_out_of_line();
6364 let handles_before = decoder.remaining_handles();
6365 if let Some((inlined, num_bytes, num_handles)) =
6366 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6367 {
6368 let member_inline_size =
6369 <ConnectionOptions as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6370 if inlined != (member_inline_size <= 4) {
6371 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6372 }
6373 let inner_offset;
6374 let mut inner_depth = depth.clone();
6375 if inlined {
6376 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6377 inner_offset = next_offset;
6378 } else {
6379 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6380 inner_depth.increment()?;
6381 }
6382 let val_ref = self
6383 .connection_options
6384 .get_or_insert_with(|| fidl::new_empty!(ConnectionOptions, D));
6385 fidl::decode!(ConnectionOptions, D, val_ref, decoder, inner_offset, inner_depth)?;
6386 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6387 {
6388 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6389 }
6390 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6391 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6392 }
6393 }
6394
6395 next_offset += envelope_size;
6396 _next_ordinal_to_read += 1;
6397 if next_offset >= end_offset {
6398 return Ok(());
6399 }
6400
6401 while _next_ordinal_to_read < 6 {
6403 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6404 _next_ordinal_to_read += 1;
6405 next_offset += envelope_size;
6406 }
6407
6408 let next_out_of_line = decoder.next_out_of_line();
6409 let handles_before = decoder.remaining_handles();
6410 if let Some((inlined, num_bytes, num_handles)) =
6411 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6412 {
6413 let member_inline_size =
6414 <AdvertisingProcedure as fidl::encoding::TypeMarker>::inline_size(
6415 decoder.context,
6416 );
6417 if inlined != (member_inline_size <= 4) {
6418 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6419 }
6420 let inner_offset;
6421 let mut inner_depth = depth.clone();
6422 if inlined {
6423 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6424 inner_offset = next_offset;
6425 } else {
6426 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6427 inner_depth.increment()?;
6428 }
6429 let val_ref = self
6430 .advertising_procedure
6431 .get_or_insert_with(|| fidl::new_empty!(AdvertisingProcedure, D));
6432 fidl::decode!(
6433 AdvertisingProcedure,
6434 D,
6435 val_ref,
6436 decoder,
6437 inner_offset,
6438 inner_depth
6439 )?;
6440 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6441 {
6442 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6443 }
6444 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6445 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6446 }
6447 }
6448
6449 next_offset += envelope_size;
6450 _next_ordinal_to_read += 1;
6451 if next_offset >= end_offset {
6452 return Ok(());
6453 }
6454
6455 while _next_ordinal_to_read < 7 {
6457 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6458 _next_ordinal_to_read += 1;
6459 next_offset += envelope_size;
6460 }
6461
6462 let next_out_of_line = decoder.next_out_of_line();
6463 let handles_before = decoder.remaining_handles();
6464 if let Some((inlined, num_bytes, num_handles)) =
6465 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6466 {
6467 let member_inline_size = <fidl_fuchsia_bluetooth__common::AddressType as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6468 if inlined != (member_inline_size <= 4) {
6469 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6470 }
6471 let inner_offset;
6472 let mut inner_depth = depth.clone();
6473 if inlined {
6474 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6475 inner_offset = next_offset;
6476 } else {
6477 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6478 inner_depth.increment()?;
6479 }
6480 let val_ref = self.address_type.get_or_insert_with(|| {
6481 fidl::new_empty!(fidl_fuchsia_bluetooth__common::AddressType, D)
6482 });
6483 fidl::decode!(
6484 fidl_fuchsia_bluetooth__common::AddressType,
6485 D,
6486 val_ref,
6487 decoder,
6488 inner_offset,
6489 inner_depth
6490 )?;
6491 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6492 {
6493 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6494 }
6495 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6496 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6497 }
6498 }
6499
6500 next_offset += envelope_size;
6501
6502 while next_offset < end_offset {
6504 _next_ordinal_to_read += 1;
6505 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6506 next_offset += envelope_size;
6507 }
6508
6509 Ok(())
6510 }
6511 }
6512
6513 impl BroadcastIsochronousGroupInfo {
6514 #[inline(always)]
6515 fn max_ordinal_present(&self) -> u64 {
6516 if let Some(_) = self.encryption {
6517 return 4;
6518 }
6519 if let Some(_) = self.phy {
6520 return 3;
6521 }
6522 if let Some(_) = self.max_sdu_size {
6523 return 2;
6524 }
6525 if let Some(_) = self.streams_count {
6526 return 1;
6527 }
6528 0
6529 }
6530 }
6531
6532 impl fidl::encoding::ValueTypeMarker for BroadcastIsochronousGroupInfo {
6533 type Borrowed<'a> = &'a Self;
6534 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6535 value
6536 }
6537 }
6538
6539 unsafe impl fidl::encoding::TypeMarker for BroadcastIsochronousGroupInfo {
6540 type Owned = Self;
6541
6542 #[inline(always)]
6543 fn inline_align(_context: fidl::encoding::Context) -> usize {
6544 8
6545 }
6546
6547 #[inline(always)]
6548 fn inline_size(_context: fidl::encoding::Context) -> usize {
6549 16
6550 }
6551 }
6552
6553 unsafe impl<D: fidl::encoding::ResourceDialect>
6554 fidl::encoding::Encode<BroadcastIsochronousGroupInfo, D>
6555 for &BroadcastIsochronousGroupInfo
6556 {
6557 unsafe fn encode(
6558 self,
6559 encoder: &mut fidl::encoding::Encoder<'_, D>,
6560 offset: usize,
6561 mut depth: fidl::encoding::Depth,
6562 ) -> fidl::Result<()> {
6563 encoder.debug_check_bounds::<BroadcastIsochronousGroupInfo>(offset);
6564 let max_ordinal: u64 = self.max_ordinal_present();
6566 encoder.write_num(max_ordinal, offset);
6567 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
6568 if max_ordinal == 0 {
6570 return Ok(());
6571 }
6572 depth.increment()?;
6573 let envelope_size = 8;
6574 let bytes_len = max_ordinal as usize * envelope_size;
6575 #[allow(unused_variables)]
6576 let offset = encoder.out_of_line_offset(bytes_len);
6577 let mut _prev_end_offset: usize = 0;
6578 if 1 > max_ordinal {
6579 return Ok(());
6580 }
6581
6582 let cur_offset: usize = (1 - 1) * envelope_size;
6585
6586 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6588
6589 fidl::encoding::encode_in_envelope_optional::<u8, D>(
6594 self.streams_count.as_ref().map(<u8 as fidl::encoding::ValueTypeMarker>::borrow),
6595 encoder,
6596 offset + cur_offset,
6597 depth,
6598 )?;
6599
6600 _prev_end_offset = cur_offset + envelope_size;
6601 if 2 > max_ordinal {
6602 return Ok(());
6603 }
6604
6605 let cur_offset: usize = (2 - 1) * envelope_size;
6608
6609 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6611
6612 fidl::encoding::encode_in_envelope_optional::<u16, D>(
6617 self.max_sdu_size.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
6618 encoder,
6619 offset + cur_offset,
6620 depth,
6621 )?;
6622
6623 _prev_end_offset = cur_offset + envelope_size;
6624 if 3 > max_ordinal {
6625 return Ok(());
6626 }
6627
6628 let cur_offset: usize = (3 - 1) * envelope_size;
6631
6632 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6634
6635 fidl::encoding::encode_in_envelope_optional::<PhysicalLayer, D>(
6640 self.phy.as_ref().map(<PhysicalLayer as fidl::encoding::ValueTypeMarker>::borrow),
6641 encoder,
6642 offset + cur_offset,
6643 depth,
6644 )?;
6645
6646 _prev_end_offset = cur_offset + envelope_size;
6647 if 4 > max_ordinal {
6648 return Ok(());
6649 }
6650
6651 let cur_offset: usize = (4 - 1) * envelope_size;
6654
6655 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6657
6658 fidl::encoding::encode_in_envelope_optional::<bool, D>(
6663 self.encryption.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
6664 encoder,
6665 offset + cur_offset,
6666 depth,
6667 )?;
6668
6669 _prev_end_offset = cur_offset + envelope_size;
6670
6671 Ok(())
6672 }
6673 }
6674
6675 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
6676 for BroadcastIsochronousGroupInfo
6677 {
6678 #[inline(always)]
6679 fn new_empty() -> Self {
6680 Self::default()
6681 }
6682
6683 unsafe fn decode(
6684 &mut self,
6685 decoder: &mut fidl::encoding::Decoder<'_, D>,
6686 offset: usize,
6687 mut depth: fidl::encoding::Depth,
6688 ) -> fidl::Result<()> {
6689 decoder.debug_check_bounds::<Self>(offset);
6690 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
6691 None => return Err(fidl::Error::NotNullable),
6692 Some(len) => len,
6693 };
6694 if len == 0 {
6696 return Ok(());
6697 };
6698 depth.increment()?;
6699 let envelope_size = 8;
6700 let bytes_len = len * envelope_size;
6701 let offset = decoder.out_of_line_offset(bytes_len)?;
6702 let mut _next_ordinal_to_read = 0;
6704 let mut next_offset = offset;
6705 let end_offset = offset + bytes_len;
6706 _next_ordinal_to_read += 1;
6707 if next_offset >= end_offset {
6708 return Ok(());
6709 }
6710
6711 while _next_ordinal_to_read < 1 {
6713 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6714 _next_ordinal_to_read += 1;
6715 next_offset += envelope_size;
6716 }
6717
6718 let next_out_of_line = decoder.next_out_of_line();
6719 let handles_before = decoder.remaining_handles();
6720 if let Some((inlined, num_bytes, num_handles)) =
6721 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6722 {
6723 let member_inline_size =
6724 <u8 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6725 if inlined != (member_inline_size <= 4) {
6726 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6727 }
6728 let inner_offset;
6729 let mut inner_depth = depth.clone();
6730 if inlined {
6731 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6732 inner_offset = next_offset;
6733 } else {
6734 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6735 inner_depth.increment()?;
6736 }
6737 let val_ref = self.streams_count.get_or_insert_with(|| fidl::new_empty!(u8, D));
6738 fidl::decode!(u8, D, val_ref, decoder, inner_offset, inner_depth)?;
6739 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6740 {
6741 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6742 }
6743 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6744 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6745 }
6746 }
6747
6748 next_offset += envelope_size;
6749 _next_ordinal_to_read += 1;
6750 if next_offset >= end_offset {
6751 return Ok(());
6752 }
6753
6754 while _next_ordinal_to_read < 2 {
6756 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6757 _next_ordinal_to_read += 1;
6758 next_offset += envelope_size;
6759 }
6760
6761 let next_out_of_line = decoder.next_out_of_line();
6762 let handles_before = decoder.remaining_handles();
6763 if let Some((inlined, num_bytes, num_handles)) =
6764 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6765 {
6766 let member_inline_size =
6767 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6768 if inlined != (member_inline_size <= 4) {
6769 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6770 }
6771 let inner_offset;
6772 let mut inner_depth = depth.clone();
6773 if inlined {
6774 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6775 inner_offset = next_offset;
6776 } else {
6777 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6778 inner_depth.increment()?;
6779 }
6780 let val_ref = self.max_sdu_size.get_or_insert_with(|| fidl::new_empty!(u16, D));
6781 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
6782 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6783 {
6784 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6785 }
6786 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6787 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6788 }
6789 }
6790
6791 next_offset += envelope_size;
6792 _next_ordinal_to_read += 1;
6793 if next_offset >= end_offset {
6794 return Ok(());
6795 }
6796
6797 while _next_ordinal_to_read < 3 {
6799 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6800 _next_ordinal_to_read += 1;
6801 next_offset += envelope_size;
6802 }
6803
6804 let next_out_of_line = decoder.next_out_of_line();
6805 let handles_before = decoder.remaining_handles();
6806 if let Some((inlined, num_bytes, num_handles)) =
6807 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6808 {
6809 let member_inline_size =
6810 <PhysicalLayer as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6811 if inlined != (member_inline_size <= 4) {
6812 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6813 }
6814 let inner_offset;
6815 let mut inner_depth = depth.clone();
6816 if inlined {
6817 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6818 inner_offset = next_offset;
6819 } else {
6820 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6821 inner_depth.increment()?;
6822 }
6823 let val_ref = self.phy.get_or_insert_with(|| fidl::new_empty!(PhysicalLayer, D));
6824 fidl::decode!(PhysicalLayer, D, val_ref, decoder, inner_offset, inner_depth)?;
6825 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6826 {
6827 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6828 }
6829 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6830 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6831 }
6832 }
6833
6834 next_offset += envelope_size;
6835 _next_ordinal_to_read += 1;
6836 if next_offset >= end_offset {
6837 return Ok(());
6838 }
6839
6840 while _next_ordinal_to_read < 4 {
6842 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6843 _next_ordinal_to_read += 1;
6844 next_offset += envelope_size;
6845 }
6846
6847 let next_out_of_line = decoder.next_out_of_line();
6848 let handles_before = decoder.remaining_handles();
6849 if let Some((inlined, num_bytes, num_handles)) =
6850 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6851 {
6852 let member_inline_size =
6853 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6854 if inlined != (member_inline_size <= 4) {
6855 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6856 }
6857 let inner_offset;
6858 let mut inner_depth = depth.clone();
6859 if inlined {
6860 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6861 inner_offset = next_offset;
6862 } else {
6863 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6864 inner_depth.increment()?;
6865 }
6866 let val_ref = self.encryption.get_or_insert_with(|| fidl::new_empty!(bool, D));
6867 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
6868 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6869 {
6870 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6871 }
6872 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6873 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6874 }
6875 }
6876
6877 next_offset += envelope_size;
6878
6879 while next_offset < end_offset {
6881 _next_ordinal_to_read += 1;
6882 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6883 next_offset += envelope_size;
6884 }
6885
6886 Ok(())
6887 }
6888 }
6889
6890 impl BroadcastIsochronousGroupInfoReport {
6891 #[inline(always)]
6892 fn max_ordinal_present(&self) -> u64 {
6893 if let Some(_) = self.timestamp {
6894 return 2;
6895 }
6896 if let Some(_) = self.info {
6897 return 1;
6898 }
6899 0
6900 }
6901 }
6902
6903 impl fidl::encoding::ValueTypeMarker for BroadcastIsochronousGroupInfoReport {
6904 type Borrowed<'a> = &'a Self;
6905 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6906 value
6907 }
6908 }
6909
6910 unsafe impl fidl::encoding::TypeMarker for BroadcastIsochronousGroupInfoReport {
6911 type Owned = Self;
6912
6913 #[inline(always)]
6914 fn inline_align(_context: fidl::encoding::Context) -> usize {
6915 8
6916 }
6917
6918 #[inline(always)]
6919 fn inline_size(_context: fidl::encoding::Context) -> usize {
6920 16
6921 }
6922 }
6923
6924 unsafe impl<D: fidl::encoding::ResourceDialect>
6925 fidl::encoding::Encode<BroadcastIsochronousGroupInfoReport, D>
6926 for &BroadcastIsochronousGroupInfoReport
6927 {
6928 unsafe fn encode(
6929 self,
6930 encoder: &mut fidl::encoding::Encoder<'_, D>,
6931 offset: usize,
6932 mut depth: fidl::encoding::Depth,
6933 ) -> fidl::Result<()> {
6934 encoder.debug_check_bounds::<BroadcastIsochronousGroupInfoReport>(offset);
6935 let max_ordinal: u64 = self.max_ordinal_present();
6937 encoder.write_num(max_ordinal, offset);
6938 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
6939 if max_ordinal == 0 {
6941 return Ok(());
6942 }
6943 depth.increment()?;
6944 let envelope_size = 8;
6945 let bytes_len = max_ordinal as usize * envelope_size;
6946 #[allow(unused_variables)]
6947 let offset = encoder.out_of_line_offset(bytes_len);
6948 let mut _prev_end_offset: usize = 0;
6949 if 1 > max_ordinal {
6950 return Ok(());
6951 }
6952
6953 let cur_offset: usize = (1 - 1) * envelope_size;
6956
6957 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6959
6960 fidl::encoding::encode_in_envelope_optional::<BroadcastIsochronousGroupInfo, D>(
6965 self.info.as_ref().map(
6966 <BroadcastIsochronousGroupInfo as fidl::encoding::ValueTypeMarker>::borrow,
6967 ),
6968 encoder,
6969 offset + cur_offset,
6970 depth,
6971 )?;
6972
6973 _prev_end_offset = cur_offset + envelope_size;
6974 if 2 > max_ordinal {
6975 return Ok(());
6976 }
6977
6978 let cur_offset: usize = (2 - 1) * envelope_size;
6981
6982 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6984
6985 fidl::encoding::encode_in_envelope_optional::<i64, D>(
6990 self.timestamp.as_ref().map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
6991 encoder,
6992 offset + cur_offset,
6993 depth,
6994 )?;
6995
6996 _prev_end_offset = cur_offset + envelope_size;
6997
6998 Ok(())
6999 }
7000 }
7001
7002 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
7003 for BroadcastIsochronousGroupInfoReport
7004 {
7005 #[inline(always)]
7006 fn new_empty() -> Self {
7007 Self::default()
7008 }
7009
7010 unsafe fn decode(
7011 &mut self,
7012 decoder: &mut fidl::encoding::Decoder<'_, D>,
7013 offset: usize,
7014 mut depth: fidl::encoding::Depth,
7015 ) -> fidl::Result<()> {
7016 decoder.debug_check_bounds::<Self>(offset);
7017 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
7018 None => return Err(fidl::Error::NotNullable),
7019 Some(len) => len,
7020 };
7021 if len == 0 {
7023 return Ok(());
7024 };
7025 depth.increment()?;
7026 let envelope_size = 8;
7027 let bytes_len = len * envelope_size;
7028 let offset = decoder.out_of_line_offset(bytes_len)?;
7029 let mut _next_ordinal_to_read = 0;
7031 let mut next_offset = offset;
7032 let end_offset = offset + bytes_len;
7033 _next_ordinal_to_read += 1;
7034 if next_offset >= end_offset {
7035 return Ok(());
7036 }
7037
7038 while _next_ordinal_to_read < 1 {
7040 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7041 _next_ordinal_to_read += 1;
7042 next_offset += envelope_size;
7043 }
7044
7045 let next_out_of_line = decoder.next_out_of_line();
7046 let handles_before = decoder.remaining_handles();
7047 if let Some((inlined, num_bytes, num_handles)) =
7048 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7049 {
7050 let member_inline_size =
7051 <BroadcastIsochronousGroupInfo as fidl::encoding::TypeMarker>::inline_size(
7052 decoder.context,
7053 );
7054 if inlined != (member_inline_size <= 4) {
7055 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7056 }
7057 let inner_offset;
7058 let mut inner_depth = depth.clone();
7059 if inlined {
7060 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7061 inner_offset = next_offset;
7062 } else {
7063 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7064 inner_depth.increment()?;
7065 }
7066 let val_ref = self
7067 .info
7068 .get_or_insert_with(|| fidl::new_empty!(BroadcastIsochronousGroupInfo, D));
7069 fidl::decode!(
7070 BroadcastIsochronousGroupInfo,
7071 D,
7072 val_ref,
7073 decoder,
7074 inner_offset,
7075 inner_depth
7076 )?;
7077 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7078 {
7079 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7080 }
7081 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7082 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7083 }
7084 }
7085
7086 next_offset += envelope_size;
7087 _next_ordinal_to_read += 1;
7088 if next_offset >= end_offset {
7089 return Ok(());
7090 }
7091
7092 while _next_ordinal_to_read < 2 {
7094 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7095 _next_ordinal_to_read += 1;
7096 next_offset += envelope_size;
7097 }
7098
7099 let next_out_of_line = decoder.next_out_of_line();
7100 let handles_before = decoder.remaining_handles();
7101 if let Some((inlined, num_bytes, num_handles)) =
7102 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7103 {
7104 let member_inline_size =
7105 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7106 if inlined != (member_inline_size <= 4) {
7107 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7108 }
7109 let inner_offset;
7110 let mut inner_depth = depth.clone();
7111 if inlined {
7112 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7113 inner_offset = next_offset;
7114 } else {
7115 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7116 inner_depth.increment()?;
7117 }
7118 let val_ref = self.timestamp.get_or_insert_with(|| fidl::new_empty!(i64, D));
7119 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
7120 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7121 {
7122 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7123 }
7124 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7125 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7126 }
7127 }
7128
7129 next_offset += envelope_size;
7130
7131 while next_offset < end_offset {
7133 _next_ordinal_to_read += 1;
7134 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7135 next_offset += envelope_size;
7136 }
7137
7138 Ok(())
7139 }
7140 }
7141
7142 impl CentralCreateConnectedIsochronousGroupResponse {
7143 #[inline(always)]
7144 fn max_ordinal_present(&self) -> u64 {
7145 if let Some(_) = self.cig_id {
7146 return 1;
7147 }
7148 0
7149 }
7150 }
7151
7152 impl fidl::encoding::ValueTypeMarker for CentralCreateConnectedIsochronousGroupResponse {
7153 type Borrowed<'a> = &'a Self;
7154 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7155 value
7156 }
7157 }
7158
7159 unsafe impl fidl::encoding::TypeMarker for CentralCreateConnectedIsochronousGroupResponse {
7160 type Owned = Self;
7161
7162 #[inline(always)]
7163 fn inline_align(_context: fidl::encoding::Context) -> usize {
7164 8
7165 }
7166
7167 #[inline(always)]
7168 fn inline_size(_context: fidl::encoding::Context) -> usize {
7169 16
7170 }
7171 }
7172
7173 unsafe impl<D: fidl::encoding::ResourceDialect>
7174 fidl::encoding::Encode<CentralCreateConnectedIsochronousGroupResponse, D>
7175 for &CentralCreateConnectedIsochronousGroupResponse
7176 {
7177 unsafe fn encode(
7178 self,
7179 encoder: &mut fidl::encoding::Encoder<'_, D>,
7180 offset: usize,
7181 mut depth: fidl::encoding::Depth,
7182 ) -> fidl::Result<()> {
7183 encoder.debug_check_bounds::<CentralCreateConnectedIsochronousGroupResponse>(offset);
7184 let max_ordinal: u64 = self.max_ordinal_present();
7186 encoder.write_num(max_ordinal, offset);
7187 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
7188 if max_ordinal == 0 {
7190 return Ok(());
7191 }
7192 depth.increment()?;
7193 let envelope_size = 8;
7194 let bytes_len = max_ordinal as usize * envelope_size;
7195 #[allow(unused_variables)]
7196 let offset = encoder.out_of_line_offset(bytes_len);
7197 let mut _prev_end_offset: usize = 0;
7198 if 1 > max_ordinal {
7199 return Ok(());
7200 }
7201
7202 let cur_offset: usize = (1 - 1) * envelope_size;
7205
7206 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7208
7209 fidl::encoding::encode_in_envelope_optional::<u8, D>(
7214 self.cig_id.as_ref().map(<u8 as fidl::encoding::ValueTypeMarker>::borrow),
7215 encoder,
7216 offset + cur_offset,
7217 depth,
7218 )?;
7219
7220 _prev_end_offset = cur_offset + envelope_size;
7221
7222 Ok(())
7223 }
7224 }
7225
7226 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
7227 for CentralCreateConnectedIsochronousGroupResponse
7228 {
7229 #[inline(always)]
7230 fn new_empty() -> Self {
7231 Self::default()
7232 }
7233
7234 unsafe fn decode(
7235 &mut self,
7236 decoder: &mut fidl::encoding::Decoder<'_, D>,
7237 offset: usize,
7238 mut depth: fidl::encoding::Depth,
7239 ) -> fidl::Result<()> {
7240 decoder.debug_check_bounds::<Self>(offset);
7241 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
7242 None => return Err(fidl::Error::NotNullable),
7243 Some(len) => len,
7244 };
7245 if len == 0 {
7247 return Ok(());
7248 };
7249 depth.increment()?;
7250 let envelope_size = 8;
7251 let bytes_len = len * envelope_size;
7252 let offset = decoder.out_of_line_offset(bytes_len)?;
7253 let mut _next_ordinal_to_read = 0;
7255 let mut next_offset = offset;
7256 let end_offset = offset + bytes_len;
7257 _next_ordinal_to_read += 1;
7258 if next_offset >= end_offset {
7259 return Ok(());
7260 }
7261
7262 while _next_ordinal_to_read < 1 {
7264 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7265 _next_ordinal_to_read += 1;
7266 next_offset += envelope_size;
7267 }
7268
7269 let next_out_of_line = decoder.next_out_of_line();
7270 let handles_before = decoder.remaining_handles();
7271 if let Some((inlined, num_bytes, num_handles)) =
7272 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7273 {
7274 let member_inline_size =
7275 <u8 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7276 if inlined != (member_inline_size <= 4) {
7277 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7278 }
7279 let inner_offset;
7280 let mut inner_depth = depth.clone();
7281 if inlined {
7282 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7283 inner_offset = next_offset;
7284 } else {
7285 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7286 inner_depth.increment()?;
7287 }
7288 let val_ref = self.cig_id.get_or_insert_with(|| fidl::new_empty!(u8, D));
7289 fidl::decode!(u8, D, val_ref, decoder, inner_offset, inner_depth)?;
7290 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7291 {
7292 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7293 }
7294 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7295 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7296 }
7297 }
7298
7299 next_offset += envelope_size;
7300
7301 while next_offset < end_offset {
7303 _next_ordinal_to_read += 1;
7304 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7305 next_offset += envelope_size;
7306 }
7307
7308 Ok(())
7309 }
7310 }
7311
7312 impl ChannelListenerRegistryListenL2capResponse {
7313 #[inline(always)]
7314 fn max_ordinal_present(&self) -> u64 {
7315 if let Some(_) = self.psm {
7316 return 1;
7317 }
7318 0
7319 }
7320 }
7321
7322 impl fidl::encoding::ValueTypeMarker for ChannelListenerRegistryListenL2capResponse {
7323 type Borrowed<'a> = &'a Self;
7324 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7325 value
7326 }
7327 }
7328
7329 unsafe impl fidl::encoding::TypeMarker for ChannelListenerRegistryListenL2capResponse {
7330 type Owned = Self;
7331
7332 #[inline(always)]
7333 fn inline_align(_context: fidl::encoding::Context) -> usize {
7334 8
7335 }
7336
7337 #[inline(always)]
7338 fn inline_size(_context: fidl::encoding::Context) -> usize {
7339 16
7340 }
7341 }
7342
7343 unsafe impl<D: fidl::encoding::ResourceDialect>
7344 fidl::encoding::Encode<ChannelListenerRegistryListenL2capResponse, D>
7345 for &ChannelListenerRegistryListenL2capResponse
7346 {
7347 unsafe fn encode(
7348 self,
7349 encoder: &mut fidl::encoding::Encoder<'_, D>,
7350 offset: usize,
7351 mut depth: fidl::encoding::Depth,
7352 ) -> fidl::Result<()> {
7353 encoder.debug_check_bounds::<ChannelListenerRegistryListenL2capResponse>(offset);
7354 let max_ordinal: u64 = self.max_ordinal_present();
7356 encoder.write_num(max_ordinal, offset);
7357 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
7358 if max_ordinal == 0 {
7360 return Ok(());
7361 }
7362 depth.increment()?;
7363 let envelope_size = 8;
7364 let bytes_len = max_ordinal as usize * envelope_size;
7365 #[allow(unused_variables)]
7366 let offset = encoder.out_of_line_offset(bytes_len);
7367 let mut _prev_end_offset: usize = 0;
7368 if 1 > max_ordinal {
7369 return Ok(());
7370 }
7371
7372 let cur_offset: usize = (1 - 1) * envelope_size;
7375
7376 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7378
7379 fidl::encoding::encode_in_envelope_optional::<u16, D>(
7384 self.psm.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
7385 encoder,
7386 offset + cur_offset,
7387 depth,
7388 )?;
7389
7390 _prev_end_offset = cur_offset + envelope_size;
7391
7392 Ok(())
7393 }
7394 }
7395
7396 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
7397 for ChannelListenerRegistryListenL2capResponse
7398 {
7399 #[inline(always)]
7400 fn new_empty() -> Self {
7401 Self::default()
7402 }
7403
7404 unsafe fn decode(
7405 &mut self,
7406 decoder: &mut fidl::encoding::Decoder<'_, D>,
7407 offset: usize,
7408 mut depth: fidl::encoding::Depth,
7409 ) -> fidl::Result<()> {
7410 decoder.debug_check_bounds::<Self>(offset);
7411 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
7412 None => return Err(fidl::Error::NotNullable),
7413 Some(len) => len,
7414 };
7415 if len == 0 {
7417 return Ok(());
7418 };
7419 depth.increment()?;
7420 let envelope_size = 8;
7421 let bytes_len = len * envelope_size;
7422 let offset = decoder.out_of_line_offset(bytes_len)?;
7423 let mut _next_ordinal_to_read = 0;
7425 let mut next_offset = offset;
7426 let end_offset = offset + bytes_len;
7427 _next_ordinal_to_read += 1;
7428 if next_offset >= end_offset {
7429 return Ok(());
7430 }
7431
7432 while _next_ordinal_to_read < 1 {
7434 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7435 _next_ordinal_to_read += 1;
7436 next_offset += envelope_size;
7437 }
7438
7439 let next_out_of_line = decoder.next_out_of_line();
7440 let handles_before = decoder.remaining_handles();
7441 if let Some((inlined, num_bytes, num_handles)) =
7442 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7443 {
7444 let member_inline_size =
7445 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7446 if inlined != (member_inline_size <= 4) {
7447 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7448 }
7449 let inner_offset;
7450 let mut inner_depth = depth.clone();
7451 if inlined {
7452 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7453 inner_offset = next_offset;
7454 } else {
7455 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7456 inner_depth.increment()?;
7457 }
7458 let val_ref = self.psm.get_or_insert_with(|| fidl::new_empty!(u16, D));
7459 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
7460 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7461 {
7462 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7463 }
7464 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7465 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7466 }
7467 }
7468
7469 next_offset += envelope_size;
7470
7471 while next_offset < end_offset {
7473 _next_ordinal_to_read += 1;
7474 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7475 next_offset += envelope_size;
7476 }
7477
7478 Ok(())
7479 }
7480 }
7481
7482 impl CigParameters {
7483 #[inline(always)]
7484 fn max_ordinal_present(&self) -> u64 {
7485 if let Some(_) = self.max_transport_latency_p_to_c {
7486 return 6;
7487 }
7488 if let Some(_) = self.max_transport_latency_c_to_p {
7489 return 5;
7490 }
7491 if let Some(_) = self.framing {
7492 return 4;
7493 }
7494 if let Some(_) = self.packing {
7495 return 3;
7496 }
7497 if let Some(_) = self.sdu_interval_p_to_c {
7498 return 2;
7499 }
7500 if let Some(_) = self.sdu_interval_c_to_p {
7501 return 1;
7502 }
7503 0
7504 }
7505 }
7506
7507 impl fidl::encoding::ValueTypeMarker for CigParameters {
7508 type Borrowed<'a> = &'a Self;
7509 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7510 value
7511 }
7512 }
7513
7514 unsafe impl fidl::encoding::TypeMarker for CigParameters {
7515 type Owned = Self;
7516
7517 #[inline(always)]
7518 fn inline_align(_context: fidl::encoding::Context) -> usize {
7519 8
7520 }
7521
7522 #[inline(always)]
7523 fn inline_size(_context: fidl::encoding::Context) -> usize {
7524 16
7525 }
7526 }
7527
7528 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<CigParameters, D>
7529 for &CigParameters
7530 {
7531 unsafe fn encode(
7532 self,
7533 encoder: &mut fidl::encoding::Encoder<'_, D>,
7534 offset: usize,
7535 mut depth: fidl::encoding::Depth,
7536 ) -> fidl::Result<()> {
7537 encoder.debug_check_bounds::<CigParameters>(offset);
7538 let max_ordinal: u64 = self.max_ordinal_present();
7540 encoder.write_num(max_ordinal, offset);
7541 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
7542 if max_ordinal == 0 {
7544 return Ok(());
7545 }
7546 depth.increment()?;
7547 let envelope_size = 8;
7548 let bytes_len = max_ordinal as usize * envelope_size;
7549 #[allow(unused_variables)]
7550 let offset = encoder.out_of_line_offset(bytes_len);
7551 let mut _prev_end_offset: usize = 0;
7552 if 1 > max_ordinal {
7553 return Ok(());
7554 }
7555
7556 let cur_offset: usize = (1 - 1) * envelope_size;
7559
7560 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7562
7563 fidl::encoding::encode_in_envelope_optional::<u32, D>(
7568 self.sdu_interval_c_to_p
7569 .as_ref()
7570 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
7571 encoder,
7572 offset + cur_offset,
7573 depth,
7574 )?;
7575
7576 _prev_end_offset = cur_offset + envelope_size;
7577 if 2 > max_ordinal {
7578 return Ok(());
7579 }
7580
7581 let cur_offset: usize = (2 - 1) * envelope_size;
7584
7585 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7587
7588 fidl::encoding::encode_in_envelope_optional::<u32, D>(
7593 self.sdu_interval_p_to_c
7594 .as_ref()
7595 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
7596 encoder,
7597 offset + cur_offset,
7598 depth,
7599 )?;
7600
7601 _prev_end_offset = cur_offset + envelope_size;
7602 if 3 > max_ordinal {
7603 return Ok(());
7604 }
7605
7606 let cur_offset: usize = (3 - 1) * envelope_size;
7609
7610 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7612
7613 fidl::encoding::encode_in_envelope_optional::<CigPacking, D>(
7618 self.packing.as_ref().map(<CigPacking as fidl::encoding::ValueTypeMarker>::borrow),
7619 encoder,
7620 offset + cur_offset,
7621 depth,
7622 )?;
7623
7624 _prev_end_offset = cur_offset + envelope_size;
7625 if 4 > max_ordinal {
7626 return Ok(());
7627 }
7628
7629 let cur_offset: usize = (4 - 1) * envelope_size;
7632
7633 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7635
7636 fidl::encoding::encode_in_envelope_optional::<CigFramingOptions, D>(
7641 self.framing
7642 .as_ref()
7643 .map(<CigFramingOptions as fidl::encoding::ValueTypeMarker>::borrow),
7644 encoder,
7645 offset + cur_offset,
7646 depth,
7647 )?;
7648
7649 _prev_end_offset = cur_offset + envelope_size;
7650 if 5 > max_ordinal {
7651 return Ok(());
7652 }
7653
7654 let cur_offset: usize = (5 - 1) * envelope_size;
7657
7658 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7660
7661 fidl::encoding::encode_in_envelope_optional::<u16, D>(
7666 self.max_transport_latency_c_to_p
7667 .as_ref()
7668 .map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
7669 encoder,
7670 offset + cur_offset,
7671 depth,
7672 )?;
7673
7674 _prev_end_offset = cur_offset + envelope_size;
7675 if 6 > max_ordinal {
7676 return Ok(());
7677 }
7678
7679 let cur_offset: usize = (6 - 1) * envelope_size;
7682
7683 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7685
7686 fidl::encoding::encode_in_envelope_optional::<u16, D>(
7691 self.max_transport_latency_p_to_c
7692 .as_ref()
7693 .map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
7694 encoder,
7695 offset + cur_offset,
7696 depth,
7697 )?;
7698
7699 _prev_end_offset = cur_offset + envelope_size;
7700
7701 Ok(())
7702 }
7703 }
7704
7705 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for CigParameters {
7706 #[inline(always)]
7707 fn new_empty() -> Self {
7708 Self::default()
7709 }
7710
7711 unsafe fn decode(
7712 &mut self,
7713 decoder: &mut fidl::encoding::Decoder<'_, D>,
7714 offset: usize,
7715 mut depth: fidl::encoding::Depth,
7716 ) -> fidl::Result<()> {
7717 decoder.debug_check_bounds::<Self>(offset);
7718 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
7719 None => return Err(fidl::Error::NotNullable),
7720 Some(len) => len,
7721 };
7722 if len == 0 {
7724 return Ok(());
7725 };
7726 depth.increment()?;
7727 let envelope_size = 8;
7728 let bytes_len = len * envelope_size;
7729 let offset = decoder.out_of_line_offset(bytes_len)?;
7730 let mut _next_ordinal_to_read = 0;
7732 let mut next_offset = offset;
7733 let end_offset = offset + bytes_len;
7734 _next_ordinal_to_read += 1;
7735 if next_offset >= end_offset {
7736 return Ok(());
7737 }
7738
7739 while _next_ordinal_to_read < 1 {
7741 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7742 _next_ordinal_to_read += 1;
7743 next_offset += envelope_size;
7744 }
7745
7746 let next_out_of_line = decoder.next_out_of_line();
7747 let handles_before = decoder.remaining_handles();
7748 if let Some((inlined, num_bytes, num_handles)) =
7749 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7750 {
7751 let member_inline_size =
7752 <u32 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 =
7766 self.sdu_interval_c_to_p.get_or_insert_with(|| fidl::new_empty!(u32, D));
7767 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
7768 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7769 {
7770 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7771 }
7772 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7773 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7774 }
7775 }
7776
7777 next_offset += envelope_size;
7778 _next_ordinal_to_read += 1;
7779 if next_offset >= end_offset {
7780 return Ok(());
7781 }
7782
7783 while _next_ordinal_to_read < 2 {
7785 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7786 _next_ordinal_to_read += 1;
7787 next_offset += envelope_size;
7788 }
7789
7790 let next_out_of_line = decoder.next_out_of_line();
7791 let handles_before = decoder.remaining_handles();
7792 if let Some((inlined, num_bytes, num_handles)) =
7793 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7794 {
7795 let member_inline_size =
7796 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7797 if inlined != (member_inline_size <= 4) {
7798 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7799 }
7800 let inner_offset;
7801 let mut inner_depth = depth.clone();
7802 if inlined {
7803 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7804 inner_offset = next_offset;
7805 } else {
7806 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7807 inner_depth.increment()?;
7808 }
7809 let val_ref =
7810 self.sdu_interval_p_to_c.get_or_insert_with(|| fidl::new_empty!(u32, D));
7811 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
7812 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7813 {
7814 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7815 }
7816 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7817 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7818 }
7819 }
7820
7821 next_offset += envelope_size;
7822 _next_ordinal_to_read += 1;
7823 if next_offset >= end_offset {
7824 return Ok(());
7825 }
7826
7827 while _next_ordinal_to_read < 3 {
7829 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7830 _next_ordinal_to_read += 1;
7831 next_offset += envelope_size;
7832 }
7833
7834 let next_out_of_line = decoder.next_out_of_line();
7835 let handles_before = decoder.remaining_handles();
7836 if let Some((inlined, num_bytes, num_handles)) =
7837 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7838 {
7839 let member_inline_size =
7840 <CigPacking as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7841 if inlined != (member_inline_size <= 4) {
7842 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7843 }
7844 let inner_offset;
7845 let mut inner_depth = depth.clone();
7846 if inlined {
7847 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7848 inner_offset = next_offset;
7849 } else {
7850 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7851 inner_depth.increment()?;
7852 }
7853 let val_ref = self.packing.get_or_insert_with(|| fidl::new_empty!(CigPacking, D));
7854 fidl::decode!(CigPacking, D, val_ref, decoder, inner_offset, inner_depth)?;
7855 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7856 {
7857 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7858 }
7859 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7860 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7861 }
7862 }
7863
7864 next_offset += envelope_size;
7865 _next_ordinal_to_read += 1;
7866 if next_offset >= end_offset {
7867 return Ok(());
7868 }
7869
7870 while _next_ordinal_to_read < 4 {
7872 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7873 _next_ordinal_to_read += 1;
7874 next_offset += envelope_size;
7875 }
7876
7877 let next_out_of_line = decoder.next_out_of_line();
7878 let handles_before = decoder.remaining_handles();
7879 if let Some((inlined, num_bytes, num_handles)) =
7880 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7881 {
7882 let member_inline_size =
7883 <CigFramingOptions as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7884 if inlined != (member_inline_size <= 4) {
7885 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7886 }
7887 let inner_offset;
7888 let mut inner_depth = depth.clone();
7889 if inlined {
7890 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7891 inner_offset = next_offset;
7892 } else {
7893 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7894 inner_depth.increment()?;
7895 }
7896 let val_ref =
7897 self.framing.get_or_insert_with(|| fidl::new_empty!(CigFramingOptions, D));
7898 fidl::decode!(CigFramingOptions, D, val_ref, decoder, inner_offset, inner_depth)?;
7899 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7900 {
7901 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7902 }
7903 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7904 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7905 }
7906 }
7907
7908 next_offset += envelope_size;
7909 _next_ordinal_to_read += 1;
7910 if next_offset >= end_offset {
7911 return Ok(());
7912 }
7913
7914 while _next_ordinal_to_read < 5 {
7916 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7917 _next_ordinal_to_read += 1;
7918 next_offset += envelope_size;
7919 }
7920
7921 let next_out_of_line = decoder.next_out_of_line();
7922 let handles_before = decoder.remaining_handles();
7923 if let Some((inlined, num_bytes, num_handles)) =
7924 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7925 {
7926 let member_inline_size =
7927 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7928 if inlined != (member_inline_size <= 4) {
7929 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7930 }
7931 let inner_offset;
7932 let mut inner_depth = depth.clone();
7933 if inlined {
7934 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7935 inner_offset = next_offset;
7936 } else {
7937 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7938 inner_depth.increment()?;
7939 }
7940 let val_ref = self
7941 .max_transport_latency_c_to_p
7942 .get_or_insert_with(|| fidl::new_empty!(u16, D));
7943 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
7944 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7945 {
7946 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7947 }
7948 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7949 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7950 }
7951 }
7952
7953 next_offset += envelope_size;
7954 _next_ordinal_to_read += 1;
7955 if next_offset >= end_offset {
7956 return Ok(());
7957 }
7958
7959 while _next_ordinal_to_read < 6 {
7961 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7962 _next_ordinal_to_read += 1;
7963 next_offset += envelope_size;
7964 }
7965
7966 let next_out_of_line = decoder.next_out_of_line();
7967 let handles_before = decoder.remaining_handles();
7968 if let Some((inlined, num_bytes, num_handles)) =
7969 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7970 {
7971 let member_inline_size =
7972 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7973 if inlined != (member_inline_size <= 4) {
7974 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7975 }
7976 let inner_offset;
7977 let mut inner_depth = depth.clone();
7978 if inlined {
7979 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7980 inner_offset = next_offset;
7981 } else {
7982 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7983 inner_depth.increment()?;
7984 }
7985 let val_ref = self
7986 .max_transport_latency_p_to_c
7987 .get_or_insert_with(|| fidl::new_empty!(u16, D));
7988 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
7989 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7990 {
7991 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7992 }
7993 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7994 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7995 }
7996 }
7997
7998 next_offset += envelope_size;
7999
8000 while next_offset < end_offset {
8002 _next_ordinal_to_read += 1;
8003 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8004 next_offset += envelope_size;
8005 }
8006
8007 Ok(())
8008 }
8009 }
8010
8011 impl CisEstablishedParameters {
8012 #[inline(always)]
8013 fn max_ordinal_present(&self) -> u64 {
8014 if let Some(_) = self.peripheral_to_central_params {
8015 return 6;
8016 }
8017 if let Some(_) = self.central_to_peripheral_params {
8018 return 5;
8019 }
8020 if let Some(_) = self.iso_interval {
8021 return 4;
8022 }
8023 if let Some(_) = self.max_subevents {
8024 return 3;
8025 }
8026 if let Some(_) = self.cis_sync_delay {
8027 return 2;
8028 }
8029 if let Some(_) = self.cig_sync_delay {
8030 return 1;
8031 }
8032 0
8033 }
8034 }
8035
8036 impl fidl::encoding::ValueTypeMarker for CisEstablishedParameters {
8037 type Borrowed<'a> = &'a Self;
8038 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
8039 value
8040 }
8041 }
8042
8043 unsafe impl fidl::encoding::TypeMarker for CisEstablishedParameters {
8044 type Owned = Self;
8045
8046 #[inline(always)]
8047 fn inline_align(_context: fidl::encoding::Context) -> usize {
8048 8
8049 }
8050
8051 #[inline(always)]
8052 fn inline_size(_context: fidl::encoding::Context) -> usize {
8053 16
8054 }
8055 }
8056
8057 unsafe impl<D: fidl::encoding::ResourceDialect>
8058 fidl::encoding::Encode<CisEstablishedParameters, D> for &CisEstablishedParameters
8059 {
8060 unsafe fn encode(
8061 self,
8062 encoder: &mut fidl::encoding::Encoder<'_, D>,
8063 offset: usize,
8064 mut depth: fidl::encoding::Depth,
8065 ) -> fidl::Result<()> {
8066 encoder.debug_check_bounds::<CisEstablishedParameters>(offset);
8067 let max_ordinal: u64 = self.max_ordinal_present();
8069 encoder.write_num(max_ordinal, offset);
8070 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
8071 if max_ordinal == 0 {
8073 return Ok(());
8074 }
8075 depth.increment()?;
8076 let envelope_size = 8;
8077 let bytes_len = max_ordinal as usize * envelope_size;
8078 #[allow(unused_variables)]
8079 let offset = encoder.out_of_line_offset(bytes_len);
8080 let mut _prev_end_offset: usize = 0;
8081 if 1 > max_ordinal {
8082 return Ok(());
8083 }
8084
8085 let cur_offset: usize = (1 - 1) * envelope_size;
8088
8089 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8091
8092 fidl::encoding::encode_in_envelope_optional::<i64, D>(
8097 self.cig_sync_delay.as_ref().map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
8098 encoder,
8099 offset + cur_offset,
8100 depth,
8101 )?;
8102
8103 _prev_end_offset = cur_offset + envelope_size;
8104 if 2 > max_ordinal {
8105 return Ok(());
8106 }
8107
8108 let cur_offset: usize = (2 - 1) * envelope_size;
8111
8112 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8114
8115 fidl::encoding::encode_in_envelope_optional::<i64, D>(
8120 self.cis_sync_delay.as_ref().map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
8121 encoder,
8122 offset + cur_offset,
8123 depth,
8124 )?;
8125
8126 _prev_end_offset = cur_offset + envelope_size;
8127 if 3 > max_ordinal {
8128 return Ok(());
8129 }
8130
8131 let cur_offset: usize = (3 - 1) * envelope_size;
8134
8135 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8137
8138 fidl::encoding::encode_in_envelope_optional::<u8, D>(
8143 self.max_subevents.as_ref().map(<u8 as fidl::encoding::ValueTypeMarker>::borrow),
8144 encoder,
8145 offset + cur_offset,
8146 depth,
8147 )?;
8148
8149 _prev_end_offset = cur_offset + envelope_size;
8150 if 4 > max_ordinal {
8151 return Ok(());
8152 }
8153
8154 let cur_offset: usize = (4 - 1) * envelope_size;
8157
8158 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8160
8161 fidl::encoding::encode_in_envelope_optional::<i64, D>(
8166 self.iso_interval.as_ref().map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
8167 encoder,
8168 offset + cur_offset,
8169 depth,
8170 )?;
8171
8172 _prev_end_offset = cur_offset + envelope_size;
8173 if 5 > max_ordinal {
8174 return Ok(());
8175 }
8176
8177 let cur_offset: usize = (5 - 1) * envelope_size;
8180
8181 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8183
8184 fidl::encoding::encode_in_envelope_optional::<CisUnidirectionalParams, D>(
8189 self.central_to_peripheral_params
8190 .as_ref()
8191 .map(<CisUnidirectionalParams as fidl::encoding::ValueTypeMarker>::borrow),
8192 encoder,
8193 offset + cur_offset,
8194 depth,
8195 )?;
8196
8197 _prev_end_offset = cur_offset + envelope_size;
8198 if 6 > max_ordinal {
8199 return Ok(());
8200 }
8201
8202 let cur_offset: usize = (6 - 1) * envelope_size;
8205
8206 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8208
8209 fidl::encoding::encode_in_envelope_optional::<CisUnidirectionalParams, D>(
8214 self.peripheral_to_central_params
8215 .as_ref()
8216 .map(<CisUnidirectionalParams as fidl::encoding::ValueTypeMarker>::borrow),
8217 encoder,
8218 offset + cur_offset,
8219 depth,
8220 )?;
8221
8222 _prev_end_offset = cur_offset + envelope_size;
8223
8224 Ok(())
8225 }
8226 }
8227
8228 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
8229 for CisEstablishedParameters
8230 {
8231 #[inline(always)]
8232 fn new_empty() -> Self {
8233 Self::default()
8234 }
8235
8236 unsafe fn decode(
8237 &mut self,
8238 decoder: &mut fidl::encoding::Decoder<'_, D>,
8239 offset: usize,
8240 mut depth: fidl::encoding::Depth,
8241 ) -> fidl::Result<()> {
8242 decoder.debug_check_bounds::<Self>(offset);
8243 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
8244 None => return Err(fidl::Error::NotNullable),
8245 Some(len) => len,
8246 };
8247 if len == 0 {
8249 return Ok(());
8250 };
8251 depth.increment()?;
8252 let envelope_size = 8;
8253 let bytes_len = len * envelope_size;
8254 let offset = decoder.out_of_line_offset(bytes_len)?;
8255 let mut _next_ordinal_to_read = 0;
8257 let mut next_offset = offset;
8258 let end_offset = offset + bytes_len;
8259 _next_ordinal_to_read += 1;
8260 if next_offset >= end_offset {
8261 return Ok(());
8262 }
8263
8264 while _next_ordinal_to_read < 1 {
8266 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8267 _next_ordinal_to_read += 1;
8268 next_offset += envelope_size;
8269 }
8270
8271 let next_out_of_line = decoder.next_out_of_line();
8272 let handles_before = decoder.remaining_handles();
8273 if let Some((inlined, num_bytes, num_handles)) =
8274 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8275 {
8276 let member_inline_size =
8277 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8278 if inlined != (member_inline_size <= 4) {
8279 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8280 }
8281 let inner_offset;
8282 let mut inner_depth = depth.clone();
8283 if inlined {
8284 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8285 inner_offset = next_offset;
8286 } else {
8287 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8288 inner_depth.increment()?;
8289 }
8290 let val_ref = self.cig_sync_delay.get_or_insert_with(|| fidl::new_empty!(i64, D));
8291 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
8292 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8293 {
8294 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8295 }
8296 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8297 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8298 }
8299 }
8300
8301 next_offset += envelope_size;
8302 _next_ordinal_to_read += 1;
8303 if next_offset >= end_offset {
8304 return Ok(());
8305 }
8306
8307 while _next_ordinal_to_read < 2 {
8309 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8310 _next_ordinal_to_read += 1;
8311 next_offset += envelope_size;
8312 }
8313
8314 let next_out_of_line = decoder.next_out_of_line();
8315 let handles_before = decoder.remaining_handles();
8316 if let Some((inlined, num_bytes, num_handles)) =
8317 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8318 {
8319 let member_inline_size =
8320 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8321 if inlined != (member_inline_size <= 4) {
8322 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8323 }
8324 let inner_offset;
8325 let mut inner_depth = depth.clone();
8326 if inlined {
8327 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8328 inner_offset = next_offset;
8329 } else {
8330 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8331 inner_depth.increment()?;
8332 }
8333 let val_ref = self.cis_sync_delay.get_or_insert_with(|| fidl::new_empty!(i64, D));
8334 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
8335 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8336 {
8337 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8338 }
8339 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8340 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8341 }
8342 }
8343
8344 next_offset += envelope_size;
8345 _next_ordinal_to_read += 1;
8346 if next_offset >= end_offset {
8347 return Ok(());
8348 }
8349
8350 while _next_ordinal_to_read < 3 {
8352 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8353 _next_ordinal_to_read += 1;
8354 next_offset += envelope_size;
8355 }
8356
8357 let next_out_of_line = decoder.next_out_of_line();
8358 let handles_before = decoder.remaining_handles();
8359 if let Some((inlined, num_bytes, num_handles)) =
8360 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8361 {
8362 let member_inline_size =
8363 <u8 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8364 if inlined != (member_inline_size <= 4) {
8365 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8366 }
8367 let inner_offset;
8368 let mut inner_depth = depth.clone();
8369 if inlined {
8370 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8371 inner_offset = next_offset;
8372 } else {
8373 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8374 inner_depth.increment()?;
8375 }
8376 let val_ref = self.max_subevents.get_or_insert_with(|| fidl::new_empty!(u8, D));
8377 fidl::decode!(u8, D, val_ref, decoder, inner_offset, inner_depth)?;
8378 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8379 {
8380 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8381 }
8382 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8383 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8384 }
8385 }
8386
8387 next_offset += envelope_size;
8388 _next_ordinal_to_read += 1;
8389 if next_offset >= end_offset {
8390 return Ok(());
8391 }
8392
8393 while _next_ordinal_to_read < 4 {
8395 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8396 _next_ordinal_to_read += 1;
8397 next_offset += envelope_size;
8398 }
8399
8400 let next_out_of_line = decoder.next_out_of_line();
8401 let handles_before = decoder.remaining_handles();
8402 if let Some((inlined, num_bytes, num_handles)) =
8403 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8404 {
8405 let member_inline_size =
8406 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8407 if inlined != (member_inline_size <= 4) {
8408 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8409 }
8410 let inner_offset;
8411 let mut inner_depth = depth.clone();
8412 if inlined {
8413 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8414 inner_offset = next_offset;
8415 } else {
8416 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8417 inner_depth.increment()?;
8418 }
8419 let val_ref = self.iso_interval.get_or_insert_with(|| fidl::new_empty!(i64, D));
8420 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
8421 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8422 {
8423 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8424 }
8425 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8426 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8427 }
8428 }
8429
8430 next_offset += envelope_size;
8431 _next_ordinal_to_read += 1;
8432 if next_offset >= end_offset {
8433 return Ok(());
8434 }
8435
8436 while _next_ordinal_to_read < 5 {
8438 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8439 _next_ordinal_to_read += 1;
8440 next_offset += envelope_size;
8441 }
8442
8443 let next_out_of_line = decoder.next_out_of_line();
8444 let handles_before = decoder.remaining_handles();
8445 if let Some((inlined, num_bytes, num_handles)) =
8446 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8447 {
8448 let member_inline_size =
8449 <CisUnidirectionalParams as fidl::encoding::TypeMarker>::inline_size(
8450 decoder.context,
8451 );
8452 if inlined != (member_inline_size <= 4) {
8453 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8454 }
8455 let inner_offset;
8456 let mut inner_depth = depth.clone();
8457 if inlined {
8458 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8459 inner_offset = next_offset;
8460 } else {
8461 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8462 inner_depth.increment()?;
8463 }
8464 let val_ref = self
8465 .central_to_peripheral_params
8466 .get_or_insert_with(|| fidl::new_empty!(CisUnidirectionalParams, D));
8467 fidl::decode!(
8468 CisUnidirectionalParams,
8469 D,
8470 val_ref,
8471 decoder,
8472 inner_offset,
8473 inner_depth
8474 )?;
8475 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8476 {
8477 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8478 }
8479 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8480 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8481 }
8482 }
8483
8484 next_offset += envelope_size;
8485 _next_ordinal_to_read += 1;
8486 if next_offset >= end_offset {
8487 return Ok(());
8488 }
8489
8490 while _next_ordinal_to_read < 6 {
8492 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8493 _next_ordinal_to_read += 1;
8494 next_offset += envelope_size;
8495 }
8496
8497 let next_out_of_line = decoder.next_out_of_line();
8498 let handles_before = decoder.remaining_handles();
8499 if let Some((inlined, num_bytes, num_handles)) =
8500 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8501 {
8502 let member_inline_size =
8503 <CisUnidirectionalParams as fidl::encoding::TypeMarker>::inline_size(
8504 decoder.context,
8505 );
8506 if inlined != (member_inline_size <= 4) {
8507 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8508 }
8509 let inner_offset;
8510 let mut inner_depth = depth.clone();
8511 if inlined {
8512 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8513 inner_offset = next_offset;
8514 } else {
8515 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8516 inner_depth.increment()?;
8517 }
8518 let val_ref = self
8519 .peripheral_to_central_params
8520 .get_or_insert_with(|| fidl::new_empty!(CisUnidirectionalParams, D));
8521 fidl::decode!(
8522 CisUnidirectionalParams,
8523 D,
8524 val_ref,
8525 decoder,
8526 inner_offset,
8527 inner_depth
8528 )?;
8529 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8530 {
8531 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8532 }
8533 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8534 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8535 }
8536 }
8537
8538 next_offset += envelope_size;
8539
8540 while next_offset < end_offset {
8542 _next_ordinal_to_read += 1;
8543 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8544 next_offset += envelope_size;
8545 }
8546
8547 Ok(())
8548 }
8549 }
8550
8551 impl CisParameters {
8552 #[inline(always)]
8553 fn max_ordinal_present(&self) -> u64 {
8554 if let Some(_) = self.id {
8555 return 2;
8556 }
8557 if let Some(_) = self.cis_id {
8558 return 1;
8559 }
8560 0
8561 }
8562 }
8563
8564 impl fidl::encoding::ValueTypeMarker for CisParameters {
8565 type Borrowed<'a> = &'a Self;
8566 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
8567 value
8568 }
8569 }
8570
8571 unsafe impl fidl::encoding::TypeMarker for CisParameters {
8572 type Owned = Self;
8573
8574 #[inline(always)]
8575 fn inline_align(_context: fidl::encoding::Context) -> usize {
8576 8
8577 }
8578
8579 #[inline(always)]
8580 fn inline_size(_context: fidl::encoding::Context) -> usize {
8581 16
8582 }
8583 }
8584
8585 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<CisParameters, D>
8586 for &CisParameters
8587 {
8588 unsafe fn encode(
8589 self,
8590 encoder: &mut fidl::encoding::Encoder<'_, D>,
8591 offset: usize,
8592 mut depth: fidl::encoding::Depth,
8593 ) -> fidl::Result<()> {
8594 encoder.debug_check_bounds::<CisParameters>(offset);
8595 let max_ordinal: u64 = self.max_ordinal_present();
8597 encoder.write_num(max_ordinal, offset);
8598 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
8599 if max_ordinal == 0 {
8601 return Ok(());
8602 }
8603 depth.increment()?;
8604 let envelope_size = 8;
8605 let bytes_len = max_ordinal as usize * envelope_size;
8606 #[allow(unused_variables)]
8607 let offset = encoder.out_of_line_offset(bytes_len);
8608 let mut _prev_end_offset: usize = 0;
8609 if 1 > max_ordinal {
8610 return Ok(());
8611 }
8612
8613 let cur_offset: usize = (1 - 1) * envelope_size;
8616
8617 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8619
8620 fidl::encoding::encode_in_envelope_optional::<u8, D>(
8625 self.cis_id.as_ref().map(<u8 as fidl::encoding::ValueTypeMarker>::borrow),
8626 encoder,
8627 offset + cur_offset,
8628 depth,
8629 )?;
8630
8631 _prev_end_offset = cur_offset + envelope_size;
8632 if 2 > max_ordinal {
8633 return Ok(());
8634 }
8635
8636 let cur_offset: usize = (2 - 1) * envelope_size;
8639
8640 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8642
8643 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_bluetooth__common::PeerId, D>(
8648 self.id.as_ref().map(<fidl_fuchsia_bluetooth__common::PeerId as fidl::encoding::ValueTypeMarker>::borrow),
8649 encoder, offset + cur_offset, depth
8650 )?;
8651
8652 _prev_end_offset = cur_offset + envelope_size;
8653
8654 Ok(())
8655 }
8656 }
8657
8658 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for CisParameters {
8659 #[inline(always)]
8660 fn new_empty() -> Self {
8661 Self::default()
8662 }
8663
8664 unsafe fn decode(
8665 &mut self,
8666 decoder: &mut fidl::encoding::Decoder<'_, D>,
8667 offset: usize,
8668 mut depth: fidl::encoding::Depth,
8669 ) -> fidl::Result<()> {
8670 decoder.debug_check_bounds::<Self>(offset);
8671 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
8672 None => return Err(fidl::Error::NotNullable),
8673 Some(len) => len,
8674 };
8675 if len == 0 {
8677 return Ok(());
8678 };
8679 depth.increment()?;
8680 let envelope_size = 8;
8681 let bytes_len = len * envelope_size;
8682 let offset = decoder.out_of_line_offset(bytes_len)?;
8683 let mut _next_ordinal_to_read = 0;
8685 let mut next_offset = offset;
8686 let end_offset = offset + bytes_len;
8687 _next_ordinal_to_read += 1;
8688 if next_offset >= end_offset {
8689 return Ok(());
8690 }
8691
8692 while _next_ordinal_to_read < 1 {
8694 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8695 _next_ordinal_to_read += 1;
8696 next_offset += envelope_size;
8697 }
8698
8699 let next_out_of_line = decoder.next_out_of_line();
8700 let handles_before = decoder.remaining_handles();
8701 if let Some((inlined, num_bytes, num_handles)) =
8702 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8703 {
8704 let member_inline_size =
8705 <u8 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8706 if inlined != (member_inline_size <= 4) {
8707 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8708 }
8709 let inner_offset;
8710 let mut inner_depth = depth.clone();
8711 if inlined {
8712 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8713 inner_offset = next_offset;
8714 } else {
8715 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8716 inner_depth.increment()?;
8717 }
8718 let val_ref = self.cis_id.get_or_insert_with(|| fidl::new_empty!(u8, D));
8719 fidl::decode!(u8, D, val_ref, decoder, inner_offset, inner_depth)?;
8720 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8721 {
8722 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8723 }
8724 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8725 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8726 }
8727 }
8728
8729 next_offset += envelope_size;
8730 _next_ordinal_to_read += 1;
8731 if next_offset >= end_offset {
8732 return Ok(());
8733 }
8734
8735 while _next_ordinal_to_read < 2 {
8737 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8738 _next_ordinal_to_read += 1;
8739 next_offset += envelope_size;
8740 }
8741
8742 let next_out_of_line = decoder.next_out_of_line();
8743 let handles_before = decoder.remaining_handles();
8744 if let Some((inlined, num_bytes, num_handles)) =
8745 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8746 {
8747 let member_inline_size = <fidl_fuchsia_bluetooth__common::PeerId as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8748 if inlined != (member_inline_size <= 4) {
8749 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8750 }
8751 let inner_offset;
8752 let mut inner_depth = depth.clone();
8753 if inlined {
8754 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8755 inner_offset = next_offset;
8756 } else {
8757 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8758 inner_depth.increment()?;
8759 }
8760 let val_ref = self.id.get_or_insert_with(|| {
8761 fidl::new_empty!(fidl_fuchsia_bluetooth__common::PeerId, D)
8762 });
8763 fidl::decode!(
8764 fidl_fuchsia_bluetooth__common::PeerId,
8765 D,
8766 val_ref,
8767 decoder,
8768 inner_offset,
8769 inner_depth
8770 )?;
8771 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8772 {
8773 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8774 }
8775 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8776 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8777 }
8778 }
8779
8780 next_offset += envelope_size;
8781
8782 while next_offset < end_offset {
8784 _next_ordinal_to_read += 1;
8785 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8786 next_offset += envelope_size;
8787 }
8788
8789 Ok(())
8790 }
8791 }
8792
8793 impl CisUnidirectionalParams {
8794 #[inline(always)]
8795 fn max_ordinal_present(&self) -> u64 {
8796 if let Some(_) = self.flush_timeout {
8797 return 3;
8798 }
8799 if let Some(_) = self.burst_number {
8800 return 2;
8801 }
8802 if let Some(_) = self.transport_latency {
8803 return 1;
8804 }
8805 0
8806 }
8807 }
8808
8809 impl fidl::encoding::ValueTypeMarker for CisUnidirectionalParams {
8810 type Borrowed<'a> = &'a Self;
8811 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
8812 value
8813 }
8814 }
8815
8816 unsafe impl fidl::encoding::TypeMarker for CisUnidirectionalParams {
8817 type Owned = Self;
8818
8819 #[inline(always)]
8820 fn inline_align(_context: fidl::encoding::Context) -> usize {
8821 8
8822 }
8823
8824 #[inline(always)]
8825 fn inline_size(_context: fidl::encoding::Context) -> usize {
8826 16
8827 }
8828 }
8829
8830 unsafe impl<D: fidl::encoding::ResourceDialect>
8831 fidl::encoding::Encode<CisUnidirectionalParams, D> for &CisUnidirectionalParams
8832 {
8833 unsafe fn encode(
8834 self,
8835 encoder: &mut fidl::encoding::Encoder<'_, D>,
8836 offset: usize,
8837 mut depth: fidl::encoding::Depth,
8838 ) -> fidl::Result<()> {
8839 encoder.debug_check_bounds::<CisUnidirectionalParams>(offset);
8840 let max_ordinal: u64 = self.max_ordinal_present();
8842 encoder.write_num(max_ordinal, offset);
8843 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
8844 if max_ordinal == 0 {
8846 return Ok(());
8847 }
8848 depth.increment()?;
8849 let envelope_size = 8;
8850 let bytes_len = max_ordinal as usize * envelope_size;
8851 #[allow(unused_variables)]
8852 let offset = encoder.out_of_line_offset(bytes_len);
8853 let mut _prev_end_offset: usize = 0;
8854 if 1 > max_ordinal {
8855 return Ok(());
8856 }
8857
8858 let cur_offset: usize = (1 - 1) * envelope_size;
8861
8862 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8864
8865 fidl::encoding::encode_in_envelope_optional::<i64, D>(
8870 self.transport_latency
8871 .as_ref()
8872 .map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
8873 encoder,
8874 offset + cur_offset,
8875 depth,
8876 )?;
8877
8878 _prev_end_offset = cur_offset + envelope_size;
8879 if 2 > max_ordinal {
8880 return Ok(());
8881 }
8882
8883 let cur_offset: usize = (2 - 1) * envelope_size;
8886
8887 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8889
8890 fidl::encoding::encode_in_envelope_optional::<u8, D>(
8895 self.burst_number.as_ref().map(<u8 as fidl::encoding::ValueTypeMarker>::borrow),
8896 encoder,
8897 offset + cur_offset,
8898 depth,
8899 )?;
8900
8901 _prev_end_offset = cur_offset + envelope_size;
8902 if 3 > max_ordinal {
8903 return Ok(());
8904 }
8905
8906 let cur_offset: usize = (3 - 1) * envelope_size;
8909
8910 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8912
8913 fidl::encoding::encode_in_envelope_optional::<u8, D>(
8918 self.flush_timeout.as_ref().map(<u8 as fidl::encoding::ValueTypeMarker>::borrow),
8919 encoder,
8920 offset + cur_offset,
8921 depth,
8922 )?;
8923
8924 _prev_end_offset = cur_offset + envelope_size;
8925
8926 Ok(())
8927 }
8928 }
8929
8930 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
8931 for CisUnidirectionalParams
8932 {
8933 #[inline(always)]
8934 fn new_empty() -> Self {
8935 Self::default()
8936 }
8937
8938 unsafe fn decode(
8939 &mut self,
8940 decoder: &mut fidl::encoding::Decoder<'_, D>,
8941 offset: usize,
8942 mut depth: fidl::encoding::Depth,
8943 ) -> fidl::Result<()> {
8944 decoder.debug_check_bounds::<Self>(offset);
8945 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
8946 None => return Err(fidl::Error::NotNullable),
8947 Some(len) => len,
8948 };
8949 if len == 0 {
8951 return Ok(());
8952 };
8953 depth.increment()?;
8954 let envelope_size = 8;
8955 let bytes_len = len * envelope_size;
8956 let offset = decoder.out_of_line_offset(bytes_len)?;
8957 let mut _next_ordinal_to_read = 0;
8959 let mut next_offset = offset;
8960 let end_offset = offset + bytes_len;
8961 _next_ordinal_to_read += 1;
8962 if next_offset >= end_offset {
8963 return Ok(());
8964 }
8965
8966 while _next_ordinal_to_read < 1 {
8968 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8969 _next_ordinal_to_read += 1;
8970 next_offset += envelope_size;
8971 }
8972
8973 let next_out_of_line = decoder.next_out_of_line();
8974 let handles_before = decoder.remaining_handles();
8975 if let Some((inlined, num_bytes, num_handles)) =
8976 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8977 {
8978 let member_inline_size =
8979 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8980 if inlined != (member_inline_size <= 4) {
8981 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8982 }
8983 let inner_offset;
8984 let mut inner_depth = depth.clone();
8985 if inlined {
8986 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8987 inner_offset = next_offset;
8988 } else {
8989 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8990 inner_depth.increment()?;
8991 }
8992 let val_ref =
8993 self.transport_latency.get_or_insert_with(|| fidl::new_empty!(i64, D));
8994 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
8995 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8996 {
8997 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8998 }
8999 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9000 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9001 }
9002 }
9003
9004 next_offset += envelope_size;
9005 _next_ordinal_to_read += 1;
9006 if next_offset >= end_offset {
9007 return Ok(());
9008 }
9009
9010 while _next_ordinal_to_read < 2 {
9012 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9013 _next_ordinal_to_read += 1;
9014 next_offset += envelope_size;
9015 }
9016
9017 let next_out_of_line = decoder.next_out_of_line();
9018 let handles_before = decoder.remaining_handles();
9019 if let Some((inlined, num_bytes, num_handles)) =
9020 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9021 {
9022 let member_inline_size =
9023 <u8 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9024 if inlined != (member_inline_size <= 4) {
9025 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9026 }
9027 let inner_offset;
9028 let mut inner_depth = depth.clone();
9029 if inlined {
9030 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9031 inner_offset = next_offset;
9032 } else {
9033 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9034 inner_depth.increment()?;
9035 }
9036 let val_ref = self.burst_number.get_or_insert_with(|| fidl::new_empty!(u8, D));
9037 fidl::decode!(u8, D, val_ref, decoder, inner_offset, inner_depth)?;
9038 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9039 {
9040 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9041 }
9042 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9043 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9044 }
9045 }
9046
9047 next_offset += envelope_size;
9048 _next_ordinal_to_read += 1;
9049 if next_offset >= end_offset {
9050 return Ok(());
9051 }
9052
9053 while _next_ordinal_to_read < 3 {
9055 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9056 _next_ordinal_to_read += 1;
9057 next_offset += envelope_size;
9058 }
9059
9060 let next_out_of_line = decoder.next_out_of_line();
9061 let handles_before = decoder.remaining_handles();
9062 if let Some((inlined, num_bytes, num_handles)) =
9063 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9064 {
9065 let member_inline_size =
9066 <u8 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.flush_timeout.get_or_insert_with(|| fidl::new_empty!(u8, D));
9080 fidl::decode!(u8, D, val_ref, decoder, inner_offset, inner_depth)?;
9081 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9082 {
9083 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9084 }
9085 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9086 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9087 }
9088 }
9089
9090 next_offset += envelope_size;
9091
9092 while next_offset < end_offset {
9094 _next_ordinal_to_read += 1;
9095 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9096 next_offset += envelope_size;
9097 }
9098
9099 Ok(())
9100 }
9101 }
9102
9103 impl CodecDelayGetCodecLocalDelayRangeRequest {
9104 #[inline(always)]
9105 fn max_ordinal_present(&self) -> u64 {
9106 if let Some(_) = self.codec_attributes {
9107 return 3;
9108 }
9109 if let Some(_) = self.data_direction {
9110 return 2;
9111 }
9112 if let Some(_) = self.logical_transport_type {
9113 return 1;
9114 }
9115 0
9116 }
9117 }
9118
9119 impl fidl::encoding::ValueTypeMarker for CodecDelayGetCodecLocalDelayRangeRequest {
9120 type Borrowed<'a> = &'a Self;
9121 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
9122 value
9123 }
9124 }
9125
9126 unsafe impl fidl::encoding::TypeMarker for CodecDelayGetCodecLocalDelayRangeRequest {
9127 type Owned = Self;
9128
9129 #[inline(always)]
9130 fn inline_align(_context: fidl::encoding::Context) -> usize {
9131 8
9132 }
9133
9134 #[inline(always)]
9135 fn inline_size(_context: fidl::encoding::Context) -> usize {
9136 16
9137 }
9138 }
9139
9140 unsafe impl<D: fidl::encoding::ResourceDialect>
9141 fidl::encoding::Encode<CodecDelayGetCodecLocalDelayRangeRequest, D>
9142 for &CodecDelayGetCodecLocalDelayRangeRequest
9143 {
9144 unsafe fn encode(
9145 self,
9146 encoder: &mut fidl::encoding::Encoder<'_, D>,
9147 offset: usize,
9148 mut depth: fidl::encoding::Depth,
9149 ) -> fidl::Result<()> {
9150 encoder.debug_check_bounds::<CodecDelayGetCodecLocalDelayRangeRequest>(offset);
9151 let max_ordinal: u64 = self.max_ordinal_present();
9153 encoder.write_num(max_ordinal, offset);
9154 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
9155 if max_ordinal == 0 {
9157 return Ok(());
9158 }
9159 depth.increment()?;
9160 let envelope_size = 8;
9161 let bytes_len = max_ordinal as usize * envelope_size;
9162 #[allow(unused_variables)]
9163 let offset = encoder.out_of_line_offset(bytes_len);
9164 let mut _prev_end_offset: usize = 0;
9165 if 1 > max_ordinal {
9166 return Ok(());
9167 }
9168
9169 let cur_offset: usize = (1 - 1) * envelope_size;
9172
9173 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9175
9176 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_bluetooth__common::LogicalTransportType, D>(
9181 self.logical_transport_type.as_ref().map(<fidl_fuchsia_bluetooth__common::LogicalTransportType as fidl::encoding::ValueTypeMarker>::borrow),
9182 encoder, offset + cur_offset, depth
9183 )?;
9184
9185 _prev_end_offset = cur_offset + envelope_size;
9186 if 2 > max_ordinal {
9187 return Ok(());
9188 }
9189
9190 let cur_offset: usize = (2 - 1) * envelope_size;
9193
9194 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9196
9197 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_bluetooth__common::DataDirection, D>(
9202 self.data_direction.as_ref().map(<fidl_fuchsia_bluetooth__common::DataDirection as fidl::encoding::ValueTypeMarker>::borrow),
9203 encoder, offset + cur_offset, depth
9204 )?;
9205
9206 _prev_end_offset = cur_offset + envelope_size;
9207 if 3 > max_ordinal {
9208 return Ok(());
9209 }
9210
9211 let cur_offset: usize = (3 - 1) * envelope_size;
9214
9215 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9217
9218 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_bluetooth__common::CodecAttributes, D>(
9223 self.codec_attributes.as_ref().map(<fidl_fuchsia_bluetooth__common::CodecAttributes as fidl::encoding::ValueTypeMarker>::borrow),
9224 encoder, offset + cur_offset, depth
9225 )?;
9226
9227 _prev_end_offset = cur_offset + envelope_size;
9228
9229 Ok(())
9230 }
9231 }
9232
9233 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
9234 for CodecDelayGetCodecLocalDelayRangeRequest
9235 {
9236 #[inline(always)]
9237 fn new_empty() -> Self {
9238 Self::default()
9239 }
9240
9241 unsafe fn decode(
9242 &mut self,
9243 decoder: &mut fidl::encoding::Decoder<'_, D>,
9244 offset: usize,
9245 mut depth: fidl::encoding::Depth,
9246 ) -> fidl::Result<()> {
9247 decoder.debug_check_bounds::<Self>(offset);
9248 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
9249 None => return Err(fidl::Error::NotNullable),
9250 Some(len) => len,
9251 };
9252 if len == 0 {
9254 return Ok(());
9255 };
9256 depth.increment()?;
9257 let envelope_size = 8;
9258 let bytes_len = len * envelope_size;
9259 let offset = decoder.out_of_line_offset(bytes_len)?;
9260 let mut _next_ordinal_to_read = 0;
9262 let mut next_offset = offset;
9263 let end_offset = offset + bytes_len;
9264 _next_ordinal_to_read += 1;
9265 if next_offset >= end_offset {
9266 return Ok(());
9267 }
9268
9269 while _next_ordinal_to_read < 1 {
9271 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9272 _next_ordinal_to_read += 1;
9273 next_offset += envelope_size;
9274 }
9275
9276 let next_out_of_line = decoder.next_out_of_line();
9277 let handles_before = decoder.remaining_handles();
9278 if let Some((inlined, num_bytes, num_handles)) =
9279 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9280 {
9281 let member_inline_size = <fidl_fuchsia_bluetooth__common::LogicalTransportType as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9282 if inlined != (member_inline_size <= 4) {
9283 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9284 }
9285 let inner_offset;
9286 let mut inner_depth = depth.clone();
9287 if inlined {
9288 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9289 inner_offset = next_offset;
9290 } else {
9291 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9292 inner_depth.increment()?;
9293 }
9294 let val_ref = self.logical_transport_type.get_or_insert_with(|| {
9295 fidl::new_empty!(fidl_fuchsia_bluetooth__common::LogicalTransportType, D)
9296 });
9297 fidl::decode!(
9298 fidl_fuchsia_bluetooth__common::LogicalTransportType,
9299 D,
9300 val_ref,
9301 decoder,
9302 inner_offset,
9303 inner_depth
9304 )?;
9305 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9306 {
9307 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9308 }
9309 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9310 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9311 }
9312 }
9313
9314 next_offset += envelope_size;
9315 _next_ordinal_to_read += 1;
9316 if next_offset >= end_offset {
9317 return Ok(());
9318 }
9319
9320 while _next_ordinal_to_read < 2 {
9322 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9323 _next_ordinal_to_read += 1;
9324 next_offset += envelope_size;
9325 }
9326
9327 let next_out_of_line = decoder.next_out_of_line();
9328 let handles_before = decoder.remaining_handles();
9329 if let Some((inlined, num_bytes, num_handles)) =
9330 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9331 {
9332 let member_inline_size = <fidl_fuchsia_bluetooth__common::DataDirection as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9333 if inlined != (member_inline_size <= 4) {
9334 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9335 }
9336 let inner_offset;
9337 let mut inner_depth = depth.clone();
9338 if inlined {
9339 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9340 inner_offset = next_offset;
9341 } else {
9342 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9343 inner_depth.increment()?;
9344 }
9345 let val_ref = self.data_direction.get_or_insert_with(|| {
9346 fidl::new_empty!(fidl_fuchsia_bluetooth__common::DataDirection, D)
9347 });
9348 fidl::decode!(
9349 fidl_fuchsia_bluetooth__common::DataDirection,
9350 D,
9351 val_ref,
9352 decoder,
9353 inner_offset,
9354 inner_depth
9355 )?;
9356 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9357 {
9358 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9359 }
9360 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9361 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9362 }
9363 }
9364
9365 next_offset += envelope_size;
9366 _next_ordinal_to_read += 1;
9367 if next_offset >= end_offset {
9368 return Ok(());
9369 }
9370
9371 while _next_ordinal_to_read < 3 {
9373 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9374 _next_ordinal_to_read += 1;
9375 next_offset += envelope_size;
9376 }
9377
9378 let next_out_of_line = decoder.next_out_of_line();
9379 let handles_before = decoder.remaining_handles();
9380 if let Some((inlined, num_bytes, num_handles)) =
9381 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9382 {
9383 let member_inline_size = <fidl_fuchsia_bluetooth__common::CodecAttributes as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9384 if inlined != (member_inline_size <= 4) {
9385 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9386 }
9387 let inner_offset;
9388 let mut inner_depth = depth.clone();
9389 if inlined {
9390 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9391 inner_offset = next_offset;
9392 } else {
9393 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9394 inner_depth.increment()?;
9395 }
9396 let val_ref = self.codec_attributes.get_or_insert_with(|| {
9397 fidl::new_empty!(fidl_fuchsia_bluetooth__common::CodecAttributes, D)
9398 });
9399 fidl::decode!(
9400 fidl_fuchsia_bluetooth__common::CodecAttributes,
9401 D,
9402 val_ref,
9403 decoder,
9404 inner_offset,
9405 inner_depth
9406 )?;
9407 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9408 {
9409 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9410 }
9411 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9412 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9413 }
9414 }
9415
9416 next_offset += envelope_size;
9417
9418 while next_offset < end_offset {
9420 _next_ordinal_to_read += 1;
9421 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9422 next_offset += envelope_size;
9423 }
9424
9425 Ok(())
9426 }
9427 }
9428
9429 impl CodecDelayGetCodecLocalDelayRangeResponse {
9430 #[inline(always)]
9431 fn max_ordinal_present(&self) -> u64 {
9432 if let Some(_) = self.max_controller_delay {
9433 return 2;
9434 }
9435 if let Some(_) = self.min_controller_delay {
9436 return 1;
9437 }
9438 0
9439 }
9440 }
9441
9442 impl fidl::encoding::ValueTypeMarker for CodecDelayGetCodecLocalDelayRangeResponse {
9443 type Borrowed<'a> = &'a Self;
9444 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
9445 value
9446 }
9447 }
9448
9449 unsafe impl fidl::encoding::TypeMarker for CodecDelayGetCodecLocalDelayRangeResponse {
9450 type Owned = Self;
9451
9452 #[inline(always)]
9453 fn inline_align(_context: fidl::encoding::Context) -> usize {
9454 8
9455 }
9456
9457 #[inline(always)]
9458 fn inline_size(_context: fidl::encoding::Context) -> usize {
9459 16
9460 }
9461 }
9462
9463 unsafe impl<D: fidl::encoding::ResourceDialect>
9464 fidl::encoding::Encode<CodecDelayGetCodecLocalDelayRangeResponse, D>
9465 for &CodecDelayGetCodecLocalDelayRangeResponse
9466 {
9467 unsafe fn encode(
9468 self,
9469 encoder: &mut fidl::encoding::Encoder<'_, D>,
9470 offset: usize,
9471 mut depth: fidl::encoding::Depth,
9472 ) -> fidl::Result<()> {
9473 encoder.debug_check_bounds::<CodecDelayGetCodecLocalDelayRangeResponse>(offset);
9474 let max_ordinal: u64 = self.max_ordinal_present();
9476 encoder.write_num(max_ordinal, offset);
9477 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
9478 if max_ordinal == 0 {
9480 return Ok(());
9481 }
9482 depth.increment()?;
9483 let envelope_size = 8;
9484 let bytes_len = max_ordinal as usize * envelope_size;
9485 #[allow(unused_variables)]
9486 let offset = encoder.out_of_line_offset(bytes_len);
9487 let mut _prev_end_offset: usize = 0;
9488 if 1 > max_ordinal {
9489 return Ok(());
9490 }
9491
9492 let cur_offset: usize = (1 - 1) * envelope_size;
9495
9496 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9498
9499 fidl::encoding::encode_in_envelope_optional::<i64, D>(
9504 self.min_controller_delay
9505 .as_ref()
9506 .map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
9507 encoder,
9508 offset + cur_offset,
9509 depth,
9510 )?;
9511
9512 _prev_end_offset = cur_offset + envelope_size;
9513 if 2 > max_ordinal {
9514 return Ok(());
9515 }
9516
9517 let cur_offset: usize = (2 - 1) * envelope_size;
9520
9521 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9523
9524 fidl::encoding::encode_in_envelope_optional::<i64, D>(
9529 self.max_controller_delay
9530 .as_ref()
9531 .map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
9532 encoder,
9533 offset + cur_offset,
9534 depth,
9535 )?;
9536
9537 _prev_end_offset = cur_offset + envelope_size;
9538
9539 Ok(())
9540 }
9541 }
9542
9543 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
9544 for CodecDelayGetCodecLocalDelayRangeResponse
9545 {
9546 #[inline(always)]
9547 fn new_empty() -> Self {
9548 Self::default()
9549 }
9550
9551 unsafe fn decode(
9552 &mut self,
9553 decoder: &mut fidl::encoding::Decoder<'_, D>,
9554 offset: usize,
9555 mut depth: fidl::encoding::Depth,
9556 ) -> fidl::Result<()> {
9557 decoder.debug_check_bounds::<Self>(offset);
9558 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
9559 None => return Err(fidl::Error::NotNullable),
9560 Some(len) => len,
9561 };
9562 if len == 0 {
9564 return Ok(());
9565 };
9566 depth.increment()?;
9567 let envelope_size = 8;
9568 let bytes_len = len * envelope_size;
9569 let offset = decoder.out_of_line_offset(bytes_len)?;
9570 let mut _next_ordinal_to_read = 0;
9572 let mut next_offset = offset;
9573 let end_offset = offset + bytes_len;
9574 _next_ordinal_to_read += 1;
9575 if next_offset >= end_offset {
9576 return Ok(());
9577 }
9578
9579 while _next_ordinal_to_read < 1 {
9581 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9582 _next_ordinal_to_read += 1;
9583 next_offset += envelope_size;
9584 }
9585
9586 let next_out_of_line = decoder.next_out_of_line();
9587 let handles_before = decoder.remaining_handles();
9588 if let Some((inlined, num_bytes, num_handles)) =
9589 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9590 {
9591 let member_inline_size =
9592 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9593 if inlined != (member_inline_size <= 4) {
9594 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9595 }
9596 let inner_offset;
9597 let mut inner_depth = depth.clone();
9598 if inlined {
9599 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9600 inner_offset = next_offset;
9601 } else {
9602 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9603 inner_depth.increment()?;
9604 }
9605 let val_ref =
9606 self.min_controller_delay.get_or_insert_with(|| fidl::new_empty!(i64, D));
9607 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
9608 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9609 {
9610 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9611 }
9612 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9613 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9614 }
9615 }
9616
9617 next_offset += envelope_size;
9618 _next_ordinal_to_read += 1;
9619 if next_offset >= end_offset {
9620 return Ok(());
9621 }
9622
9623 while _next_ordinal_to_read < 2 {
9625 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9626 _next_ordinal_to_read += 1;
9627 next_offset += envelope_size;
9628 }
9629
9630 let next_out_of_line = decoder.next_out_of_line();
9631 let handles_before = decoder.remaining_handles();
9632 if let Some((inlined, num_bytes, num_handles)) =
9633 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9634 {
9635 let member_inline_size =
9636 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9637 if inlined != (member_inline_size <= 4) {
9638 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9639 }
9640 let inner_offset;
9641 let mut inner_depth = depth.clone();
9642 if inlined {
9643 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9644 inner_offset = next_offset;
9645 } else {
9646 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9647 inner_depth.increment()?;
9648 }
9649 let val_ref =
9650 self.max_controller_delay.get_or_insert_with(|| fidl::new_empty!(i64, D));
9651 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
9652 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9653 {
9654 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9655 }
9656 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9657 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9658 }
9659 }
9660
9661 next_offset += envelope_size;
9662
9663 while next_offset < end_offset {
9665 _next_ordinal_to_read += 1;
9666 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9667 next_offset += envelope_size;
9668 }
9669
9670 Ok(())
9671 }
9672 }
9673
9674 impl ConnectedIsochronousGroupEstablishStreamsRequest {
9675 #[inline(always)]
9676 fn max_ordinal_present(&self) -> u64 {
9677 if let Some(_) = self.cis_params {
9678 return 1;
9679 }
9680 0
9681 }
9682 }
9683
9684 impl fidl::encoding::ValueTypeMarker for ConnectedIsochronousGroupEstablishStreamsRequest {
9685 type Borrowed<'a> = &'a Self;
9686 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
9687 value
9688 }
9689 }
9690
9691 unsafe impl fidl::encoding::TypeMarker for ConnectedIsochronousGroupEstablishStreamsRequest {
9692 type Owned = Self;
9693
9694 #[inline(always)]
9695 fn inline_align(_context: fidl::encoding::Context) -> usize {
9696 8
9697 }
9698
9699 #[inline(always)]
9700 fn inline_size(_context: fidl::encoding::Context) -> usize {
9701 16
9702 }
9703 }
9704
9705 unsafe impl<D: fidl::encoding::ResourceDialect>
9706 fidl::encoding::Encode<ConnectedIsochronousGroupEstablishStreamsRequest, D>
9707 for &ConnectedIsochronousGroupEstablishStreamsRequest
9708 {
9709 unsafe fn encode(
9710 self,
9711 encoder: &mut fidl::encoding::Encoder<'_, D>,
9712 offset: usize,
9713 mut depth: fidl::encoding::Depth,
9714 ) -> fidl::Result<()> {
9715 encoder.debug_check_bounds::<ConnectedIsochronousGroupEstablishStreamsRequest>(offset);
9716 let max_ordinal: u64 = self.max_ordinal_present();
9718 encoder.write_num(max_ordinal, offset);
9719 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
9720 if max_ordinal == 0 {
9722 return Ok(());
9723 }
9724 depth.increment()?;
9725 let envelope_size = 8;
9726 let bytes_len = max_ordinal as usize * envelope_size;
9727 #[allow(unused_variables)]
9728 let offset = encoder.out_of_line_offset(bytes_len);
9729 let mut _prev_end_offset: usize = 0;
9730 if 1 > max_ordinal {
9731 return Ok(());
9732 }
9733
9734 let cur_offset: usize = (1 - 1) * envelope_size;
9737
9738 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9740
9741 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<CisParameters, 31>, D>(
9746 self.cis_params.as_ref().map(<fidl::encoding::Vector<CisParameters, 31> as fidl::encoding::ValueTypeMarker>::borrow),
9747 encoder, offset + cur_offset, depth
9748 )?;
9749
9750 _prev_end_offset = cur_offset + envelope_size;
9751
9752 Ok(())
9753 }
9754 }
9755
9756 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
9757 for ConnectedIsochronousGroupEstablishStreamsRequest
9758 {
9759 #[inline(always)]
9760 fn new_empty() -> Self {
9761 Self::default()
9762 }
9763
9764 unsafe fn decode(
9765 &mut self,
9766 decoder: &mut fidl::encoding::Decoder<'_, D>,
9767 offset: usize,
9768 mut depth: fidl::encoding::Depth,
9769 ) -> fidl::Result<()> {
9770 decoder.debug_check_bounds::<Self>(offset);
9771 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
9772 None => return Err(fidl::Error::NotNullable),
9773 Some(len) => len,
9774 };
9775 if len == 0 {
9777 return Ok(());
9778 };
9779 depth.increment()?;
9780 let envelope_size = 8;
9781 let bytes_len = len * envelope_size;
9782 let offset = decoder.out_of_line_offset(bytes_len)?;
9783 let mut _next_ordinal_to_read = 0;
9785 let mut next_offset = offset;
9786 let end_offset = offset + bytes_len;
9787 _next_ordinal_to_read += 1;
9788 if next_offset >= end_offset {
9789 return Ok(());
9790 }
9791
9792 while _next_ordinal_to_read < 1 {
9794 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9795 _next_ordinal_to_read += 1;
9796 next_offset += envelope_size;
9797 }
9798
9799 let next_out_of_line = decoder.next_out_of_line();
9800 let handles_before = decoder.remaining_handles();
9801 if let Some((inlined, num_bytes, num_handles)) =
9802 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9803 {
9804 let member_inline_size = <fidl::encoding::Vector<CisParameters, 31> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9805 if inlined != (member_inline_size <= 4) {
9806 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9807 }
9808 let inner_offset;
9809 let mut inner_depth = depth.clone();
9810 if inlined {
9811 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9812 inner_offset = next_offset;
9813 } else {
9814 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9815 inner_depth.increment()?;
9816 }
9817 let val_ref = self.cis_params.get_or_insert_with(
9818 || fidl::new_empty!(fidl::encoding::Vector<CisParameters, 31>, D),
9819 );
9820 fidl::decode!(fidl::encoding::Vector<CisParameters, 31>, D, val_ref, decoder, inner_offset, inner_depth)?;
9821 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9822 {
9823 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9824 }
9825 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9826 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9827 }
9828 }
9829
9830 next_offset += envelope_size;
9831
9832 while next_offset < end_offset {
9834 _next_ordinal_to_read += 1;
9835 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9836 next_offset += envelope_size;
9837 }
9838
9839 Ok(())
9840 }
9841 }
9842
9843 impl ConnectionOptions {
9844 #[inline(always)]
9845 fn max_ordinal_present(&self) -> u64 {
9846 if let Some(_) = self.service_filter {
9847 return 2;
9848 }
9849 if let Some(_) = self.bondable_mode {
9850 return 1;
9851 }
9852 0
9853 }
9854 }
9855
9856 impl fidl::encoding::ValueTypeMarker for ConnectionOptions {
9857 type Borrowed<'a> = &'a Self;
9858 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
9859 value
9860 }
9861 }
9862
9863 unsafe impl fidl::encoding::TypeMarker for ConnectionOptions {
9864 type Owned = Self;
9865
9866 #[inline(always)]
9867 fn inline_align(_context: fidl::encoding::Context) -> usize {
9868 8
9869 }
9870
9871 #[inline(always)]
9872 fn inline_size(_context: fidl::encoding::Context) -> usize {
9873 16
9874 }
9875 }
9876
9877 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ConnectionOptions, D>
9878 for &ConnectionOptions
9879 {
9880 unsafe fn encode(
9881 self,
9882 encoder: &mut fidl::encoding::Encoder<'_, D>,
9883 offset: usize,
9884 mut depth: fidl::encoding::Depth,
9885 ) -> fidl::Result<()> {
9886 encoder.debug_check_bounds::<ConnectionOptions>(offset);
9887 let max_ordinal: u64 = self.max_ordinal_present();
9889 encoder.write_num(max_ordinal, offset);
9890 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
9891 if max_ordinal == 0 {
9893 return Ok(());
9894 }
9895 depth.increment()?;
9896 let envelope_size = 8;
9897 let bytes_len = max_ordinal as usize * envelope_size;
9898 #[allow(unused_variables)]
9899 let offset = encoder.out_of_line_offset(bytes_len);
9900 let mut _prev_end_offset: usize = 0;
9901 if 1 > max_ordinal {
9902 return Ok(());
9903 }
9904
9905 let cur_offset: usize = (1 - 1) * envelope_size;
9908
9909 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9911
9912 fidl::encoding::encode_in_envelope_optional::<bool, D>(
9917 self.bondable_mode.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
9918 encoder,
9919 offset + cur_offset,
9920 depth,
9921 )?;
9922
9923 _prev_end_offset = cur_offset + envelope_size;
9924 if 2 > max_ordinal {
9925 return Ok(());
9926 }
9927
9928 let cur_offset: usize = (2 - 1) * envelope_size;
9931
9932 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9934
9935 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_bluetooth__common::Uuid, D>(
9940 self.service_filter.as_ref().map(<fidl_fuchsia_bluetooth__common::Uuid as fidl::encoding::ValueTypeMarker>::borrow),
9941 encoder, offset + cur_offset, depth
9942 )?;
9943
9944 _prev_end_offset = cur_offset + envelope_size;
9945
9946 Ok(())
9947 }
9948 }
9949
9950 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ConnectionOptions {
9951 #[inline(always)]
9952 fn new_empty() -> Self {
9953 Self::default()
9954 }
9955
9956 unsafe fn decode(
9957 &mut self,
9958 decoder: &mut fidl::encoding::Decoder<'_, D>,
9959 offset: usize,
9960 mut depth: fidl::encoding::Depth,
9961 ) -> fidl::Result<()> {
9962 decoder.debug_check_bounds::<Self>(offset);
9963 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
9964 None => return Err(fidl::Error::NotNullable),
9965 Some(len) => len,
9966 };
9967 if len == 0 {
9969 return Ok(());
9970 };
9971 depth.increment()?;
9972 let envelope_size = 8;
9973 let bytes_len = len * envelope_size;
9974 let offset = decoder.out_of_line_offset(bytes_len)?;
9975 let mut _next_ordinal_to_read = 0;
9977 let mut next_offset = offset;
9978 let end_offset = offset + bytes_len;
9979 _next_ordinal_to_read += 1;
9980 if next_offset >= end_offset {
9981 return Ok(());
9982 }
9983
9984 while _next_ordinal_to_read < 1 {
9986 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9987 _next_ordinal_to_read += 1;
9988 next_offset += envelope_size;
9989 }
9990
9991 let next_out_of_line = decoder.next_out_of_line();
9992 let handles_before = decoder.remaining_handles();
9993 if let Some((inlined, num_bytes, num_handles)) =
9994 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9995 {
9996 let member_inline_size =
9997 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9998 if inlined != (member_inline_size <= 4) {
9999 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10000 }
10001 let inner_offset;
10002 let mut inner_depth = depth.clone();
10003 if inlined {
10004 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10005 inner_offset = next_offset;
10006 } else {
10007 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10008 inner_depth.increment()?;
10009 }
10010 let val_ref = self.bondable_mode.get_or_insert_with(|| fidl::new_empty!(bool, D));
10011 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
10012 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10013 {
10014 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10015 }
10016 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10017 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10018 }
10019 }
10020
10021 next_offset += envelope_size;
10022 _next_ordinal_to_read += 1;
10023 if next_offset >= end_offset {
10024 return Ok(());
10025 }
10026
10027 while _next_ordinal_to_read < 2 {
10029 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10030 _next_ordinal_to_read += 1;
10031 next_offset += envelope_size;
10032 }
10033
10034 let next_out_of_line = decoder.next_out_of_line();
10035 let handles_before = decoder.remaining_handles();
10036 if let Some((inlined, num_bytes, num_handles)) =
10037 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10038 {
10039 let member_inline_size = <fidl_fuchsia_bluetooth__common::Uuid as fidl::encoding::TypeMarker>::inline_size(decoder.context);
10040 if inlined != (member_inline_size <= 4) {
10041 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10042 }
10043 let inner_offset;
10044 let mut inner_depth = depth.clone();
10045 if inlined {
10046 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10047 inner_offset = next_offset;
10048 } else {
10049 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10050 inner_depth.increment()?;
10051 }
10052 let val_ref = self.service_filter.get_or_insert_with(|| {
10053 fidl::new_empty!(fidl_fuchsia_bluetooth__common::Uuid, D)
10054 });
10055 fidl::decode!(
10056 fidl_fuchsia_bluetooth__common::Uuid,
10057 D,
10058 val_ref,
10059 decoder,
10060 inner_offset,
10061 inner_depth
10062 )?;
10063 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10064 {
10065 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10066 }
10067 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10068 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10069 }
10070 }
10071
10072 next_offset += envelope_size;
10073
10074 while next_offset < end_offset {
10076 _next_ordinal_to_read += 1;
10077 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10078 next_offset += envelope_size;
10079 }
10080
10081 Ok(())
10082 }
10083 }
10084
10085 impl ConnectionTransferPeriodicAdvertisingSyncRequest {
10086 #[inline(always)]
10087 fn max_ordinal_present(&self) -> u64 {
10088 if let Some(_) = self.service_data {
10089 return 2;
10090 }
10091 if let Some(_) = self.sync_id {
10092 return 1;
10093 }
10094 0
10095 }
10096 }
10097
10098 impl fidl::encoding::ValueTypeMarker for ConnectionTransferPeriodicAdvertisingSyncRequest {
10099 type Borrowed<'a> = &'a Self;
10100 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
10101 value
10102 }
10103 }
10104
10105 unsafe impl fidl::encoding::TypeMarker for ConnectionTransferPeriodicAdvertisingSyncRequest {
10106 type Owned = Self;
10107
10108 #[inline(always)]
10109 fn inline_align(_context: fidl::encoding::Context) -> usize {
10110 8
10111 }
10112
10113 #[inline(always)]
10114 fn inline_size(_context: fidl::encoding::Context) -> usize {
10115 16
10116 }
10117 }
10118
10119 unsafe impl<D: fidl::encoding::ResourceDialect>
10120 fidl::encoding::Encode<ConnectionTransferPeriodicAdvertisingSyncRequest, D>
10121 for &ConnectionTransferPeriodicAdvertisingSyncRequest
10122 {
10123 unsafe fn encode(
10124 self,
10125 encoder: &mut fidl::encoding::Encoder<'_, D>,
10126 offset: usize,
10127 mut depth: fidl::encoding::Depth,
10128 ) -> fidl::Result<()> {
10129 encoder.debug_check_bounds::<ConnectionTransferPeriodicAdvertisingSyncRequest>(offset);
10130 let max_ordinal: u64 = self.max_ordinal_present();
10132 encoder.write_num(max_ordinal, offset);
10133 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
10134 if max_ordinal == 0 {
10136 return Ok(());
10137 }
10138 depth.increment()?;
10139 let envelope_size = 8;
10140 let bytes_len = max_ordinal as usize * envelope_size;
10141 #[allow(unused_variables)]
10142 let offset = encoder.out_of_line_offset(bytes_len);
10143 let mut _prev_end_offset: usize = 0;
10144 if 1 > max_ordinal {
10145 return Ok(());
10146 }
10147
10148 let cur_offset: usize = (1 - 1) * envelope_size;
10151
10152 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10154
10155 fidl::encoding::encode_in_envelope_optional::<PeriodicAdvertisingSyncId, D>(
10160 self.sync_id
10161 .as_ref()
10162 .map(<PeriodicAdvertisingSyncId as fidl::encoding::ValueTypeMarker>::borrow),
10163 encoder,
10164 offset + cur_offset,
10165 depth,
10166 )?;
10167
10168 _prev_end_offset = cur_offset + envelope_size;
10169 if 2 > max_ordinal {
10170 return Ok(());
10171 }
10172
10173 let cur_offset: usize = (2 - 1) * envelope_size;
10176
10177 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10179
10180 fidl::encoding::encode_in_envelope_optional::<u16, D>(
10185 self.service_data.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
10186 encoder,
10187 offset + cur_offset,
10188 depth,
10189 )?;
10190
10191 _prev_end_offset = cur_offset + envelope_size;
10192
10193 Ok(())
10194 }
10195 }
10196
10197 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
10198 for ConnectionTransferPeriodicAdvertisingSyncRequest
10199 {
10200 #[inline(always)]
10201 fn new_empty() -> Self {
10202 Self::default()
10203 }
10204
10205 unsafe fn decode(
10206 &mut self,
10207 decoder: &mut fidl::encoding::Decoder<'_, D>,
10208 offset: usize,
10209 mut depth: fidl::encoding::Depth,
10210 ) -> fidl::Result<()> {
10211 decoder.debug_check_bounds::<Self>(offset);
10212 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
10213 None => return Err(fidl::Error::NotNullable),
10214 Some(len) => len,
10215 };
10216 if len == 0 {
10218 return Ok(());
10219 };
10220 depth.increment()?;
10221 let envelope_size = 8;
10222 let bytes_len = len * envelope_size;
10223 let offset = decoder.out_of_line_offset(bytes_len)?;
10224 let mut _next_ordinal_to_read = 0;
10226 let mut next_offset = offset;
10227 let end_offset = offset + bytes_len;
10228 _next_ordinal_to_read += 1;
10229 if next_offset >= end_offset {
10230 return Ok(());
10231 }
10232
10233 while _next_ordinal_to_read < 1 {
10235 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10236 _next_ordinal_to_read += 1;
10237 next_offset += envelope_size;
10238 }
10239
10240 let next_out_of_line = decoder.next_out_of_line();
10241 let handles_before = decoder.remaining_handles();
10242 if let Some((inlined, num_bytes, num_handles)) =
10243 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10244 {
10245 let member_inline_size =
10246 <PeriodicAdvertisingSyncId as fidl::encoding::TypeMarker>::inline_size(
10247 decoder.context,
10248 );
10249 if inlined != (member_inline_size <= 4) {
10250 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10251 }
10252 let inner_offset;
10253 let mut inner_depth = depth.clone();
10254 if inlined {
10255 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10256 inner_offset = next_offset;
10257 } else {
10258 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10259 inner_depth.increment()?;
10260 }
10261 let val_ref = self
10262 .sync_id
10263 .get_or_insert_with(|| fidl::new_empty!(PeriodicAdvertisingSyncId, D));
10264 fidl::decode!(
10265 PeriodicAdvertisingSyncId,
10266 D,
10267 val_ref,
10268 decoder,
10269 inner_offset,
10270 inner_depth
10271 )?;
10272 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10273 {
10274 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10275 }
10276 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10277 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10278 }
10279 }
10280
10281 next_offset += envelope_size;
10282 _next_ordinal_to_read += 1;
10283 if next_offset >= end_offset {
10284 return Ok(());
10285 }
10286
10287 while _next_ordinal_to_read < 2 {
10289 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10290 _next_ordinal_to_read += 1;
10291 next_offset += envelope_size;
10292 }
10293
10294 let next_out_of_line = decoder.next_out_of_line();
10295 let handles_before = decoder.remaining_handles();
10296 if let Some((inlined, num_bytes, num_handles)) =
10297 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10298 {
10299 let member_inline_size =
10300 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
10301 if inlined != (member_inline_size <= 4) {
10302 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10303 }
10304 let inner_offset;
10305 let mut inner_depth = depth.clone();
10306 if inlined {
10307 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10308 inner_offset = next_offset;
10309 } else {
10310 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10311 inner_depth.increment()?;
10312 }
10313 let val_ref = self.service_data.get_or_insert_with(|| fidl::new_empty!(u16, D));
10314 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
10315 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10316 {
10317 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10318 }
10319 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10320 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10321 }
10322 }
10323
10324 next_offset += envelope_size;
10325
10326 while next_offset < end_offset {
10328 _next_ordinal_to_read += 1;
10329 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10330 next_offset += envelope_size;
10331 }
10332
10333 Ok(())
10334 }
10335 }
10336
10337 impl Extended {
10338 #[inline(always)]
10339 fn max_ordinal_present(&self) -> u64 {
10340 0
10341 }
10342 }
10343
10344 impl fidl::encoding::ValueTypeMarker for Extended {
10345 type Borrowed<'a> = &'a Self;
10346 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
10347 value
10348 }
10349 }
10350
10351 unsafe impl fidl::encoding::TypeMarker for Extended {
10352 type Owned = Self;
10353
10354 #[inline(always)]
10355 fn inline_align(_context: fidl::encoding::Context) -> usize {
10356 8
10357 }
10358
10359 #[inline(always)]
10360 fn inline_size(_context: fidl::encoding::Context) -> usize {
10361 16
10362 }
10363 }
10364
10365 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Extended, D> for &Extended {
10366 unsafe fn encode(
10367 self,
10368 encoder: &mut fidl::encoding::Encoder<'_, D>,
10369 offset: usize,
10370 mut depth: fidl::encoding::Depth,
10371 ) -> fidl::Result<()> {
10372 encoder.debug_check_bounds::<Extended>(offset);
10373 let max_ordinal: u64 = self.max_ordinal_present();
10375 encoder.write_num(max_ordinal, offset);
10376 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
10377 if max_ordinal == 0 {
10379 return Ok(());
10380 }
10381 depth.increment()?;
10382 let envelope_size = 8;
10383 let bytes_len = max_ordinal as usize * envelope_size;
10384 #[allow(unused_variables)]
10385 let offset = encoder.out_of_line_offset(bytes_len);
10386 let mut _prev_end_offset: usize = 0;
10387
10388 Ok(())
10389 }
10390 }
10391
10392 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Extended {
10393 #[inline(always)]
10394 fn new_empty() -> Self {
10395 Self::default()
10396 }
10397
10398 unsafe fn decode(
10399 &mut self,
10400 decoder: &mut fidl::encoding::Decoder<'_, D>,
10401 offset: usize,
10402 mut depth: fidl::encoding::Depth,
10403 ) -> fidl::Result<()> {
10404 decoder.debug_check_bounds::<Self>(offset);
10405 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
10406 None => return Err(fidl::Error::NotNullable),
10407 Some(len) => len,
10408 };
10409 if len == 0 {
10411 return Ok(());
10412 };
10413 depth.increment()?;
10414 let envelope_size = 8;
10415 let bytes_len = len * envelope_size;
10416 let offset = decoder.out_of_line_offset(bytes_len)?;
10417 let mut _next_ordinal_to_read = 0;
10419 let mut next_offset = offset;
10420 let end_offset = offset + bytes_len;
10421
10422 while next_offset < end_offset {
10424 _next_ordinal_to_read += 1;
10425 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10426 next_offset += envelope_size;
10427 }
10428
10429 Ok(())
10430 }
10431 }
10432
10433 impl Filter {
10434 #[inline(always)]
10435 fn max_ordinal_present(&self) -> u64 {
10436 if let Some(_) = self.solicitation_uuid {
10437 return 7;
10438 }
10439 if let Some(_) = self.max_path_loss {
10440 return 6;
10441 }
10442 if let Some(_) = self.name {
10443 return 5;
10444 }
10445 if let Some(_) = self.connectable {
10446 return 4;
10447 }
10448 if let Some(_) = self.manufacturer_id {
10449 return 3;
10450 }
10451 if let Some(_) = self.service_data_uuid {
10452 return 2;
10453 }
10454 if let Some(_) = self.service_uuid {
10455 return 1;
10456 }
10457 0
10458 }
10459 }
10460
10461 impl fidl::encoding::ValueTypeMarker for Filter {
10462 type Borrowed<'a> = &'a Self;
10463 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
10464 value
10465 }
10466 }
10467
10468 unsafe impl fidl::encoding::TypeMarker for Filter {
10469 type Owned = Self;
10470
10471 #[inline(always)]
10472 fn inline_align(_context: fidl::encoding::Context) -> usize {
10473 8
10474 }
10475
10476 #[inline(always)]
10477 fn inline_size(_context: fidl::encoding::Context) -> usize {
10478 16
10479 }
10480 }
10481
10482 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Filter, D> for &Filter {
10483 unsafe fn encode(
10484 self,
10485 encoder: &mut fidl::encoding::Encoder<'_, D>,
10486 offset: usize,
10487 mut depth: fidl::encoding::Depth,
10488 ) -> fidl::Result<()> {
10489 encoder.debug_check_bounds::<Filter>(offset);
10490 let max_ordinal: u64 = self.max_ordinal_present();
10492 encoder.write_num(max_ordinal, offset);
10493 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
10494 if max_ordinal == 0 {
10496 return Ok(());
10497 }
10498 depth.increment()?;
10499 let envelope_size = 8;
10500 let bytes_len = max_ordinal as usize * envelope_size;
10501 #[allow(unused_variables)]
10502 let offset = encoder.out_of_line_offset(bytes_len);
10503 let mut _prev_end_offset: usize = 0;
10504 if 1 > max_ordinal {
10505 return Ok(());
10506 }
10507
10508 let cur_offset: usize = (1 - 1) * envelope_size;
10511
10512 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10514
10515 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_bluetooth__common::Uuid, D>(
10520 self.service_uuid.as_ref().map(<fidl_fuchsia_bluetooth__common::Uuid as fidl::encoding::ValueTypeMarker>::borrow),
10521 encoder, offset + cur_offset, depth
10522 )?;
10523
10524 _prev_end_offset = cur_offset + envelope_size;
10525 if 2 > max_ordinal {
10526 return Ok(());
10527 }
10528
10529 let cur_offset: usize = (2 - 1) * envelope_size;
10532
10533 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10535
10536 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_bluetooth__common::Uuid, D>(
10541 self.service_data_uuid.as_ref().map(<fidl_fuchsia_bluetooth__common::Uuid as fidl::encoding::ValueTypeMarker>::borrow),
10542 encoder, offset + cur_offset, depth
10543 )?;
10544
10545 _prev_end_offset = cur_offset + envelope_size;
10546 if 3 > max_ordinal {
10547 return Ok(());
10548 }
10549
10550 let cur_offset: usize = (3 - 1) * envelope_size;
10553
10554 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10556
10557 fidl::encoding::encode_in_envelope_optional::<u16, D>(
10562 self.manufacturer_id.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
10563 encoder,
10564 offset + cur_offset,
10565 depth,
10566 )?;
10567
10568 _prev_end_offset = cur_offset + envelope_size;
10569 if 4 > max_ordinal {
10570 return Ok(());
10571 }
10572
10573 let cur_offset: usize = (4 - 1) * envelope_size;
10576
10577 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10579
10580 fidl::encoding::encode_in_envelope_optional::<bool, D>(
10585 self.connectable.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
10586 encoder,
10587 offset + cur_offset,
10588 depth,
10589 )?;
10590
10591 _prev_end_offset = cur_offset + envelope_size;
10592 if 5 > max_ordinal {
10593 return Ok(());
10594 }
10595
10596 let cur_offset: usize = (5 - 1) * envelope_size;
10599
10600 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10602
10603 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<248>, D>(
10608 self.name.as_ref().map(
10609 <fidl::encoding::BoundedString<248> as fidl::encoding::ValueTypeMarker>::borrow,
10610 ),
10611 encoder,
10612 offset + cur_offset,
10613 depth,
10614 )?;
10615
10616 _prev_end_offset = cur_offset + envelope_size;
10617 if 6 > max_ordinal {
10618 return Ok(());
10619 }
10620
10621 let cur_offset: usize = (6 - 1) * envelope_size;
10624
10625 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10627
10628 fidl::encoding::encode_in_envelope_optional::<i8, D>(
10633 self.max_path_loss.as_ref().map(<i8 as fidl::encoding::ValueTypeMarker>::borrow),
10634 encoder,
10635 offset + cur_offset,
10636 depth,
10637 )?;
10638
10639 _prev_end_offset = cur_offset + envelope_size;
10640 if 7 > max_ordinal {
10641 return Ok(());
10642 }
10643
10644 let cur_offset: usize = (7 - 1) * envelope_size;
10647
10648 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10650
10651 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_bluetooth__common::Uuid, D>(
10656 self.solicitation_uuid.as_ref().map(<fidl_fuchsia_bluetooth__common::Uuid as fidl::encoding::ValueTypeMarker>::borrow),
10657 encoder, offset + cur_offset, depth
10658 )?;
10659
10660 _prev_end_offset = cur_offset + envelope_size;
10661
10662 Ok(())
10663 }
10664 }
10665
10666 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Filter {
10667 #[inline(always)]
10668 fn new_empty() -> Self {
10669 Self::default()
10670 }
10671
10672 unsafe fn decode(
10673 &mut self,
10674 decoder: &mut fidl::encoding::Decoder<'_, D>,
10675 offset: usize,
10676 mut depth: fidl::encoding::Depth,
10677 ) -> fidl::Result<()> {
10678 decoder.debug_check_bounds::<Self>(offset);
10679 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
10680 None => return Err(fidl::Error::NotNullable),
10681 Some(len) => len,
10682 };
10683 if len == 0 {
10685 return Ok(());
10686 };
10687 depth.increment()?;
10688 let envelope_size = 8;
10689 let bytes_len = len * envelope_size;
10690 let offset = decoder.out_of_line_offset(bytes_len)?;
10691 let mut _next_ordinal_to_read = 0;
10693 let mut next_offset = offset;
10694 let end_offset = offset + bytes_len;
10695 _next_ordinal_to_read += 1;
10696 if next_offset >= end_offset {
10697 return Ok(());
10698 }
10699
10700 while _next_ordinal_to_read < 1 {
10702 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10703 _next_ordinal_to_read += 1;
10704 next_offset += envelope_size;
10705 }
10706
10707 let next_out_of_line = decoder.next_out_of_line();
10708 let handles_before = decoder.remaining_handles();
10709 if let Some((inlined, num_bytes, num_handles)) =
10710 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10711 {
10712 let member_inline_size = <fidl_fuchsia_bluetooth__common::Uuid as fidl::encoding::TypeMarker>::inline_size(decoder.context);
10713 if inlined != (member_inline_size <= 4) {
10714 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10715 }
10716 let inner_offset;
10717 let mut inner_depth = depth.clone();
10718 if inlined {
10719 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10720 inner_offset = next_offset;
10721 } else {
10722 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10723 inner_depth.increment()?;
10724 }
10725 let val_ref = self.service_uuid.get_or_insert_with(|| {
10726 fidl::new_empty!(fidl_fuchsia_bluetooth__common::Uuid, D)
10727 });
10728 fidl::decode!(
10729 fidl_fuchsia_bluetooth__common::Uuid,
10730 D,
10731 val_ref,
10732 decoder,
10733 inner_offset,
10734 inner_depth
10735 )?;
10736 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10737 {
10738 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10739 }
10740 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10741 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10742 }
10743 }
10744
10745 next_offset += envelope_size;
10746 _next_ordinal_to_read += 1;
10747 if next_offset >= end_offset {
10748 return Ok(());
10749 }
10750
10751 while _next_ordinal_to_read < 2 {
10753 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10754 _next_ordinal_to_read += 1;
10755 next_offset += envelope_size;
10756 }
10757
10758 let next_out_of_line = decoder.next_out_of_line();
10759 let handles_before = decoder.remaining_handles();
10760 if let Some((inlined, num_bytes, num_handles)) =
10761 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10762 {
10763 let member_inline_size = <fidl_fuchsia_bluetooth__common::Uuid as fidl::encoding::TypeMarker>::inline_size(decoder.context);
10764 if inlined != (member_inline_size <= 4) {
10765 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10766 }
10767 let inner_offset;
10768 let mut inner_depth = depth.clone();
10769 if inlined {
10770 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10771 inner_offset = next_offset;
10772 } else {
10773 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10774 inner_depth.increment()?;
10775 }
10776 let val_ref = self.service_data_uuid.get_or_insert_with(|| {
10777 fidl::new_empty!(fidl_fuchsia_bluetooth__common::Uuid, D)
10778 });
10779 fidl::decode!(
10780 fidl_fuchsia_bluetooth__common::Uuid,
10781 D,
10782 val_ref,
10783 decoder,
10784 inner_offset,
10785 inner_depth
10786 )?;
10787 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10788 {
10789 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10790 }
10791 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10792 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10793 }
10794 }
10795
10796 next_offset += envelope_size;
10797 _next_ordinal_to_read += 1;
10798 if next_offset >= end_offset {
10799 return Ok(());
10800 }
10801
10802 while _next_ordinal_to_read < 3 {
10804 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10805 _next_ordinal_to_read += 1;
10806 next_offset += envelope_size;
10807 }
10808
10809 let next_out_of_line = decoder.next_out_of_line();
10810 let handles_before = decoder.remaining_handles();
10811 if let Some((inlined, num_bytes, num_handles)) =
10812 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10813 {
10814 let member_inline_size =
10815 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
10816 if inlined != (member_inline_size <= 4) {
10817 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10818 }
10819 let inner_offset;
10820 let mut inner_depth = depth.clone();
10821 if inlined {
10822 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10823 inner_offset = next_offset;
10824 } else {
10825 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10826 inner_depth.increment()?;
10827 }
10828 let val_ref = self.manufacturer_id.get_or_insert_with(|| fidl::new_empty!(u16, D));
10829 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
10830 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10831 {
10832 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10833 }
10834 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10835 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10836 }
10837 }
10838
10839 next_offset += envelope_size;
10840 _next_ordinal_to_read += 1;
10841 if next_offset >= end_offset {
10842 return Ok(());
10843 }
10844
10845 while _next_ordinal_to_read < 4 {
10847 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10848 _next_ordinal_to_read += 1;
10849 next_offset += envelope_size;
10850 }
10851
10852 let next_out_of_line = decoder.next_out_of_line();
10853 let handles_before = decoder.remaining_handles();
10854 if let Some((inlined, num_bytes, num_handles)) =
10855 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10856 {
10857 let member_inline_size =
10858 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
10859 if inlined != (member_inline_size <= 4) {
10860 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10861 }
10862 let inner_offset;
10863 let mut inner_depth = depth.clone();
10864 if inlined {
10865 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10866 inner_offset = next_offset;
10867 } else {
10868 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10869 inner_depth.increment()?;
10870 }
10871 let val_ref = self.connectable.get_or_insert_with(|| fidl::new_empty!(bool, D));
10872 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
10873 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10874 {
10875 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10876 }
10877 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10878 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10879 }
10880 }
10881
10882 next_offset += envelope_size;
10883 _next_ordinal_to_read += 1;
10884 if next_offset >= end_offset {
10885 return Ok(());
10886 }
10887
10888 while _next_ordinal_to_read < 5 {
10890 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10891 _next_ordinal_to_read += 1;
10892 next_offset += envelope_size;
10893 }
10894
10895 let next_out_of_line = decoder.next_out_of_line();
10896 let handles_before = decoder.remaining_handles();
10897 if let Some((inlined, num_bytes, num_handles)) =
10898 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10899 {
10900 let member_inline_size =
10901 <fidl::encoding::BoundedString<248> as fidl::encoding::TypeMarker>::inline_size(
10902 decoder.context,
10903 );
10904 if inlined != (member_inline_size <= 4) {
10905 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10906 }
10907 let inner_offset;
10908 let mut inner_depth = depth.clone();
10909 if inlined {
10910 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10911 inner_offset = next_offset;
10912 } else {
10913 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10914 inner_depth.increment()?;
10915 }
10916 let val_ref = self
10917 .name
10918 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<248>, D));
10919 fidl::decode!(
10920 fidl::encoding::BoundedString<248>,
10921 D,
10922 val_ref,
10923 decoder,
10924 inner_offset,
10925 inner_depth
10926 )?;
10927 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10928 {
10929 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10930 }
10931 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10932 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10933 }
10934 }
10935
10936 next_offset += envelope_size;
10937 _next_ordinal_to_read += 1;
10938 if next_offset >= end_offset {
10939 return Ok(());
10940 }
10941
10942 while _next_ordinal_to_read < 6 {
10944 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10945 _next_ordinal_to_read += 1;
10946 next_offset += envelope_size;
10947 }
10948
10949 let next_out_of_line = decoder.next_out_of_line();
10950 let handles_before = decoder.remaining_handles();
10951 if let Some((inlined, num_bytes, num_handles)) =
10952 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10953 {
10954 let member_inline_size =
10955 <i8 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
10956 if inlined != (member_inline_size <= 4) {
10957 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10958 }
10959 let inner_offset;
10960 let mut inner_depth = depth.clone();
10961 if inlined {
10962 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10963 inner_offset = next_offset;
10964 } else {
10965 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10966 inner_depth.increment()?;
10967 }
10968 let val_ref = self.max_path_loss.get_or_insert_with(|| fidl::new_empty!(i8, D));
10969 fidl::decode!(i8, D, val_ref, decoder, inner_offset, inner_depth)?;
10970 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10971 {
10972 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10973 }
10974 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10975 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10976 }
10977 }
10978
10979 next_offset += envelope_size;
10980 _next_ordinal_to_read += 1;
10981 if next_offset >= end_offset {
10982 return Ok(());
10983 }
10984
10985 while _next_ordinal_to_read < 7 {
10987 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10988 _next_ordinal_to_read += 1;
10989 next_offset += envelope_size;
10990 }
10991
10992 let next_out_of_line = decoder.next_out_of_line();
10993 let handles_before = decoder.remaining_handles();
10994 if let Some((inlined, num_bytes, num_handles)) =
10995 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10996 {
10997 let member_inline_size = <fidl_fuchsia_bluetooth__common::Uuid as fidl::encoding::TypeMarker>::inline_size(decoder.context);
10998 if inlined != (member_inline_size <= 4) {
10999 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11000 }
11001 let inner_offset;
11002 let mut inner_depth = depth.clone();
11003 if inlined {
11004 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11005 inner_offset = next_offset;
11006 } else {
11007 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11008 inner_depth.increment()?;
11009 }
11010 let val_ref = self.solicitation_uuid.get_or_insert_with(|| {
11011 fidl::new_empty!(fidl_fuchsia_bluetooth__common::Uuid, D)
11012 });
11013 fidl::decode!(
11014 fidl_fuchsia_bluetooth__common::Uuid,
11015 D,
11016 val_ref,
11017 decoder,
11018 inner_offset,
11019 inner_depth
11020 )?;
11021 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11022 {
11023 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11024 }
11025 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11026 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11027 }
11028 }
11029
11030 next_offset += envelope_size;
11031
11032 while next_offset < end_offset {
11034 _next_ordinal_to_read += 1;
11035 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11036 next_offset += envelope_size;
11037 }
11038
11039 Ok(())
11040 }
11041 }
11042
11043 impl IsochronousStreamOnEstablishedRequest {
11044 #[inline(always)]
11045 fn max_ordinal_present(&self) -> u64 {
11046 if let Some(_) = self.established_params {
11047 return 2;
11048 }
11049 if let Some(_) = self.result {
11050 return 1;
11051 }
11052 0
11053 }
11054 }
11055
11056 impl fidl::encoding::ValueTypeMarker for IsochronousStreamOnEstablishedRequest {
11057 type Borrowed<'a> = &'a Self;
11058 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
11059 value
11060 }
11061 }
11062
11063 unsafe impl fidl::encoding::TypeMarker for IsochronousStreamOnEstablishedRequest {
11064 type Owned = Self;
11065
11066 #[inline(always)]
11067 fn inline_align(_context: fidl::encoding::Context) -> usize {
11068 8
11069 }
11070
11071 #[inline(always)]
11072 fn inline_size(_context: fidl::encoding::Context) -> usize {
11073 16
11074 }
11075 }
11076
11077 unsafe impl<D: fidl::encoding::ResourceDialect>
11078 fidl::encoding::Encode<IsochronousStreamOnEstablishedRequest, D>
11079 for &IsochronousStreamOnEstablishedRequest
11080 {
11081 unsafe fn encode(
11082 self,
11083 encoder: &mut fidl::encoding::Encoder<'_, D>,
11084 offset: usize,
11085 mut depth: fidl::encoding::Depth,
11086 ) -> fidl::Result<()> {
11087 encoder.debug_check_bounds::<IsochronousStreamOnEstablishedRequest>(offset);
11088 let max_ordinal: u64 = self.max_ordinal_present();
11090 encoder.write_num(max_ordinal, offset);
11091 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
11092 if max_ordinal == 0 {
11094 return Ok(());
11095 }
11096 depth.increment()?;
11097 let envelope_size = 8;
11098 let bytes_len = max_ordinal as usize * envelope_size;
11099 #[allow(unused_variables)]
11100 let offset = encoder.out_of_line_offset(bytes_len);
11101 let mut _prev_end_offset: usize = 0;
11102 if 1 > max_ordinal {
11103 return Ok(());
11104 }
11105
11106 let cur_offset: usize = (1 - 1) * envelope_size;
11109
11110 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11112
11113 fidl::encoding::encode_in_envelope_optional::<i32, D>(
11118 self.result.as_ref().map(<i32 as fidl::encoding::ValueTypeMarker>::borrow),
11119 encoder,
11120 offset + cur_offset,
11121 depth,
11122 )?;
11123
11124 _prev_end_offset = cur_offset + envelope_size;
11125 if 2 > max_ordinal {
11126 return Ok(());
11127 }
11128
11129 let cur_offset: usize = (2 - 1) * envelope_size;
11132
11133 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11135
11136 fidl::encoding::encode_in_envelope_optional::<CisEstablishedParameters, D>(
11141 self.established_params
11142 .as_ref()
11143 .map(<CisEstablishedParameters as fidl::encoding::ValueTypeMarker>::borrow),
11144 encoder,
11145 offset + cur_offset,
11146 depth,
11147 )?;
11148
11149 _prev_end_offset = cur_offset + envelope_size;
11150
11151 Ok(())
11152 }
11153 }
11154
11155 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
11156 for IsochronousStreamOnEstablishedRequest
11157 {
11158 #[inline(always)]
11159 fn new_empty() -> Self {
11160 Self::default()
11161 }
11162
11163 unsafe fn decode(
11164 &mut self,
11165 decoder: &mut fidl::encoding::Decoder<'_, D>,
11166 offset: usize,
11167 mut depth: fidl::encoding::Depth,
11168 ) -> fidl::Result<()> {
11169 decoder.debug_check_bounds::<Self>(offset);
11170 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
11171 None => return Err(fidl::Error::NotNullable),
11172 Some(len) => len,
11173 };
11174 if len == 0 {
11176 return Ok(());
11177 };
11178 depth.increment()?;
11179 let envelope_size = 8;
11180 let bytes_len = len * envelope_size;
11181 let offset = decoder.out_of_line_offset(bytes_len)?;
11182 let mut _next_ordinal_to_read = 0;
11184 let mut next_offset = offset;
11185 let end_offset = offset + bytes_len;
11186 _next_ordinal_to_read += 1;
11187 if next_offset >= end_offset {
11188 return Ok(());
11189 }
11190
11191 while _next_ordinal_to_read < 1 {
11193 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11194 _next_ordinal_to_read += 1;
11195 next_offset += envelope_size;
11196 }
11197
11198 let next_out_of_line = decoder.next_out_of_line();
11199 let handles_before = decoder.remaining_handles();
11200 if let Some((inlined, num_bytes, num_handles)) =
11201 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11202 {
11203 let member_inline_size =
11204 <i32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
11205 if inlined != (member_inline_size <= 4) {
11206 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11207 }
11208 let inner_offset;
11209 let mut inner_depth = depth.clone();
11210 if inlined {
11211 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11212 inner_offset = next_offset;
11213 } else {
11214 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11215 inner_depth.increment()?;
11216 }
11217 let val_ref = self.result.get_or_insert_with(|| fidl::new_empty!(i32, D));
11218 fidl::decode!(i32, D, val_ref, decoder, inner_offset, inner_depth)?;
11219 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11220 {
11221 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11222 }
11223 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11224 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11225 }
11226 }
11227
11228 next_offset += envelope_size;
11229 _next_ordinal_to_read += 1;
11230 if next_offset >= end_offset {
11231 return Ok(());
11232 }
11233
11234 while _next_ordinal_to_read < 2 {
11236 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11237 _next_ordinal_to_read += 1;
11238 next_offset += envelope_size;
11239 }
11240
11241 let next_out_of_line = decoder.next_out_of_line();
11242 let handles_before = decoder.remaining_handles();
11243 if let Some((inlined, num_bytes, num_handles)) =
11244 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11245 {
11246 let member_inline_size =
11247 <CisEstablishedParameters as fidl::encoding::TypeMarker>::inline_size(
11248 decoder.context,
11249 );
11250 if inlined != (member_inline_size <= 4) {
11251 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11252 }
11253 let inner_offset;
11254 let mut inner_depth = depth.clone();
11255 if inlined {
11256 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11257 inner_offset = next_offset;
11258 } else {
11259 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11260 inner_depth.increment()?;
11261 }
11262 let val_ref = self
11263 .established_params
11264 .get_or_insert_with(|| fidl::new_empty!(CisEstablishedParameters, D));
11265 fidl::decode!(
11266 CisEstablishedParameters,
11267 D,
11268 val_ref,
11269 decoder,
11270 inner_offset,
11271 inner_depth
11272 )?;
11273 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11274 {
11275 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11276 }
11277 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11278 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11279 }
11280 }
11281
11282 next_offset += envelope_size;
11283
11284 while next_offset < end_offset {
11286 _next_ordinal_to_read += 1;
11287 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11288 next_offset += envelope_size;
11289 }
11290
11291 Ok(())
11292 }
11293 }
11294
11295 impl IsochronousStreamSetupDataPathRequest {
11296 #[inline(always)]
11297 fn max_ordinal_present(&self) -> u64 {
11298 if let Some(_) = self.controller_delay {
11299 return 3;
11300 }
11301 if let Some(_) = self.codec_attributes {
11302 return 2;
11303 }
11304 if let Some(_) = self.data_direction {
11305 return 1;
11306 }
11307 0
11308 }
11309 }
11310
11311 impl fidl::encoding::ValueTypeMarker for IsochronousStreamSetupDataPathRequest {
11312 type Borrowed<'a> = &'a Self;
11313 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
11314 value
11315 }
11316 }
11317
11318 unsafe impl fidl::encoding::TypeMarker for IsochronousStreamSetupDataPathRequest {
11319 type Owned = Self;
11320
11321 #[inline(always)]
11322 fn inline_align(_context: fidl::encoding::Context) -> usize {
11323 8
11324 }
11325
11326 #[inline(always)]
11327 fn inline_size(_context: fidl::encoding::Context) -> usize {
11328 16
11329 }
11330 }
11331
11332 unsafe impl<D: fidl::encoding::ResourceDialect>
11333 fidl::encoding::Encode<IsochronousStreamSetupDataPathRequest, D>
11334 for &IsochronousStreamSetupDataPathRequest
11335 {
11336 unsafe fn encode(
11337 self,
11338 encoder: &mut fidl::encoding::Encoder<'_, D>,
11339 offset: usize,
11340 mut depth: fidl::encoding::Depth,
11341 ) -> fidl::Result<()> {
11342 encoder.debug_check_bounds::<IsochronousStreamSetupDataPathRequest>(offset);
11343 let max_ordinal: u64 = self.max_ordinal_present();
11345 encoder.write_num(max_ordinal, offset);
11346 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
11347 if max_ordinal == 0 {
11349 return Ok(());
11350 }
11351 depth.increment()?;
11352 let envelope_size = 8;
11353 let bytes_len = max_ordinal as usize * envelope_size;
11354 #[allow(unused_variables)]
11355 let offset = encoder.out_of_line_offset(bytes_len);
11356 let mut _prev_end_offset: usize = 0;
11357 if 1 > max_ordinal {
11358 return Ok(());
11359 }
11360
11361 let cur_offset: usize = (1 - 1) * envelope_size;
11364
11365 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11367
11368 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_bluetooth__common::DataDirection, D>(
11373 self.data_direction.as_ref().map(<fidl_fuchsia_bluetooth__common::DataDirection as fidl::encoding::ValueTypeMarker>::borrow),
11374 encoder, offset + cur_offset, depth
11375 )?;
11376
11377 _prev_end_offset = cur_offset + envelope_size;
11378 if 2 > max_ordinal {
11379 return Ok(());
11380 }
11381
11382 let cur_offset: usize = (2 - 1) * envelope_size;
11385
11386 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11388
11389 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_bluetooth__common::CodecAttributes, D>(
11394 self.codec_attributes.as_ref().map(<fidl_fuchsia_bluetooth__common::CodecAttributes as fidl::encoding::ValueTypeMarker>::borrow),
11395 encoder, offset + cur_offset, depth
11396 )?;
11397
11398 _prev_end_offset = cur_offset + envelope_size;
11399 if 3 > max_ordinal {
11400 return Ok(());
11401 }
11402
11403 let cur_offset: usize = (3 - 1) * envelope_size;
11406
11407 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11409
11410 fidl::encoding::encode_in_envelope_optional::<i64, D>(
11415 self.controller_delay
11416 .as_ref()
11417 .map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
11418 encoder,
11419 offset + cur_offset,
11420 depth,
11421 )?;
11422
11423 _prev_end_offset = cur_offset + envelope_size;
11424
11425 Ok(())
11426 }
11427 }
11428
11429 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
11430 for IsochronousStreamSetupDataPathRequest
11431 {
11432 #[inline(always)]
11433 fn new_empty() -> Self {
11434 Self::default()
11435 }
11436
11437 unsafe fn decode(
11438 &mut self,
11439 decoder: &mut fidl::encoding::Decoder<'_, D>,
11440 offset: usize,
11441 mut depth: fidl::encoding::Depth,
11442 ) -> fidl::Result<()> {
11443 decoder.debug_check_bounds::<Self>(offset);
11444 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
11445 None => return Err(fidl::Error::NotNullable),
11446 Some(len) => len,
11447 };
11448 if len == 0 {
11450 return Ok(());
11451 };
11452 depth.increment()?;
11453 let envelope_size = 8;
11454 let bytes_len = len * envelope_size;
11455 let offset = decoder.out_of_line_offset(bytes_len)?;
11456 let mut _next_ordinal_to_read = 0;
11458 let mut next_offset = offset;
11459 let end_offset = offset + bytes_len;
11460 _next_ordinal_to_read += 1;
11461 if next_offset >= end_offset {
11462 return Ok(());
11463 }
11464
11465 while _next_ordinal_to_read < 1 {
11467 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11468 _next_ordinal_to_read += 1;
11469 next_offset += envelope_size;
11470 }
11471
11472 let next_out_of_line = decoder.next_out_of_line();
11473 let handles_before = decoder.remaining_handles();
11474 if let Some((inlined, num_bytes, num_handles)) =
11475 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11476 {
11477 let member_inline_size = <fidl_fuchsia_bluetooth__common::DataDirection as fidl::encoding::TypeMarker>::inline_size(decoder.context);
11478 if inlined != (member_inline_size <= 4) {
11479 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11480 }
11481 let inner_offset;
11482 let mut inner_depth = depth.clone();
11483 if inlined {
11484 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11485 inner_offset = next_offset;
11486 } else {
11487 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11488 inner_depth.increment()?;
11489 }
11490 let val_ref = self.data_direction.get_or_insert_with(|| {
11491 fidl::new_empty!(fidl_fuchsia_bluetooth__common::DataDirection, D)
11492 });
11493 fidl::decode!(
11494 fidl_fuchsia_bluetooth__common::DataDirection,
11495 D,
11496 val_ref,
11497 decoder,
11498 inner_offset,
11499 inner_depth
11500 )?;
11501 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11502 {
11503 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11504 }
11505 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11506 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11507 }
11508 }
11509
11510 next_offset += envelope_size;
11511 _next_ordinal_to_read += 1;
11512 if next_offset >= end_offset {
11513 return Ok(());
11514 }
11515
11516 while _next_ordinal_to_read < 2 {
11518 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11519 _next_ordinal_to_read += 1;
11520 next_offset += envelope_size;
11521 }
11522
11523 let next_out_of_line = decoder.next_out_of_line();
11524 let handles_before = decoder.remaining_handles();
11525 if let Some((inlined, num_bytes, num_handles)) =
11526 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11527 {
11528 let member_inline_size = <fidl_fuchsia_bluetooth__common::CodecAttributes as fidl::encoding::TypeMarker>::inline_size(decoder.context);
11529 if inlined != (member_inline_size <= 4) {
11530 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11531 }
11532 let inner_offset;
11533 let mut inner_depth = depth.clone();
11534 if inlined {
11535 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11536 inner_offset = next_offset;
11537 } else {
11538 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11539 inner_depth.increment()?;
11540 }
11541 let val_ref = self.codec_attributes.get_or_insert_with(|| {
11542 fidl::new_empty!(fidl_fuchsia_bluetooth__common::CodecAttributes, D)
11543 });
11544 fidl::decode!(
11545 fidl_fuchsia_bluetooth__common::CodecAttributes,
11546 D,
11547 val_ref,
11548 decoder,
11549 inner_offset,
11550 inner_depth
11551 )?;
11552 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11553 {
11554 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11555 }
11556 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11557 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11558 }
11559 }
11560
11561 next_offset += envelope_size;
11562 _next_ordinal_to_read += 1;
11563 if next_offset >= end_offset {
11564 return Ok(());
11565 }
11566
11567 while _next_ordinal_to_read < 3 {
11569 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11570 _next_ordinal_to_read += 1;
11571 next_offset += envelope_size;
11572 }
11573
11574 let next_out_of_line = decoder.next_out_of_line();
11575 let handles_before = decoder.remaining_handles();
11576 if let Some((inlined, num_bytes, num_handles)) =
11577 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11578 {
11579 let member_inline_size =
11580 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
11581 if inlined != (member_inline_size <= 4) {
11582 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11583 }
11584 let inner_offset;
11585 let mut inner_depth = depth.clone();
11586 if inlined {
11587 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11588 inner_offset = next_offset;
11589 } else {
11590 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11591 inner_depth.increment()?;
11592 }
11593 let val_ref = self.controller_delay.get_or_insert_with(|| fidl::new_empty!(i64, D));
11594 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
11595 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11596 {
11597 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11598 }
11599 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11600 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11601 }
11602 }
11603
11604 next_offset += envelope_size;
11605
11606 while next_offset < end_offset {
11608 _next_ordinal_to_read += 1;
11609 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11610 next_offset += envelope_size;
11611 }
11612
11613 Ok(())
11614 }
11615 }
11616
11617 impl IsochronousStreamWriteRequest {
11618 #[inline(always)]
11619 fn max_ordinal_present(&self) -> u64 {
11620 if let Some(_) = self.data {
11621 return 1;
11622 }
11623 0
11624 }
11625 }
11626
11627 impl fidl::encoding::ValueTypeMarker for IsochronousStreamWriteRequest {
11628 type Borrowed<'a> = &'a Self;
11629 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
11630 value
11631 }
11632 }
11633
11634 unsafe impl fidl::encoding::TypeMarker for IsochronousStreamWriteRequest {
11635 type Owned = Self;
11636
11637 #[inline(always)]
11638 fn inline_align(_context: fidl::encoding::Context) -> usize {
11639 8
11640 }
11641
11642 #[inline(always)]
11643 fn inline_size(_context: fidl::encoding::Context) -> usize {
11644 16
11645 }
11646 }
11647
11648 unsafe impl<D: fidl::encoding::ResourceDialect>
11649 fidl::encoding::Encode<IsochronousStreamWriteRequest, D>
11650 for &IsochronousStreamWriteRequest
11651 {
11652 unsafe fn encode(
11653 self,
11654 encoder: &mut fidl::encoding::Encoder<'_, D>,
11655 offset: usize,
11656 mut depth: fidl::encoding::Depth,
11657 ) -> fidl::Result<()> {
11658 encoder.debug_check_bounds::<IsochronousStreamWriteRequest>(offset);
11659 let max_ordinal: u64 = self.max_ordinal_present();
11661 encoder.write_num(max_ordinal, offset);
11662 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
11663 if max_ordinal == 0 {
11665 return Ok(());
11666 }
11667 depth.increment()?;
11668 let envelope_size = 8;
11669 let bytes_len = max_ordinal as usize * envelope_size;
11670 #[allow(unused_variables)]
11671 let offset = encoder.out_of_line_offset(bytes_len);
11672 let mut _prev_end_offset: usize = 0;
11673 if 1 > max_ordinal {
11674 return Ok(());
11675 }
11676
11677 let cur_offset: usize = (1 - 1) * envelope_size;
11680
11681 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11683
11684 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u8, 4095>, D>(
11689 self.data.as_ref().map(
11690 <fidl::encoding::Vector<u8, 4095> as fidl::encoding::ValueTypeMarker>::borrow,
11691 ),
11692 encoder,
11693 offset + cur_offset,
11694 depth,
11695 )?;
11696
11697 _prev_end_offset = cur_offset + envelope_size;
11698
11699 Ok(())
11700 }
11701 }
11702
11703 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
11704 for IsochronousStreamWriteRequest
11705 {
11706 #[inline(always)]
11707 fn new_empty() -> Self {
11708 Self::default()
11709 }
11710
11711 unsafe fn decode(
11712 &mut self,
11713 decoder: &mut fidl::encoding::Decoder<'_, D>,
11714 offset: usize,
11715 mut depth: fidl::encoding::Depth,
11716 ) -> fidl::Result<()> {
11717 decoder.debug_check_bounds::<Self>(offset);
11718 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
11719 None => return Err(fidl::Error::NotNullable),
11720 Some(len) => len,
11721 };
11722 if len == 0 {
11724 return Ok(());
11725 };
11726 depth.increment()?;
11727 let envelope_size = 8;
11728 let bytes_len = len * envelope_size;
11729 let offset = decoder.out_of_line_offset(bytes_len)?;
11730 let mut _next_ordinal_to_read = 0;
11732 let mut next_offset = offset;
11733 let end_offset = offset + bytes_len;
11734 _next_ordinal_to_read += 1;
11735 if next_offset >= end_offset {
11736 return Ok(());
11737 }
11738
11739 while _next_ordinal_to_read < 1 {
11741 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11742 _next_ordinal_to_read += 1;
11743 next_offset += envelope_size;
11744 }
11745
11746 let next_out_of_line = decoder.next_out_of_line();
11747 let handles_before = decoder.remaining_handles();
11748 if let Some((inlined, num_bytes, num_handles)) =
11749 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11750 {
11751 let member_inline_size =
11752 <fidl::encoding::Vector<u8, 4095> as fidl::encoding::TypeMarker>::inline_size(
11753 decoder.context,
11754 );
11755 if inlined != (member_inline_size <= 4) {
11756 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11757 }
11758 let inner_offset;
11759 let mut inner_depth = depth.clone();
11760 if inlined {
11761 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11762 inner_offset = next_offset;
11763 } else {
11764 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11765 inner_depth.increment()?;
11766 }
11767 let val_ref = self
11768 .data
11769 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u8, 4095>, D));
11770 fidl::decode!(fidl::encoding::Vector<u8, 4095>, D, val_ref, decoder, inner_offset, inner_depth)?;
11771 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11772 {
11773 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11774 }
11775 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11776 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11777 }
11778 }
11779
11780 next_offset += envelope_size;
11781
11782 while next_offset < end_offset {
11784 _next_ordinal_to_read += 1;
11785 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11786 next_offset += envelope_size;
11787 }
11788
11789 Ok(())
11790 }
11791 }
11792
11793 impl IsochronousStreamReadResponse {
11794 #[inline(always)]
11795 fn max_ordinal_present(&self) -> u64 {
11796 if let Some(_) = self.timestamp {
11797 return 4;
11798 }
11799 if let Some(_) = self.status_flag {
11800 return 3;
11801 }
11802 if let Some(_) = self.sequence_number {
11803 return 2;
11804 }
11805 if let Some(_) = self.data {
11806 return 1;
11807 }
11808 0
11809 }
11810 }
11811
11812 impl fidl::encoding::ValueTypeMarker for IsochronousStreamReadResponse {
11813 type Borrowed<'a> = &'a Self;
11814 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
11815 value
11816 }
11817 }
11818
11819 unsafe impl fidl::encoding::TypeMarker for IsochronousStreamReadResponse {
11820 type Owned = Self;
11821
11822 #[inline(always)]
11823 fn inline_align(_context: fidl::encoding::Context) -> usize {
11824 8
11825 }
11826
11827 #[inline(always)]
11828 fn inline_size(_context: fidl::encoding::Context) -> usize {
11829 16
11830 }
11831 }
11832
11833 unsafe impl<D: fidl::encoding::ResourceDialect>
11834 fidl::encoding::Encode<IsochronousStreamReadResponse, D>
11835 for &IsochronousStreamReadResponse
11836 {
11837 unsafe fn encode(
11838 self,
11839 encoder: &mut fidl::encoding::Encoder<'_, D>,
11840 offset: usize,
11841 mut depth: fidl::encoding::Depth,
11842 ) -> fidl::Result<()> {
11843 encoder.debug_check_bounds::<IsochronousStreamReadResponse>(offset);
11844 let max_ordinal: u64 = self.max_ordinal_present();
11846 encoder.write_num(max_ordinal, offset);
11847 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
11848 if max_ordinal == 0 {
11850 return Ok(());
11851 }
11852 depth.increment()?;
11853 let envelope_size = 8;
11854 let bytes_len = max_ordinal as usize * envelope_size;
11855 #[allow(unused_variables)]
11856 let offset = encoder.out_of_line_offset(bytes_len);
11857 let mut _prev_end_offset: usize = 0;
11858 if 1 > max_ordinal {
11859 return Ok(());
11860 }
11861
11862 let cur_offset: usize = (1 - 1) * envelope_size;
11865
11866 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11868
11869 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u8>, D>(
11874 self.data.as_ref().map(<fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow),
11875 encoder, offset + cur_offset, depth
11876 )?;
11877
11878 _prev_end_offset = cur_offset + envelope_size;
11879 if 2 > max_ordinal {
11880 return Ok(());
11881 }
11882
11883 let cur_offset: usize = (2 - 1) * envelope_size;
11886
11887 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11889
11890 fidl::encoding::encode_in_envelope_optional::<u16, D>(
11895 self.sequence_number.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
11896 encoder,
11897 offset + cur_offset,
11898 depth,
11899 )?;
11900
11901 _prev_end_offset = cur_offset + envelope_size;
11902 if 3 > max_ordinal {
11903 return Ok(());
11904 }
11905
11906 let cur_offset: usize = (3 - 1) * envelope_size;
11909
11910 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11912
11913 fidl::encoding::encode_in_envelope_optional::<IsoPacketStatusFlag, D>(
11918 self.status_flag
11919 .as_ref()
11920 .map(<IsoPacketStatusFlag as fidl::encoding::ValueTypeMarker>::borrow),
11921 encoder,
11922 offset + cur_offset,
11923 depth,
11924 )?;
11925
11926 _prev_end_offset = cur_offset + envelope_size;
11927 if 4 > max_ordinal {
11928 return Ok(());
11929 }
11930
11931 let cur_offset: usize = (4 - 1) * envelope_size;
11934
11935 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11937
11938 fidl::encoding::encode_in_envelope_optional::<i64, D>(
11943 self.timestamp.as_ref().map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
11944 encoder,
11945 offset + cur_offset,
11946 depth,
11947 )?;
11948
11949 _prev_end_offset = cur_offset + envelope_size;
11950
11951 Ok(())
11952 }
11953 }
11954
11955 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
11956 for IsochronousStreamReadResponse
11957 {
11958 #[inline(always)]
11959 fn new_empty() -> Self {
11960 Self::default()
11961 }
11962
11963 unsafe fn decode(
11964 &mut self,
11965 decoder: &mut fidl::encoding::Decoder<'_, D>,
11966 offset: usize,
11967 mut depth: fidl::encoding::Depth,
11968 ) -> fidl::Result<()> {
11969 decoder.debug_check_bounds::<Self>(offset);
11970 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
11971 None => return Err(fidl::Error::NotNullable),
11972 Some(len) => len,
11973 };
11974 if len == 0 {
11976 return Ok(());
11977 };
11978 depth.increment()?;
11979 let envelope_size = 8;
11980 let bytes_len = len * envelope_size;
11981 let offset = decoder.out_of_line_offset(bytes_len)?;
11982 let mut _next_ordinal_to_read = 0;
11984 let mut next_offset = offset;
11985 let end_offset = offset + bytes_len;
11986 _next_ordinal_to_read += 1;
11987 if next_offset >= end_offset {
11988 return Ok(());
11989 }
11990
11991 while _next_ordinal_to_read < 1 {
11993 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11994 _next_ordinal_to_read += 1;
11995 next_offset += envelope_size;
11996 }
11997
11998 let next_out_of_line = decoder.next_out_of_line();
11999 let handles_before = decoder.remaining_handles();
12000 if let Some((inlined, num_bytes, num_handles)) =
12001 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12002 {
12003 let member_inline_size = <fidl::encoding::UnboundedVector<u8> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
12004 if inlined != (member_inline_size <= 4) {
12005 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12006 }
12007 let inner_offset;
12008 let mut inner_depth = depth.clone();
12009 if inlined {
12010 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12011 inner_offset = next_offset;
12012 } else {
12013 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12014 inner_depth.increment()?;
12015 }
12016 let val_ref = self.data.get_or_insert_with(|| {
12017 fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D)
12018 });
12019 fidl::decode!(
12020 fidl::encoding::UnboundedVector<u8>,
12021 D,
12022 val_ref,
12023 decoder,
12024 inner_offset,
12025 inner_depth
12026 )?;
12027 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12028 {
12029 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12030 }
12031 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12032 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12033 }
12034 }
12035
12036 next_offset += envelope_size;
12037 _next_ordinal_to_read += 1;
12038 if next_offset >= end_offset {
12039 return Ok(());
12040 }
12041
12042 while _next_ordinal_to_read < 2 {
12044 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12045 _next_ordinal_to_read += 1;
12046 next_offset += envelope_size;
12047 }
12048
12049 let next_out_of_line = decoder.next_out_of_line();
12050 let handles_before = decoder.remaining_handles();
12051 if let Some((inlined, num_bytes, num_handles)) =
12052 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12053 {
12054 let member_inline_size =
12055 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
12056 if inlined != (member_inline_size <= 4) {
12057 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12058 }
12059 let inner_offset;
12060 let mut inner_depth = depth.clone();
12061 if inlined {
12062 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12063 inner_offset = next_offset;
12064 } else {
12065 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12066 inner_depth.increment()?;
12067 }
12068 let val_ref = self.sequence_number.get_or_insert_with(|| fidl::new_empty!(u16, D));
12069 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
12070 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12071 {
12072 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12073 }
12074 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12075 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12076 }
12077 }
12078
12079 next_offset += envelope_size;
12080 _next_ordinal_to_read += 1;
12081 if next_offset >= end_offset {
12082 return Ok(());
12083 }
12084
12085 while _next_ordinal_to_read < 3 {
12087 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12088 _next_ordinal_to_read += 1;
12089 next_offset += envelope_size;
12090 }
12091
12092 let next_out_of_line = decoder.next_out_of_line();
12093 let handles_before = decoder.remaining_handles();
12094 if let Some((inlined, num_bytes, num_handles)) =
12095 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12096 {
12097 let member_inline_size =
12098 <IsoPacketStatusFlag as fidl::encoding::TypeMarker>::inline_size(
12099 decoder.context,
12100 );
12101 if inlined != (member_inline_size <= 4) {
12102 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12103 }
12104 let inner_offset;
12105 let mut inner_depth = depth.clone();
12106 if inlined {
12107 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12108 inner_offset = next_offset;
12109 } else {
12110 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12111 inner_depth.increment()?;
12112 }
12113 let val_ref = self
12114 .status_flag
12115 .get_or_insert_with(|| fidl::new_empty!(IsoPacketStatusFlag, D));
12116 fidl::decode!(IsoPacketStatusFlag, D, val_ref, decoder, inner_offset, inner_depth)?;
12117 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12118 {
12119 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12120 }
12121 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12122 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12123 }
12124 }
12125
12126 next_offset += envelope_size;
12127 _next_ordinal_to_read += 1;
12128 if next_offset >= end_offset {
12129 return Ok(());
12130 }
12131
12132 while _next_ordinal_to_read < 4 {
12134 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12135 _next_ordinal_to_read += 1;
12136 next_offset += envelope_size;
12137 }
12138
12139 let next_out_of_line = decoder.next_out_of_line();
12140 let handles_before = decoder.remaining_handles();
12141 if let Some((inlined, num_bytes, num_handles)) =
12142 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12143 {
12144 let member_inline_size =
12145 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
12146 if inlined != (member_inline_size <= 4) {
12147 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12148 }
12149 let inner_offset;
12150 let mut inner_depth = depth.clone();
12151 if inlined {
12152 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12153 inner_offset = next_offset;
12154 } else {
12155 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12156 inner_depth.increment()?;
12157 }
12158 let val_ref = self.timestamp.get_or_insert_with(|| fidl::new_empty!(i64, D));
12159 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
12160 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12161 {
12162 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12163 }
12164 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12165 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12166 }
12167 }
12168
12169 next_offset += envelope_size;
12170
12171 while next_offset < end_offset {
12173 _next_ordinal_to_read += 1;
12174 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12175 next_offset += envelope_size;
12176 }
12177
12178 Ok(())
12179 }
12180 }
12181
12182 impl Legacy {
12183 #[inline(always)]
12184 fn max_ordinal_present(&self) -> u64 {
12185 0
12186 }
12187 }
12188
12189 impl fidl::encoding::ValueTypeMarker for Legacy {
12190 type Borrowed<'a> = &'a Self;
12191 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
12192 value
12193 }
12194 }
12195
12196 unsafe impl fidl::encoding::TypeMarker for Legacy {
12197 type Owned = Self;
12198
12199 #[inline(always)]
12200 fn inline_align(_context: fidl::encoding::Context) -> usize {
12201 8
12202 }
12203
12204 #[inline(always)]
12205 fn inline_size(_context: fidl::encoding::Context) -> usize {
12206 16
12207 }
12208 }
12209
12210 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Legacy, D> for &Legacy {
12211 unsafe fn encode(
12212 self,
12213 encoder: &mut fidl::encoding::Encoder<'_, D>,
12214 offset: usize,
12215 mut depth: fidl::encoding::Depth,
12216 ) -> fidl::Result<()> {
12217 encoder.debug_check_bounds::<Legacy>(offset);
12218 let max_ordinal: u64 = self.max_ordinal_present();
12220 encoder.write_num(max_ordinal, offset);
12221 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
12222 if max_ordinal == 0 {
12224 return Ok(());
12225 }
12226 depth.increment()?;
12227 let envelope_size = 8;
12228 let bytes_len = max_ordinal as usize * envelope_size;
12229 #[allow(unused_variables)]
12230 let offset = encoder.out_of_line_offset(bytes_len);
12231 let mut _prev_end_offset: usize = 0;
12232
12233 Ok(())
12234 }
12235 }
12236
12237 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Legacy {
12238 #[inline(always)]
12239 fn new_empty() -> Self {
12240 Self::default()
12241 }
12242
12243 unsafe fn decode(
12244 &mut self,
12245 decoder: &mut fidl::encoding::Decoder<'_, D>,
12246 offset: usize,
12247 mut depth: fidl::encoding::Depth,
12248 ) -> fidl::Result<()> {
12249 decoder.debug_check_bounds::<Self>(offset);
12250 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
12251 None => return Err(fidl::Error::NotNullable),
12252 Some(len) => len,
12253 };
12254 if len == 0 {
12256 return Ok(());
12257 };
12258 depth.increment()?;
12259 let envelope_size = 8;
12260 let bytes_len = len * envelope_size;
12261 let offset = decoder.out_of_line_offset(bytes_len)?;
12262 let mut _next_ordinal_to_read = 0;
12264 let mut next_offset = offset;
12265 let end_offset = offset + bytes_len;
12266
12267 while next_offset < end_offset {
12269 _next_ordinal_to_read += 1;
12270 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12271 next_offset += envelope_size;
12272 }
12273
12274 Ok(())
12275 }
12276 }
12277
12278 impl Peer {
12279 #[inline(always)]
12280 fn max_ordinal_present(&self) -> u64 {
12281 if let Some(_) = self.periodic_advertising_interval {
12282 return 10;
12283 }
12284 if let Some(_) = self.advertising_sid {
12285 return 9;
12286 }
12287 if let Some(_) = self.last_updated {
12288 return 8;
12289 }
12290 if let Some(_) = self.bonded {
12291 return 7;
12292 }
12293 if let Some(_) = self.data {
12294 return 6;
12295 }
12296 if let Some(_) = self.name {
12297 return 5;
12298 }
12299 if let Some(_) = self.advertising_data {
12300 return 4;
12301 }
12302 if let Some(_) = self.rssi {
12303 return 3;
12304 }
12305 if let Some(_) = self.connectable {
12306 return 2;
12307 }
12308 if let Some(_) = self.id {
12309 return 1;
12310 }
12311 0
12312 }
12313 }
12314
12315 impl fidl::encoding::ValueTypeMarker for Peer {
12316 type Borrowed<'a> = &'a Self;
12317 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
12318 value
12319 }
12320 }
12321
12322 unsafe impl fidl::encoding::TypeMarker for Peer {
12323 type Owned = Self;
12324
12325 #[inline(always)]
12326 fn inline_align(_context: fidl::encoding::Context) -> usize {
12327 8
12328 }
12329
12330 #[inline(always)]
12331 fn inline_size(_context: fidl::encoding::Context) -> usize {
12332 16
12333 }
12334 }
12335
12336 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Peer, D> for &Peer {
12337 unsafe fn encode(
12338 self,
12339 encoder: &mut fidl::encoding::Encoder<'_, D>,
12340 offset: usize,
12341 mut depth: fidl::encoding::Depth,
12342 ) -> fidl::Result<()> {
12343 encoder.debug_check_bounds::<Peer>(offset);
12344 let max_ordinal: u64 = self.max_ordinal_present();
12346 encoder.write_num(max_ordinal, offset);
12347 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
12348 if max_ordinal == 0 {
12350 return Ok(());
12351 }
12352 depth.increment()?;
12353 let envelope_size = 8;
12354 let bytes_len = max_ordinal as usize * envelope_size;
12355 #[allow(unused_variables)]
12356 let offset = encoder.out_of_line_offset(bytes_len);
12357 let mut _prev_end_offset: usize = 0;
12358 if 1 > max_ordinal {
12359 return Ok(());
12360 }
12361
12362 let cur_offset: usize = (1 - 1) * envelope_size;
12365
12366 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12368
12369 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_bluetooth__common::PeerId, D>(
12374 self.id.as_ref().map(<fidl_fuchsia_bluetooth__common::PeerId as fidl::encoding::ValueTypeMarker>::borrow),
12375 encoder, offset + cur_offset, depth
12376 )?;
12377
12378 _prev_end_offset = cur_offset + envelope_size;
12379 if 2 > max_ordinal {
12380 return Ok(());
12381 }
12382
12383 let cur_offset: usize = (2 - 1) * envelope_size;
12386
12387 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12389
12390 fidl::encoding::encode_in_envelope_optional::<bool, D>(
12395 self.connectable.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
12396 encoder,
12397 offset + cur_offset,
12398 depth,
12399 )?;
12400
12401 _prev_end_offset = cur_offset + envelope_size;
12402 if 3 > max_ordinal {
12403 return Ok(());
12404 }
12405
12406 let cur_offset: usize = (3 - 1) * envelope_size;
12409
12410 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12412
12413 fidl::encoding::encode_in_envelope_optional::<i8, D>(
12418 self.rssi.as_ref().map(<i8 as fidl::encoding::ValueTypeMarker>::borrow),
12419 encoder,
12420 offset + cur_offset,
12421 depth,
12422 )?;
12423
12424 _prev_end_offset = cur_offset + envelope_size;
12425 if 4 > max_ordinal {
12426 return Ok(());
12427 }
12428
12429 let cur_offset: usize = (4 - 1) * envelope_size;
12432
12433 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12435
12436 fidl::encoding::encode_in_envelope_optional::<AdvertisingData, D>(
12441 self.advertising_data
12442 .as_ref()
12443 .map(<AdvertisingData as fidl::encoding::ValueTypeMarker>::borrow),
12444 encoder,
12445 offset + cur_offset,
12446 depth,
12447 )?;
12448
12449 _prev_end_offset = cur_offset + envelope_size;
12450 if 5 > max_ordinal {
12451 return Ok(());
12452 }
12453
12454 let cur_offset: usize = (5 - 1) * envelope_size;
12457
12458 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12460
12461 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<248>, D>(
12466 self.name.as_ref().map(
12467 <fidl::encoding::BoundedString<248> as fidl::encoding::ValueTypeMarker>::borrow,
12468 ),
12469 encoder,
12470 offset + cur_offset,
12471 depth,
12472 )?;
12473
12474 _prev_end_offset = cur_offset + envelope_size;
12475 if 6 > max_ordinal {
12476 return Ok(());
12477 }
12478
12479 let cur_offset: usize = (6 - 1) * envelope_size;
12482
12483 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12485
12486 fidl::encoding::encode_in_envelope_optional::<ScanData, D>(
12491 self.data.as_ref().map(<ScanData as fidl::encoding::ValueTypeMarker>::borrow),
12492 encoder,
12493 offset + cur_offset,
12494 depth,
12495 )?;
12496
12497 _prev_end_offset = cur_offset + envelope_size;
12498 if 7 > max_ordinal {
12499 return Ok(());
12500 }
12501
12502 let cur_offset: usize = (7 - 1) * envelope_size;
12505
12506 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12508
12509 fidl::encoding::encode_in_envelope_optional::<bool, D>(
12514 self.bonded.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
12515 encoder,
12516 offset + cur_offset,
12517 depth,
12518 )?;
12519
12520 _prev_end_offset = cur_offset + envelope_size;
12521 if 8 > max_ordinal {
12522 return Ok(());
12523 }
12524
12525 let cur_offset: usize = (8 - 1) * envelope_size;
12528
12529 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12531
12532 fidl::encoding::encode_in_envelope_optional::<i64, D>(
12537 self.last_updated.as_ref().map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
12538 encoder,
12539 offset + cur_offset,
12540 depth,
12541 )?;
12542
12543 _prev_end_offset = cur_offset + envelope_size;
12544 if 9 > max_ordinal {
12545 return Ok(());
12546 }
12547
12548 let cur_offset: usize = (9 - 1) * envelope_size;
12551
12552 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12554
12555 fidl::encoding::encode_in_envelope_optional::<u8, D>(
12560 self.advertising_sid.as_ref().map(<u8 as fidl::encoding::ValueTypeMarker>::borrow),
12561 encoder,
12562 offset + cur_offset,
12563 depth,
12564 )?;
12565
12566 _prev_end_offset = cur_offset + envelope_size;
12567 if 10 > max_ordinal {
12568 return Ok(());
12569 }
12570
12571 let cur_offset: usize = (10 - 1) * envelope_size;
12574
12575 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12577
12578 fidl::encoding::encode_in_envelope_optional::<u16, D>(
12583 self.periodic_advertising_interval
12584 .as_ref()
12585 .map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
12586 encoder,
12587 offset + cur_offset,
12588 depth,
12589 )?;
12590
12591 _prev_end_offset = cur_offset + envelope_size;
12592
12593 Ok(())
12594 }
12595 }
12596
12597 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Peer {
12598 #[inline(always)]
12599 fn new_empty() -> Self {
12600 Self::default()
12601 }
12602
12603 unsafe fn decode(
12604 &mut self,
12605 decoder: &mut fidl::encoding::Decoder<'_, D>,
12606 offset: usize,
12607 mut depth: fidl::encoding::Depth,
12608 ) -> fidl::Result<()> {
12609 decoder.debug_check_bounds::<Self>(offset);
12610 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
12611 None => return Err(fidl::Error::NotNullable),
12612 Some(len) => len,
12613 };
12614 if len == 0 {
12616 return Ok(());
12617 };
12618 depth.increment()?;
12619 let envelope_size = 8;
12620 let bytes_len = len * envelope_size;
12621 let offset = decoder.out_of_line_offset(bytes_len)?;
12622 let mut _next_ordinal_to_read = 0;
12624 let mut next_offset = offset;
12625 let end_offset = offset + bytes_len;
12626 _next_ordinal_to_read += 1;
12627 if next_offset >= end_offset {
12628 return Ok(());
12629 }
12630
12631 while _next_ordinal_to_read < 1 {
12633 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12634 _next_ordinal_to_read += 1;
12635 next_offset += envelope_size;
12636 }
12637
12638 let next_out_of_line = decoder.next_out_of_line();
12639 let handles_before = decoder.remaining_handles();
12640 if let Some((inlined, num_bytes, num_handles)) =
12641 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12642 {
12643 let member_inline_size = <fidl_fuchsia_bluetooth__common::PeerId as fidl::encoding::TypeMarker>::inline_size(decoder.context);
12644 if inlined != (member_inline_size <= 4) {
12645 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12646 }
12647 let inner_offset;
12648 let mut inner_depth = depth.clone();
12649 if inlined {
12650 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12651 inner_offset = next_offset;
12652 } else {
12653 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12654 inner_depth.increment()?;
12655 }
12656 let val_ref = self.id.get_or_insert_with(|| {
12657 fidl::new_empty!(fidl_fuchsia_bluetooth__common::PeerId, D)
12658 });
12659 fidl::decode!(
12660 fidl_fuchsia_bluetooth__common::PeerId,
12661 D,
12662 val_ref,
12663 decoder,
12664 inner_offset,
12665 inner_depth
12666 )?;
12667 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12668 {
12669 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12670 }
12671 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12672 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12673 }
12674 }
12675
12676 next_offset += envelope_size;
12677 _next_ordinal_to_read += 1;
12678 if next_offset >= end_offset {
12679 return Ok(());
12680 }
12681
12682 while _next_ordinal_to_read < 2 {
12684 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12685 _next_ordinal_to_read += 1;
12686 next_offset += envelope_size;
12687 }
12688
12689 let next_out_of_line = decoder.next_out_of_line();
12690 let handles_before = decoder.remaining_handles();
12691 if let Some((inlined, num_bytes, num_handles)) =
12692 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12693 {
12694 let member_inline_size =
12695 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
12696 if inlined != (member_inline_size <= 4) {
12697 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12698 }
12699 let inner_offset;
12700 let mut inner_depth = depth.clone();
12701 if inlined {
12702 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12703 inner_offset = next_offset;
12704 } else {
12705 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12706 inner_depth.increment()?;
12707 }
12708 let val_ref = self.connectable.get_or_insert_with(|| fidl::new_empty!(bool, D));
12709 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
12710 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12711 {
12712 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12713 }
12714 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12715 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12716 }
12717 }
12718
12719 next_offset += envelope_size;
12720 _next_ordinal_to_read += 1;
12721 if next_offset >= end_offset {
12722 return Ok(());
12723 }
12724
12725 while _next_ordinal_to_read < 3 {
12727 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12728 _next_ordinal_to_read += 1;
12729 next_offset += envelope_size;
12730 }
12731
12732 let next_out_of_line = decoder.next_out_of_line();
12733 let handles_before = decoder.remaining_handles();
12734 if let Some((inlined, num_bytes, num_handles)) =
12735 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12736 {
12737 let member_inline_size =
12738 <i8 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
12739 if inlined != (member_inline_size <= 4) {
12740 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12741 }
12742 let inner_offset;
12743 let mut inner_depth = depth.clone();
12744 if inlined {
12745 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12746 inner_offset = next_offset;
12747 } else {
12748 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12749 inner_depth.increment()?;
12750 }
12751 let val_ref = self.rssi.get_or_insert_with(|| fidl::new_empty!(i8, D));
12752 fidl::decode!(i8, D, val_ref, decoder, inner_offset, inner_depth)?;
12753 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12754 {
12755 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12756 }
12757 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12758 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12759 }
12760 }
12761
12762 next_offset += envelope_size;
12763 _next_ordinal_to_read += 1;
12764 if next_offset >= end_offset {
12765 return Ok(());
12766 }
12767
12768 while _next_ordinal_to_read < 4 {
12770 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12771 _next_ordinal_to_read += 1;
12772 next_offset += envelope_size;
12773 }
12774
12775 let next_out_of_line = decoder.next_out_of_line();
12776 let handles_before = decoder.remaining_handles();
12777 if let Some((inlined, num_bytes, num_handles)) =
12778 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12779 {
12780 let member_inline_size =
12781 <AdvertisingData as fidl::encoding::TypeMarker>::inline_size(decoder.context);
12782 if inlined != (member_inline_size <= 4) {
12783 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12784 }
12785 let inner_offset;
12786 let mut inner_depth = depth.clone();
12787 if inlined {
12788 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12789 inner_offset = next_offset;
12790 } else {
12791 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12792 inner_depth.increment()?;
12793 }
12794 let val_ref = self
12795 .advertising_data
12796 .get_or_insert_with(|| fidl::new_empty!(AdvertisingData, D));
12797 fidl::decode!(AdvertisingData, D, val_ref, decoder, inner_offset, inner_depth)?;
12798 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12799 {
12800 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12801 }
12802 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12803 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12804 }
12805 }
12806
12807 next_offset += envelope_size;
12808 _next_ordinal_to_read += 1;
12809 if next_offset >= end_offset {
12810 return Ok(());
12811 }
12812
12813 while _next_ordinal_to_read < 5 {
12815 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12816 _next_ordinal_to_read += 1;
12817 next_offset += envelope_size;
12818 }
12819
12820 let next_out_of_line = decoder.next_out_of_line();
12821 let handles_before = decoder.remaining_handles();
12822 if let Some((inlined, num_bytes, num_handles)) =
12823 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12824 {
12825 let member_inline_size =
12826 <fidl::encoding::BoundedString<248> as fidl::encoding::TypeMarker>::inline_size(
12827 decoder.context,
12828 );
12829 if inlined != (member_inline_size <= 4) {
12830 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12831 }
12832 let inner_offset;
12833 let mut inner_depth = depth.clone();
12834 if inlined {
12835 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12836 inner_offset = next_offset;
12837 } else {
12838 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12839 inner_depth.increment()?;
12840 }
12841 let val_ref = self
12842 .name
12843 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<248>, D));
12844 fidl::decode!(
12845 fidl::encoding::BoundedString<248>,
12846 D,
12847 val_ref,
12848 decoder,
12849 inner_offset,
12850 inner_depth
12851 )?;
12852 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12853 {
12854 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12855 }
12856 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12857 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12858 }
12859 }
12860
12861 next_offset += envelope_size;
12862 _next_ordinal_to_read += 1;
12863 if next_offset >= end_offset {
12864 return Ok(());
12865 }
12866
12867 while _next_ordinal_to_read < 6 {
12869 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12870 _next_ordinal_to_read += 1;
12871 next_offset += envelope_size;
12872 }
12873
12874 let next_out_of_line = decoder.next_out_of_line();
12875 let handles_before = decoder.remaining_handles();
12876 if let Some((inlined, num_bytes, num_handles)) =
12877 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12878 {
12879 let member_inline_size =
12880 <ScanData as fidl::encoding::TypeMarker>::inline_size(decoder.context);
12881 if inlined != (member_inline_size <= 4) {
12882 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12883 }
12884 let inner_offset;
12885 let mut inner_depth = depth.clone();
12886 if inlined {
12887 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12888 inner_offset = next_offset;
12889 } else {
12890 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12891 inner_depth.increment()?;
12892 }
12893 let val_ref = self.data.get_or_insert_with(|| fidl::new_empty!(ScanData, D));
12894 fidl::decode!(ScanData, D, val_ref, decoder, inner_offset, inner_depth)?;
12895 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12896 {
12897 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12898 }
12899 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12900 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12901 }
12902 }
12903
12904 next_offset += envelope_size;
12905 _next_ordinal_to_read += 1;
12906 if next_offset >= end_offset {
12907 return Ok(());
12908 }
12909
12910 while _next_ordinal_to_read < 7 {
12912 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12913 _next_ordinal_to_read += 1;
12914 next_offset += envelope_size;
12915 }
12916
12917 let next_out_of_line = decoder.next_out_of_line();
12918 let handles_before = decoder.remaining_handles();
12919 if let Some((inlined, num_bytes, num_handles)) =
12920 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12921 {
12922 let member_inline_size =
12923 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
12924 if inlined != (member_inline_size <= 4) {
12925 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12926 }
12927 let inner_offset;
12928 let mut inner_depth = depth.clone();
12929 if inlined {
12930 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12931 inner_offset = next_offset;
12932 } else {
12933 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12934 inner_depth.increment()?;
12935 }
12936 let val_ref = self.bonded.get_or_insert_with(|| fidl::new_empty!(bool, D));
12937 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
12938 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12939 {
12940 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12941 }
12942 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12943 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12944 }
12945 }
12946
12947 next_offset += envelope_size;
12948 _next_ordinal_to_read += 1;
12949 if next_offset >= end_offset {
12950 return Ok(());
12951 }
12952
12953 while _next_ordinal_to_read < 8 {
12955 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12956 _next_ordinal_to_read += 1;
12957 next_offset += envelope_size;
12958 }
12959
12960 let next_out_of_line = decoder.next_out_of_line();
12961 let handles_before = decoder.remaining_handles();
12962 if let Some((inlined, num_bytes, num_handles)) =
12963 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12964 {
12965 let member_inline_size =
12966 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
12967 if inlined != (member_inline_size <= 4) {
12968 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12969 }
12970 let inner_offset;
12971 let mut inner_depth = depth.clone();
12972 if inlined {
12973 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12974 inner_offset = next_offset;
12975 } else {
12976 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12977 inner_depth.increment()?;
12978 }
12979 let val_ref = self.last_updated.get_or_insert_with(|| fidl::new_empty!(i64, D));
12980 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
12981 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12982 {
12983 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12984 }
12985 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12986 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12987 }
12988 }
12989
12990 next_offset += envelope_size;
12991 _next_ordinal_to_read += 1;
12992 if next_offset >= end_offset {
12993 return Ok(());
12994 }
12995
12996 while _next_ordinal_to_read < 9 {
12998 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12999 _next_ordinal_to_read += 1;
13000 next_offset += envelope_size;
13001 }
13002
13003 let next_out_of_line = decoder.next_out_of_line();
13004 let handles_before = decoder.remaining_handles();
13005 if let Some((inlined, num_bytes, num_handles)) =
13006 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13007 {
13008 let member_inline_size =
13009 <u8 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
13010 if inlined != (member_inline_size <= 4) {
13011 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13012 }
13013 let inner_offset;
13014 let mut inner_depth = depth.clone();
13015 if inlined {
13016 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13017 inner_offset = next_offset;
13018 } else {
13019 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13020 inner_depth.increment()?;
13021 }
13022 let val_ref = self.advertising_sid.get_or_insert_with(|| fidl::new_empty!(u8, D));
13023 fidl::decode!(u8, D, val_ref, decoder, inner_offset, inner_depth)?;
13024 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13025 {
13026 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13027 }
13028 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13029 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13030 }
13031 }
13032
13033 next_offset += envelope_size;
13034 _next_ordinal_to_read += 1;
13035 if next_offset >= end_offset {
13036 return Ok(());
13037 }
13038
13039 while _next_ordinal_to_read < 10 {
13041 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13042 _next_ordinal_to_read += 1;
13043 next_offset += envelope_size;
13044 }
13045
13046 let next_out_of_line = decoder.next_out_of_line();
13047 let handles_before = decoder.remaining_handles();
13048 if let Some((inlined, num_bytes, num_handles)) =
13049 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13050 {
13051 let member_inline_size =
13052 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
13053 if inlined != (member_inline_size <= 4) {
13054 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13055 }
13056 let inner_offset;
13057 let mut inner_depth = depth.clone();
13058 if inlined {
13059 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13060 inner_offset = next_offset;
13061 } else {
13062 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13063 inner_depth.increment()?;
13064 }
13065 let val_ref = self
13066 .periodic_advertising_interval
13067 .get_or_insert_with(|| fidl::new_empty!(u16, D));
13068 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
13069 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13070 {
13071 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13072 }
13073 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13074 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13075 }
13076 }
13077
13078 next_offset += envelope_size;
13079
13080 while next_offset < end_offset {
13082 _next_ordinal_to_read += 1;
13083 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13084 next_offset += envelope_size;
13085 }
13086
13087 Ok(())
13088 }
13089 }
13090
13091 impl PeriodicAdvertisingReport {
13092 #[inline(always)]
13093 fn max_ordinal_present(&self) -> u64 {
13094 if let Some(_) = self.timestamp {
13095 return 5;
13096 }
13097 if let Some(_) = self.subevent {
13098 return 4;
13099 }
13100 if let Some(_) = self.event_counter {
13101 return 3;
13102 }
13103 if let Some(_) = self.data {
13104 return 2;
13105 }
13106 if let Some(_) = self.rssi {
13107 return 1;
13108 }
13109 0
13110 }
13111 }
13112
13113 impl fidl::encoding::ValueTypeMarker for PeriodicAdvertisingReport {
13114 type Borrowed<'a> = &'a Self;
13115 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
13116 value
13117 }
13118 }
13119
13120 unsafe impl fidl::encoding::TypeMarker for PeriodicAdvertisingReport {
13121 type Owned = Self;
13122
13123 #[inline(always)]
13124 fn inline_align(_context: fidl::encoding::Context) -> usize {
13125 8
13126 }
13127
13128 #[inline(always)]
13129 fn inline_size(_context: fidl::encoding::Context) -> usize {
13130 16
13131 }
13132 }
13133
13134 unsafe impl<D: fidl::encoding::ResourceDialect>
13135 fidl::encoding::Encode<PeriodicAdvertisingReport, D> for &PeriodicAdvertisingReport
13136 {
13137 unsafe fn encode(
13138 self,
13139 encoder: &mut fidl::encoding::Encoder<'_, D>,
13140 offset: usize,
13141 mut depth: fidl::encoding::Depth,
13142 ) -> fidl::Result<()> {
13143 encoder.debug_check_bounds::<PeriodicAdvertisingReport>(offset);
13144 let max_ordinal: u64 = self.max_ordinal_present();
13146 encoder.write_num(max_ordinal, offset);
13147 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
13148 if max_ordinal == 0 {
13150 return Ok(());
13151 }
13152 depth.increment()?;
13153 let envelope_size = 8;
13154 let bytes_len = max_ordinal as usize * envelope_size;
13155 #[allow(unused_variables)]
13156 let offset = encoder.out_of_line_offset(bytes_len);
13157 let mut _prev_end_offset: usize = 0;
13158 if 1 > max_ordinal {
13159 return Ok(());
13160 }
13161
13162 let cur_offset: usize = (1 - 1) * envelope_size;
13165
13166 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13168
13169 fidl::encoding::encode_in_envelope_optional::<i8, D>(
13174 self.rssi.as_ref().map(<i8 as fidl::encoding::ValueTypeMarker>::borrow),
13175 encoder,
13176 offset + cur_offset,
13177 depth,
13178 )?;
13179
13180 _prev_end_offset = cur_offset + envelope_size;
13181 if 2 > max_ordinal {
13182 return Ok(());
13183 }
13184
13185 let cur_offset: usize = (2 - 1) * envelope_size;
13188
13189 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13191
13192 fidl::encoding::encode_in_envelope_optional::<ScanData, D>(
13197 self.data.as_ref().map(<ScanData as fidl::encoding::ValueTypeMarker>::borrow),
13198 encoder,
13199 offset + cur_offset,
13200 depth,
13201 )?;
13202
13203 _prev_end_offset = cur_offset + envelope_size;
13204 if 3 > max_ordinal {
13205 return Ok(());
13206 }
13207
13208 let cur_offset: usize = (3 - 1) * envelope_size;
13211
13212 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13214
13215 fidl::encoding::encode_in_envelope_optional::<u16, D>(
13220 self.event_counter.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
13221 encoder,
13222 offset + cur_offset,
13223 depth,
13224 )?;
13225
13226 _prev_end_offset = cur_offset + envelope_size;
13227 if 4 > max_ordinal {
13228 return Ok(());
13229 }
13230
13231 let cur_offset: usize = (4 - 1) * envelope_size;
13234
13235 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13237
13238 fidl::encoding::encode_in_envelope_optional::<u8, D>(
13243 self.subevent.as_ref().map(<u8 as fidl::encoding::ValueTypeMarker>::borrow),
13244 encoder,
13245 offset + cur_offset,
13246 depth,
13247 )?;
13248
13249 _prev_end_offset = cur_offset + envelope_size;
13250 if 5 > max_ordinal {
13251 return Ok(());
13252 }
13253
13254 let cur_offset: usize = (5 - 1) * envelope_size;
13257
13258 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13260
13261 fidl::encoding::encode_in_envelope_optional::<i64, D>(
13266 self.timestamp.as_ref().map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
13267 encoder,
13268 offset + cur_offset,
13269 depth,
13270 )?;
13271
13272 _prev_end_offset = cur_offset + envelope_size;
13273
13274 Ok(())
13275 }
13276 }
13277
13278 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
13279 for PeriodicAdvertisingReport
13280 {
13281 #[inline(always)]
13282 fn new_empty() -> Self {
13283 Self::default()
13284 }
13285
13286 unsafe fn decode(
13287 &mut self,
13288 decoder: &mut fidl::encoding::Decoder<'_, D>,
13289 offset: usize,
13290 mut depth: fidl::encoding::Depth,
13291 ) -> fidl::Result<()> {
13292 decoder.debug_check_bounds::<Self>(offset);
13293 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
13294 None => return Err(fidl::Error::NotNullable),
13295 Some(len) => len,
13296 };
13297 if len == 0 {
13299 return Ok(());
13300 };
13301 depth.increment()?;
13302 let envelope_size = 8;
13303 let bytes_len = len * envelope_size;
13304 let offset = decoder.out_of_line_offset(bytes_len)?;
13305 let mut _next_ordinal_to_read = 0;
13307 let mut next_offset = offset;
13308 let end_offset = offset + bytes_len;
13309 _next_ordinal_to_read += 1;
13310 if next_offset >= end_offset {
13311 return Ok(());
13312 }
13313
13314 while _next_ordinal_to_read < 1 {
13316 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13317 _next_ordinal_to_read += 1;
13318 next_offset += envelope_size;
13319 }
13320
13321 let next_out_of_line = decoder.next_out_of_line();
13322 let handles_before = decoder.remaining_handles();
13323 if let Some((inlined, num_bytes, num_handles)) =
13324 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13325 {
13326 let member_inline_size =
13327 <i8 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
13328 if inlined != (member_inline_size <= 4) {
13329 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13330 }
13331 let inner_offset;
13332 let mut inner_depth = depth.clone();
13333 if inlined {
13334 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13335 inner_offset = next_offset;
13336 } else {
13337 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13338 inner_depth.increment()?;
13339 }
13340 let val_ref = self.rssi.get_or_insert_with(|| fidl::new_empty!(i8, D));
13341 fidl::decode!(i8, D, val_ref, decoder, inner_offset, inner_depth)?;
13342 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13343 {
13344 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13345 }
13346 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13347 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13348 }
13349 }
13350
13351 next_offset += envelope_size;
13352 _next_ordinal_to_read += 1;
13353 if next_offset >= end_offset {
13354 return Ok(());
13355 }
13356
13357 while _next_ordinal_to_read < 2 {
13359 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13360 _next_ordinal_to_read += 1;
13361 next_offset += envelope_size;
13362 }
13363
13364 let next_out_of_line = decoder.next_out_of_line();
13365 let handles_before = decoder.remaining_handles();
13366 if let Some((inlined, num_bytes, num_handles)) =
13367 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13368 {
13369 let member_inline_size =
13370 <ScanData as fidl::encoding::TypeMarker>::inline_size(decoder.context);
13371 if inlined != (member_inline_size <= 4) {
13372 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13373 }
13374 let inner_offset;
13375 let mut inner_depth = depth.clone();
13376 if inlined {
13377 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13378 inner_offset = next_offset;
13379 } else {
13380 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13381 inner_depth.increment()?;
13382 }
13383 let val_ref = self.data.get_or_insert_with(|| fidl::new_empty!(ScanData, D));
13384 fidl::decode!(ScanData, D, val_ref, decoder, inner_offset, inner_depth)?;
13385 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13386 {
13387 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13388 }
13389 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13390 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13391 }
13392 }
13393
13394 next_offset += envelope_size;
13395 _next_ordinal_to_read += 1;
13396 if next_offset >= end_offset {
13397 return Ok(());
13398 }
13399
13400 while _next_ordinal_to_read < 3 {
13402 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13403 _next_ordinal_to_read += 1;
13404 next_offset += envelope_size;
13405 }
13406
13407 let next_out_of_line = decoder.next_out_of_line();
13408 let handles_before = decoder.remaining_handles();
13409 if let Some((inlined, num_bytes, num_handles)) =
13410 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13411 {
13412 let member_inline_size =
13413 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
13414 if inlined != (member_inline_size <= 4) {
13415 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13416 }
13417 let inner_offset;
13418 let mut inner_depth = depth.clone();
13419 if inlined {
13420 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13421 inner_offset = next_offset;
13422 } else {
13423 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13424 inner_depth.increment()?;
13425 }
13426 let val_ref = self.event_counter.get_or_insert_with(|| fidl::new_empty!(u16, D));
13427 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
13428 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13429 {
13430 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13431 }
13432 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13433 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13434 }
13435 }
13436
13437 next_offset += envelope_size;
13438 _next_ordinal_to_read += 1;
13439 if next_offset >= end_offset {
13440 return Ok(());
13441 }
13442
13443 while _next_ordinal_to_read < 4 {
13445 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13446 _next_ordinal_to_read += 1;
13447 next_offset += envelope_size;
13448 }
13449
13450 let next_out_of_line = decoder.next_out_of_line();
13451 let handles_before = decoder.remaining_handles();
13452 if let Some((inlined, num_bytes, num_handles)) =
13453 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13454 {
13455 let member_inline_size =
13456 <u8 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
13457 if inlined != (member_inline_size <= 4) {
13458 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13459 }
13460 let inner_offset;
13461 let mut inner_depth = depth.clone();
13462 if inlined {
13463 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13464 inner_offset = next_offset;
13465 } else {
13466 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13467 inner_depth.increment()?;
13468 }
13469 let val_ref = self.subevent.get_or_insert_with(|| fidl::new_empty!(u8, D));
13470 fidl::decode!(u8, D, val_ref, decoder, inner_offset, inner_depth)?;
13471 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13472 {
13473 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13474 }
13475 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13476 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13477 }
13478 }
13479
13480 next_offset += envelope_size;
13481 _next_ordinal_to_read += 1;
13482 if next_offset >= end_offset {
13483 return Ok(());
13484 }
13485
13486 while _next_ordinal_to_read < 5 {
13488 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13489 _next_ordinal_to_read += 1;
13490 next_offset += envelope_size;
13491 }
13492
13493 let next_out_of_line = decoder.next_out_of_line();
13494 let handles_before = decoder.remaining_handles();
13495 if let Some((inlined, num_bytes, num_handles)) =
13496 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13497 {
13498 let member_inline_size =
13499 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
13500 if inlined != (member_inline_size <= 4) {
13501 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13502 }
13503 let inner_offset;
13504 let mut inner_depth = depth.clone();
13505 if inlined {
13506 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13507 inner_offset = next_offset;
13508 } else {
13509 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13510 inner_depth.increment()?;
13511 }
13512 let val_ref = self.timestamp.get_or_insert_with(|| fidl::new_empty!(i64, D));
13513 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
13514 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13515 {
13516 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13517 }
13518 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13519 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13520 }
13521 }
13522
13523 next_offset += envelope_size;
13524
13525 while next_offset < end_offset {
13527 _next_ordinal_to_read += 1;
13528 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13529 next_offset += envelope_size;
13530 }
13531
13532 Ok(())
13533 }
13534 }
13535
13536 impl PeriodicAdvertisingSyncConfiguration {
13537 #[inline(always)]
13538 fn max_ordinal_present(&self) -> u64 {
13539 if let Some(_) = self.filter_duplicates {
13540 return 1;
13541 }
13542 0
13543 }
13544 }
13545
13546 impl fidl::encoding::ValueTypeMarker for PeriodicAdvertisingSyncConfiguration {
13547 type Borrowed<'a> = &'a Self;
13548 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
13549 value
13550 }
13551 }
13552
13553 unsafe impl fidl::encoding::TypeMarker for PeriodicAdvertisingSyncConfiguration {
13554 type Owned = Self;
13555
13556 #[inline(always)]
13557 fn inline_align(_context: fidl::encoding::Context) -> usize {
13558 8
13559 }
13560
13561 #[inline(always)]
13562 fn inline_size(_context: fidl::encoding::Context) -> usize {
13563 16
13564 }
13565 }
13566
13567 unsafe impl<D: fidl::encoding::ResourceDialect>
13568 fidl::encoding::Encode<PeriodicAdvertisingSyncConfiguration, D>
13569 for &PeriodicAdvertisingSyncConfiguration
13570 {
13571 unsafe fn encode(
13572 self,
13573 encoder: &mut fidl::encoding::Encoder<'_, D>,
13574 offset: usize,
13575 mut depth: fidl::encoding::Depth,
13576 ) -> fidl::Result<()> {
13577 encoder.debug_check_bounds::<PeriodicAdvertisingSyncConfiguration>(offset);
13578 let max_ordinal: u64 = self.max_ordinal_present();
13580 encoder.write_num(max_ordinal, offset);
13581 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
13582 if max_ordinal == 0 {
13584 return Ok(());
13585 }
13586 depth.increment()?;
13587 let envelope_size = 8;
13588 let bytes_len = max_ordinal as usize * envelope_size;
13589 #[allow(unused_variables)]
13590 let offset = encoder.out_of_line_offset(bytes_len);
13591 let mut _prev_end_offset: usize = 0;
13592 if 1 > max_ordinal {
13593 return Ok(());
13594 }
13595
13596 let cur_offset: usize = (1 - 1) * envelope_size;
13599
13600 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13602
13603 fidl::encoding::encode_in_envelope_optional::<bool, D>(
13608 self.filter_duplicates
13609 .as_ref()
13610 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
13611 encoder,
13612 offset + cur_offset,
13613 depth,
13614 )?;
13615
13616 _prev_end_offset = cur_offset + envelope_size;
13617
13618 Ok(())
13619 }
13620 }
13621
13622 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
13623 for PeriodicAdvertisingSyncConfiguration
13624 {
13625 #[inline(always)]
13626 fn new_empty() -> Self {
13627 Self::default()
13628 }
13629
13630 unsafe fn decode(
13631 &mut self,
13632 decoder: &mut fidl::encoding::Decoder<'_, D>,
13633 offset: usize,
13634 mut depth: fidl::encoding::Depth,
13635 ) -> fidl::Result<()> {
13636 decoder.debug_check_bounds::<Self>(offset);
13637 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
13638 None => return Err(fidl::Error::NotNullable),
13639 Some(len) => len,
13640 };
13641 if len == 0 {
13643 return Ok(());
13644 };
13645 depth.increment()?;
13646 let envelope_size = 8;
13647 let bytes_len = len * envelope_size;
13648 let offset = decoder.out_of_line_offset(bytes_len)?;
13649 let mut _next_ordinal_to_read = 0;
13651 let mut next_offset = offset;
13652 let end_offset = offset + bytes_len;
13653 _next_ordinal_to_read += 1;
13654 if next_offset >= end_offset {
13655 return Ok(());
13656 }
13657
13658 while _next_ordinal_to_read < 1 {
13660 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13661 _next_ordinal_to_read += 1;
13662 next_offset += envelope_size;
13663 }
13664
13665 let next_out_of_line = decoder.next_out_of_line();
13666 let handles_before = decoder.remaining_handles();
13667 if let Some((inlined, num_bytes, num_handles)) =
13668 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13669 {
13670 let member_inline_size =
13671 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
13672 if inlined != (member_inline_size <= 4) {
13673 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13674 }
13675 let inner_offset;
13676 let mut inner_depth = depth.clone();
13677 if inlined {
13678 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13679 inner_offset = next_offset;
13680 } else {
13681 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13682 inner_depth.increment()?;
13683 }
13684 let val_ref =
13685 self.filter_duplicates.get_or_insert_with(|| fidl::new_empty!(bool, D));
13686 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
13687 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13688 {
13689 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13690 }
13691 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13692 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13693 }
13694 }
13695
13696 next_offset += envelope_size;
13697
13698 while next_offset < end_offset {
13700 _next_ordinal_to_read += 1;
13701 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13702 next_offset += envelope_size;
13703 }
13704
13705 Ok(())
13706 }
13707 }
13708
13709 impl PeriodicAdvertisingSyncOnEstablishedRequest {
13710 #[inline(always)]
13711 fn max_ordinal_present(&self) -> u64 {
13712 if let Some(_) = self.periodic_advertising_interval {
13713 return 7;
13714 }
13715 if let Some(_) = self.phy {
13716 return 6;
13717 }
13718 if let Some(_) = self.advertising_sid {
13719 return 5;
13720 }
13721 if let Some(_) = self.service_data {
13722 return 4;
13723 }
13724 if let Some(_) = self.peer_id {
13725 return 3;
13726 }
13727 if let Some(_) = self.subevents_count {
13728 return 2;
13729 }
13730 if let Some(_) = self.id {
13731 return 1;
13732 }
13733 0
13734 }
13735 }
13736
13737 impl fidl::encoding::ValueTypeMarker for PeriodicAdvertisingSyncOnEstablishedRequest {
13738 type Borrowed<'a> = &'a Self;
13739 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
13740 value
13741 }
13742 }
13743
13744 unsafe impl fidl::encoding::TypeMarker for PeriodicAdvertisingSyncOnEstablishedRequest {
13745 type Owned = Self;
13746
13747 #[inline(always)]
13748 fn inline_align(_context: fidl::encoding::Context) -> usize {
13749 8
13750 }
13751
13752 #[inline(always)]
13753 fn inline_size(_context: fidl::encoding::Context) -> usize {
13754 16
13755 }
13756 }
13757
13758 unsafe impl<D: fidl::encoding::ResourceDialect>
13759 fidl::encoding::Encode<PeriodicAdvertisingSyncOnEstablishedRequest, D>
13760 for &PeriodicAdvertisingSyncOnEstablishedRequest
13761 {
13762 unsafe fn encode(
13763 self,
13764 encoder: &mut fidl::encoding::Encoder<'_, D>,
13765 offset: usize,
13766 mut depth: fidl::encoding::Depth,
13767 ) -> fidl::Result<()> {
13768 encoder.debug_check_bounds::<PeriodicAdvertisingSyncOnEstablishedRequest>(offset);
13769 let max_ordinal: u64 = self.max_ordinal_present();
13771 encoder.write_num(max_ordinal, offset);
13772 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
13773 if max_ordinal == 0 {
13775 return Ok(());
13776 }
13777 depth.increment()?;
13778 let envelope_size = 8;
13779 let bytes_len = max_ordinal as usize * envelope_size;
13780 #[allow(unused_variables)]
13781 let offset = encoder.out_of_line_offset(bytes_len);
13782 let mut _prev_end_offset: usize = 0;
13783 if 1 > max_ordinal {
13784 return Ok(());
13785 }
13786
13787 let cur_offset: usize = (1 - 1) * envelope_size;
13790
13791 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13793
13794 fidl::encoding::encode_in_envelope_optional::<PeriodicAdvertisingSyncId, D>(
13799 self.id
13800 .as_ref()
13801 .map(<PeriodicAdvertisingSyncId as fidl::encoding::ValueTypeMarker>::borrow),
13802 encoder,
13803 offset + cur_offset,
13804 depth,
13805 )?;
13806
13807 _prev_end_offset = cur_offset + envelope_size;
13808 if 2 > max_ordinal {
13809 return Ok(());
13810 }
13811
13812 let cur_offset: usize = (2 - 1) * envelope_size;
13815
13816 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13818
13819 fidl::encoding::encode_in_envelope_optional::<u8, D>(
13824 self.subevents_count.as_ref().map(<u8 as fidl::encoding::ValueTypeMarker>::borrow),
13825 encoder,
13826 offset + cur_offset,
13827 depth,
13828 )?;
13829
13830 _prev_end_offset = cur_offset + envelope_size;
13831 if 3 > max_ordinal {
13832 return Ok(());
13833 }
13834
13835 let cur_offset: usize = (3 - 1) * envelope_size;
13838
13839 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13841
13842 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_bluetooth__common::PeerId, D>(
13847 self.peer_id.as_ref().map(<fidl_fuchsia_bluetooth__common::PeerId as fidl::encoding::ValueTypeMarker>::borrow),
13848 encoder, offset + cur_offset, depth
13849 )?;
13850
13851 _prev_end_offset = cur_offset + envelope_size;
13852 if 4 > max_ordinal {
13853 return Ok(());
13854 }
13855
13856 let cur_offset: usize = (4 - 1) * envelope_size;
13859
13860 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13862
13863 fidl::encoding::encode_in_envelope_optional::<u16, D>(
13868 self.service_data.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
13869 encoder,
13870 offset + cur_offset,
13871 depth,
13872 )?;
13873
13874 _prev_end_offset = cur_offset + envelope_size;
13875 if 5 > max_ordinal {
13876 return Ok(());
13877 }
13878
13879 let cur_offset: usize = (5 - 1) * envelope_size;
13882
13883 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13885
13886 fidl::encoding::encode_in_envelope_optional::<u8, D>(
13891 self.advertising_sid.as_ref().map(<u8 as fidl::encoding::ValueTypeMarker>::borrow),
13892 encoder,
13893 offset + cur_offset,
13894 depth,
13895 )?;
13896
13897 _prev_end_offset = cur_offset + envelope_size;
13898 if 6 > max_ordinal {
13899 return Ok(());
13900 }
13901
13902 let cur_offset: usize = (6 - 1) * envelope_size;
13905
13906 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13908
13909 fidl::encoding::encode_in_envelope_optional::<PhysicalLayer, D>(
13914 self.phy.as_ref().map(<PhysicalLayer as fidl::encoding::ValueTypeMarker>::borrow),
13915 encoder,
13916 offset + cur_offset,
13917 depth,
13918 )?;
13919
13920 _prev_end_offset = cur_offset + envelope_size;
13921 if 7 > max_ordinal {
13922 return Ok(());
13923 }
13924
13925 let cur_offset: usize = (7 - 1) * envelope_size;
13928
13929 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13931
13932 fidl::encoding::encode_in_envelope_optional::<u16, D>(
13937 self.periodic_advertising_interval
13938 .as_ref()
13939 .map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
13940 encoder,
13941 offset + cur_offset,
13942 depth,
13943 )?;
13944
13945 _prev_end_offset = cur_offset + envelope_size;
13946
13947 Ok(())
13948 }
13949 }
13950
13951 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
13952 for PeriodicAdvertisingSyncOnEstablishedRequest
13953 {
13954 #[inline(always)]
13955 fn new_empty() -> Self {
13956 Self::default()
13957 }
13958
13959 unsafe fn decode(
13960 &mut self,
13961 decoder: &mut fidl::encoding::Decoder<'_, D>,
13962 offset: usize,
13963 mut depth: fidl::encoding::Depth,
13964 ) -> fidl::Result<()> {
13965 decoder.debug_check_bounds::<Self>(offset);
13966 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
13967 None => return Err(fidl::Error::NotNullable),
13968 Some(len) => len,
13969 };
13970 if len == 0 {
13972 return Ok(());
13973 };
13974 depth.increment()?;
13975 let envelope_size = 8;
13976 let bytes_len = len * envelope_size;
13977 let offset = decoder.out_of_line_offset(bytes_len)?;
13978 let mut _next_ordinal_to_read = 0;
13980 let mut next_offset = offset;
13981 let end_offset = offset + bytes_len;
13982 _next_ordinal_to_read += 1;
13983 if next_offset >= end_offset {
13984 return Ok(());
13985 }
13986
13987 while _next_ordinal_to_read < 1 {
13989 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13990 _next_ordinal_to_read += 1;
13991 next_offset += envelope_size;
13992 }
13993
13994 let next_out_of_line = decoder.next_out_of_line();
13995 let handles_before = decoder.remaining_handles();
13996 if let Some((inlined, num_bytes, num_handles)) =
13997 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13998 {
13999 let member_inline_size =
14000 <PeriodicAdvertisingSyncId as fidl::encoding::TypeMarker>::inline_size(
14001 decoder.context,
14002 );
14003 if inlined != (member_inline_size <= 4) {
14004 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14005 }
14006 let inner_offset;
14007 let mut inner_depth = depth.clone();
14008 if inlined {
14009 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14010 inner_offset = next_offset;
14011 } else {
14012 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14013 inner_depth.increment()?;
14014 }
14015 let val_ref =
14016 self.id.get_or_insert_with(|| fidl::new_empty!(PeriodicAdvertisingSyncId, D));
14017 fidl::decode!(
14018 PeriodicAdvertisingSyncId,
14019 D,
14020 val_ref,
14021 decoder,
14022 inner_offset,
14023 inner_depth
14024 )?;
14025 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14026 {
14027 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14028 }
14029 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14030 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14031 }
14032 }
14033
14034 next_offset += envelope_size;
14035 _next_ordinal_to_read += 1;
14036 if next_offset >= end_offset {
14037 return Ok(());
14038 }
14039
14040 while _next_ordinal_to_read < 2 {
14042 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14043 _next_ordinal_to_read += 1;
14044 next_offset += envelope_size;
14045 }
14046
14047 let next_out_of_line = decoder.next_out_of_line();
14048 let handles_before = decoder.remaining_handles();
14049 if let Some((inlined, num_bytes, num_handles)) =
14050 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14051 {
14052 let member_inline_size =
14053 <u8 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
14054 if inlined != (member_inline_size <= 4) {
14055 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14056 }
14057 let inner_offset;
14058 let mut inner_depth = depth.clone();
14059 if inlined {
14060 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14061 inner_offset = next_offset;
14062 } else {
14063 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14064 inner_depth.increment()?;
14065 }
14066 let val_ref = self.subevents_count.get_or_insert_with(|| fidl::new_empty!(u8, D));
14067 fidl::decode!(u8, D, val_ref, decoder, inner_offset, inner_depth)?;
14068 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14069 {
14070 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14071 }
14072 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14073 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14074 }
14075 }
14076
14077 next_offset += envelope_size;
14078 _next_ordinal_to_read += 1;
14079 if next_offset >= end_offset {
14080 return Ok(());
14081 }
14082
14083 while _next_ordinal_to_read < 3 {
14085 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14086 _next_ordinal_to_read += 1;
14087 next_offset += envelope_size;
14088 }
14089
14090 let next_out_of_line = decoder.next_out_of_line();
14091 let handles_before = decoder.remaining_handles();
14092 if let Some((inlined, num_bytes, num_handles)) =
14093 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14094 {
14095 let member_inline_size = <fidl_fuchsia_bluetooth__common::PeerId as fidl::encoding::TypeMarker>::inline_size(decoder.context);
14096 if inlined != (member_inline_size <= 4) {
14097 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14098 }
14099 let inner_offset;
14100 let mut inner_depth = depth.clone();
14101 if inlined {
14102 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14103 inner_offset = next_offset;
14104 } else {
14105 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14106 inner_depth.increment()?;
14107 }
14108 let val_ref = self.peer_id.get_or_insert_with(|| {
14109 fidl::new_empty!(fidl_fuchsia_bluetooth__common::PeerId, D)
14110 });
14111 fidl::decode!(
14112 fidl_fuchsia_bluetooth__common::PeerId,
14113 D,
14114 val_ref,
14115 decoder,
14116 inner_offset,
14117 inner_depth
14118 )?;
14119 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14120 {
14121 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14122 }
14123 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14124 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14125 }
14126 }
14127
14128 next_offset += envelope_size;
14129 _next_ordinal_to_read += 1;
14130 if next_offset >= end_offset {
14131 return Ok(());
14132 }
14133
14134 while _next_ordinal_to_read < 4 {
14136 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14137 _next_ordinal_to_read += 1;
14138 next_offset += envelope_size;
14139 }
14140
14141 let next_out_of_line = decoder.next_out_of_line();
14142 let handles_before = decoder.remaining_handles();
14143 if let Some((inlined, num_bytes, num_handles)) =
14144 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14145 {
14146 let member_inline_size =
14147 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
14148 if inlined != (member_inline_size <= 4) {
14149 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14150 }
14151 let inner_offset;
14152 let mut inner_depth = depth.clone();
14153 if inlined {
14154 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14155 inner_offset = next_offset;
14156 } else {
14157 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14158 inner_depth.increment()?;
14159 }
14160 let val_ref = self.service_data.get_or_insert_with(|| fidl::new_empty!(u16, D));
14161 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
14162 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14163 {
14164 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14165 }
14166 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14167 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14168 }
14169 }
14170
14171 next_offset += envelope_size;
14172 _next_ordinal_to_read += 1;
14173 if next_offset >= end_offset {
14174 return Ok(());
14175 }
14176
14177 while _next_ordinal_to_read < 5 {
14179 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14180 _next_ordinal_to_read += 1;
14181 next_offset += envelope_size;
14182 }
14183
14184 let next_out_of_line = decoder.next_out_of_line();
14185 let handles_before = decoder.remaining_handles();
14186 if let Some((inlined, num_bytes, num_handles)) =
14187 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14188 {
14189 let member_inline_size =
14190 <u8 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
14191 if inlined != (member_inline_size <= 4) {
14192 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14193 }
14194 let inner_offset;
14195 let mut inner_depth = depth.clone();
14196 if inlined {
14197 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14198 inner_offset = next_offset;
14199 } else {
14200 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14201 inner_depth.increment()?;
14202 }
14203 let val_ref = self.advertising_sid.get_or_insert_with(|| fidl::new_empty!(u8, D));
14204 fidl::decode!(u8, D, val_ref, decoder, inner_offset, inner_depth)?;
14205 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14206 {
14207 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14208 }
14209 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14210 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14211 }
14212 }
14213
14214 next_offset += envelope_size;
14215 _next_ordinal_to_read += 1;
14216 if next_offset >= end_offset {
14217 return Ok(());
14218 }
14219
14220 while _next_ordinal_to_read < 6 {
14222 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14223 _next_ordinal_to_read += 1;
14224 next_offset += envelope_size;
14225 }
14226
14227 let next_out_of_line = decoder.next_out_of_line();
14228 let handles_before = decoder.remaining_handles();
14229 if let Some((inlined, num_bytes, num_handles)) =
14230 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14231 {
14232 let member_inline_size =
14233 <PhysicalLayer as fidl::encoding::TypeMarker>::inline_size(decoder.context);
14234 if inlined != (member_inline_size <= 4) {
14235 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14236 }
14237 let inner_offset;
14238 let mut inner_depth = depth.clone();
14239 if inlined {
14240 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14241 inner_offset = next_offset;
14242 } else {
14243 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14244 inner_depth.increment()?;
14245 }
14246 let val_ref = self.phy.get_or_insert_with(|| fidl::new_empty!(PhysicalLayer, D));
14247 fidl::decode!(PhysicalLayer, D, val_ref, decoder, inner_offset, inner_depth)?;
14248 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14249 {
14250 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14251 }
14252 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14253 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14254 }
14255 }
14256
14257 next_offset += envelope_size;
14258 _next_ordinal_to_read += 1;
14259 if next_offset >= end_offset {
14260 return Ok(());
14261 }
14262
14263 while _next_ordinal_to_read < 7 {
14265 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14266 _next_ordinal_to_read += 1;
14267 next_offset += envelope_size;
14268 }
14269
14270 let next_out_of_line = decoder.next_out_of_line();
14271 let handles_before = decoder.remaining_handles();
14272 if let Some((inlined, num_bytes, num_handles)) =
14273 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14274 {
14275 let member_inline_size =
14276 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
14277 if inlined != (member_inline_size <= 4) {
14278 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14279 }
14280 let inner_offset;
14281 let mut inner_depth = depth.clone();
14282 if inlined {
14283 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14284 inner_offset = next_offset;
14285 } else {
14286 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14287 inner_depth.increment()?;
14288 }
14289 let val_ref = self
14290 .periodic_advertising_interval
14291 .get_or_insert_with(|| fidl::new_empty!(u16, D));
14292 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
14293 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14294 {
14295 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14296 }
14297 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14298 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14299 }
14300 }
14301
14302 next_offset += envelope_size;
14303
14304 while next_offset < end_offset {
14306 _next_ordinal_to_read += 1;
14307 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14308 next_offset += envelope_size;
14309 }
14310
14311 Ok(())
14312 }
14313 }
14314
14315 impl PeriodicAdvertisingSyncSyncToSubeventsRequest {
14316 #[inline(always)]
14317 fn max_ordinal_present(&self) -> u64 {
14318 if let Some(_) = self.subevents {
14319 return 1;
14320 }
14321 0
14322 }
14323 }
14324
14325 impl fidl::encoding::ValueTypeMarker for PeriodicAdvertisingSyncSyncToSubeventsRequest {
14326 type Borrowed<'a> = &'a Self;
14327 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
14328 value
14329 }
14330 }
14331
14332 unsafe impl fidl::encoding::TypeMarker for PeriodicAdvertisingSyncSyncToSubeventsRequest {
14333 type Owned = Self;
14334
14335 #[inline(always)]
14336 fn inline_align(_context: fidl::encoding::Context) -> usize {
14337 8
14338 }
14339
14340 #[inline(always)]
14341 fn inline_size(_context: fidl::encoding::Context) -> usize {
14342 16
14343 }
14344 }
14345
14346 unsafe impl<D: fidl::encoding::ResourceDialect>
14347 fidl::encoding::Encode<PeriodicAdvertisingSyncSyncToSubeventsRequest, D>
14348 for &PeriodicAdvertisingSyncSyncToSubeventsRequest
14349 {
14350 unsafe fn encode(
14351 self,
14352 encoder: &mut fidl::encoding::Encoder<'_, D>,
14353 offset: usize,
14354 mut depth: fidl::encoding::Depth,
14355 ) -> fidl::Result<()> {
14356 encoder.debug_check_bounds::<PeriodicAdvertisingSyncSyncToSubeventsRequest>(offset);
14357 let max_ordinal: u64 = self.max_ordinal_present();
14359 encoder.write_num(max_ordinal, offset);
14360 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
14361 if max_ordinal == 0 {
14363 return Ok(());
14364 }
14365 depth.increment()?;
14366 let envelope_size = 8;
14367 let bytes_len = max_ordinal as usize * envelope_size;
14368 #[allow(unused_variables)]
14369 let offset = encoder.out_of_line_offset(bytes_len);
14370 let mut _prev_end_offset: usize = 0;
14371 if 1 > max_ordinal {
14372 return Ok(());
14373 }
14374
14375 let cur_offset: usize = (1 - 1) * envelope_size;
14378
14379 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14381
14382 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u8, 128>, D>(
14387 self.subevents.as_ref().map(
14388 <fidl::encoding::Vector<u8, 128> as fidl::encoding::ValueTypeMarker>::borrow,
14389 ),
14390 encoder,
14391 offset + cur_offset,
14392 depth,
14393 )?;
14394
14395 _prev_end_offset = cur_offset + envelope_size;
14396
14397 Ok(())
14398 }
14399 }
14400
14401 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
14402 for PeriodicAdvertisingSyncSyncToSubeventsRequest
14403 {
14404 #[inline(always)]
14405 fn new_empty() -> Self {
14406 Self::default()
14407 }
14408
14409 unsafe fn decode(
14410 &mut self,
14411 decoder: &mut fidl::encoding::Decoder<'_, D>,
14412 offset: usize,
14413 mut depth: fidl::encoding::Depth,
14414 ) -> fidl::Result<()> {
14415 decoder.debug_check_bounds::<Self>(offset);
14416 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
14417 None => return Err(fidl::Error::NotNullable),
14418 Some(len) => len,
14419 };
14420 if len == 0 {
14422 return Ok(());
14423 };
14424 depth.increment()?;
14425 let envelope_size = 8;
14426 let bytes_len = len * envelope_size;
14427 let offset = decoder.out_of_line_offset(bytes_len)?;
14428 let mut _next_ordinal_to_read = 0;
14430 let mut next_offset = offset;
14431 let end_offset = offset + bytes_len;
14432 _next_ordinal_to_read += 1;
14433 if next_offset >= end_offset {
14434 return Ok(());
14435 }
14436
14437 while _next_ordinal_to_read < 1 {
14439 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14440 _next_ordinal_to_read += 1;
14441 next_offset += envelope_size;
14442 }
14443
14444 let next_out_of_line = decoder.next_out_of_line();
14445 let handles_before = decoder.remaining_handles();
14446 if let Some((inlined, num_bytes, num_handles)) =
14447 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14448 {
14449 let member_inline_size =
14450 <fidl::encoding::Vector<u8, 128> as fidl::encoding::TypeMarker>::inline_size(
14451 decoder.context,
14452 );
14453 if inlined != (member_inline_size <= 4) {
14454 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14455 }
14456 let inner_offset;
14457 let mut inner_depth = depth.clone();
14458 if inlined {
14459 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14460 inner_offset = next_offset;
14461 } else {
14462 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14463 inner_depth.increment()?;
14464 }
14465 let val_ref = self
14466 .subevents
14467 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u8, 128>, D));
14468 fidl::decode!(fidl::encoding::Vector<u8, 128>, D, val_ref, decoder, inner_offset, inner_depth)?;
14469 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14470 {
14471 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14472 }
14473 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14474 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14475 }
14476 }
14477
14478 next_offset += envelope_size;
14479
14480 while next_offset < end_offset {
14482 _next_ordinal_to_read += 1;
14483 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14484 next_offset += envelope_size;
14485 }
14486
14487 Ok(())
14488 }
14489 }
14490
14491 impl PeriodicAdvertisingSyncWatchAdvertisingReportResponse {
14492 #[inline(always)]
14493 fn max_ordinal_present(&self) -> u64 {
14494 if let Some(_) = self.reports {
14495 return 1;
14496 }
14497 0
14498 }
14499 }
14500
14501 impl fidl::encoding::ValueTypeMarker for PeriodicAdvertisingSyncWatchAdvertisingReportResponse {
14502 type Borrowed<'a> = &'a Self;
14503 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
14504 value
14505 }
14506 }
14507
14508 unsafe impl fidl::encoding::TypeMarker for PeriodicAdvertisingSyncWatchAdvertisingReportResponse {
14509 type Owned = Self;
14510
14511 #[inline(always)]
14512 fn inline_align(_context: fidl::encoding::Context) -> usize {
14513 8
14514 }
14515
14516 #[inline(always)]
14517 fn inline_size(_context: fidl::encoding::Context) -> usize {
14518 16
14519 }
14520 }
14521
14522 unsafe impl<D: fidl::encoding::ResourceDialect>
14523 fidl::encoding::Encode<PeriodicAdvertisingSyncWatchAdvertisingReportResponse, D>
14524 for &PeriodicAdvertisingSyncWatchAdvertisingReportResponse
14525 {
14526 unsafe fn encode(
14527 self,
14528 encoder: &mut fidl::encoding::Encoder<'_, D>,
14529 offset: usize,
14530 mut depth: fidl::encoding::Depth,
14531 ) -> fidl::Result<()> {
14532 encoder.debug_check_bounds::<PeriodicAdvertisingSyncWatchAdvertisingReportResponse>(
14533 offset,
14534 );
14535 let max_ordinal: u64 = self.max_ordinal_present();
14537 encoder.write_num(max_ordinal, offset);
14538 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
14539 if max_ordinal == 0 {
14541 return Ok(());
14542 }
14543 depth.increment()?;
14544 let envelope_size = 8;
14545 let bytes_len = max_ordinal as usize * envelope_size;
14546 #[allow(unused_variables)]
14547 let offset = encoder.out_of_line_offset(bytes_len);
14548 let mut _prev_end_offset: usize = 0;
14549 if 1 > max_ordinal {
14550 return Ok(());
14551 }
14552
14553 let cur_offset: usize = (1 - 1) * envelope_size;
14556
14557 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14559
14560 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<SyncReport>, D>(
14565 self.reports.as_ref().map(<fidl::encoding::UnboundedVector<SyncReport> as fidl::encoding::ValueTypeMarker>::borrow),
14566 encoder, offset + cur_offset, depth
14567 )?;
14568
14569 _prev_end_offset = cur_offset + envelope_size;
14570
14571 Ok(())
14572 }
14573 }
14574
14575 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
14576 for PeriodicAdvertisingSyncWatchAdvertisingReportResponse
14577 {
14578 #[inline(always)]
14579 fn new_empty() -> Self {
14580 Self::default()
14581 }
14582
14583 unsafe fn decode(
14584 &mut self,
14585 decoder: &mut fidl::encoding::Decoder<'_, D>,
14586 offset: usize,
14587 mut depth: fidl::encoding::Depth,
14588 ) -> fidl::Result<()> {
14589 decoder.debug_check_bounds::<Self>(offset);
14590 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
14591 None => return Err(fidl::Error::NotNullable),
14592 Some(len) => len,
14593 };
14594 if len == 0 {
14596 return Ok(());
14597 };
14598 depth.increment()?;
14599 let envelope_size = 8;
14600 let bytes_len = len * envelope_size;
14601 let offset = decoder.out_of_line_offset(bytes_len)?;
14602 let mut _next_ordinal_to_read = 0;
14604 let mut next_offset = offset;
14605 let end_offset = offset + bytes_len;
14606 _next_ordinal_to_read += 1;
14607 if next_offset >= end_offset {
14608 return Ok(());
14609 }
14610
14611 while _next_ordinal_to_read < 1 {
14613 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14614 _next_ordinal_to_read += 1;
14615 next_offset += envelope_size;
14616 }
14617
14618 let next_out_of_line = decoder.next_out_of_line();
14619 let handles_before = decoder.remaining_handles();
14620 if let Some((inlined, num_bytes, num_handles)) =
14621 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14622 {
14623 let member_inline_size = <fidl::encoding::UnboundedVector<SyncReport> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
14624 if inlined != (member_inline_size <= 4) {
14625 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14626 }
14627 let inner_offset;
14628 let mut inner_depth = depth.clone();
14629 if inlined {
14630 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14631 inner_offset = next_offset;
14632 } else {
14633 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14634 inner_depth.increment()?;
14635 }
14636 let val_ref = self.reports.get_or_insert_with(|| {
14637 fidl::new_empty!(fidl::encoding::UnboundedVector<SyncReport>, D)
14638 });
14639 fidl::decode!(
14640 fidl::encoding::UnboundedVector<SyncReport>,
14641 D,
14642 val_ref,
14643 decoder,
14644 inner_offset,
14645 inner_depth
14646 )?;
14647 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14648 {
14649 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14650 }
14651 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14652 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14653 }
14654 }
14655
14656 next_offset += envelope_size;
14657
14658 while next_offset < end_offset {
14660 _next_ordinal_to_read += 1;
14661 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14662 next_offset += envelope_size;
14663 }
14664
14665 Ok(())
14666 }
14667 }
14668
14669 impl ScanData {
14670 #[inline(always)]
14671 fn max_ordinal_present(&self) -> u64 {
14672 if let Some(_) = self.broadcast_name {
14673 return 9;
14674 }
14675 if let Some(_) = self.resolvable_set_identifier {
14676 return 8;
14677 }
14678 if let Some(_) = self.timestamp {
14679 return 7;
14680 }
14681 if let Some(_) = self.uris {
14682 return 6;
14683 }
14684 if let Some(_) = self.manufacturer_data {
14685 return 5;
14686 }
14687 if let Some(_) = self.service_data {
14688 return 4;
14689 }
14690 if let Some(_) = self.service_uuids {
14691 return 3;
14692 }
14693 if let Some(_) = self.appearance {
14694 return 2;
14695 }
14696 if let Some(_) = self.tx_power {
14697 return 1;
14698 }
14699 0
14700 }
14701 }
14702
14703 impl fidl::encoding::ValueTypeMarker for ScanData {
14704 type Borrowed<'a> = &'a Self;
14705 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
14706 value
14707 }
14708 }
14709
14710 unsafe impl fidl::encoding::TypeMarker for ScanData {
14711 type Owned = Self;
14712
14713 #[inline(always)]
14714 fn inline_align(_context: fidl::encoding::Context) -> usize {
14715 8
14716 }
14717
14718 #[inline(always)]
14719 fn inline_size(_context: fidl::encoding::Context) -> usize {
14720 16
14721 }
14722 }
14723
14724 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ScanData, D> for &ScanData {
14725 unsafe fn encode(
14726 self,
14727 encoder: &mut fidl::encoding::Encoder<'_, D>,
14728 offset: usize,
14729 mut depth: fidl::encoding::Depth,
14730 ) -> fidl::Result<()> {
14731 encoder.debug_check_bounds::<ScanData>(offset);
14732 let max_ordinal: u64 = self.max_ordinal_present();
14734 encoder.write_num(max_ordinal, offset);
14735 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
14736 if max_ordinal == 0 {
14738 return Ok(());
14739 }
14740 depth.increment()?;
14741 let envelope_size = 8;
14742 let bytes_len = max_ordinal as usize * envelope_size;
14743 #[allow(unused_variables)]
14744 let offset = encoder.out_of_line_offset(bytes_len);
14745 let mut _prev_end_offset: usize = 0;
14746 if 1 > max_ordinal {
14747 return Ok(());
14748 }
14749
14750 let cur_offset: usize = (1 - 1) * envelope_size;
14753
14754 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14756
14757 fidl::encoding::encode_in_envelope_optional::<i8, D>(
14762 self.tx_power.as_ref().map(<i8 as fidl::encoding::ValueTypeMarker>::borrow),
14763 encoder,
14764 offset + cur_offset,
14765 depth,
14766 )?;
14767
14768 _prev_end_offset = cur_offset + envelope_size;
14769 if 2 > max_ordinal {
14770 return Ok(());
14771 }
14772
14773 let cur_offset: usize = (2 - 1) * envelope_size;
14776
14777 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14779
14780 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_bluetooth__common::Appearance, D>(
14785 self.appearance.as_ref().map(<fidl_fuchsia_bluetooth__common::Appearance as fidl::encoding::ValueTypeMarker>::borrow),
14786 encoder, offset + cur_offset, depth
14787 )?;
14788
14789 _prev_end_offset = cur_offset + envelope_size;
14790 if 3 > max_ordinal {
14791 return Ok(());
14792 }
14793
14794 let cur_offset: usize = (3 - 1) * envelope_size;
14797
14798 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14800
14801 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<fidl_fuchsia_bluetooth__common::Uuid>, D>(
14806 self.service_uuids.as_ref().map(<fidl::encoding::UnboundedVector<fidl_fuchsia_bluetooth__common::Uuid> as fidl::encoding::ValueTypeMarker>::borrow),
14807 encoder, offset + cur_offset, depth
14808 )?;
14809
14810 _prev_end_offset = cur_offset + envelope_size;
14811 if 4 > max_ordinal {
14812 return Ok(());
14813 }
14814
14815 let cur_offset: usize = (4 - 1) * envelope_size;
14818
14819 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14821
14822 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<ServiceData>, D>(
14827 self.service_data.as_ref().map(<fidl::encoding::UnboundedVector<ServiceData> as fidl::encoding::ValueTypeMarker>::borrow),
14828 encoder, offset + cur_offset, depth
14829 )?;
14830
14831 _prev_end_offset = cur_offset + envelope_size;
14832 if 5 > max_ordinal {
14833 return Ok(());
14834 }
14835
14836 let cur_offset: usize = (5 - 1) * envelope_size;
14839
14840 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14842
14843 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<ManufacturerData>, D>(
14848 self.manufacturer_data.as_ref().map(<fidl::encoding::UnboundedVector<ManufacturerData> as fidl::encoding::ValueTypeMarker>::borrow),
14849 encoder, offset + cur_offset, depth
14850 )?;
14851
14852 _prev_end_offset = cur_offset + envelope_size;
14853 if 6 > max_ordinal {
14854 return Ok(());
14855 }
14856
14857 let cur_offset: usize = (6 - 1) * envelope_size;
14860
14861 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14863
14864 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<278>>, D>(
14869 self.uris.as_ref().map(<fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<278>> as fidl::encoding::ValueTypeMarker>::borrow),
14870 encoder, offset + cur_offset, depth
14871 )?;
14872
14873 _prev_end_offset = cur_offset + envelope_size;
14874 if 7 > max_ordinal {
14875 return Ok(());
14876 }
14877
14878 let cur_offset: usize = (7 - 1) * envelope_size;
14881
14882 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14884
14885 fidl::encoding::encode_in_envelope_optional::<i64, D>(
14890 self.timestamp.as_ref().map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
14891 encoder,
14892 offset + cur_offset,
14893 depth,
14894 )?;
14895
14896 _prev_end_offset = cur_offset + envelope_size;
14897 if 8 > max_ordinal {
14898 return Ok(());
14899 }
14900
14901 let cur_offset: usize = (8 - 1) * envelope_size;
14904
14905 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14907
14908 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
14913 self.resolvable_set_identifier
14914 .as_ref()
14915 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
14916 encoder,
14917 offset + cur_offset,
14918 depth,
14919 )?;
14920
14921 _prev_end_offset = cur_offset + envelope_size;
14922 if 9 > max_ordinal {
14923 return Ok(());
14924 }
14925
14926 let cur_offset: usize = (9 - 1) * envelope_size;
14929
14930 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14932
14933 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<128>, D>(
14938 self.broadcast_name.as_ref().map(
14939 <fidl::encoding::BoundedString<128> as fidl::encoding::ValueTypeMarker>::borrow,
14940 ),
14941 encoder,
14942 offset + cur_offset,
14943 depth,
14944 )?;
14945
14946 _prev_end_offset = cur_offset + envelope_size;
14947
14948 Ok(())
14949 }
14950 }
14951
14952 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ScanData {
14953 #[inline(always)]
14954 fn new_empty() -> Self {
14955 Self::default()
14956 }
14957
14958 unsafe fn decode(
14959 &mut self,
14960 decoder: &mut fidl::encoding::Decoder<'_, D>,
14961 offset: usize,
14962 mut depth: fidl::encoding::Depth,
14963 ) -> fidl::Result<()> {
14964 decoder.debug_check_bounds::<Self>(offset);
14965 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
14966 None => return Err(fidl::Error::NotNullable),
14967 Some(len) => len,
14968 };
14969 if len == 0 {
14971 return Ok(());
14972 };
14973 depth.increment()?;
14974 let envelope_size = 8;
14975 let bytes_len = len * envelope_size;
14976 let offset = decoder.out_of_line_offset(bytes_len)?;
14977 let mut _next_ordinal_to_read = 0;
14979 let mut next_offset = offset;
14980 let end_offset = offset + bytes_len;
14981 _next_ordinal_to_read += 1;
14982 if next_offset >= end_offset {
14983 return Ok(());
14984 }
14985
14986 while _next_ordinal_to_read < 1 {
14988 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14989 _next_ordinal_to_read += 1;
14990 next_offset += envelope_size;
14991 }
14992
14993 let next_out_of_line = decoder.next_out_of_line();
14994 let handles_before = decoder.remaining_handles();
14995 if let Some((inlined, num_bytes, num_handles)) =
14996 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14997 {
14998 let member_inline_size =
14999 <i8 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
15000 if inlined != (member_inline_size <= 4) {
15001 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15002 }
15003 let inner_offset;
15004 let mut inner_depth = depth.clone();
15005 if inlined {
15006 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15007 inner_offset = next_offset;
15008 } else {
15009 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15010 inner_depth.increment()?;
15011 }
15012 let val_ref = self.tx_power.get_or_insert_with(|| fidl::new_empty!(i8, D));
15013 fidl::decode!(i8, D, val_ref, decoder, inner_offset, inner_depth)?;
15014 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15015 {
15016 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15017 }
15018 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15019 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15020 }
15021 }
15022
15023 next_offset += envelope_size;
15024 _next_ordinal_to_read += 1;
15025 if next_offset >= end_offset {
15026 return Ok(());
15027 }
15028
15029 while _next_ordinal_to_read < 2 {
15031 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15032 _next_ordinal_to_read += 1;
15033 next_offset += envelope_size;
15034 }
15035
15036 let next_out_of_line = decoder.next_out_of_line();
15037 let handles_before = decoder.remaining_handles();
15038 if let Some((inlined, num_bytes, num_handles)) =
15039 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15040 {
15041 let member_inline_size = <fidl_fuchsia_bluetooth__common::Appearance as fidl::encoding::TypeMarker>::inline_size(decoder.context);
15042 if inlined != (member_inline_size <= 4) {
15043 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15044 }
15045 let inner_offset;
15046 let mut inner_depth = depth.clone();
15047 if inlined {
15048 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15049 inner_offset = next_offset;
15050 } else {
15051 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15052 inner_depth.increment()?;
15053 }
15054 let val_ref = self.appearance.get_or_insert_with(|| {
15055 fidl::new_empty!(fidl_fuchsia_bluetooth__common::Appearance, D)
15056 });
15057 fidl::decode!(
15058 fidl_fuchsia_bluetooth__common::Appearance,
15059 D,
15060 val_ref,
15061 decoder,
15062 inner_offset,
15063 inner_depth
15064 )?;
15065 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15066 {
15067 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15068 }
15069 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15070 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15071 }
15072 }
15073
15074 next_offset += envelope_size;
15075 _next_ordinal_to_read += 1;
15076 if next_offset >= end_offset {
15077 return Ok(());
15078 }
15079
15080 while _next_ordinal_to_read < 3 {
15082 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15083 _next_ordinal_to_read += 1;
15084 next_offset += envelope_size;
15085 }
15086
15087 let next_out_of_line = decoder.next_out_of_line();
15088 let handles_before = decoder.remaining_handles();
15089 if let Some((inlined, num_bytes, num_handles)) =
15090 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15091 {
15092 let member_inline_size = <fidl::encoding::UnboundedVector<
15093 fidl_fuchsia_bluetooth__common::Uuid,
15094 > as fidl::encoding::TypeMarker>::inline_size(
15095 decoder.context
15096 );
15097 if inlined != (member_inline_size <= 4) {
15098 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15099 }
15100 let inner_offset;
15101 let mut inner_depth = depth.clone();
15102 if inlined {
15103 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15104 inner_offset = next_offset;
15105 } else {
15106 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15107 inner_depth.increment()?;
15108 }
15109 let val_ref = self.service_uuids.get_or_insert_with(|| {
15110 fidl::new_empty!(
15111 fidl::encoding::UnboundedVector<fidl_fuchsia_bluetooth__common::Uuid>,
15112 D
15113 )
15114 });
15115 fidl::decode!(
15116 fidl::encoding::UnboundedVector<fidl_fuchsia_bluetooth__common::Uuid>,
15117 D,
15118 val_ref,
15119 decoder,
15120 inner_offset,
15121 inner_depth
15122 )?;
15123 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15124 {
15125 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15126 }
15127 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15128 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15129 }
15130 }
15131
15132 next_offset += envelope_size;
15133 _next_ordinal_to_read += 1;
15134 if next_offset >= end_offset {
15135 return Ok(());
15136 }
15137
15138 while _next_ordinal_to_read < 4 {
15140 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15141 _next_ordinal_to_read += 1;
15142 next_offset += envelope_size;
15143 }
15144
15145 let next_out_of_line = decoder.next_out_of_line();
15146 let handles_before = decoder.remaining_handles();
15147 if let Some((inlined, num_bytes, num_handles)) =
15148 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15149 {
15150 let member_inline_size = <fidl::encoding::UnboundedVector<ServiceData> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
15151 if inlined != (member_inline_size <= 4) {
15152 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15153 }
15154 let inner_offset;
15155 let mut inner_depth = depth.clone();
15156 if inlined {
15157 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15158 inner_offset = next_offset;
15159 } else {
15160 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15161 inner_depth.increment()?;
15162 }
15163 let val_ref = self.service_data.get_or_insert_with(|| {
15164 fidl::new_empty!(fidl::encoding::UnboundedVector<ServiceData>, D)
15165 });
15166 fidl::decode!(
15167 fidl::encoding::UnboundedVector<ServiceData>,
15168 D,
15169 val_ref,
15170 decoder,
15171 inner_offset,
15172 inner_depth
15173 )?;
15174 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15175 {
15176 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15177 }
15178 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15179 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15180 }
15181 }
15182
15183 next_offset += envelope_size;
15184 _next_ordinal_to_read += 1;
15185 if next_offset >= end_offset {
15186 return Ok(());
15187 }
15188
15189 while _next_ordinal_to_read < 5 {
15191 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15192 _next_ordinal_to_read += 1;
15193 next_offset += envelope_size;
15194 }
15195
15196 let next_out_of_line = decoder.next_out_of_line();
15197 let handles_before = decoder.remaining_handles();
15198 if let Some((inlined, num_bytes, num_handles)) =
15199 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15200 {
15201 let member_inline_size = <fidl::encoding::UnboundedVector<ManufacturerData> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
15202 if inlined != (member_inline_size <= 4) {
15203 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15204 }
15205 let inner_offset;
15206 let mut inner_depth = depth.clone();
15207 if inlined {
15208 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15209 inner_offset = next_offset;
15210 } else {
15211 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15212 inner_depth.increment()?;
15213 }
15214 let val_ref = self.manufacturer_data.get_or_insert_with(|| {
15215 fidl::new_empty!(fidl::encoding::UnboundedVector<ManufacturerData>, D)
15216 });
15217 fidl::decode!(
15218 fidl::encoding::UnboundedVector<ManufacturerData>,
15219 D,
15220 val_ref,
15221 decoder,
15222 inner_offset,
15223 inner_depth
15224 )?;
15225 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15226 {
15227 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15228 }
15229 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15230 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15231 }
15232 }
15233
15234 next_offset += envelope_size;
15235 _next_ordinal_to_read += 1;
15236 if next_offset >= end_offset {
15237 return Ok(());
15238 }
15239
15240 while _next_ordinal_to_read < 6 {
15242 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15243 _next_ordinal_to_read += 1;
15244 next_offset += envelope_size;
15245 }
15246
15247 let next_out_of_line = decoder.next_out_of_line();
15248 let handles_before = decoder.remaining_handles();
15249 if let Some((inlined, num_bytes, num_handles)) =
15250 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15251 {
15252 let member_inline_size = <fidl::encoding::UnboundedVector<
15253 fidl::encoding::BoundedString<278>,
15254 > as fidl::encoding::TypeMarker>::inline_size(
15255 decoder.context
15256 );
15257 if inlined != (member_inline_size <= 4) {
15258 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15259 }
15260 let inner_offset;
15261 let mut inner_depth = depth.clone();
15262 if inlined {
15263 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15264 inner_offset = next_offset;
15265 } else {
15266 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15267 inner_depth.increment()?;
15268 }
15269 let val_ref = self.uris.get_or_insert_with(|| {
15270 fidl::new_empty!(
15271 fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<278>>,
15272 D
15273 )
15274 });
15275 fidl::decode!(
15276 fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<278>>,
15277 D,
15278 val_ref,
15279 decoder,
15280 inner_offset,
15281 inner_depth
15282 )?;
15283 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15284 {
15285 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15286 }
15287 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15288 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15289 }
15290 }
15291
15292 next_offset += envelope_size;
15293 _next_ordinal_to_read += 1;
15294 if next_offset >= end_offset {
15295 return Ok(());
15296 }
15297
15298 while _next_ordinal_to_read < 7 {
15300 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15301 _next_ordinal_to_read += 1;
15302 next_offset += envelope_size;
15303 }
15304
15305 let next_out_of_line = decoder.next_out_of_line();
15306 let handles_before = decoder.remaining_handles();
15307 if let Some((inlined, num_bytes, num_handles)) =
15308 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15309 {
15310 let member_inline_size =
15311 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
15312 if inlined != (member_inline_size <= 4) {
15313 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15314 }
15315 let inner_offset;
15316 let mut inner_depth = depth.clone();
15317 if inlined {
15318 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15319 inner_offset = next_offset;
15320 } else {
15321 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15322 inner_depth.increment()?;
15323 }
15324 let val_ref = self.timestamp.get_or_insert_with(|| fidl::new_empty!(i64, D));
15325 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
15326 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15327 {
15328 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15329 }
15330 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15331 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15332 }
15333 }
15334
15335 next_offset += envelope_size;
15336 _next_ordinal_to_read += 1;
15337 if next_offset >= end_offset {
15338 return Ok(());
15339 }
15340
15341 while _next_ordinal_to_read < 8 {
15343 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15344 _next_ordinal_to_read += 1;
15345 next_offset += envelope_size;
15346 }
15347
15348 let next_out_of_line = decoder.next_out_of_line();
15349 let handles_before = decoder.remaining_handles();
15350 if let Some((inlined, num_bytes, num_handles)) =
15351 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15352 {
15353 let member_inline_size =
15354 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
15355 decoder.context,
15356 );
15357 if inlined != (member_inline_size <= 4) {
15358 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15359 }
15360 let inner_offset;
15361 let mut inner_depth = depth.clone();
15362 if inlined {
15363 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15364 inner_offset = next_offset;
15365 } else {
15366 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15367 inner_depth.increment()?;
15368 }
15369 let val_ref = self
15370 .resolvable_set_identifier
15371 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
15372 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
15373 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15374 {
15375 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15376 }
15377 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15378 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15379 }
15380 }
15381
15382 next_offset += envelope_size;
15383 _next_ordinal_to_read += 1;
15384 if next_offset >= end_offset {
15385 return Ok(());
15386 }
15387
15388 while _next_ordinal_to_read < 9 {
15390 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15391 _next_ordinal_to_read += 1;
15392 next_offset += envelope_size;
15393 }
15394
15395 let next_out_of_line = decoder.next_out_of_line();
15396 let handles_before = decoder.remaining_handles();
15397 if let Some((inlined, num_bytes, num_handles)) =
15398 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15399 {
15400 let member_inline_size =
15401 <fidl::encoding::BoundedString<128> as fidl::encoding::TypeMarker>::inline_size(
15402 decoder.context,
15403 );
15404 if inlined != (member_inline_size <= 4) {
15405 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15406 }
15407 let inner_offset;
15408 let mut inner_depth = depth.clone();
15409 if inlined {
15410 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15411 inner_offset = next_offset;
15412 } else {
15413 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15414 inner_depth.increment()?;
15415 }
15416 let val_ref = self
15417 .broadcast_name
15418 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<128>, D));
15419 fidl::decode!(
15420 fidl::encoding::BoundedString<128>,
15421 D,
15422 val_ref,
15423 decoder,
15424 inner_offset,
15425 inner_depth
15426 )?;
15427 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15428 {
15429 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15430 }
15431 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15432 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15433 }
15434 }
15435
15436 next_offset += envelope_size;
15437
15438 while next_offset < end_offset {
15440 _next_ordinal_to_read += 1;
15441 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15442 next_offset += envelope_size;
15443 }
15444
15445 Ok(())
15446 }
15447 }
15448
15449 impl ScanOptions {
15450 #[inline(always)]
15451 fn max_ordinal_present(&self) -> u64 {
15452 if let Some(_) = self.filters {
15453 return 1;
15454 }
15455 0
15456 }
15457 }
15458
15459 impl fidl::encoding::ValueTypeMarker for ScanOptions {
15460 type Borrowed<'a> = &'a Self;
15461 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
15462 value
15463 }
15464 }
15465
15466 unsafe impl fidl::encoding::TypeMarker for ScanOptions {
15467 type Owned = Self;
15468
15469 #[inline(always)]
15470 fn inline_align(_context: fidl::encoding::Context) -> usize {
15471 8
15472 }
15473
15474 #[inline(always)]
15475 fn inline_size(_context: fidl::encoding::Context) -> usize {
15476 16
15477 }
15478 }
15479
15480 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ScanOptions, D>
15481 for &ScanOptions
15482 {
15483 unsafe fn encode(
15484 self,
15485 encoder: &mut fidl::encoding::Encoder<'_, D>,
15486 offset: usize,
15487 mut depth: fidl::encoding::Depth,
15488 ) -> fidl::Result<()> {
15489 encoder.debug_check_bounds::<ScanOptions>(offset);
15490 let max_ordinal: u64 = self.max_ordinal_present();
15492 encoder.write_num(max_ordinal, offset);
15493 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
15494 if max_ordinal == 0 {
15496 return Ok(());
15497 }
15498 depth.increment()?;
15499 let envelope_size = 8;
15500 let bytes_len = max_ordinal as usize * envelope_size;
15501 #[allow(unused_variables)]
15502 let offset = encoder.out_of_line_offset(bytes_len);
15503 let mut _prev_end_offset: usize = 0;
15504 if 1 > max_ordinal {
15505 return Ok(());
15506 }
15507
15508 let cur_offset: usize = (1 - 1) * envelope_size;
15511
15512 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
15514
15515 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<Filter>, D>(
15520 self.filters.as_ref().map(<fidl::encoding::UnboundedVector<Filter> as fidl::encoding::ValueTypeMarker>::borrow),
15521 encoder, offset + cur_offset, depth
15522 )?;
15523
15524 _prev_end_offset = cur_offset + envelope_size;
15525
15526 Ok(())
15527 }
15528 }
15529
15530 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ScanOptions {
15531 #[inline(always)]
15532 fn new_empty() -> Self {
15533 Self::default()
15534 }
15535
15536 unsafe fn decode(
15537 &mut self,
15538 decoder: &mut fidl::encoding::Decoder<'_, D>,
15539 offset: usize,
15540 mut depth: fidl::encoding::Depth,
15541 ) -> fidl::Result<()> {
15542 decoder.debug_check_bounds::<Self>(offset);
15543 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
15544 None => return Err(fidl::Error::NotNullable),
15545 Some(len) => len,
15546 };
15547 if len == 0 {
15549 return Ok(());
15550 };
15551 depth.increment()?;
15552 let envelope_size = 8;
15553 let bytes_len = len * envelope_size;
15554 let offset = decoder.out_of_line_offset(bytes_len)?;
15555 let mut _next_ordinal_to_read = 0;
15557 let mut next_offset = offset;
15558 let end_offset = offset + bytes_len;
15559 _next_ordinal_to_read += 1;
15560 if next_offset >= end_offset {
15561 return Ok(());
15562 }
15563
15564 while _next_ordinal_to_read < 1 {
15566 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15567 _next_ordinal_to_read += 1;
15568 next_offset += envelope_size;
15569 }
15570
15571 let next_out_of_line = decoder.next_out_of_line();
15572 let handles_before = decoder.remaining_handles();
15573 if let Some((inlined, num_bytes, num_handles)) =
15574 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15575 {
15576 let member_inline_size = <fidl::encoding::UnboundedVector<Filter> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
15577 if inlined != (member_inline_size <= 4) {
15578 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15579 }
15580 let inner_offset;
15581 let mut inner_depth = depth.clone();
15582 if inlined {
15583 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15584 inner_offset = next_offset;
15585 } else {
15586 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15587 inner_depth.increment()?;
15588 }
15589 let val_ref = self.filters.get_or_insert_with(|| {
15590 fidl::new_empty!(fidl::encoding::UnboundedVector<Filter>, D)
15591 });
15592 fidl::decode!(
15593 fidl::encoding::UnboundedVector<Filter>,
15594 D,
15595 val_ref,
15596 decoder,
15597 inner_offset,
15598 inner_depth
15599 )?;
15600 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15601 {
15602 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15603 }
15604 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15605 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15606 }
15607 }
15608
15609 next_offset += envelope_size;
15610
15611 while next_offset < end_offset {
15613 _next_ordinal_to_read += 1;
15614 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15615 next_offset += envelope_size;
15616 }
15617
15618 Ok(())
15619 }
15620 }
15621
15622 impl fidl::encoding::ValueTypeMarker for AdvertisingProcedure {
15623 type Borrowed<'a> = &'a Self;
15624 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
15625 value
15626 }
15627 }
15628
15629 unsafe impl fidl::encoding::TypeMarker for AdvertisingProcedure {
15630 type Owned = Self;
15631
15632 #[inline(always)]
15633 fn inline_align(_context: fidl::encoding::Context) -> usize {
15634 8
15635 }
15636
15637 #[inline(always)]
15638 fn inline_size(_context: fidl::encoding::Context) -> usize {
15639 16
15640 }
15641 }
15642
15643 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<AdvertisingProcedure, D>
15644 for &AdvertisingProcedure
15645 {
15646 #[inline]
15647 unsafe fn encode(
15648 self,
15649 encoder: &mut fidl::encoding::Encoder<'_, D>,
15650 offset: usize,
15651 _depth: fidl::encoding::Depth,
15652 ) -> fidl::Result<()> {
15653 encoder.debug_check_bounds::<AdvertisingProcedure>(offset);
15654 encoder.write_num::<u64>(self.ordinal(), offset);
15655 match self {
15656 AdvertisingProcedure::Legacy(ref val) => {
15657 fidl::encoding::encode_in_envelope::<Legacy, D>(
15658 <Legacy as fidl::encoding::ValueTypeMarker>::borrow(val),
15659 encoder,
15660 offset + 8,
15661 _depth,
15662 )
15663 }
15664 AdvertisingProcedure::Extended(ref val) => {
15665 fidl::encoding::encode_in_envelope::<Extended, D>(
15666 <Extended as fidl::encoding::ValueTypeMarker>::borrow(val),
15667 encoder,
15668 offset + 8,
15669 _depth,
15670 )
15671 }
15672 AdvertisingProcedure::__SourceBreaking { .. } => Err(fidl::Error::UnknownUnionTag),
15673 }
15674 }
15675 }
15676
15677 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for AdvertisingProcedure {
15678 #[inline(always)]
15679 fn new_empty() -> Self {
15680 Self::__SourceBreaking { unknown_ordinal: 0 }
15681 }
15682
15683 #[inline]
15684 unsafe fn decode(
15685 &mut self,
15686 decoder: &mut fidl::encoding::Decoder<'_, D>,
15687 offset: usize,
15688 mut depth: fidl::encoding::Depth,
15689 ) -> fidl::Result<()> {
15690 decoder.debug_check_bounds::<Self>(offset);
15691 #[allow(unused_variables)]
15692 let next_out_of_line = decoder.next_out_of_line();
15693 let handles_before = decoder.remaining_handles();
15694 let (ordinal, inlined, num_bytes, num_handles) =
15695 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
15696
15697 let member_inline_size = match ordinal {
15698 1 => <Legacy as fidl::encoding::TypeMarker>::inline_size(decoder.context),
15699 2 => <Extended as fidl::encoding::TypeMarker>::inline_size(decoder.context),
15700 0 => return Err(fidl::Error::UnknownUnionTag),
15701 _ => num_bytes as usize,
15702 };
15703
15704 if inlined != (member_inline_size <= 4) {
15705 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15706 }
15707 let _inner_offset;
15708 if inlined {
15709 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
15710 _inner_offset = offset + 8;
15711 } else {
15712 depth.increment()?;
15713 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15714 }
15715 match ordinal {
15716 1 => {
15717 #[allow(irrefutable_let_patterns)]
15718 if let AdvertisingProcedure::Legacy(_) = self {
15719 } else {
15721 *self = AdvertisingProcedure::Legacy(fidl::new_empty!(Legacy, D));
15723 }
15724 #[allow(irrefutable_let_patterns)]
15725 if let AdvertisingProcedure::Legacy(ref mut val) = self {
15726 fidl::decode!(Legacy, D, val, decoder, _inner_offset, depth)?;
15727 } else {
15728 unreachable!()
15729 }
15730 }
15731 2 => {
15732 #[allow(irrefutable_let_patterns)]
15733 if let AdvertisingProcedure::Extended(_) = self {
15734 } else {
15736 *self = AdvertisingProcedure::Extended(fidl::new_empty!(Extended, D));
15738 }
15739 #[allow(irrefutable_let_patterns)]
15740 if let AdvertisingProcedure::Extended(ref mut val) = self {
15741 fidl::decode!(Extended, D, val, decoder, _inner_offset, depth)?;
15742 } else {
15743 unreachable!()
15744 }
15745 }
15746 #[allow(deprecated)]
15747 ordinal => {
15748 for _ in 0..num_handles {
15749 decoder.drop_next_handle()?;
15750 }
15751 *self = AdvertisingProcedure::__SourceBreaking { unknown_ordinal: ordinal };
15752 }
15753 }
15754 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
15755 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15756 }
15757 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15758 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15759 }
15760 Ok(())
15761 }
15762 }
15763
15764 impl fidl::encoding::ValueTypeMarker for SyncReport {
15765 type Borrowed<'a> = &'a Self;
15766 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
15767 value
15768 }
15769 }
15770
15771 unsafe impl fidl::encoding::TypeMarker for SyncReport {
15772 type Owned = Self;
15773
15774 #[inline(always)]
15775 fn inline_align(_context: fidl::encoding::Context) -> usize {
15776 8
15777 }
15778
15779 #[inline(always)]
15780 fn inline_size(_context: fidl::encoding::Context) -> usize {
15781 16
15782 }
15783 }
15784
15785 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<SyncReport, D>
15786 for &SyncReport
15787 {
15788 #[inline]
15789 unsafe fn encode(
15790 self,
15791 encoder: &mut fidl::encoding::Encoder<'_, D>,
15792 offset: usize,
15793 _depth: fidl::encoding::Depth,
15794 ) -> fidl::Result<()> {
15795 encoder.debug_check_bounds::<SyncReport>(offset);
15796 encoder.write_num::<u64>(self.ordinal(), offset);
15797 match self {
15798 SyncReport::PeriodicAdvertisingReport(ref val) => {
15799 fidl::encoding::encode_in_envelope::<PeriodicAdvertisingReport, D>(
15800 <PeriodicAdvertisingReport as fidl::encoding::ValueTypeMarker>::borrow(val),
15801 encoder, offset + 8, _depth
15802 )
15803 }
15804 SyncReport::BroadcastIsochronousGroupInfoReport(ref val) => {
15805 fidl::encoding::encode_in_envelope::<BroadcastIsochronousGroupInfoReport, D>(
15806 <BroadcastIsochronousGroupInfoReport as fidl::encoding::ValueTypeMarker>::borrow(val),
15807 encoder, offset + 8, _depth
15808 )
15809 }
15810 SyncReport::__SourceBreaking { .. } => Err(fidl::Error::UnknownUnionTag),
15811 }
15812 }
15813 }
15814
15815 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for SyncReport {
15816 #[inline(always)]
15817 fn new_empty() -> Self {
15818 Self::__SourceBreaking { unknown_ordinal: 0 }
15819 }
15820
15821 #[inline]
15822 unsafe fn decode(
15823 &mut self,
15824 decoder: &mut fidl::encoding::Decoder<'_, D>,
15825 offset: usize,
15826 mut depth: fidl::encoding::Depth,
15827 ) -> fidl::Result<()> {
15828 decoder.debug_check_bounds::<Self>(offset);
15829 #[allow(unused_variables)]
15830 let next_out_of_line = decoder.next_out_of_line();
15831 let handles_before = decoder.remaining_handles();
15832 let (ordinal, inlined, num_bytes, num_handles) =
15833 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
15834
15835 let member_inline_size = match ordinal {
15836 1 => <PeriodicAdvertisingReport as fidl::encoding::TypeMarker>::inline_size(
15837 decoder.context,
15838 ),
15839 2 => {
15840 <BroadcastIsochronousGroupInfoReport as fidl::encoding::TypeMarker>::inline_size(
15841 decoder.context,
15842 )
15843 }
15844 0 => return Err(fidl::Error::UnknownUnionTag),
15845 _ => num_bytes as usize,
15846 };
15847
15848 if inlined != (member_inline_size <= 4) {
15849 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15850 }
15851 let _inner_offset;
15852 if inlined {
15853 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
15854 _inner_offset = offset + 8;
15855 } else {
15856 depth.increment()?;
15857 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15858 }
15859 match ordinal {
15860 1 => {
15861 #[allow(irrefutable_let_patterns)]
15862 if let SyncReport::PeriodicAdvertisingReport(_) = self {
15863 } else {
15865 *self = SyncReport::PeriodicAdvertisingReport(fidl::new_empty!(
15867 PeriodicAdvertisingReport,
15868 D
15869 ));
15870 }
15871 #[allow(irrefutable_let_patterns)]
15872 if let SyncReport::PeriodicAdvertisingReport(ref mut val) = self {
15873 fidl::decode!(
15874 PeriodicAdvertisingReport,
15875 D,
15876 val,
15877 decoder,
15878 _inner_offset,
15879 depth
15880 )?;
15881 } else {
15882 unreachable!()
15883 }
15884 }
15885 2 => {
15886 #[allow(irrefutable_let_patterns)]
15887 if let SyncReport::BroadcastIsochronousGroupInfoReport(_) = self {
15888 } else {
15890 *self = SyncReport::BroadcastIsochronousGroupInfoReport(fidl::new_empty!(
15892 BroadcastIsochronousGroupInfoReport,
15893 D
15894 ));
15895 }
15896 #[allow(irrefutable_let_patterns)]
15897 if let SyncReport::BroadcastIsochronousGroupInfoReport(ref mut val) = self {
15898 fidl::decode!(
15899 BroadcastIsochronousGroupInfoReport,
15900 D,
15901 val,
15902 decoder,
15903 _inner_offset,
15904 depth
15905 )?;
15906 } else {
15907 unreachable!()
15908 }
15909 }
15910 #[allow(deprecated)]
15911 ordinal => {
15912 for _ in 0..num_handles {
15913 decoder.drop_next_handle()?;
15914 }
15915 *self = SyncReport::__SourceBreaking { unknown_ordinal: ordinal };
15916 }
15917 }
15918 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
15919 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15920 }
15921 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15922 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15923 }
15924 Ok(())
15925 }
15926 }
15927}