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 #[doc(hidden)]
1423 pub __source_breaking: fidl::marker::SourceBreaking,
1424}
1425
1426impl fidl::Persistable for ScanData {}
1427
1428#[derive(Clone, Debug, Default, PartialEq)]
1430pub struct ScanOptions {
1431 pub filters: Option<Vec<Filter>>,
1436 #[doc(hidden)]
1437 pub __source_breaking: fidl::marker::SourceBreaking,
1438}
1439
1440impl fidl::Persistable for ScanOptions {}
1441
1442#[derive(Clone, Debug)]
1443pub enum AdvertisingProcedure {
1444 Legacy(Legacy),
1447 Extended(Extended),
1457 #[doc(hidden)]
1458 __SourceBreaking { unknown_ordinal: u64 },
1459}
1460
1461#[macro_export]
1463macro_rules! AdvertisingProcedureUnknown {
1464 () => {
1465 _
1466 };
1467}
1468
1469impl PartialEq for AdvertisingProcedure {
1471 fn eq(&self, other: &Self) -> bool {
1472 match (self, other) {
1473 (Self::Legacy(x), Self::Legacy(y)) => *x == *y,
1474 (Self::Extended(x), Self::Extended(y)) => *x == *y,
1475 _ => false,
1476 }
1477 }
1478}
1479
1480impl AdvertisingProcedure {
1481 #[inline]
1482 pub fn ordinal(&self) -> u64 {
1483 match *self {
1484 Self::Legacy(_) => 1,
1485 Self::Extended(_) => 2,
1486 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
1487 }
1488 }
1489
1490 #[inline]
1491 pub fn unknown_variant_for_testing() -> Self {
1492 Self::__SourceBreaking { unknown_ordinal: 0 }
1493 }
1494
1495 #[inline]
1496 pub fn is_unknown(&self) -> bool {
1497 match self {
1498 Self::__SourceBreaking { .. } => true,
1499 _ => false,
1500 }
1501 }
1502}
1503
1504impl fidl::Persistable for AdvertisingProcedure {}
1505
1506#[derive(Clone, Debug)]
1507pub enum SyncReport {
1508 PeriodicAdvertisingReport(PeriodicAdvertisingReport),
1509 BroadcastIsochronousGroupInfoReport(BroadcastIsochronousGroupInfoReport),
1510 #[doc(hidden)]
1511 __SourceBreaking {
1512 unknown_ordinal: u64,
1513 },
1514}
1515
1516#[macro_export]
1518macro_rules! SyncReportUnknown {
1519 () => {
1520 _
1521 };
1522}
1523
1524impl PartialEq for SyncReport {
1526 fn eq(&self, other: &Self) -> bool {
1527 match (self, other) {
1528 (Self::PeriodicAdvertisingReport(x), Self::PeriodicAdvertisingReport(y)) => *x == *y,
1529 (
1530 Self::BroadcastIsochronousGroupInfoReport(x),
1531 Self::BroadcastIsochronousGroupInfoReport(y),
1532 ) => *x == *y,
1533 _ => false,
1534 }
1535 }
1536}
1537
1538impl SyncReport {
1539 #[inline]
1540 pub fn ordinal(&self) -> u64 {
1541 match *self {
1542 Self::PeriodicAdvertisingReport(_) => 1,
1543 Self::BroadcastIsochronousGroupInfoReport(_) => 2,
1544 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
1545 }
1546 }
1547
1548 #[inline]
1549 pub fn unknown_variant_for_testing() -> Self {
1550 Self::__SourceBreaking { unknown_ordinal: 0 }
1551 }
1552
1553 #[inline]
1554 pub fn is_unknown(&self) -> bool {
1555 match self {
1556 Self::__SourceBreaking { .. } => true,
1557 _ => false,
1558 }
1559 }
1560}
1561
1562impl fidl::Persistable for SyncReport {}
1563
1564pub mod advertised_peripheral_ordinals {
1565 pub const ON_CONNECTED: u64 = 0x607b7716457eb178;
1566}
1567
1568pub mod advertising_handle_ordinals {}
1569
1570pub mod central_ordinals {
1571 pub const LISTEN_L2CAP: u64 = 0x39c6e9001d102338;
1572 pub const SCAN: u64 = 0x41f7121798dfe15f;
1573 pub const CONNECT: u64 = 0x31a3065f2a6913c4;
1574 pub const SYNC_TO_PERIODIC_ADVERTISING: u64 = 0x1db6df126a00c5b9;
1575 pub const CREATE_CONNECTED_ISOCHRONOUS_GROUP: u64 = 0x60323e70ae22e13;
1576 pub const GET_PERIPHERALS: u64 = 0x37ba777499c683a8;
1577 pub const GET_PERIPHERAL: u64 = 0x97f5a2f2d9c13da;
1578 pub const START_SCAN: u64 = 0xeb4cf0cd0e1132b;
1579 pub const STOP_SCAN: u64 = 0x5f79ee6a0bb037a0;
1580 pub const CONNECT_PERIPHERAL: u64 = 0x714d6c32d066d75a;
1581 pub const DISCONNECT_PERIPHERAL: u64 = 0xa9430da197362fd;
1582 pub const ON_SCAN_STATE_CHANGED: u64 = 0x5f8edc23cad04d3f;
1583 pub const ON_DEVICE_DISCOVERED: u64 = 0x708dadf20d66db6;
1584 pub const ON_PERIPHERAL_DISCONNECTED: u64 = 0x4e4c6b979b2126df;
1585}
1586
1587pub mod channel_listener_ordinals {
1588 pub const ACCEPT: u64 = 0x6f535bd36b20fc7b;
1589}
1590
1591pub mod channel_listener_registry_ordinals {
1592 pub const LISTEN_L2CAP: u64 = 0x39c6e9001d102338;
1593}
1594
1595pub mod codec_delay_ordinals {
1596 pub const GET_CODEC_LOCAL_DELAY_RANGE: u64 = 0x1cf34fdeed80b4d;
1597}
1598
1599pub mod connected_isochronous_group_ordinals {
1600 pub const ESTABLISH_STREAMS: u64 = 0xc7296c5edb4dacc;
1601 pub const REMOVE: u64 = 0xbed433babd20503;
1602}
1603
1604pub mod connection_ordinals {
1605 pub const GET_CODEC_LOCAL_DELAY_RANGE: u64 = 0x1cf34fdeed80b4d;
1606 pub const REQUEST_GATT_CLIENT: u64 = 0x2a670e0fec6ccc6b;
1607 pub const ACCEPT_CIS: u64 = 0x7e6338c237088144;
1608 pub const CONNECT_L2CAP: u64 = 0x12351316feaebce9;
1609 pub const TRANSFER_PERIODIC_ADVERTISING_SYNC: u64 = 0x1117a10b5ba1e219;
1610 pub const ACCEPT_PERIODIC_ADVERTISING_SYNC_TRANSFER: u64 = 0x441a31a7effa7e2b;
1611}
1612
1613pub mod isochronous_stream_ordinals {
1614 pub const ON_ESTABLISHED: u64 = 0x341c50e9d10f3421;
1615 pub const SETUP_DATA_PATH: u64 = 0x7ec1e2b9cc6d2fbe;
1616 pub const READ: u64 = 0x6d7d8b4950ed3a32;
1617 pub const WRITE: u64 = 0x5282e90b667d0d43;
1618}
1619
1620pub mod periodic_advertising_sync_ordinals {
1621 pub const ON_ESTABLISHED: u64 = 0x4a5c307761c40fdc;
1622 pub const ON_ERROR: u64 = 0x1c051673126ce4a;
1623 pub const WATCH_ADVERTISING_REPORT: u64 = 0x2ea610fea0e7d337;
1624 pub const SYNC_TO_SUBEVENTS: u64 = 0x653c5dab1f1d80ed;
1625 pub const CANCEL: u64 = 0xd617c037eaf5d92;
1626}
1627
1628pub mod peripheral_ordinals {
1629 pub const LISTEN_L2CAP: u64 = 0x39c6e9001d102338;
1630 pub const ADVERTISE: u64 = 0x2d9ec9260c32c17f;
1631 pub const START_ADVERTISING: u64 = 0x5875c1c575f00f7d;
1632 pub const ON_PEER_CONNECTED: u64 = 0x16135d464299e356;
1633}
1634
1635pub mod privileged_peripheral_ordinals {
1636 pub const LISTEN_L2CAP: u64 = 0x39c6e9001d102338;
1637 pub const ADVERTISE: u64 = 0x2d9ec9260c32c17f;
1638 pub const START_ADVERTISING: u64 = 0x5875c1c575f00f7d;
1639 pub const ON_PEER_CONNECTED: u64 = 0x16135d464299e356;
1640}
1641
1642pub mod scan_result_watcher_ordinals {
1643 pub const WATCH: u64 = 0x713a122e949f301a;
1644}
1645
1646mod internal {
1647 use super::*;
1648 unsafe impl fidl::encoding::TypeMarker for AdvertisingModeHint {
1649 type Owned = Self;
1650
1651 #[inline(always)]
1652 fn inline_align(_context: fidl::encoding::Context) -> usize {
1653 std::mem::align_of::<u8>()
1654 }
1655
1656 #[inline(always)]
1657 fn inline_size(_context: fidl::encoding::Context) -> usize {
1658 std::mem::size_of::<u8>()
1659 }
1660
1661 #[inline(always)]
1662 fn encode_is_copy() -> bool {
1663 true
1664 }
1665
1666 #[inline(always)]
1667 fn decode_is_copy() -> bool {
1668 false
1669 }
1670 }
1671
1672 impl fidl::encoding::ValueTypeMarker for AdvertisingModeHint {
1673 type Borrowed<'a> = Self;
1674 #[inline(always)]
1675 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1676 *value
1677 }
1678 }
1679
1680 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
1681 for AdvertisingModeHint
1682 {
1683 #[inline]
1684 unsafe fn encode(
1685 self,
1686 encoder: &mut fidl::encoding::Encoder<'_, D>,
1687 offset: usize,
1688 _depth: fidl::encoding::Depth,
1689 ) -> fidl::Result<()> {
1690 encoder.debug_check_bounds::<Self>(offset);
1691 encoder.write_num(self.into_primitive(), offset);
1692 Ok(())
1693 }
1694 }
1695
1696 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for AdvertisingModeHint {
1697 #[inline(always)]
1698 fn new_empty() -> Self {
1699 Self::VeryFast
1700 }
1701
1702 #[inline]
1703 unsafe fn decode(
1704 &mut self,
1705 decoder: &mut fidl::encoding::Decoder<'_, D>,
1706 offset: usize,
1707 _depth: fidl::encoding::Depth,
1708 ) -> fidl::Result<()> {
1709 decoder.debug_check_bounds::<Self>(offset);
1710 let prim = decoder.read_num::<u8>(offset);
1711
1712 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
1713 Ok(())
1714 }
1715 }
1716 unsafe impl fidl::encoding::TypeMarker for CentralError {
1717 type Owned = Self;
1718
1719 #[inline(always)]
1720 fn inline_align(_context: fidl::encoding::Context) -> usize {
1721 std::mem::align_of::<u32>()
1722 }
1723
1724 #[inline(always)]
1725 fn inline_size(_context: fidl::encoding::Context) -> usize {
1726 std::mem::size_of::<u32>()
1727 }
1728
1729 #[inline(always)]
1730 fn encode_is_copy() -> bool {
1731 true
1732 }
1733
1734 #[inline(always)]
1735 fn decode_is_copy() -> bool {
1736 false
1737 }
1738 }
1739
1740 impl fidl::encoding::ValueTypeMarker for CentralError {
1741 type Borrowed<'a> = Self;
1742 #[inline(always)]
1743 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1744 *value
1745 }
1746 }
1747
1748 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for CentralError {
1749 #[inline]
1750 unsafe fn encode(
1751 self,
1752 encoder: &mut fidl::encoding::Encoder<'_, D>,
1753 offset: usize,
1754 _depth: fidl::encoding::Depth,
1755 ) -> fidl::Result<()> {
1756 encoder.debug_check_bounds::<Self>(offset);
1757 encoder.write_num(self.into_primitive(), offset);
1758 Ok(())
1759 }
1760 }
1761
1762 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for CentralError {
1763 #[inline(always)]
1764 fn new_empty() -> Self {
1765 Self::Aborted
1766 }
1767
1768 #[inline]
1769 unsafe fn decode(
1770 &mut self,
1771 decoder: &mut fidl::encoding::Decoder<'_, D>,
1772 offset: usize,
1773 _depth: fidl::encoding::Depth,
1774 ) -> fidl::Result<()> {
1775 decoder.debug_check_bounds::<Self>(offset);
1776 let prim = decoder.read_num::<u32>(offset);
1777
1778 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
1779 Ok(())
1780 }
1781 }
1782 unsafe impl fidl::encoding::TypeMarker for CigFramingOptions {
1783 type Owned = Self;
1784
1785 #[inline(always)]
1786 fn inline_align(_context: fidl::encoding::Context) -> usize {
1787 std::mem::align_of::<u32>()
1788 }
1789
1790 #[inline(always)]
1791 fn inline_size(_context: fidl::encoding::Context) -> usize {
1792 std::mem::size_of::<u32>()
1793 }
1794
1795 #[inline(always)]
1796 fn encode_is_copy() -> bool {
1797 true
1798 }
1799
1800 #[inline(always)]
1801 fn decode_is_copy() -> bool {
1802 false
1803 }
1804 }
1805
1806 impl fidl::encoding::ValueTypeMarker for CigFramingOptions {
1807 type Borrowed<'a> = Self;
1808 #[inline(always)]
1809 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1810 *value
1811 }
1812 }
1813
1814 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
1815 for CigFramingOptions
1816 {
1817 #[inline]
1818 unsafe fn encode(
1819 self,
1820 encoder: &mut fidl::encoding::Encoder<'_, D>,
1821 offset: usize,
1822 _depth: fidl::encoding::Depth,
1823 ) -> fidl::Result<()> {
1824 encoder.debug_check_bounds::<Self>(offset);
1825 encoder.write_num(self.into_primitive(), offset);
1826 Ok(())
1827 }
1828 }
1829
1830 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for CigFramingOptions {
1831 #[inline(always)]
1832 fn new_empty() -> Self {
1833 Self::Unframed
1834 }
1835
1836 #[inline]
1837 unsafe fn decode(
1838 &mut self,
1839 decoder: &mut fidl::encoding::Decoder<'_, D>,
1840 offset: usize,
1841 _depth: fidl::encoding::Depth,
1842 ) -> fidl::Result<()> {
1843 decoder.debug_check_bounds::<Self>(offset);
1844 let prim = decoder.read_num::<u32>(offset);
1845
1846 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
1847 Ok(())
1848 }
1849 }
1850 unsafe impl fidl::encoding::TypeMarker for CigPacking {
1851 type Owned = Self;
1852
1853 #[inline(always)]
1854 fn inline_align(_context: fidl::encoding::Context) -> usize {
1855 std::mem::align_of::<u32>()
1856 }
1857
1858 #[inline(always)]
1859 fn inline_size(_context: fidl::encoding::Context) -> usize {
1860 std::mem::size_of::<u32>()
1861 }
1862
1863 #[inline(always)]
1864 fn encode_is_copy() -> bool {
1865 false
1866 }
1867
1868 #[inline(always)]
1869 fn decode_is_copy() -> bool {
1870 false
1871 }
1872 }
1873
1874 impl fidl::encoding::ValueTypeMarker for CigPacking {
1875 type Borrowed<'a> = Self;
1876 #[inline(always)]
1877 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1878 *value
1879 }
1880 }
1881
1882 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for CigPacking {
1883 #[inline]
1884 unsafe fn encode(
1885 self,
1886 encoder: &mut fidl::encoding::Encoder<'_, D>,
1887 offset: usize,
1888 _depth: fidl::encoding::Depth,
1889 ) -> fidl::Result<()> {
1890 encoder.debug_check_bounds::<Self>(offset);
1891 encoder.write_num(self.into_primitive(), offset);
1892 Ok(())
1893 }
1894 }
1895
1896 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for CigPacking {
1897 #[inline(always)]
1898 fn new_empty() -> Self {
1899 Self::unknown()
1900 }
1901
1902 #[inline]
1903 unsafe fn decode(
1904 &mut self,
1905 decoder: &mut fidl::encoding::Decoder<'_, D>,
1906 offset: usize,
1907 _depth: fidl::encoding::Depth,
1908 ) -> fidl::Result<()> {
1909 decoder.debug_check_bounds::<Self>(offset);
1910 let prim = decoder.read_num::<u32>(offset);
1911
1912 *self = Self::from_primitive_allow_unknown(prim);
1913 Ok(())
1914 }
1915 }
1916 unsafe impl fidl::encoding::TypeMarker for CreateCigError {
1917 type Owned = Self;
1918
1919 #[inline(always)]
1920 fn inline_align(_context: fidl::encoding::Context) -> usize {
1921 std::mem::align_of::<u32>()
1922 }
1923
1924 #[inline(always)]
1925 fn inline_size(_context: fidl::encoding::Context) -> usize {
1926 std::mem::size_of::<u32>()
1927 }
1928
1929 #[inline(always)]
1930 fn encode_is_copy() -> bool {
1931 false
1932 }
1933
1934 #[inline(always)]
1935 fn decode_is_copy() -> bool {
1936 false
1937 }
1938 }
1939
1940 impl fidl::encoding::ValueTypeMarker for CreateCigError {
1941 type Borrowed<'a> = Self;
1942 #[inline(always)]
1943 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1944 *value
1945 }
1946 }
1947
1948 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for CreateCigError {
1949 #[inline]
1950 unsafe fn encode(
1951 self,
1952 encoder: &mut fidl::encoding::Encoder<'_, D>,
1953 offset: usize,
1954 _depth: fidl::encoding::Depth,
1955 ) -> fidl::Result<()> {
1956 encoder.debug_check_bounds::<Self>(offset);
1957 encoder.write_num(self.into_primitive(), offset);
1958 Ok(())
1959 }
1960 }
1961
1962 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for CreateCigError {
1963 #[inline(always)]
1964 fn new_empty() -> Self {
1965 Self::unknown()
1966 }
1967
1968 #[inline]
1969 unsafe fn decode(
1970 &mut self,
1971 decoder: &mut fidl::encoding::Decoder<'_, D>,
1972 offset: usize,
1973 _depth: fidl::encoding::Depth,
1974 ) -> fidl::Result<()> {
1975 decoder.debug_check_bounds::<Self>(offset);
1976 let prim = decoder.read_num::<u32>(offset);
1977
1978 *self = Self::from_primitive_allow_unknown(prim);
1979 Ok(())
1980 }
1981 }
1982 unsafe impl fidl::encoding::TypeMarker for EstablishStreamsError {
1983 type Owned = Self;
1984
1985 #[inline(always)]
1986 fn inline_align(_context: fidl::encoding::Context) -> usize {
1987 std::mem::align_of::<u32>()
1988 }
1989
1990 #[inline(always)]
1991 fn inline_size(_context: fidl::encoding::Context) -> usize {
1992 std::mem::size_of::<u32>()
1993 }
1994
1995 #[inline(always)]
1996 fn encode_is_copy() -> bool {
1997 false
1998 }
1999
2000 #[inline(always)]
2001 fn decode_is_copy() -> bool {
2002 false
2003 }
2004 }
2005
2006 impl fidl::encoding::ValueTypeMarker for EstablishStreamsError {
2007 type Borrowed<'a> = Self;
2008 #[inline(always)]
2009 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2010 *value
2011 }
2012 }
2013
2014 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
2015 for EstablishStreamsError
2016 {
2017 #[inline]
2018 unsafe fn encode(
2019 self,
2020 encoder: &mut fidl::encoding::Encoder<'_, D>,
2021 offset: usize,
2022 _depth: fidl::encoding::Depth,
2023 ) -> fidl::Result<()> {
2024 encoder.debug_check_bounds::<Self>(offset);
2025 encoder.write_num(self.into_primitive(), offset);
2026 Ok(())
2027 }
2028 }
2029
2030 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for EstablishStreamsError {
2031 #[inline(always)]
2032 fn new_empty() -> Self {
2033 Self::unknown()
2034 }
2035
2036 #[inline]
2037 unsafe fn decode(
2038 &mut self,
2039 decoder: &mut fidl::encoding::Decoder<'_, D>,
2040 offset: usize,
2041 _depth: fidl::encoding::Depth,
2042 ) -> fidl::Result<()> {
2043 decoder.debug_check_bounds::<Self>(offset);
2044 let prim = decoder.read_num::<u32>(offset);
2045
2046 *self = Self::from_primitive_allow_unknown(prim);
2047 Ok(())
2048 }
2049 }
2050 unsafe impl fidl::encoding::TypeMarker for IsoPacketStatusFlag {
2051 type Owned = Self;
2052
2053 #[inline(always)]
2054 fn inline_align(_context: fidl::encoding::Context) -> usize {
2055 std::mem::align_of::<u8>()
2056 }
2057
2058 #[inline(always)]
2059 fn inline_size(_context: fidl::encoding::Context) -> usize {
2060 std::mem::size_of::<u8>()
2061 }
2062
2063 #[inline(always)]
2064 fn encode_is_copy() -> bool {
2065 true
2066 }
2067
2068 #[inline(always)]
2069 fn decode_is_copy() -> bool {
2070 false
2071 }
2072 }
2073
2074 impl fidl::encoding::ValueTypeMarker for IsoPacketStatusFlag {
2075 type Borrowed<'a> = Self;
2076 #[inline(always)]
2077 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2078 *value
2079 }
2080 }
2081
2082 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
2083 for IsoPacketStatusFlag
2084 {
2085 #[inline]
2086 unsafe fn encode(
2087 self,
2088 encoder: &mut fidl::encoding::Encoder<'_, D>,
2089 offset: usize,
2090 _depth: fidl::encoding::Depth,
2091 ) -> fidl::Result<()> {
2092 encoder.debug_check_bounds::<Self>(offset);
2093 encoder.write_num(self.into_primitive(), offset);
2094 Ok(())
2095 }
2096 }
2097
2098 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for IsoPacketStatusFlag {
2099 #[inline(always)]
2100 fn new_empty() -> Self {
2101 Self::ValidData
2102 }
2103
2104 #[inline]
2105 unsafe fn decode(
2106 &mut self,
2107 decoder: &mut fidl::encoding::Decoder<'_, D>,
2108 offset: usize,
2109 _depth: fidl::encoding::Depth,
2110 ) -> fidl::Result<()> {
2111 decoder.debug_check_bounds::<Self>(offset);
2112 let prim = decoder.read_num::<u8>(offset);
2113
2114 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
2115 Ok(())
2116 }
2117 }
2118 unsafe impl fidl::encoding::TypeMarker for PeriodicAdvertisingSyncError {
2119 type Owned = Self;
2120
2121 #[inline(always)]
2122 fn inline_align(_context: fidl::encoding::Context) -> usize {
2123 std::mem::align_of::<u32>()
2124 }
2125
2126 #[inline(always)]
2127 fn inline_size(_context: fidl::encoding::Context) -> usize {
2128 std::mem::size_of::<u32>()
2129 }
2130
2131 #[inline(always)]
2132 fn encode_is_copy() -> bool {
2133 false
2134 }
2135
2136 #[inline(always)]
2137 fn decode_is_copy() -> bool {
2138 false
2139 }
2140 }
2141
2142 impl fidl::encoding::ValueTypeMarker for PeriodicAdvertisingSyncError {
2143 type Borrowed<'a> = Self;
2144 #[inline(always)]
2145 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2146 *value
2147 }
2148 }
2149
2150 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
2151 for PeriodicAdvertisingSyncError
2152 {
2153 #[inline]
2154 unsafe fn encode(
2155 self,
2156 encoder: &mut fidl::encoding::Encoder<'_, D>,
2157 offset: usize,
2158 _depth: fidl::encoding::Depth,
2159 ) -> fidl::Result<()> {
2160 encoder.debug_check_bounds::<Self>(offset);
2161 encoder.write_num(self.into_primitive(), offset);
2162 Ok(())
2163 }
2164 }
2165
2166 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2167 for PeriodicAdvertisingSyncError
2168 {
2169 #[inline(always)]
2170 fn new_empty() -> Self {
2171 Self::unknown()
2172 }
2173
2174 #[inline]
2175 unsafe fn decode(
2176 &mut self,
2177 decoder: &mut fidl::encoding::Decoder<'_, D>,
2178 offset: usize,
2179 _depth: fidl::encoding::Depth,
2180 ) -> fidl::Result<()> {
2181 decoder.debug_check_bounds::<Self>(offset);
2182 let prim = decoder.read_num::<u32>(offset);
2183
2184 *self = Self::from_primitive_allow_unknown(prim);
2185 Ok(())
2186 }
2187 }
2188 unsafe impl fidl::encoding::TypeMarker for PeriodicAdvertisingSyncTransferError {
2189 type Owned = Self;
2190
2191 #[inline(always)]
2192 fn inline_align(_context: fidl::encoding::Context) -> usize {
2193 std::mem::align_of::<u32>()
2194 }
2195
2196 #[inline(always)]
2197 fn inline_size(_context: fidl::encoding::Context) -> usize {
2198 std::mem::size_of::<u32>()
2199 }
2200
2201 #[inline(always)]
2202 fn encode_is_copy() -> bool {
2203 false
2204 }
2205
2206 #[inline(always)]
2207 fn decode_is_copy() -> bool {
2208 false
2209 }
2210 }
2211
2212 impl fidl::encoding::ValueTypeMarker for PeriodicAdvertisingSyncTransferError {
2213 type Borrowed<'a> = Self;
2214 #[inline(always)]
2215 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2216 *value
2217 }
2218 }
2219
2220 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
2221 for PeriodicAdvertisingSyncTransferError
2222 {
2223 #[inline]
2224 unsafe fn encode(
2225 self,
2226 encoder: &mut fidl::encoding::Encoder<'_, D>,
2227 offset: usize,
2228 _depth: fidl::encoding::Depth,
2229 ) -> fidl::Result<()> {
2230 encoder.debug_check_bounds::<Self>(offset);
2231 encoder.write_num(self.into_primitive(), offset);
2232 Ok(())
2233 }
2234 }
2235
2236 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2237 for PeriodicAdvertisingSyncTransferError
2238 {
2239 #[inline(always)]
2240 fn new_empty() -> Self {
2241 Self::unknown()
2242 }
2243
2244 #[inline]
2245 unsafe fn decode(
2246 &mut self,
2247 decoder: &mut fidl::encoding::Decoder<'_, D>,
2248 offset: usize,
2249 _depth: fidl::encoding::Depth,
2250 ) -> fidl::Result<()> {
2251 decoder.debug_check_bounds::<Self>(offset);
2252 let prim = decoder.read_num::<u32>(offset);
2253
2254 *self = Self::from_primitive_allow_unknown(prim);
2255 Ok(())
2256 }
2257 }
2258 unsafe impl fidl::encoding::TypeMarker for PeripheralError {
2259 type Owned = Self;
2260
2261 #[inline(always)]
2262 fn inline_align(_context: fidl::encoding::Context) -> usize {
2263 std::mem::align_of::<u32>()
2264 }
2265
2266 #[inline(always)]
2267 fn inline_size(_context: fidl::encoding::Context) -> usize {
2268 std::mem::size_of::<u32>()
2269 }
2270
2271 #[inline(always)]
2272 fn encode_is_copy() -> bool {
2273 true
2274 }
2275
2276 #[inline(always)]
2277 fn decode_is_copy() -> bool {
2278 false
2279 }
2280 }
2281
2282 impl fidl::encoding::ValueTypeMarker for PeripheralError {
2283 type Borrowed<'a> = Self;
2284 #[inline(always)]
2285 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2286 *value
2287 }
2288 }
2289
2290 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
2291 for PeripheralError
2292 {
2293 #[inline]
2294 unsafe fn encode(
2295 self,
2296 encoder: &mut fidl::encoding::Encoder<'_, D>,
2297 offset: usize,
2298 _depth: fidl::encoding::Depth,
2299 ) -> fidl::Result<()> {
2300 encoder.debug_check_bounds::<Self>(offset);
2301 encoder.write_num(self.into_primitive(), offset);
2302 Ok(())
2303 }
2304 }
2305
2306 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for PeripheralError {
2307 #[inline(always)]
2308 fn new_empty() -> Self {
2309 Self::NotSupported
2310 }
2311
2312 #[inline]
2313 unsafe fn decode(
2314 &mut self,
2315 decoder: &mut fidl::encoding::Decoder<'_, D>,
2316 offset: usize,
2317 _depth: fidl::encoding::Depth,
2318 ) -> fidl::Result<()> {
2319 decoder.debug_check_bounds::<Self>(offset);
2320 let prim = decoder.read_num::<u32>(offset);
2321
2322 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
2323 Ok(())
2324 }
2325 }
2326 unsafe impl fidl::encoding::TypeMarker for PhysicalLayer {
2327 type Owned = Self;
2328
2329 #[inline(always)]
2330 fn inline_align(_context: fidl::encoding::Context) -> usize {
2331 std::mem::align_of::<u8>()
2332 }
2333
2334 #[inline(always)]
2335 fn inline_size(_context: fidl::encoding::Context) -> usize {
2336 std::mem::size_of::<u8>()
2337 }
2338
2339 #[inline(always)]
2340 fn encode_is_copy() -> bool {
2341 false
2342 }
2343
2344 #[inline(always)]
2345 fn decode_is_copy() -> bool {
2346 false
2347 }
2348 }
2349
2350 impl fidl::encoding::ValueTypeMarker for PhysicalLayer {
2351 type Borrowed<'a> = Self;
2352 #[inline(always)]
2353 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2354 *value
2355 }
2356 }
2357
2358 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for PhysicalLayer {
2359 #[inline]
2360 unsafe fn encode(
2361 self,
2362 encoder: &mut fidl::encoding::Encoder<'_, D>,
2363 offset: usize,
2364 _depth: fidl::encoding::Depth,
2365 ) -> fidl::Result<()> {
2366 encoder.debug_check_bounds::<Self>(offset);
2367 encoder.write_num(self.into_primitive(), offset);
2368 Ok(())
2369 }
2370 }
2371
2372 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for PhysicalLayer {
2373 #[inline(always)]
2374 fn new_empty() -> Self {
2375 Self::unknown()
2376 }
2377
2378 #[inline]
2379 unsafe fn decode(
2380 &mut self,
2381 decoder: &mut fidl::encoding::Decoder<'_, D>,
2382 offset: usize,
2383 _depth: fidl::encoding::Depth,
2384 ) -> fidl::Result<()> {
2385 decoder.debug_check_bounds::<Self>(offset);
2386 let prim = decoder.read_num::<u8>(offset);
2387
2388 *self = Self::from_primitive_allow_unknown(prim);
2389 Ok(())
2390 }
2391 }
2392
2393 impl fidl::encoding::ValueTypeMarker for AdvertisingDataDeprecated {
2394 type Borrowed<'a> = &'a Self;
2395 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2396 value
2397 }
2398 }
2399
2400 unsafe impl fidl::encoding::TypeMarker for AdvertisingDataDeprecated {
2401 type Owned = Self;
2402
2403 #[inline(always)]
2404 fn inline_align(_context: fidl::encoding::Context) -> usize {
2405 8
2406 }
2407
2408 #[inline(always)]
2409 fn inline_size(_context: fidl::encoding::Context) -> usize {
2410 112
2411 }
2412 }
2413
2414 unsafe impl<D: fidl::encoding::ResourceDialect>
2415 fidl::encoding::Encode<AdvertisingDataDeprecated, D> for &AdvertisingDataDeprecated
2416 {
2417 #[inline]
2418 unsafe fn encode(
2419 self,
2420 encoder: &mut fidl::encoding::Encoder<'_, D>,
2421 offset: usize,
2422 _depth: fidl::encoding::Depth,
2423 ) -> fidl::Result<()> {
2424 encoder.debug_check_bounds::<AdvertisingDataDeprecated>(offset);
2425 fidl::encoding::Encode::<AdvertisingDataDeprecated, D>::encode(
2427 (
2428 <fidl::encoding::Optional<fidl::encoding::BoundedString<248>> as fidl::encoding::ValueTypeMarker>::borrow(&self.name),
2429 <fidl::encoding::Boxed<fidl_fuchsia_bluetooth__common::Int8> as fidl::encoding::ValueTypeMarker>::borrow(&self.tx_power_level),
2430 <fidl::encoding::Boxed<fidl_fuchsia_bluetooth__common::UInt16> as fidl::encoding::ValueTypeMarker>::borrow(&self.appearance),
2431 <fidl::encoding::Optional<fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<36>>> as fidl::encoding::ValueTypeMarker>::borrow(&self.service_uuids),
2432 <fidl::encoding::Optional<fidl::encoding::UnboundedVector<ServiceDataEntry>> as fidl::encoding::ValueTypeMarker>::borrow(&self.service_data),
2433 <fidl::encoding::Optional<fidl::encoding::UnboundedVector<ManufacturerSpecificDataEntry>> as fidl::encoding::ValueTypeMarker>::borrow(&self.manufacturer_specific_data),
2434 <fidl::encoding::Optional<fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<36>>> as fidl::encoding::ValueTypeMarker>::borrow(&self.solicited_service_uuids),
2435 <fidl::encoding::Optional<fidl::encoding::UnboundedVector<fidl::encoding::UnboundedString>> as fidl::encoding::ValueTypeMarker>::borrow(&self.uris),
2436 ),
2437 encoder, offset, _depth
2438 )
2439 }
2440 }
2441 unsafe impl<
2442 D: fidl::encoding::ResourceDialect,
2443 T0: fidl::encoding::Encode<fidl::encoding::Optional<fidl::encoding::BoundedString<248>>, D>,
2444 T1: fidl::encoding::Encode<fidl::encoding::Boxed<fidl_fuchsia_bluetooth__common::Int8>, D>,
2445 T2: fidl::encoding::Encode<
2446 fidl::encoding::Boxed<fidl_fuchsia_bluetooth__common::UInt16>,
2447 D,
2448 >,
2449 T3: fidl::encoding::Encode<
2450 fidl::encoding::Optional<
2451 fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<36>>,
2452 >,
2453 D,
2454 >,
2455 T4: fidl::encoding::Encode<
2456 fidl::encoding::Optional<fidl::encoding::UnboundedVector<ServiceDataEntry>>,
2457 D,
2458 >,
2459 T5: fidl::encoding::Encode<
2460 fidl::encoding::Optional<
2461 fidl::encoding::UnboundedVector<ManufacturerSpecificDataEntry>,
2462 >,
2463 D,
2464 >,
2465 T6: fidl::encoding::Encode<
2466 fidl::encoding::Optional<
2467 fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<36>>,
2468 >,
2469 D,
2470 >,
2471 T7: fidl::encoding::Encode<
2472 fidl::encoding::Optional<
2473 fidl::encoding::UnboundedVector<fidl::encoding::UnboundedString>,
2474 >,
2475 D,
2476 >,
2477 > fidl::encoding::Encode<AdvertisingDataDeprecated, D>
2478 for (T0, T1, T2, T3, T4, T5, T6, T7)
2479 {
2480 #[inline]
2481 unsafe fn encode(
2482 self,
2483 encoder: &mut fidl::encoding::Encoder<'_, D>,
2484 offset: usize,
2485 depth: fidl::encoding::Depth,
2486 ) -> fidl::Result<()> {
2487 encoder.debug_check_bounds::<AdvertisingDataDeprecated>(offset);
2488 self.0.encode(encoder, offset + 0, depth)?;
2492 self.1.encode(encoder, offset + 16, depth)?;
2493 self.2.encode(encoder, offset + 24, depth)?;
2494 self.3.encode(encoder, offset + 32, depth)?;
2495 self.4.encode(encoder, offset + 48, depth)?;
2496 self.5.encode(encoder, offset + 64, depth)?;
2497 self.6.encode(encoder, offset + 80, depth)?;
2498 self.7.encode(encoder, offset + 96, depth)?;
2499 Ok(())
2500 }
2501 }
2502
2503 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2504 for AdvertisingDataDeprecated
2505 {
2506 #[inline(always)]
2507 fn new_empty() -> Self {
2508 Self {
2509 name: fidl::new_empty!(
2510 fidl::encoding::Optional<fidl::encoding::BoundedString<248>>,
2511 D
2512 ),
2513 tx_power_level: fidl::new_empty!(
2514 fidl::encoding::Boxed<fidl_fuchsia_bluetooth__common::Int8>,
2515 D
2516 ),
2517 appearance: fidl::new_empty!(
2518 fidl::encoding::Boxed<fidl_fuchsia_bluetooth__common::UInt16>,
2519 D
2520 ),
2521 service_uuids: fidl::new_empty!(
2522 fidl::encoding::Optional<
2523 fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<36>>,
2524 >,
2525 D
2526 ),
2527 service_data: fidl::new_empty!(
2528 fidl::encoding::Optional<fidl::encoding::UnboundedVector<ServiceDataEntry>>,
2529 D
2530 ),
2531 manufacturer_specific_data: fidl::new_empty!(
2532 fidl::encoding::Optional<
2533 fidl::encoding::UnboundedVector<ManufacturerSpecificDataEntry>,
2534 >,
2535 D
2536 ),
2537 solicited_service_uuids: fidl::new_empty!(
2538 fidl::encoding::Optional<
2539 fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<36>>,
2540 >,
2541 D
2542 ),
2543 uris: fidl::new_empty!(
2544 fidl::encoding::Optional<
2545 fidl::encoding::UnboundedVector<fidl::encoding::UnboundedString>,
2546 >,
2547 D
2548 ),
2549 }
2550 }
2551
2552 #[inline]
2553 unsafe fn decode(
2554 &mut self,
2555 decoder: &mut fidl::encoding::Decoder<'_, D>,
2556 offset: usize,
2557 _depth: fidl::encoding::Depth,
2558 ) -> fidl::Result<()> {
2559 decoder.debug_check_bounds::<Self>(offset);
2560 fidl::decode!(
2562 fidl::encoding::Optional<fidl::encoding::BoundedString<248>>,
2563 D,
2564 &mut self.name,
2565 decoder,
2566 offset + 0,
2567 _depth
2568 )?;
2569 fidl::decode!(
2570 fidl::encoding::Boxed<fidl_fuchsia_bluetooth__common::Int8>,
2571 D,
2572 &mut self.tx_power_level,
2573 decoder,
2574 offset + 16,
2575 _depth
2576 )?;
2577 fidl::decode!(
2578 fidl::encoding::Boxed<fidl_fuchsia_bluetooth__common::UInt16>,
2579 D,
2580 &mut self.appearance,
2581 decoder,
2582 offset + 24,
2583 _depth
2584 )?;
2585 fidl::decode!(
2586 fidl::encoding::Optional<
2587 fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<36>>,
2588 >,
2589 D,
2590 &mut self.service_uuids,
2591 decoder,
2592 offset + 32,
2593 _depth
2594 )?;
2595 fidl::decode!(
2596 fidl::encoding::Optional<fidl::encoding::UnboundedVector<ServiceDataEntry>>,
2597 D,
2598 &mut self.service_data,
2599 decoder,
2600 offset + 48,
2601 _depth
2602 )?;
2603 fidl::decode!(
2604 fidl::encoding::Optional<
2605 fidl::encoding::UnboundedVector<ManufacturerSpecificDataEntry>,
2606 >,
2607 D,
2608 &mut self.manufacturer_specific_data,
2609 decoder,
2610 offset + 64,
2611 _depth
2612 )?;
2613 fidl::decode!(
2614 fidl::encoding::Optional<
2615 fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<36>>,
2616 >,
2617 D,
2618 &mut self.solicited_service_uuids,
2619 decoder,
2620 offset + 80,
2621 _depth
2622 )?;
2623 fidl::decode!(
2624 fidl::encoding::Optional<
2625 fidl::encoding::UnboundedVector<fidl::encoding::UnboundedString>,
2626 >,
2627 D,
2628 &mut self.uris,
2629 decoder,
2630 offset + 96,
2631 _depth
2632 )?;
2633 Ok(())
2634 }
2635 }
2636
2637 impl fidl::encoding::ValueTypeMarker for CentralConnectPeripheralResponse {
2638 type Borrowed<'a> = &'a Self;
2639 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2640 value
2641 }
2642 }
2643
2644 unsafe impl fidl::encoding::TypeMarker for CentralConnectPeripheralResponse {
2645 type Owned = Self;
2646
2647 #[inline(always)]
2648 fn inline_align(_context: fidl::encoding::Context) -> usize {
2649 8
2650 }
2651
2652 #[inline(always)]
2653 fn inline_size(_context: fidl::encoding::Context) -> usize {
2654 8
2655 }
2656 }
2657
2658 unsafe impl<D: fidl::encoding::ResourceDialect>
2659 fidl::encoding::Encode<CentralConnectPeripheralResponse, D>
2660 for &CentralConnectPeripheralResponse
2661 {
2662 #[inline]
2663 unsafe fn encode(
2664 self,
2665 encoder: &mut fidl::encoding::Encoder<'_, D>,
2666 offset: usize,
2667 _depth: fidl::encoding::Depth,
2668 ) -> fidl::Result<()> {
2669 encoder.debug_check_bounds::<CentralConnectPeripheralResponse>(offset);
2670 fidl::encoding::Encode::<CentralConnectPeripheralResponse, D>::encode(
2672 (
2673 <fidl_fuchsia_bluetooth__common::Status as fidl::encoding::ValueTypeMarker>::borrow(&self.status),
2674 ),
2675 encoder, offset, _depth
2676 )
2677 }
2678 }
2679 unsafe impl<
2680 D: fidl::encoding::ResourceDialect,
2681 T0: fidl::encoding::Encode<fidl_fuchsia_bluetooth__common::Status, D>,
2682 > fidl::encoding::Encode<CentralConnectPeripheralResponse, D> for (T0,)
2683 {
2684 #[inline]
2685 unsafe fn encode(
2686 self,
2687 encoder: &mut fidl::encoding::Encoder<'_, D>,
2688 offset: usize,
2689 depth: fidl::encoding::Depth,
2690 ) -> fidl::Result<()> {
2691 encoder.debug_check_bounds::<CentralConnectPeripheralResponse>(offset);
2692 self.0.encode(encoder, offset + 0, depth)?;
2696 Ok(())
2697 }
2698 }
2699
2700 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2701 for CentralConnectPeripheralResponse
2702 {
2703 #[inline(always)]
2704 fn new_empty() -> Self {
2705 Self { status: fidl::new_empty!(fidl_fuchsia_bluetooth__common::Status, D) }
2706 }
2707
2708 #[inline]
2709 unsafe fn decode(
2710 &mut self,
2711 decoder: &mut fidl::encoding::Decoder<'_, D>,
2712 offset: usize,
2713 _depth: fidl::encoding::Depth,
2714 ) -> fidl::Result<()> {
2715 decoder.debug_check_bounds::<Self>(offset);
2716 fidl::decode!(
2718 fidl_fuchsia_bluetooth__common::Status,
2719 D,
2720 &mut self.status,
2721 decoder,
2722 offset + 0,
2723 _depth
2724 )?;
2725 Ok(())
2726 }
2727 }
2728
2729 impl fidl::encoding::ValueTypeMarker for CentralDisconnectPeripheralRequest {
2730 type Borrowed<'a> = &'a Self;
2731 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2732 value
2733 }
2734 }
2735
2736 unsafe impl fidl::encoding::TypeMarker for CentralDisconnectPeripheralRequest {
2737 type Owned = Self;
2738
2739 #[inline(always)]
2740 fn inline_align(_context: fidl::encoding::Context) -> usize {
2741 8
2742 }
2743
2744 #[inline(always)]
2745 fn inline_size(_context: fidl::encoding::Context) -> usize {
2746 16
2747 }
2748 }
2749
2750 unsafe impl<D: fidl::encoding::ResourceDialect>
2751 fidl::encoding::Encode<CentralDisconnectPeripheralRequest, D>
2752 for &CentralDisconnectPeripheralRequest
2753 {
2754 #[inline]
2755 unsafe fn encode(
2756 self,
2757 encoder: &mut fidl::encoding::Encoder<'_, D>,
2758 offset: usize,
2759 _depth: fidl::encoding::Depth,
2760 ) -> fidl::Result<()> {
2761 encoder.debug_check_bounds::<CentralDisconnectPeripheralRequest>(offset);
2762 fidl::encoding::Encode::<CentralDisconnectPeripheralRequest, D>::encode(
2764 (<fidl::encoding::BoundedString<16> as fidl::encoding::ValueTypeMarker>::borrow(
2765 &self.identifier,
2766 ),),
2767 encoder,
2768 offset,
2769 _depth,
2770 )
2771 }
2772 }
2773 unsafe impl<
2774 D: fidl::encoding::ResourceDialect,
2775 T0: fidl::encoding::Encode<fidl::encoding::BoundedString<16>, D>,
2776 > fidl::encoding::Encode<CentralDisconnectPeripheralRequest, D> for (T0,)
2777 {
2778 #[inline]
2779 unsafe fn encode(
2780 self,
2781 encoder: &mut fidl::encoding::Encoder<'_, D>,
2782 offset: usize,
2783 depth: fidl::encoding::Depth,
2784 ) -> fidl::Result<()> {
2785 encoder.debug_check_bounds::<CentralDisconnectPeripheralRequest>(offset);
2786 self.0.encode(encoder, offset + 0, depth)?;
2790 Ok(())
2791 }
2792 }
2793
2794 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2795 for CentralDisconnectPeripheralRequest
2796 {
2797 #[inline(always)]
2798 fn new_empty() -> Self {
2799 Self { identifier: fidl::new_empty!(fidl::encoding::BoundedString<16>, D) }
2800 }
2801
2802 #[inline]
2803 unsafe fn decode(
2804 &mut self,
2805 decoder: &mut fidl::encoding::Decoder<'_, D>,
2806 offset: usize,
2807 _depth: fidl::encoding::Depth,
2808 ) -> fidl::Result<()> {
2809 decoder.debug_check_bounds::<Self>(offset);
2810 fidl::decode!(
2812 fidl::encoding::BoundedString<16>,
2813 D,
2814 &mut self.identifier,
2815 decoder,
2816 offset + 0,
2817 _depth
2818 )?;
2819 Ok(())
2820 }
2821 }
2822
2823 impl fidl::encoding::ValueTypeMarker for CentralDisconnectPeripheralResponse {
2824 type Borrowed<'a> = &'a Self;
2825 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2826 value
2827 }
2828 }
2829
2830 unsafe impl fidl::encoding::TypeMarker for CentralDisconnectPeripheralResponse {
2831 type Owned = Self;
2832
2833 #[inline(always)]
2834 fn inline_align(_context: fidl::encoding::Context) -> usize {
2835 8
2836 }
2837
2838 #[inline(always)]
2839 fn inline_size(_context: fidl::encoding::Context) -> usize {
2840 8
2841 }
2842 }
2843
2844 unsafe impl<D: fidl::encoding::ResourceDialect>
2845 fidl::encoding::Encode<CentralDisconnectPeripheralResponse, D>
2846 for &CentralDisconnectPeripheralResponse
2847 {
2848 #[inline]
2849 unsafe fn encode(
2850 self,
2851 encoder: &mut fidl::encoding::Encoder<'_, D>,
2852 offset: usize,
2853 _depth: fidl::encoding::Depth,
2854 ) -> fidl::Result<()> {
2855 encoder.debug_check_bounds::<CentralDisconnectPeripheralResponse>(offset);
2856 fidl::encoding::Encode::<CentralDisconnectPeripheralResponse, D>::encode(
2858 (
2859 <fidl_fuchsia_bluetooth__common::Status as fidl::encoding::ValueTypeMarker>::borrow(&self.status),
2860 ),
2861 encoder, offset, _depth
2862 )
2863 }
2864 }
2865 unsafe impl<
2866 D: fidl::encoding::ResourceDialect,
2867 T0: fidl::encoding::Encode<fidl_fuchsia_bluetooth__common::Status, D>,
2868 > fidl::encoding::Encode<CentralDisconnectPeripheralResponse, D> for (T0,)
2869 {
2870 #[inline]
2871 unsafe fn encode(
2872 self,
2873 encoder: &mut fidl::encoding::Encoder<'_, D>,
2874 offset: usize,
2875 depth: fidl::encoding::Depth,
2876 ) -> fidl::Result<()> {
2877 encoder.debug_check_bounds::<CentralDisconnectPeripheralResponse>(offset);
2878 self.0.encode(encoder, offset + 0, depth)?;
2882 Ok(())
2883 }
2884 }
2885
2886 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2887 for CentralDisconnectPeripheralResponse
2888 {
2889 #[inline(always)]
2890 fn new_empty() -> Self {
2891 Self { status: fidl::new_empty!(fidl_fuchsia_bluetooth__common::Status, D) }
2892 }
2893
2894 #[inline]
2895 unsafe fn decode(
2896 &mut self,
2897 decoder: &mut fidl::encoding::Decoder<'_, D>,
2898 offset: usize,
2899 _depth: fidl::encoding::Depth,
2900 ) -> fidl::Result<()> {
2901 decoder.debug_check_bounds::<Self>(offset);
2902 fidl::decode!(
2904 fidl_fuchsia_bluetooth__common::Status,
2905 D,
2906 &mut self.status,
2907 decoder,
2908 offset + 0,
2909 _depth
2910 )?;
2911 Ok(())
2912 }
2913 }
2914
2915 impl fidl::encoding::ValueTypeMarker for CentralGetPeripheralRequest {
2916 type Borrowed<'a> = &'a Self;
2917 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2918 value
2919 }
2920 }
2921
2922 unsafe impl fidl::encoding::TypeMarker for CentralGetPeripheralRequest {
2923 type Owned = Self;
2924
2925 #[inline(always)]
2926 fn inline_align(_context: fidl::encoding::Context) -> usize {
2927 8
2928 }
2929
2930 #[inline(always)]
2931 fn inline_size(_context: fidl::encoding::Context) -> usize {
2932 16
2933 }
2934 }
2935
2936 unsafe impl<D: fidl::encoding::ResourceDialect>
2937 fidl::encoding::Encode<CentralGetPeripheralRequest, D> for &CentralGetPeripheralRequest
2938 {
2939 #[inline]
2940 unsafe fn encode(
2941 self,
2942 encoder: &mut fidl::encoding::Encoder<'_, D>,
2943 offset: usize,
2944 _depth: fidl::encoding::Depth,
2945 ) -> fidl::Result<()> {
2946 encoder.debug_check_bounds::<CentralGetPeripheralRequest>(offset);
2947 fidl::encoding::Encode::<CentralGetPeripheralRequest, D>::encode(
2949 (<fidl::encoding::BoundedString<16> as fidl::encoding::ValueTypeMarker>::borrow(
2950 &self.identifier,
2951 ),),
2952 encoder,
2953 offset,
2954 _depth,
2955 )
2956 }
2957 }
2958 unsafe impl<
2959 D: fidl::encoding::ResourceDialect,
2960 T0: fidl::encoding::Encode<fidl::encoding::BoundedString<16>, D>,
2961 > fidl::encoding::Encode<CentralGetPeripheralRequest, D> for (T0,)
2962 {
2963 #[inline]
2964 unsafe fn encode(
2965 self,
2966 encoder: &mut fidl::encoding::Encoder<'_, D>,
2967 offset: usize,
2968 depth: fidl::encoding::Depth,
2969 ) -> fidl::Result<()> {
2970 encoder.debug_check_bounds::<CentralGetPeripheralRequest>(offset);
2971 self.0.encode(encoder, offset + 0, depth)?;
2975 Ok(())
2976 }
2977 }
2978
2979 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2980 for CentralGetPeripheralRequest
2981 {
2982 #[inline(always)]
2983 fn new_empty() -> Self {
2984 Self { identifier: fidl::new_empty!(fidl::encoding::BoundedString<16>, D) }
2985 }
2986
2987 #[inline]
2988 unsafe fn decode(
2989 &mut self,
2990 decoder: &mut fidl::encoding::Decoder<'_, D>,
2991 offset: usize,
2992 _depth: fidl::encoding::Depth,
2993 ) -> fidl::Result<()> {
2994 decoder.debug_check_bounds::<Self>(offset);
2995 fidl::decode!(
2997 fidl::encoding::BoundedString<16>,
2998 D,
2999 &mut self.identifier,
3000 decoder,
3001 offset + 0,
3002 _depth
3003 )?;
3004 Ok(())
3005 }
3006 }
3007
3008 impl fidl::encoding::ValueTypeMarker for CentralGetPeripheralResponse {
3009 type Borrowed<'a> = &'a Self;
3010 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3011 value
3012 }
3013 }
3014
3015 unsafe impl fidl::encoding::TypeMarker for CentralGetPeripheralResponse {
3016 type Owned = Self;
3017
3018 #[inline(always)]
3019 fn inline_align(_context: fidl::encoding::Context) -> usize {
3020 8
3021 }
3022
3023 #[inline(always)]
3024 fn inline_size(_context: fidl::encoding::Context) -> usize {
3025 8
3026 }
3027 }
3028
3029 unsafe impl<D: fidl::encoding::ResourceDialect>
3030 fidl::encoding::Encode<CentralGetPeripheralResponse, D> for &CentralGetPeripheralResponse
3031 {
3032 #[inline]
3033 unsafe fn encode(
3034 self,
3035 encoder: &mut fidl::encoding::Encoder<'_, D>,
3036 offset: usize,
3037 _depth: fidl::encoding::Depth,
3038 ) -> fidl::Result<()> {
3039 encoder.debug_check_bounds::<CentralGetPeripheralResponse>(offset);
3040 fidl::encoding::Encode::<CentralGetPeripheralResponse, D>::encode(
3042 (<fidl::encoding::Boxed<RemoteDevice> as fidl::encoding::ValueTypeMarker>::borrow(
3043 &self.peripheral,
3044 ),),
3045 encoder,
3046 offset,
3047 _depth,
3048 )
3049 }
3050 }
3051 unsafe impl<
3052 D: fidl::encoding::ResourceDialect,
3053 T0: fidl::encoding::Encode<fidl::encoding::Boxed<RemoteDevice>, D>,
3054 > fidl::encoding::Encode<CentralGetPeripheralResponse, D> for (T0,)
3055 {
3056 #[inline]
3057 unsafe fn encode(
3058 self,
3059 encoder: &mut fidl::encoding::Encoder<'_, D>,
3060 offset: usize,
3061 depth: fidl::encoding::Depth,
3062 ) -> fidl::Result<()> {
3063 encoder.debug_check_bounds::<CentralGetPeripheralResponse>(offset);
3064 self.0.encode(encoder, offset + 0, depth)?;
3068 Ok(())
3069 }
3070 }
3071
3072 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3073 for CentralGetPeripheralResponse
3074 {
3075 #[inline(always)]
3076 fn new_empty() -> Self {
3077 Self { peripheral: fidl::new_empty!(fidl::encoding::Boxed<RemoteDevice>, D) }
3078 }
3079
3080 #[inline]
3081 unsafe fn decode(
3082 &mut self,
3083 decoder: &mut fidl::encoding::Decoder<'_, D>,
3084 offset: usize,
3085 _depth: fidl::encoding::Depth,
3086 ) -> fidl::Result<()> {
3087 decoder.debug_check_bounds::<Self>(offset);
3088 fidl::decode!(
3090 fidl::encoding::Boxed<RemoteDevice>,
3091 D,
3092 &mut self.peripheral,
3093 decoder,
3094 offset + 0,
3095 _depth
3096 )?;
3097 Ok(())
3098 }
3099 }
3100
3101 impl fidl::encoding::ValueTypeMarker for CentralGetPeripheralsRequest {
3102 type Borrowed<'a> = &'a Self;
3103 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3104 value
3105 }
3106 }
3107
3108 unsafe impl fidl::encoding::TypeMarker for CentralGetPeripheralsRequest {
3109 type Owned = Self;
3110
3111 #[inline(always)]
3112 fn inline_align(_context: fidl::encoding::Context) -> usize {
3113 8
3114 }
3115
3116 #[inline(always)]
3117 fn inline_size(_context: fidl::encoding::Context) -> usize {
3118 16
3119 }
3120 }
3121
3122 unsafe impl<D: fidl::encoding::ResourceDialect>
3123 fidl::encoding::Encode<CentralGetPeripheralsRequest, D> for &CentralGetPeripheralsRequest
3124 {
3125 #[inline]
3126 unsafe fn encode(
3127 self,
3128 encoder: &mut fidl::encoding::Encoder<'_, D>,
3129 offset: usize,
3130 _depth: fidl::encoding::Depth,
3131 ) -> fidl::Result<()> {
3132 encoder.debug_check_bounds::<CentralGetPeripheralsRequest>(offset);
3133 fidl::encoding::Encode::<CentralGetPeripheralsRequest, D>::encode(
3135 (<fidl::encoding::Optional<
3136 fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<36>>,
3137 > as fidl::encoding::ValueTypeMarker>::borrow(&self.service_uuids),),
3138 encoder,
3139 offset,
3140 _depth,
3141 )
3142 }
3143 }
3144 unsafe impl<
3145 D: fidl::encoding::ResourceDialect,
3146 T0: fidl::encoding::Encode<
3147 fidl::encoding::Optional<
3148 fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<36>>,
3149 >,
3150 D,
3151 >,
3152 > fidl::encoding::Encode<CentralGetPeripheralsRequest, D> for (T0,)
3153 {
3154 #[inline]
3155 unsafe fn encode(
3156 self,
3157 encoder: &mut fidl::encoding::Encoder<'_, D>,
3158 offset: usize,
3159 depth: fidl::encoding::Depth,
3160 ) -> fidl::Result<()> {
3161 encoder.debug_check_bounds::<CentralGetPeripheralsRequest>(offset);
3162 self.0.encode(encoder, offset + 0, depth)?;
3166 Ok(())
3167 }
3168 }
3169
3170 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3171 for CentralGetPeripheralsRequest
3172 {
3173 #[inline(always)]
3174 fn new_empty() -> Self {
3175 Self {
3176 service_uuids: fidl::new_empty!(
3177 fidl::encoding::Optional<
3178 fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<36>>,
3179 >,
3180 D
3181 ),
3182 }
3183 }
3184
3185 #[inline]
3186 unsafe fn decode(
3187 &mut self,
3188 decoder: &mut fidl::encoding::Decoder<'_, D>,
3189 offset: usize,
3190 _depth: fidl::encoding::Depth,
3191 ) -> fidl::Result<()> {
3192 decoder.debug_check_bounds::<Self>(offset);
3193 fidl::decode!(
3195 fidl::encoding::Optional<
3196 fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<36>>,
3197 >,
3198 D,
3199 &mut self.service_uuids,
3200 decoder,
3201 offset + 0,
3202 _depth
3203 )?;
3204 Ok(())
3205 }
3206 }
3207
3208 impl fidl::encoding::ValueTypeMarker for CentralGetPeripheralsResponse {
3209 type Borrowed<'a> = &'a Self;
3210 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3211 value
3212 }
3213 }
3214
3215 unsafe impl fidl::encoding::TypeMarker for CentralGetPeripheralsResponse {
3216 type Owned = Self;
3217
3218 #[inline(always)]
3219 fn inline_align(_context: fidl::encoding::Context) -> usize {
3220 8
3221 }
3222
3223 #[inline(always)]
3224 fn inline_size(_context: fidl::encoding::Context) -> usize {
3225 16
3226 }
3227 }
3228
3229 unsafe impl<D: fidl::encoding::ResourceDialect>
3230 fidl::encoding::Encode<CentralGetPeripheralsResponse, D>
3231 for &CentralGetPeripheralsResponse
3232 {
3233 #[inline]
3234 unsafe fn encode(
3235 self,
3236 encoder: &mut fidl::encoding::Encoder<'_, D>,
3237 offset: usize,
3238 _depth: fidl::encoding::Depth,
3239 ) -> fidl::Result<()> {
3240 encoder.debug_check_bounds::<CentralGetPeripheralsResponse>(offset);
3241 fidl::encoding::Encode::<CentralGetPeripheralsResponse, D>::encode(
3243 (
3244 <fidl::encoding::UnboundedVector<RemoteDevice> as fidl::encoding::ValueTypeMarker>::borrow(&self.peripherals),
3245 ),
3246 encoder, offset, _depth
3247 )
3248 }
3249 }
3250 unsafe impl<
3251 D: fidl::encoding::ResourceDialect,
3252 T0: fidl::encoding::Encode<fidl::encoding::UnboundedVector<RemoteDevice>, D>,
3253 > fidl::encoding::Encode<CentralGetPeripheralsResponse, D> for (T0,)
3254 {
3255 #[inline]
3256 unsafe fn encode(
3257 self,
3258 encoder: &mut fidl::encoding::Encoder<'_, D>,
3259 offset: usize,
3260 depth: fidl::encoding::Depth,
3261 ) -> fidl::Result<()> {
3262 encoder.debug_check_bounds::<CentralGetPeripheralsResponse>(offset);
3263 self.0.encode(encoder, offset + 0, depth)?;
3267 Ok(())
3268 }
3269 }
3270
3271 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3272 for CentralGetPeripheralsResponse
3273 {
3274 #[inline(always)]
3275 fn new_empty() -> Self {
3276 Self { peripherals: fidl::new_empty!(fidl::encoding::UnboundedVector<RemoteDevice>, D) }
3277 }
3278
3279 #[inline]
3280 unsafe fn decode(
3281 &mut self,
3282 decoder: &mut fidl::encoding::Decoder<'_, D>,
3283 offset: usize,
3284 _depth: fidl::encoding::Depth,
3285 ) -> fidl::Result<()> {
3286 decoder.debug_check_bounds::<Self>(offset);
3287 fidl::decode!(
3289 fidl::encoding::UnboundedVector<RemoteDevice>,
3290 D,
3291 &mut self.peripherals,
3292 decoder,
3293 offset + 0,
3294 _depth
3295 )?;
3296 Ok(())
3297 }
3298 }
3299
3300 impl fidl::encoding::ValueTypeMarker for CentralOnDeviceDiscoveredRequest {
3301 type Borrowed<'a> = &'a Self;
3302 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3303 value
3304 }
3305 }
3306
3307 unsafe impl fidl::encoding::TypeMarker for CentralOnDeviceDiscoveredRequest {
3308 type Owned = Self;
3309
3310 #[inline(always)]
3311 fn inline_align(_context: fidl::encoding::Context) -> usize {
3312 8
3313 }
3314
3315 #[inline(always)]
3316 fn inline_size(_context: fidl::encoding::Context) -> usize {
3317 40
3318 }
3319 }
3320
3321 unsafe impl<D: fidl::encoding::ResourceDialect>
3322 fidl::encoding::Encode<CentralOnDeviceDiscoveredRequest, D>
3323 for &CentralOnDeviceDiscoveredRequest
3324 {
3325 #[inline]
3326 unsafe fn encode(
3327 self,
3328 encoder: &mut fidl::encoding::Encoder<'_, D>,
3329 offset: usize,
3330 _depth: fidl::encoding::Depth,
3331 ) -> fidl::Result<()> {
3332 encoder.debug_check_bounds::<CentralOnDeviceDiscoveredRequest>(offset);
3333 fidl::encoding::Encode::<CentralOnDeviceDiscoveredRequest, D>::encode(
3335 (<RemoteDevice as fidl::encoding::ValueTypeMarker>::borrow(&self.device),),
3336 encoder,
3337 offset,
3338 _depth,
3339 )
3340 }
3341 }
3342 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<RemoteDevice, D>>
3343 fidl::encoding::Encode<CentralOnDeviceDiscoveredRequest, D> for (T0,)
3344 {
3345 #[inline]
3346 unsafe fn encode(
3347 self,
3348 encoder: &mut fidl::encoding::Encoder<'_, D>,
3349 offset: usize,
3350 depth: fidl::encoding::Depth,
3351 ) -> fidl::Result<()> {
3352 encoder.debug_check_bounds::<CentralOnDeviceDiscoveredRequest>(offset);
3353 self.0.encode(encoder, offset + 0, depth)?;
3357 Ok(())
3358 }
3359 }
3360
3361 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3362 for CentralOnDeviceDiscoveredRequest
3363 {
3364 #[inline(always)]
3365 fn new_empty() -> Self {
3366 Self { device: fidl::new_empty!(RemoteDevice, D) }
3367 }
3368
3369 #[inline]
3370 unsafe fn decode(
3371 &mut self,
3372 decoder: &mut fidl::encoding::Decoder<'_, D>,
3373 offset: usize,
3374 _depth: fidl::encoding::Depth,
3375 ) -> fidl::Result<()> {
3376 decoder.debug_check_bounds::<Self>(offset);
3377 fidl::decode!(RemoteDevice, D, &mut self.device, decoder, offset + 0, _depth)?;
3379 Ok(())
3380 }
3381 }
3382
3383 impl fidl::encoding::ValueTypeMarker for CentralOnPeripheralDisconnectedRequest {
3384 type Borrowed<'a> = &'a Self;
3385 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3386 value
3387 }
3388 }
3389
3390 unsafe impl fidl::encoding::TypeMarker for CentralOnPeripheralDisconnectedRequest {
3391 type Owned = Self;
3392
3393 #[inline(always)]
3394 fn inline_align(_context: fidl::encoding::Context) -> usize {
3395 8
3396 }
3397
3398 #[inline(always)]
3399 fn inline_size(_context: fidl::encoding::Context) -> usize {
3400 16
3401 }
3402 }
3403
3404 unsafe impl<D: fidl::encoding::ResourceDialect>
3405 fidl::encoding::Encode<CentralOnPeripheralDisconnectedRequest, D>
3406 for &CentralOnPeripheralDisconnectedRequest
3407 {
3408 #[inline]
3409 unsafe fn encode(
3410 self,
3411 encoder: &mut fidl::encoding::Encoder<'_, D>,
3412 offset: usize,
3413 _depth: fidl::encoding::Depth,
3414 ) -> fidl::Result<()> {
3415 encoder.debug_check_bounds::<CentralOnPeripheralDisconnectedRequest>(offset);
3416 fidl::encoding::Encode::<CentralOnPeripheralDisconnectedRequest, D>::encode(
3418 (<fidl::encoding::BoundedString<16> as fidl::encoding::ValueTypeMarker>::borrow(
3419 &self.identifier,
3420 ),),
3421 encoder,
3422 offset,
3423 _depth,
3424 )
3425 }
3426 }
3427 unsafe impl<
3428 D: fidl::encoding::ResourceDialect,
3429 T0: fidl::encoding::Encode<fidl::encoding::BoundedString<16>, D>,
3430 > fidl::encoding::Encode<CentralOnPeripheralDisconnectedRequest, D> for (T0,)
3431 {
3432 #[inline]
3433 unsafe fn encode(
3434 self,
3435 encoder: &mut fidl::encoding::Encoder<'_, D>,
3436 offset: usize,
3437 depth: fidl::encoding::Depth,
3438 ) -> fidl::Result<()> {
3439 encoder.debug_check_bounds::<CentralOnPeripheralDisconnectedRequest>(offset);
3440 self.0.encode(encoder, offset + 0, depth)?;
3444 Ok(())
3445 }
3446 }
3447
3448 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3449 for CentralOnPeripheralDisconnectedRequest
3450 {
3451 #[inline(always)]
3452 fn new_empty() -> Self {
3453 Self { identifier: fidl::new_empty!(fidl::encoding::BoundedString<16>, D) }
3454 }
3455
3456 #[inline]
3457 unsafe fn decode(
3458 &mut self,
3459 decoder: &mut fidl::encoding::Decoder<'_, D>,
3460 offset: usize,
3461 _depth: fidl::encoding::Depth,
3462 ) -> fidl::Result<()> {
3463 decoder.debug_check_bounds::<Self>(offset);
3464 fidl::decode!(
3466 fidl::encoding::BoundedString<16>,
3467 D,
3468 &mut self.identifier,
3469 decoder,
3470 offset + 0,
3471 _depth
3472 )?;
3473 Ok(())
3474 }
3475 }
3476
3477 impl fidl::encoding::ValueTypeMarker for CentralOnScanStateChangedRequest {
3478 type Borrowed<'a> = &'a Self;
3479 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3480 value
3481 }
3482 }
3483
3484 unsafe impl fidl::encoding::TypeMarker for CentralOnScanStateChangedRequest {
3485 type Owned = Self;
3486
3487 #[inline(always)]
3488 fn inline_align(_context: fidl::encoding::Context) -> usize {
3489 1
3490 }
3491
3492 #[inline(always)]
3493 fn inline_size(_context: fidl::encoding::Context) -> usize {
3494 1
3495 }
3496 }
3497
3498 unsafe impl<D: fidl::encoding::ResourceDialect>
3499 fidl::encoding::Encode<CentralOnScanStateChangedRequest, D>
3500 for &CentralOnScanStateChangedRequest
3501 {
3502 #[inline]
3503 unsafe fn encode(
3504 self,
3505 encoder: &mut fidl::encoding::Encoder<'_, D>,
3506 offset: usize,
3507 _depth: fidl::encoding::Depth,
3508 ) -> fidl::Result<()> {
3509 encoder.debug_check_bounds::<CentralOnScanStateChangedRequest>(offset);
3510 fidl::encoding::Encode::<CentralOnScanStateChangedRequest, D>::encode(
3512 (<bool as fidl::encoding::ValueTypeMarker>::borrow(&self.scanning),),
3513 encoder,
3514 offset,
3515 _depth,
3516 )
3517 }
3518 }
3519 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<bool, D>>
3520 fidl::encoding::Encode<CentralOnScanStateChangedRequest, D> for (T0,)
3521 {
3522 #[inline]
3523 unsafe fn encode(
3524 self,
3525 encoder: &mut fidl::encoding::Encoder<'_, D>,
3526 offset: usize,
3527 depth: fidl::encoding::Depth,
3528 ) -> fidl::Result<()> {
3529 encoder.debug_check_bounds::<CentralOnScanStateChangedRequest>(offset);
3530 self.0.encode(encoder, offset + 0, depth)?;
3534 Ok(())
3535 }
3536 }
3537
3538 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3539 for CentralOnScanStateChangedRequest
3540 {
3541 #[inline(always)]
3542 fn new_empty() -> Self {
3543 Self { scanning: fidl::new_empty!(bool, D) }
3544 }
3545
3546 #[inline]
3547 unsafe fn decode(
3548 &mut self,
3549 decoder: &mut fidl::encoding::Decoder<'_, D>,
3550 offset: usize,
3551 _depth: fidl::encoding::Depth,
3552 ) -> fidl::Result<()> {
3553 decoder.debug_check_bounds::<Self>(offset);
3554 fidl::decode!(bool, D, &mut self.scanning, decoder, offset + 0, _depth)?;
3556 Ok(())
3557 }
3558 }
3559
3560 impl fidl::encoding::ValueTypeMarker for CentralStartScanRequest {
3561 type Borrowed<'a> = &'a Self;
3562 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3563 value
3564 }
3565 }
3566
3567 unsafe impl fidl::encoding::TypeMarker for CentralStartScanRequest {
3568 type Owned = Self;
3569
3570 #[inline(always)]
3571 fn inline_align(_context: fidl::encoding::Context) -> usize {
3572 8
3573 }
3574
3575 #[inline(always)]
3576 fn inline_size(_context: fidl::encoding::Context) -> usize {
3577 8
3578 }
3579 }
3580
3581 unsafe impl<D: fidl::encoding::ResourceDialect>
3582 fidl::encoding::Encode<CentralStartScanRequest, D> for &CentralStartScanRequest
3583 {
3584 #[inline]
3585 unsafe fn encode(
3586 self,
3587 encoder: &mut fidl::encoding::Encoder<'_, D>,
3588 offset: usize,
3589 _depth: fidl::encoding::Depth,
3590 ) -> fidl::Result<()> {
3591 encoder.debug_check_bounds::<CentralStartScanRequest>(offset);
3592 fidl::encoding::Encode::<CentralStartScanRequest, D>::encode(
3594 (<fidl::encoding::Boxed<ScanFilter> as fidl::encoding::ValueTypeMarker>::borrow(
3595 &self.filter,
3596 ),),
3597 encoder,
3598 offset,
3599 _depth,
3600 )
3601 }
3602 }
3603 unsafe impl<
3604 D: fidl::encoding::ResourceDialect,
3605 T0: fidl::encoding::Encode<fidl::encoding::Boxed<ScanFilter>, D>,
3606 > fidl::encoding::Encode<CentralStartScanRequest, D> for (T0,)
3607 {
3608 #[inline]
3609 unsafe fn encode(
3610 self,
3611 encoder: &mut fidl::encoding::Encoder<'_, D>,
3612 offset: usize,
3613 depth: fidl::encoding::Depth,
3614 ) -> fidl::Result<()> {
3615 encoder.debug_check_bounds::<CentralStartScanRequest>(offset);
3616 self.0.encode(encoder, offset + 0, depth)?;
3620 Ok(())
3621 }
3622 }
3623
3624 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3625 for CentralStartScanRequest
3626 {
3627 #[inline(always)]
3628 fn new_empty() -> Self {
3629 Self { filter: fidl::new_empty!(fidl::encoding::Boxed<ScanFilter>, D) }
3630 }
3631
3632 #[inline]
3633 unsafe fn decode(
3634 &mut self,
3635 decoder: &mut fidl::encoding::Decoder<'_, D>,
3636 offset: usize,
3637 _depth: fidl::encoding::Depth,
3638 ) -> fidl::Result<()> {
3639 decoder.debug_check_bounds::<Self>(offset);
3640 fidl::decode!(
3642 fidl::encoding::Boxed<ScanFilter>,
3643 D,
3644 &mut self.filter,
3645 decoder,
3646 offset + 0,
3647 _depth
3648 )?;
3649 Ok(())
3650 }
3651 }
3652
3653 impl fidl::encoding::ValueTypeMarker for CentralStartScanResponse {
3654 type Borrowed<'a> = &'a Self;
3655 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3656 value
3657 }
3658 }
3659
3660 unsafe impl fidl::encoding::TypeMarker for CentralStartScanResponse {
3661 type Owned = Self;
3662
3663 #[inline(always)]
3664 fn inline_align(_context: fidl::encoding::Context) -> usize {
3665 8
3666 }
3667
3668 #[inline(always)]
3669 fn inline_size(_context: fidl::encoding::Context) -> usize {
3670 8
3671 }
3672 }
3673
3674 unsafe impl<D: fidl::encoding::ResourceDialect>
3675 fidl::encoding::Encode<CentralStartScanResponse, D> for &CentralStartScanResponse
3676 {
3677 #[inline]
3678 unsafe fn encode(
3679 self,
3680 encoder: &mut fidl::encoding::Encoder<'_, D>,
3681 offset: usize,
3682 _depth: fidl::encoding::Depth,
3683 ) -> fidl::Result<()> {
3684 encoder.debug_check_bounds::<CentralStartScanResponse>(offset);
3685 fidl::encoding::Encode::<CentralStartScanResponse, D>::encode(
3687 (
3688 <fidl_fuchsia_bluetooth__common::Status as fidl::encoding::ValueTypeMarker>::borrow(&self.status),
3689 ),
3690 encoder, offset, _depth
3691 )
3692 }
3693 }
3694 unsafe impl<
3695 D: fidl::encoding::ResourceDialect,
3696 T0: fidl::encoding::Encode<fidl_fuchsia_bluetooth__common::Status, D>,
3697 > fidl::encoding::Encode<CentralStartScanResponse, D> for (T0,)
3698 {
3699 #[inline]
3700 unsafe fn encode(
3701 self,
3702 encoder: &mut fidl::encoding::Encoder<'_, D>,
3703 offset: usize,
3704 depth: fidl::encoding::Depth,
3705 ) -> fidl::Result<()> {
3706 encoder.debug_check_bounds::<CentralStartScanResponse>(offset);
3707 self.0.encode(encoder, offset + 0, depth)?;
3711 Ok(())
3712 }
3713 }
3714
3715 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3716 for CentralStartScanResponse
3717 {
3718 #[inline(always)]
3719 fn new_empty() -> Self {
3720 Self { status: fidl::new_empty!(fidl_fuchsia_bluetooth__common::Status, D) }
3721 }
3722
3723 #[inline]
3724 unsafe fn decode(
3725 &mut self,
3726 decoder: &mut fidl::encoding::Decoder<'_, D>,
3727 offset: usize,
3728 _depth: fidl::encoding::Depth,
3729 ) -> fidl::Result<()> {
3730 decoder.debug_check_bounds::<Self>(offset);
3731 fidl::decode!(
3733 fidl_fuchsia_bluetooth__common::Status,
3734 D,
3735 &mut self.status,
3736 decoder,
3737 offset + 0,
3738 _depth
3739 )?;
3740 Ok(())
3741 }
3742 }
3743
3744 impl fidl::encoding::ValueTypeMarker for ManufacturerData {
3745 type Borrowed<'a> = &'a Self;
3746 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3747 value
3748 }
3749 }
3750
3751 unsafe impl fidl::encoding::TypeMarker for ManufacturerData {
3752 type Owned = Self;
3753
3754 #[inline(always)]
3755 fn inline_align(_context: fidl::encoding::Context) -> usize {
3756 8
3757 }
3758
3759 #[inline(always)]
3760 fn inline_size(_context: fidl::encoding::Context) -> usize {
3761 24
3762 }
3763 }
3764
3765 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ManufacturerData, D>
3766 for &ManufacturerData
3767 {
3768 #[inline]
3769 unsafe fn encode(
3770 self,
3771 encoder: &mut fidl::encoding::Encoder<'_, D>,
3772 offset: usize,
3773 _depth: fidl::encoding::Depth,
3774 ) -> fidl::Result<()> {
3775 encoder.debug_check_bounds::<ManufacturerData>(offset);
3776 fidl::encoding::Encode::<ManufacturerData, D>::encode(
3778 (
3779 <u16 as fidl::encoding::ValueTypeMarker>::borrow(&self.company_id),
3780 <fidl::encoding::Vector<u8, 252> as fidl::encoding::ValueTypeMarker>::borrow(
3781 &self.data,
3782 ),
3783 ),
3784 encoder,
3785 offset,
3786 _depth,
3787 )
3788 }
3789 }
3790 unsafe impl<
3791 D: fidl::encoding::ResourceDialect,
3792 T0: fidl::encoding::Encode<u16, D>,
3793 T1: fidl::encoding::Encode<fidl::encoding::Vector<u8, 252>, D>,
3794 > fidl::encoding::Encode<ManufacturerData, D> for (T0, T1)
3795 {
3796 #[inline]
3797 unsafe fn encode(
3798 self,
3799 encoder: &mut fidl::encoding::Encoder<'_, D>,
3800 offset: usize,
3801 depth: fidl::encoding::Depth,
3802 ) -> fidl::Result<()> {
3803 encoder.debug_check_bounds::<ManufacturerData>(offset);
3804 unsafe {
3807 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(0);
3808 (ptr as *mut u64).write_unaligned(0);
3809 }
3810 self.0.encode(encoder, offset + 0, depth)?;
3812 self.1.encode(encoder, offset + 8, depth)?;
3813 Ok(())
3814 }
3815 }
3816
3817 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ManufacturerData {
3818 #[inline(always)]
3819 fn new_empty() -> Self {
3820 Self {
3821 company_id: fidl::new_empty!(u16, D),
3822 data: fidl::new_empty!(fidl::encoding::Vector<u8, 252>, D),
3823 }
3824 }
3825
3826 #[inline]
3827 unsafe fn decode(
3828 &mut self,
3829 decoder: &mut fidl::encoding::Decoder<'_, D>,
3830 offset: usize,
3831 _depth: fidl::encoding::Depth,
3832 ) -> fidl::Result<()> {
3833 decoder.debug_check_bounds::<Self>(offset);
3834 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(0) };
3836 let padval = unsafe { (ptr as *const u64).read_unaligned() };
3837 let mask = 0xffffffffffff0000u64;
3838 let maskedval = padval & mask;
3839 if maskedval != 0 {
3840 return Err(fidl::Error::NonZeroPadding {
3841 padding_start: offset + 0 + ((mask as u64).trailing_zeros() / 8) as usize,
3842 });
3843 }
3844 fidl::decode!(u16, D, &mut self.company_id, decoder, offset + 0, _depth)?;
3845 fidl::decode!(fidl::encoding::Vector<u8, 252>, D, &mut self.data, decoder, offset + 8, _depth)?;
3846 Ok(())
3847 }
3848 }
3849
3850 impl fidl::encoding::ValueTypeMarker for ManufacturerSpecificDataEntry {
3851 type Borrowed<'a> = &'a Self;
3852 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3853 value
3854 }
3855 }
3856
3857 unsafe impl fidl::encoding::TypeMarker for ManufacturerSpecificDataEntry {
3858 type Owned = Self;
3859
3860 #[inline(always)]
3861 fn inline_align(_context: fidl::encoding::Context) -> usize {
3862 8
3863 }
3864
3865 #[inline(always)]
3866 fn inline_size(_context: fidl::encoding::Context) -> usize {
3867 24
3868 }
3869 }
3870
3871 unsafe impl<D: fidl::encoding::ResourceDialect>
3872 fidl::encoding::Encode<ManufacturerSpecificDataEntry, D>
3873 for &ManufacturerSpecificDataEntry
3874 {
3875 #[inline]
3876 unsafe fn encode(
3877 self,
3878 encoder: &mut fidl::encoding::Encoder<'_, D>,
3879 offset: usize,
3880 _depth: fidl::encoding::Depth,
3881 ) -> fidl::Result<()> {
3882 encoder.debug_check_bounds::<ManufacturerSpecificDataEntry>(offset);
3883 fidl::encoding::Encode::<ManufacturerSpecificDataEntry, D>::encode(
3885 (
3886 <u16 as fidl::encoding::ValueTypeMarker>::borrow(&self.company_id),
3887 <fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow(&self.data),
3888 ),
3889 encoder, offset, _depth
3890 )
3891 }
3892 }
3893 unsafe impl<
3894 D: fidl::encoding::ResourceDialect,
3895 T0: fidl::encoding::Encode<u16, D>,
3896 T1: fidl::encoding::Encode<fidl::encoding::UnboundedVector<u8>, D>,
3897 > fidl::encoding::Encode<ManufacturerSpecificDataEntry, D> for (T0, T1)
3898 {
3899 #[inline]
3900 unsafe fn encode(
3901 self,
3902 encoder: &mut fidl::encoding::Encoder<'_, D>,
3903 offset: usize,
3904 depth: fidl::encoding::Depth,
3905 ) -> fidl::Result<()> {
3906 encoder.debug_check_bounds::<ManufacturerSpecificDataEntry>(offset);
3907 unsafe {
3910 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(0);
3911 (ptr as *mut u64).write_unaligned(0);
3912 }
3913 self.0.encode(encoder, offset + 0, depth)?;
3915 self.1.encode(encoder, offset + 8, depth)?;
3916 Ok(())
3917 }
3918 }
3919
3920 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3921 for ManufacturerSpecificDataEntry
3922 {
3923 #[inline(always)]
3924 fn new_empty() -> Self {
3925 Self {
3926 company_id: fidl::new_empty!(u16, D),
3927 data: fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D),
3928 }
3929 }
3930
3931 #[inline]
3932 unsafe fn decode(
3933 &mut self,
3934 decoder: &mut fidl::encoding::Decoder<'_, D>,
3935 offset: usize,
3936 _depth: fidl::encoding::Depth,
3937 ) -> fidl::Result<()> {
3938 decoder.debug_check_bounds::<Self>(offset);
3939 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(0) };
3941 let padval = unsafe { (ptr as *const u64).read_unaligned() };
3942 let mask = 0xffffffffffff0000u64;
3943 let maskedval = padval & mask;
3944 if maskedval != 0 {
3945 return Err(fidl::Error::NonZeroPadding {
3946 padding_start: offset + 0 + ((mask as u64).trailing_zeros() / 8) as usize,
3947 });
3948 }
3949 fidl::decode!(u16, D, &mut self.company_id, decoder, offset + 0, _depth)?;
3950 fidl::decode!(
3951 fidl::encoding::UnboundedVector<u8>,
3952 D,
3953 &mut self.data,
3954 decoder,
3955 offset + 8,
3956 _depth
3957 )?;
3958 Ok(())
3959 }
3960 }
3961
3962 impl fidl::encoding::ValueTypeMarker for PeriodicAdvertisingSyncId {
3963 type Borrowed<'a> = &'a Self;
3964 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3965 value
3966 }
3967 }
3968
3969 unsafe impl fidl::encoding::TypeMarker for PeriodicAdvertisingSyncId {
3970 type Owned = Self;
3971
3972 #[inline(always)]
3973 fn inline_align(_context: fidl::encoding::Context) -> usize {
3974 8
3975 }
3976
3977 #[inline(always)]
3978 fn inline_size(_context: fidl::encoding::Context) -> usize {
3979 8
3980 }
3981 #[inline(always)]
3982 fn encode_is_copy() -> bool {
3983 true
3984 }
3985
3986 #[inline(always)]
3987 fn decode_is_copy() -> bool {
3988 true
3989 }
3990 }
3991
3992 unsafe impl<D: fidl::encoding::ResourceDialect>
3993 fidl::encoding::Encode<PeriodicAdvertisingSyncId, D> for &PeriodicAdvertisingSyncId
3994 {
3995 #[inline]
3996 unsafe fn encode(
3997 self,
3998 encoder: &mut fidl::encoding::Encoder<'_, D>,
3999 offset: usize,
4000 _depth: fidl::encoding::Depth,
4001 ) -> fidl::Result<()> {
4002 encoder.debug_check_bounds::<PeriodicAdvertisingSyncId>(offset);
4003 unsafe {
4004 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
4006 (buf_ptr as *mut PeriodicAdvertisingSyncId)
4007 .write_unaligned((self as *const PeriodicAdvertisingSyncId).read());
4008 }
4011 Ok(())
4012 }
4013 }
4014 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<u64, D>>
4015 fidl::encoding::Encode<PeriodicAdvertisingSyncId, D> for (T0,)
4016 {
4017 #[inline]
4018 unsafe fn encode(
4019 self,
4020 encoder: &mut fidl::encoding::Encoder<'_, D>,
4021 offset: usize,
4022 depth: fidl::encoding::Depth,
4023 ) -> fidl::Result<()> {
4024 encoder.debug_check_bounds::<PeriodicAdvertisingSyncId>(offset);
4025 self.0.encode(encoder, offset + 0, depth)?;
4029 Ok(())
4030 }
4031 }
4032
4033 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
4034 for PeriodicAdvertisingSyncId
4035 {
4036 #[inline(always)]
4037 fn new_empty() -> Self {
4038 Self { value: fidl::new_empty!(u64, D) }
4039 }
4040
4041 #[inline]
4042 unsafe fn decode(
4043 &mut self,
4044 decoder: &mut fidl::encoding::Decoder<'_, D>,
4045 offset: usize,
4046 _depth: fidl::encoding::Depth,
4047 ) -> fidl::Result<()> {
4048 decoder.debug_check_bounds::<Self>(offset);
4049 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
4050 unsafe {
4053 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 8);
4054 }
4055 Ok(())
4056 }
4057 }
4058
4059 impl fidl::encoding::ValueTypeMarker for PeriodicAdvertisingSyncOnErrorRequest {
4060 type Borrowed<'a> = &'a Self;
4061 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4062 value
4063 }
4064 }
4065
4066 unsafe impl fidl::encoding::TypeMarker for PeriodicAdvertisingSyncOnErrorRequest {
4067 type Owned = Self;
4068
4069 #[inline(always)]
4070 fn inline_align(_context: fidl::encoding::Context) -> usize {
4071 4
4072 }
4073
4074 #[inline(always)]
4075 fn inline_size(_context: fidl::encoding::Context) -> usize {
4076 4
4077 }
4078 }
4079
4080 unsafe impl<D: fidl::encoding::ResourceDialect>
4081 fidl::encoding::Encode<PeriodicAdvertisingSyncOnErrorRequest, D>
4082 for &PeriodicAdvertisingSyncOnErrorRequest
4083 {
4084 #[inline]
4085 unsafe fn encode(
4086 self,
4087 encoder: &mut fidl::encoding::Encoder<'_, D>,
4088 offset: usize,
4089 _depth: fidl::encoding::Depth,
4090 ) -> fidl::Result<()> {
4091 encoder.debug_check_bounds::<PeriodicAdvertisingSyncOnErrorRequest>(offset);
4092 fidl::encoding::Encode::<PeriodicAdvertisingSyncOnErrorRequest, D>::encode(
4094 (<PeriodicAdvertisingSyncError as fidl::encoding::ValueTypeMarker>::borrow(
4095 &self.error,
4096 ),),
4097 encoder,
4098 offset,
4099 _depth,
4100 )
4101 }
4102 }
4103 unsafe impl<
4104 D: fidl::encoding::ResourceDialect,
4105 T0: fidl::encoding::Encode<PeriodicAdvertisingSyncError, D>,
4106 > fidl::encoding::Encode<PeriodicAdvertisingSyncOnErrorRequest, D> for (T0,)
4107 {
4108 #[inline]
4109 unsafe fn encode(
4110 self,
4111 encoder: &mut fidl::encoding::Encoder<'_, D>,
4112 offset: usize,
4113 depth: fidl::encoding::Depth,
4114 ) -> fidl::Result<()> {
4115 encoder.debug_check_bounds::<PeriodicAdvertisingSyncOnErrorRequest>(offset);
4116 self.0.encode(encoder, offset + 0, depth)?;
4120 Ok(())
4121 }
4122 }
4123
4124 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
4125 for PeriodicAdvertisingSyncOnErrorRequest
4126 {
4127 #[inline(always)]
4128 fn new_empty() -> Self {
4129 Self { error: fidl::new_empty!(PeriodicAdvertisingSyncError, D) }
4130 }
4131
4132 #[inline]
4133 unsafe fn decode(
4134 &mut self,
4135 decoder: &mut fidl::encoding::Decoder<'_, D>,
4136 offset: usize,
4137 _depth: fidl::encoding::Depth,
4138 ) -> fidl::Result<()> {
4139 decoder.debug_check_bounds::<Self>(offset);
4140 fidl::decode!(
4142 PeriodicAdvertisingSyncError,
4143 D,
4144 &mut self.error,
4145 decoder,
4146 offset + 0,
4147 _depth
4148 )?;
4149 Ok(())
4150 }
4151 }
4152
4153 impl fidl::encoding::ValueTypeMarker for RemoteDevice {
4154 type Borrowed<'a> = &'a Self;
4155 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4156 value
4157 }
4158 }
4159
4160 unsafe impl fidl::encoding::TypeMarker for RemoteDevice {
4161 type Owned = Self;
4162
4163 #[inline(always)]
4164 fn inline_align(_context: fidl::encoding::Context) -> usize {
4165 8
4166 }
4167
4168 #[inline(always)]
4169 fn inline_size(_context: fidl::encoding::Context) -> usize {
4170 40
4171 }
4172 }
4173
4174 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<RemoteDevice, D>
4175 for &RemoteDevice
4176 {
4177 #[inline]
4178 unsafe fn encode(
4179 self,
4180 encoder: &mut fidl::encoding::Encoder<'_, D>,
4181 offset: usize,
4182 _depth: fidl::encoding::Depth,
4183 ) -> fidl::Result<()> {
4184 encoder.debug_check_bounds::<RemoteDevice>(offset);
4185 fidl::encoding::Encode::<RemoteDevice, D>::encode(
4187 (
4188 <fidl::encoding::BoundedString<16> as fidl::encoding::ValueTypeMarker>::borrow(&self.identifier),
4189 <bool as fidl::encoding::ValueTypeMarker>::borrow(&self.connectable),
4190 <fidl::encoding::Boxed<fidl_fuchsia_bluetooth__common::Int8> as fidl::encoding::ValueTypeMarker>::borrow(&self.rssi),
4191 <fidl::encoding::Boxed<AdvertisingDataDeprecated> as fidl::encoding::ValueTypeMarker>::borrow(&self.advertising_data),
4192 ),
4193 encoder, offset, _depth
4194 )
4195 }
4196 }
4197 unsafe impl<
4198 D: fidl::encoding::ResourceDialect,
4199 T0: fidl::encoding::Encode<fidl::encoding::BoundedString<16>, D>,
4200 T1: fidl::encoding::Encode<bool, D>,
4201 T2: fidl::encoding::Encode<fidl::encoding::Boxed<fidl_fuchsia_bluetooth__common::Int8>, D>,
4202 T3: fidl::encoding::Encode<fidl::encoding::Boxed<AdvertisingDataDeprecated>, D>,
4203 > fidl::encoding::Encode<RemoteDevice, D> for (T0, T1, T2, T3)
4204 {
4205 #[inline]
4206 unsafe fn encode(
4207 self,
4208 encoder: &mut fidl::encoding::Encoder<'_, D>,
4209 offset: usize,
4210 depth: fidl::encoding::Depth,
4211 ) -> fidl::Result<()> {
4212 encoder.debug_check_bounds::<RemoteDevice>(offset);
4213 unsafe {
4216 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(16);
4217 (ptr as *mut u64).write_unaligned(0);
4218 }
4219 self.0.encode(encoder, offset + 0, depth)?;
4221 self.1.encode(encoder, offset + 16, depth)?;
4222 self.2.encode(encoder, offset + 24, depth)?;
4223 self.3.encode(encoder, offset + 32, depth)?;
4224 Ok(())
4225 }
4226 }
4227
4228 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for RemoteDevice {
4229 #[inline(always)]
4230 fn new_empty() -> Self {
4231 Self {
4232 identifier: fidl::new_empty!(fidl::encoding::BoundedString<16>, D),
4233 connectable: fidl::new_empty!(bool, D),
4234 rssi: fidl::new_empty!(
4235 fidl::encoding::Boxed<fidl_fuchsia_bluetooth__common::Int8>,
4236 D
4237 ),
4238 advertising_data: fidl::new_empty!(
4239 fidl::encoding::Boxed<AdvertisingDataDeprecated>,
4240 D
4241 ),
4242 }
4243 }
4244
4245 #[inline]
4246 unsafe fn decode(
4247 &mut self,
4248 decoder: &mut fidl::encoding::Decoder<'_, D>,
4249 offset: usize,
4250 _depth: fidl::encoding::Depth,
4251 ) -> fidl::Result<()> {
4252 decoder.debug_check_bounds::<Self>(offset);
4253 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(16) };
4255 let padval = unsafe { (ptr as *const u64).read_unaligned() };
4256 let mask = 0xffffffffffffff00u64;
4257 let maskedval = padval & mask;
4258 if maskedval != 0 {
4259 return Err(fidl::Error::NonZeroPadding {
4260 padding_start: offset + 16 + ((mask as u64).trailing_zeros() / 8) as usize,
4261 });
4262 }
4263 fidl::decode!(
4264 fidl::encoding::BoundedString<16>,
4265 D,
4266 &mut self.identifier,
4267 decoder,
4268 offset + 0,
4269 _depth
4270 )?;
4271 fidl::decode!(bool, D, &mut self.connectable, decoder, offset + 16, _depth)?;
4272 fidl::decode!(
4273 fidl::encoding::Boxed<fidl_fuchsia_bluetooth__common::Int8>,
4274 D,
4275 &mut self.rssi,
4276 decoder,
4277 offset + 24,
4278 _depth
4279 )?;
4280 fidl::decode!(
4281 fidl::encoding::Boxed<AdvertisingDataDeprecated>,
4282 D,
4283 &mut self.advertising_data,
4284 decoder,
4285 offset + 32,
4286 _depth
4287 )?;
4288 Ok(())
4289 }
4290 }
4291
4292 impl fidl::encoding::ValueTypeMarker for ScanFilter {
4293 type Borrowed<'a> = &'a Self;
4294 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4295 value
4296 }
4297 }
4298
4299 unsafe impl fidl::encoding::TypeMarker for ScanFilter {
4300 type Owned = Self;
4301
4302 #[inline(always)]
4303 fn inline_align(_context: fidl::encoding::Context) -> usize {
4304 8
4305 }
4306
4307 #[inline(always)]
4308 fn inline_size(_context: fidl::encoding::Context) -> usize {
4309 72
4310 }
4311 }
4312
4313 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ScanFilter, D>
4314 for &ScanFilter
4315 {
4316 #[inline]
4317 unsafe fn encode(
4318 self,
4319 encoder: &mut fidl::encoding::Encoder<'_, D>,
4320 offset: usize,
4321 _depth: fidl::encoding::Depth,
4322 ) -> fidl::Result<()> {
4323 encoder.debug_check_bounds::<ScanFilter>(offset);
4324 fidl::encoding::Encode::<ScanFilter, D>::encode(
4326 (
4327 <fidl::encoding::Optional<fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<36>>> as fidl::encoding::ValueTypeMarker>::borrow(&self.service_uuids),
4328 <fidl::encoding::Optional<fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<36>>> as fidl::encoding::ValueTypeMarker>::borrow(&self.service_data_uuids),
4329 <fidl::encoding::Boxed<fidl_fuchsia_bluetooth__common::UInt16> as fidl::encoding::ValueTypeMarker>::borrow(&self.manufacturer_identifier),
4330 <fidl::encoding::Boxed<fidl_fuchsia_bluetooth__common::Bool> as fidl::encoding::ValueTypeMarker>::borrow(&self.connectable),
4331 <fidl::encoding::Optional<fidl::encoding::BoundedString<248>> as fidl::encoding::ValueTypeMarker>::borrow(&self.name_substring),
4332 <fidl::encoding::Boxed<fidl_fuchsia_bluetooth__common::Int8> as fidl::encoding::ValueTypeMarker>::borrow(&self.max_path_loss),
4333 ),
4334 encoder, offset, _depth
4335 )
4336 }
4337 }
4338 unsafe impl<
4339 D: fidl::encoding::ResourceDialect,
4340 T0: fidl::encoding::Encode<
4341 fidl::encoding::Optional<
4342 fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<36>>,
4343 >,
4344 D,
4345 >,
4346 T1: fidl::encoding::Encode<
4347 fidl::encoding::Optional<
4348 fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<36>>,
4349 >,
4350 D,
4351 >,
4352 T2: fidl::encoding::Encode<
4353 fidl::encoding::Boxed<fidl_fuchsia_bluetooth__common::UInt16>,
4354 D,
4355 >,
4356 T3: fidl::encoding::Encode<fidl::encoding::Boxed<fidl_fuchsia_bluetooth__common::Bool>, D>,
4357 T4: fidl::encoding::Encode<fidl::encoding::Optional<fidl::encoding::BoundedString<248>>, D>,
4358 T5: fidl::encoding::Encode<fidl::encoding::Boxed<fidl_fuchsia_bluetooth__common::Int8>, D>,
4359 > fidl::encoding::Encode<ScanFilter, D> for (T0, T1, T2, T3, T4, T5)
4360 {
4361 #[inline]
4362 unsafe fn encode(
4363 self,
4364 encoder: &mut fidl::encoding::Encoder<'_, D>,
4365 offset: usize,
4366 depth: fidl::encoding::Depth,
4367 ) -> fidl::Result<()> {
4368 encoder.debug_check_bounds::<ScanFilter>(offset);
4369 self.0.encode(encoder, offset + 0, depth)?;
4373 self.1.encode(encoder, offset + 16, depth)?;
4374 self.2.encode(encoder, offset + 32, depth)?;
4375 self.3.encode(encoder, offset + 40, depth)?;
4376 self.4.encode(encoder, offset + 48, depth)?;
4377 self.5.encode(encoder, offset + 64, depth)?;
4378 Ok(())
4379 }
4380 }
4381
4382 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ScanFilter {
4383 #[inline(always)]
4384 fn new_empty() -> Self {
4385 Self {
4386 service_uuids: fidl::new_empty!(
4387 fidl::encoding::Optional<
4388 fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<36>>,
4389 >,
4390 D
4391 ),
4392 service_data_uuids: fidl::new_empty!(
4393 fidl::encoding::Optional<
4394 fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<36>>,
4395 >,
4396 D
4397 ),
4398 manufacturer_identifier: fidl::new_empty!(
4399 fidl::encoding::Boxed<fidl_fuchsia_bluetooth__common::UInt16>,
4400 D
4401 ),
4402 connectable: fidl::new_empty!(
4403 fidl::encoding::Boxed<fidl_fuchsia_bluetooth__common::Bool>,
4404 D
4405 ),
4406 name_substring: fidl::new_empty!(
4407 fidl::encoding::Optional<fidl::encoding::BoundedString<248>>,
4408 D
4409 ),
4410 max_path_loss: fidl::new_empty!(
4411 fidl::encoding::Boxed<fidl_fuchsia_bluetooth__common::Int8>,
4412 D
4413 ),
4414 }
4415 }
4416
4417 #[inline]
4418 unsafe fn decode(
4419 &mut self,
4420 decoder: &mut fidl::encoding::Decoder<'_, D>,
4421 offset: usize,
4422 _depth: fidl::encoding::Depth,
4423 ) -> fidl::Result<()> {
4424 decoder.debug_check_bounds::<Self>(offset);
4425 fidl::decode!(
4427 fidl::encoding::Optional<
4428 fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<36>>,
4429 >,
4430 D,
4431 &mut self.service_uuids,
4432 decoder,
4433 offset + 0,
4434 _depth
4435 )?;
4436 fidl::decode!(
4437 fidl::encoding::Optional<
4438 fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<36>>,
4439 >,
4440 D,
4441 &mut self.service_data_uuids,
4442 decoder,
4443 offset + 16,
4444 _depth
4445 )?;
4446 fidl::decode!(
4447 fidl::encoding::Boxed<fidl_fuchsia_bluetooth__common::UInt16>,
4448 D,
4449 &mut self.manufacturer_identifier,
4450 decoder,
4451 offset + 32,
4452 _depth
4453 )?;
4454 fidl::decode!(
4455 fidl::encoding::Boxed<fidl_fuchsia_bluetooth__common::Bool>,
4456 D,
4457 &mut self.connectable,
4458 decoder,
4459 offset + 40,
4460 _depth
4461 )?;
4462 fidl::decode!(
4463 fidl::encoding::Optional<fidl::encoding::BoundedString<248>>,
4464 D,
4465 &mut self.name_substring,
4466 decoder,
4467 offset + 48,
4468 _depth
4469 )?;
4470 fidl::decode!(
4471 fidl::encoding::Boxed<fidl_fuchsia_bluetooth__common::Int8>,
4472 D,
4473 &mut self.max_path_loss,
4474 decoder,
4475 offset + 64,
4476 _depth
4477 )?;
4478 Ok(())
4479 }
4480 }
4481
4482 impl fidl::encoding::ValueTypeMarker for ScanResultWatcherWatchResponse {
4483 type Borrowed<'a> = &'a Self;
4484 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4485 value
4486 }
4487 }
4488
4489 unsafe impl fidl::encoding::TypeMarker for ScanResultWatcherWatchResponse {
4490 type Owned = Self;
4491
4492 #[inline(always)]
4493 fn inline_align(_context: fidl::encoding::Context) -> usize {
4494 8
4495 }
4496
4497 #[inline(always)]
4498 fn inline_size(_context: fidl::encoding::Context) -> usize {
4499 16
4500 }
4501 }
4502
4503 unsafe impl<D: fidl::encoding::ResourceDialect>
4504 fidl::encoding::Encode<ScanResultWatcherWatchResponse, D>
4505 for &ScanResultWatcherWatchResponse
4506 {
4507 #[inline]
4508 unsafe fn encode(
4509 self,
4510 encoder: &mut fidl::encoding::Encoder<'_, D>,
4511 offset: usize,
4512 _depth: fidl::encoding::Depth,
4513 ) -> fidl::Result<()> {
4514 encoder.debug_check_bounds::<ScanResultWatcherWatchResponse>(offset);
4515 fidl::encoding::Encode::<ScanResultWatcherWatchResponse, D>::encode(
4517 (
4518 <fidl::encoding::UnboundedVector<Peer> as fidl::encoding::ValueTypeMarker>::borrow(&self.updated),
4519 ),
4520 encoder, offset, _depth
4521 )
4522 }
4523 }
4524 unsafe impl<
4525 D: fidl::encoding::ResourceDialect,
4526 T0: fidl::encoding::Encode<fidl::encoding::UnboundedVector<Peer>, D>,
4527 > fidl::encoding::Encode<ScanResultWatcherWatchResponse, D> for (T0,)
4528 {
4529 #[inline]
4530 unsafe fn encode(
4531 self,
4532 encoder: &mut fidl::encoding::Encoder<'_, D>,
4533 offset: usize,
4534 depth: fidl::encoding::Depth,
4535 ) -> fidl::Result<()> {
4536 encoder.debug_check_bounds::<ScanResultWatcherWatchResponse>(offset);
4537 self.0.encode(encoder, offset + 0, depth)?;
4541 Ok(())
4542 }
4543 }
4544
4545 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
4546 for ScanResultWatcherWatchResponse
4547 {
4548 #[inline(always)]
4549 fn new_empty() -> Self {
4550 Self { updated: fidl::new_empty!(fidl::encoding::UnboundedVector<Peer>, D) }
4551 }
4552
4553 #[inline]
4554 unsafe fn decode(
4555 &mut self,
4556 decoder: &mut fidl::encoding::Decoder<'_, D>,
4557 offset: usize,
4558 _depth: fidl::encoding::Depth,
4559 ) -> fidl::Result<()> {
4560 decoder.debug_check_bounds::<Self>(offset);
4561 fidl::decode!(
4563 fidl::encoding::UnboundedVector<Peer>,
4564 D,
4565 &mut self.updated,
4566 decoder,
4567 offset + 0,
4568 _depth
4569 )?;
4570 Ok(())
4571 }
4572 }
4573
4574 impl fidl::encoding::ValueTypeMarker for ServiceData {
4575 type Borrowed<'a> = &'a Self;
4576 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4577 value
4578 }
4579 }
4580
4581 unsafe impl fidl::encoding::TypeMarker for ServiceData {
4582 type Owned = Self;
4583
4584 #[inline(always)]
4585 fn inline_align(_context: fidl::encoding::Context) -> usize {
4586 8
4587 }
4588
4589 #[inline(always)]
4590 fn inline_size(_context: fidl::encoding::Context) -> usize {
4591 32
4592 }
4593 }
4594
4595 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ServiceData, D>
4596 for &ServiceData
4597 {
4598 #[inline]
4599 unsafe fn encode(
4600 self,
4601 encoder: &mut fidl::encoding::Encoder<'_, D>,
4602 offset: usize,
4603 _depth: fidl::encoding::Depth,
4604 ) -> fidl::Result<()> {
4605 encoder.debug_check_bounds::<ServiceData>(offset);
4606 fidl::encoding::Encode::<ServiceData, D>::encode(
4608 (
4609 <fidl_fuchsia_bluetooth__common::Uuid as fidl::encoding::ValueTypeMarker>::borrow(&self.uuid),
4610 <fidl::encoding::Vector<u8, 252> as fidl::encoding::ValueTypeMarker>::borrow(&self.data),
4611 ),
4612 encoder, offset, _depth
4613 )
4614 }
4615 }
4616 unsafe impl<
4617 D: fidl::encoding::ResourceDialect,
4618 T0: fidl::encoding::Encode<fidl_fuchsia_bluetooth__common::Uuid, D>,
4619 T1: fidl::encoding::Encode<fidl::encoding::Vector<u8, 252>, D>,
4620 > fidl::encoding::Encode<ServiceData, D> for (T0, T1)
4621 {
4622 #[inline]
4623 unsafe fn encode(
4624 self,
4625 encoder: &mut fidl::encoding::Encoder<'_, D>,
4626 offset: usize,
4627 depth: fidl::encoding::Depth,
4628 ) -> fidl::Result<()> {
4629 encoder.debug_check_bounds::<ServiceData>(offset);
4630 self.0.encode(encoder, offset + 0, depth)?;
4634 self.1.encode(encoder, offset + 16, depth)?;
4635 Ok(())
4636 }
4637 }
4638
4639 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ServiceData {
4640 #[inline(always)]
4641 fn new_empty() -> Self {
4642 Self {
4643 uuid: fidl::new_empty!(fidl_fuchsia_bluetooth__common::Uuid, D),
4644 data: fidl::new_empty!(fidl::encoding::Vector<u8, 252>, D),
4645 }
4646 }
4647
4648 #[inline]
4649 unsafe fn decode(
4650 &mut self,
4651 decoder: &mut fidl::encoding::Decoder<'_, D>,
4652 offset: usize,
4653 _depth: fidl::encoding::Depth,
4654 ) -> fidl::Result<()> {
4655 decoder.debug_check_bounds::<Self>(offset);
4656 fidl::decode!(
4658 fidl_fuchsia_bluetooth__common::Uuid,
4659 D,
4660 &mut self.uuid,
4661 decoder,
4662 offset + 0,
4663 _depth
4664 )?;
4665 fidl::decode!(fidl::encoding::Vector<u8, 252>, D, &mut self.data, decoder, offset + 16, _depth)?;
4666 Ok(())
4667 }
4668 }
4669
4670 impl fidl::encoding::ValueTypeMarker for ServiceDataEntry {
4671 type Borrowed<'a> = &'a Self;
4672 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4673 value
4674 }
4675 }
4676
4677 unsafe impl fidl::encoding::TypeMarker for ServiceDataEntry {
4678 type Owned = Self;
4679
4680 #[inline(always)]
4681 fn inline_align(_context: fidl::encoding::Context) -> usize {
4682 8
4683 }
4684
4685 #[inline(always)]
4686 fn inline_size(_context: fidl::encoding::Context) -> usize {
4687 32
4688 }
4689 }
4690
4691 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ServiceDataEntry, D>
4692 for &ServiceDataEntry
4693 {
4694 #[inline]
4695 unsafe fn encode(
4696 self,
4697 encoder: &mut fidl::encoding::Encoder<'_, D>,
4698 offset: usize,
4699 _depth: fidl::encoding::Depth,
4700 ) -> fidl::Result<()> {
4701 encoder.debug_check_bounds::<ServiceDataEntry>(offset);
4702 fidl::encoding::Encode::<ServiceDataEntry, D>::encode(
4704 (
4705 <fidl::encoding::BoundedString<36> as fidl::encoding::ValueTypeMarker>::borrow(&self.uuid),
4706 <fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow(&self.data),
4707 ),
4708 encoder, offset, _depth
4709 )
4710 }
4711 }
4712 unsafe impl<
4713 D: fidl::encoding::ResourceDialect,
4714 T0: fidl::encoding::Encode<fidl::encoding::BoundedString<36>, D>,
4715 T1: fidl::encoding::Encode<fidl::encoding::UnboundedVector<u8>, D>,
4716 > fidl::encoding::Encode<ServiceDataEntry, D> for (T0, T1)
4717 {
4718 #[inline]
4719 unsafe fn encode(
4720 self,
4721 encoder: &mut fidl::encoding::Encoder<'_, D>,
4722 offset: usize,
4723 depth: fidl::encoding::Depth,
4724 ) -> fidl::Result<()> {
4725 encoder.debug_check_bounds::<ServiceDataEntry>(offset);
4726 self.0.encode(encoder, offset + 0, depth)?;
4730 self.1.encode(encoder, offset + 16, depth)?;
4731 Ok(())
4732 }
4733 }
4734
4735 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ServiceDataEntry {
4736 #[inline(always)]
4737 fn new_empty() -> Self {
4738 Self {
4739 uuid: fidl::new_empty!(fidl::encoding::BoundedString<36>, D),
4740 data: fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D),
4741 }
4742 }
4743
4744 #[inline]
4745 unsafe fn decode(
4746 &mut self,
4747 decoder: &mut fidl::encoding::Decoder<'_, D>,
4748 offset: usize,
4749 _depth: fidl::encoding::Depth,
4750 ) -> fidl::Result<()> {
4751 decoder.debug_check_bounds::<Self>(offset);
4752 fidl::decode!(
4754 fidl::encoding::BoundedString<36>,
4755 D,
4756 &mut self.uuid,
4757 decoder,
4758 offset + 0,
4759 _depth
4760 )?;
4761 fidl::decode!(
4762 fidl::encoding::UnboundedVector<u8>,
4763 D,
4764 &mut self.data,
4765 decoder,
4766 offset + 16,
4767 _depth
4768 )?;
4769 Ok(())
4770 }
4771 }
4772
4773 impl AcceptedChannelParameters {
4774 #[inline(always)]
4775 fn max_ordinal_present(&self) -> u64 {
4776 if let Some(_) = self.max_packet_size {
4777 return 2;
4778 }
4779 if let Some(_) = self.accepted_channel_modes {
4780 return 1;
4781 }
4782 0
4783 }
4784 }
4785
4786 impl fidl::encoding::ValueTypeMarker for AcceptedChannelParameters {
4787 type Borrowed<'a> = &'a Self;
4788 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4789 value
4790 }
4791 }
4792
4793 unsafe impl fidl::encoding::TypeMarker for AcceptedChannelParameters {
4794 type Owned = Self;
4795
4796 #[inline(always)]
4797 fn inline_align(_context: fidl::encoding::Context) -> usize {
4798 8
4799 }
4800
4801 #[inline(always)]
4802 fn inline_size(_context: fidl::encoding::Context) -> usize {
4803 16
4804 }
4805 }
4806
4807 unsafe impl<D: fidl::encoding::ResourceDialect>
4808 fidl::encoding::Encode<AcceptedChannelParameters, D> for &AcceptedChannelParameters
4809 {
4810 unsafe fn encode(
4811 self,
4812 encoder: &mut fidl::encoding::Encoder<'_, D>,
4813 offset: usize,
4814 mut depth: fidl::encoding::Depth,
4815 ) -> fidl::Result<()> {
4816 encoder.debug_check_bounds::<AcceptedChannelParameters>(offset);
4817 let max_ordinal: u64 = self.max_ordinal_present();
4819 encoder.write_num(max_ordinal, offset);
4820 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
4821 if max_ordinal == 0 {
4823 return Ok(());
4824 }
4825 depth.increment()?;
4826 let envelope_size = 8;
4827 let bytes_len = max_ordinal as usize * envelope_size;
4828 #[allow(unused_variables)]
4829 let offset = encoder.out_of_line_offset(bytes_len);
4830 let mut _prev_end_offset: usize = 0;
4831 if 1 > max_ordinal {
4832 return Ok(());
4833 }
4834
4835 let cur_offset: usize = (1 - 1) * envelope_size;
4838
4839 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4841
4842 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<fidl_fuchsia_bluetooth__common::ChannelMode>, D>(
4847 self.accepted_channel_modes.as_ref().map(<fidl::encoding::UnboundedVector<fidl_fuchsia_bluetooth__common::ChannelMode> as fidl::encoding::ValueTypeMarker>::borrow),
4848 encoder, offset + cur_offset, depth
4849 )?;
4850
4851 _prev_end_offset = cur_offset + envelope_size;
4852 if 2 > max_ordinal {
4853 return Ok(());
4854 }
4855
4856 let cur_offset: usize = (2 - 1) * envelope_size;
4859
4860 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4862
4863 fidl::encoding::encode_in_envelope_optional::<u16, D>(
4868 self.max_packet_size.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
4869 encoder,
4870 offset + cur_offset,
4871 depth,
4872 )?;
4873
4874 _prev_end_offset = cur_offset + envelope_size;
4875
4876 Ok(())
4877 }
4878 }
4879
4880 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
4881 for AcceptedChannelParameters
4882 {
4883 #[inline(always)]
4884 fn new_empty() -> Self {
4885 Self::default()
4886 }
4887
4888 unsafe fn decode(
4889 &mut self,
4890 decoder: &mut fidl::encoding::Decoder<'_, D>,
4891 offset: usize,
4892 mut depth: fidl::encoding::Depth,
4893 ) -> fidl::Result<()> {
4894 decoder.debug_check_bounds::<Self>(offset);
4895 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
4896 None => return Err(fidl::Error::NotNullable),
4897 Some(len) => len,
4898 };
4899 if len == 0 {
4901 return Ok(());
4902 };
4903 depth.increment()?;
4904 let envelope_size = 8;
4905 let bytes_len = len * envelope_size;
4906 let offset = decoder.out_of_line_offset(bytes_len)?;
4907 let mut _next_ordinal_to_read = 0;
4909 let mut next_offset = offset;
4910 let end_offset = offset + bytes_len;
4911 _next_ordinal_to_read += 1;
4912 if next_offset >= end_offset {
4913 return Ok(());
4914 }
4915
4916 while _next_ordinal_to_read < 1 {
4918 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4919 _next_ordinal_to_read += 1;
4920 next_offset += envelope_size;
4921 }
4922
4923 let next_out_of_line = decoder.next_out_of_line();
4924 let handles_before = decoder.remaining_handles();
4925 if let Some((inlined, num_bytes, num_handles)) =
4926 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4927 {
4928 let member_inline_size = <fidl::encoding::UnboundedVector<
4929 fidl_fuchsia_bluetooth__common::ChannelMode,
4930 > as fidl::encoding::TypeMarker>::inline_size(
4931 decoder.context
4932 );
4933 if inlined != (member_inline_size <= 4) {
4934 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4935 }
4936 let inner_offset;
4937 let mut inner_depth = depth.clone();
4938 if inlined {
4939 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4940 inner_offset = next_offset;
4941 } else {
4942 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4943 inner_depth.increment()?;
4944 }
4945 let val_ref = self.accepted_channel_modes.get_or_insert_with(|| {
4946 fidl::new_empty!(
4947 fidl::encoding::UnboundedVector<
4948 fidl_fuchsia_bluetooth__common::ChannelMode,
4949 >,
4950 D
4951 )
4952 });
4953 fidl::decode!(
4954 fidl::encoding::UnboundedVector<fidl_fuchsia_bluetooth__common::ChannelMode>,
4955 D,
4956 val_ref,
4957 decoder,
4958 inner_offset,
4959 inner_depth
4960 )?;
4961 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4962 {
4963 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4964 }
4965 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4966 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4967 }
4968 }
4969
4970 next_offset += envelope_size;
4971 _next_ordinal_to_read += 1;
4972 if next_offset >= end_offset {
4973 return Ok(());
4974 }
4975
4976 while _next_ordinal_to_read < 2 {
4978 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4979 _next_ordinal_to_read += 1;
4980 next_offset += envelope_size;
4981 }
4982
4983 let next_out_of_line = decoder.next_out_of_line();
4984 let handles_before = decoder.remaining_handles();
4985 if let Some((inlined, num_bytes, num_handles)) =
4986 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4987 {
4988 let member_inline_size =
4989 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4990 if inlined != (member_inline_size <= 4) {
4991 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4992 }
4993 let inner_offset;
4994 let mut inner_depth = depth.clone();
4995 if inlined {
4996 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4997 inner_offset = next_offset;
4998 } else {
4999 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5000 inner_depth.increment()?;
5001 }
5002 let val_ref = self.max_packet_size.get_or_insert_with(|| fidl::new_empty!(u16, D));
5003 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
5004 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5005 {
5006 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5007 }
5008 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5009 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5010 }
5011 }
5012
5013 next_offset += envelope_size;
5014
5015 while next_offset < end_offset {
5017 _next_ordinal_to_read += 1;
5018 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5019 next_offset += envelope_size;
5020 }
5021
5022 Ok(())
5023 }
5024 }
5025
5026 impl AdvertisingData {
5027 #[inline(always)]
5028 fn max_ordinal_present(&self) -> u64 {
5029 if let Some(_) = self.broadcast_name {
5030 return 10;
5031 }
5032 if let Some(_) = self.resolvable_set_identifier {
5033 return 9;
5034 }
5035 if let Some(_) = self.include_tx_power_level {
5036 return 8;
5037 }
5038 if let Some(_) = self.uris {
5039 return 7;
5040 }
5041 if let Some(_) = self.manufacturer_data {
5042 return 6;
5043 }
5044 if let Some(_) = self.service_data {
5045 return 5;
5046 }
5047 if let Some(_) = self.service_uuids {
5048 return 4;
5049 }
5050 if let Some(_) = self.tx_power_level {
5051 return 3;
5052 }
5053 if let Some(_) = self.appearance {
5054 return 2;
5055 }
5056 if let Some(_) = self.name {
5057 return 1;
5058 }
5059 0
5060 }
5061 }
5062
5063 impl fidl::encoding::ValueTypeMarker for AdvertisingData {
5064 type Borrowed<'a> = &'a Self;
5065 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5066 value
5067 }
5068 }
5069
5070 unsafe impl fidl::encoding::TypeMarker for AdvertisingData {
5071 type Owned = Self;
5072
5073 #[inline(always)]
5074 fn inline_align(_context: fidl::encoding::Context) -> usize {
5075 8
5076 }
5077
5078 #[inline(always)]
5079 fn inline_size(_context: fidl::encoding::Context) -> usize {
5080 16
5081 }
5082 }
5083
5084 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<AdvertisingData, D>
5085 for &AdvertisingData
5086 {
5087 unsafe fn encode(
5088 self,
5089 encoder: &mut fidl::encoding::Encoder<'_, D>,
5090 offset: usize,
5091 mut depth: fidl::encoding::Depth,
5092 ) -> fidl::Result<()> {
5093 encoder.debug_check_bounds::<AdvertisingData>(offset);
5094 let max_ordinal: u64 = self.max_ordinal_present();
5096 encoder.write_num(max_ordinal, offset);
5097 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
5098 if max_ordinal == 0 {
5100 return Ok(());
5101 }
5102 depth.increment()?;
5103 let envelope_size = 8;
5104 let bytes_len = max_ordinal as usize * envelope_size;
5105 #[allow(unused_variables)]
5106 let offset = encoder.out_of_line_offset(bytes_len);
5107 let mut _prev_end_offset: usize = 0;
5108 if 1 > max_ordinal {
5109 return Ok(());
5110 }
5111
5112 let cur_offset: usize = (1 - 1) * envelope_size;
5115
5116 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5118
5119 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<248>, D>(
5124 self.name.as_ref().map(
5125 <fidl::encoding::BoundedString<248> as fidl::encoding::ValueTypeMarker>::borrow,
5126 ),
5127 encoder,
5128 offset + cur_offset,
5129 depth,
5130 )?;
5131
5132 _prev_end_offset = cur_offset + envelope_size;
5133 if 2 > max_ordinal {
5134 return Ok(());
5135 }
5136
5137 let cur_offset: usize = (2 - 1) * envelope_size;
5140
5141 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5143
5144 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_bluetooth__common::Appearance, D>(
5149 self.appearance.as_ref().map(<fidl_fuchsia_bluetooth__common::Appearance as fidl::encoding::ValueTypeMarker>::borrow),
5150 encoder, offset + cur_offset, depth
5151 )?;
5152
5153 _prev_end_offset = cur_offset + envelope_size;
5154 if 3 > max_ordinal {
5155 return Ok(());
5156 }
5157
5158 let cur_offset: usize = (3 - 1) * envelope_size;
5161
5162 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5164
5165 fidl::encoding::encode_in_envelope_optional::<i8, D>(
5170 self.tx_power_level.as_ref().map(<i8 as fidl::encoding::ValueTypeMarker>::borrow),
5171 encoder,
5172 offset + cur_offset,
5173 depth,
5174 )?;
5175
5176 _prev_end_offset = cur_offset + envelope_size;
5177 if 4 > max_ordinal {
5178 return Ok(());
5179 }
5180
5181 let cur_offset: usize = (4 - 1) * envelope_size;
5184
5185 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5187
5188 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<fidl_fuchsia_bluetooth__common::Uuid>, D>(
5193 self.service_uuids.as_ref().map(<fidl::encoding::UnboundedVector<fidl_fuchsia_bluetooth__common::Uuid> as fidl::encoding::ValueTypeMarker>::borrow),
5194 encoder, offset + cur_offset, depth
5195 )?;
5196
5197 _prev_end_offset = cur_offset + envelope_size;
5198 if 5 > max_ordinal {
5199 return Ok(());
5200 }
5201
5202 let cur_offset: usize = (5 - 1) * envelope_size;
5205
5206 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5208
5209 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<ServiceData>, D>(
5214 self.service_data.as_ref().map(<fidl::encoding::UnboundedVector<ServiceData> as fidl::encoding::ValueTypeMarker>::borrow),
5215 encoder, offset + cur_offset, depth
5216 )?;
5217
5218 _prev_end_offset = cur_offset + envelope_size;
5219 if 6 > max_ordinal {
5220 return Ok(());
5221 }
5222
5223 let cur_offset: usize = (6 - 1) * envelope_size;
5226
5227 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5229
5230 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<ManufacturerData>, D>(
5235 self.manufacturer_data.as_ref().map(<fidl::encoding::UnboundedVector<ManufacturerData> as fidl::encoding::ValueTypeMarker>::borrow),
5236 encoder, offset + cur_offset, depth
5237 )?;
5238
5239 _prev_end_offset = cur_offset + envelope_size;
5240 if 7 > max_ordinal {
5241 return Ok(());
5242 }
5243
5244 let cur_offset: usize = (7 - 1) * envelope_size;
5247
5248 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5250
5251 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<278>>, D>(
5256 self.uris.as_ref().map(<fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<278>> as fidl::encoding::ValueTypeMarker>::borrow),
5257 encoder, offset + cur_offset, depth
5258 )?;
5259
5260 _prev_end_offset = cur_offset + envelope_size;
5261 if 8 > max_ordinal {
5262 return Ok(());
5263 }
5264
5265 let cur_offset: usize = (8 - 1) * envelope_size;
5268
5269 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5271
5272 fidl::encoding::encode_in_envelope_optional::<bool, D>(
5277 self.include_tx_power_level
5278 .as_ref()
5279 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
5280 encoder,
5281 offset + cur_offset,
5282 depth,
5283 )?;
5284
5285 _prev_end_offset = cur_offset + envelope_size;
5286 if 9 > max_ordinal {
5287 return Ok(());
5288 }
5289
5290 let cur_offset: usize = (9 - 1) * envelope_size;
5293
5294 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5296
5297 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
5302 self.resolvable_set_identifier
5303 .as_ref()
5304 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
5305 encoder,
5306 offset + cur_offset,
5307 depth,
5308 )?;
5309
5310 _prev_end_offset = cur_offset + envelope_size;
5311 if 10 > max_ordinal {
5312 return Ok(());
5313 }
5314
5315 let cur_offset: usize = (10 - 1) * envelope_size;
5318
5319 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5321
5322 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<128>, D>(
5327 self.broadcast_name.as_ref().map(
5328 <fidl::encoding::BoundedString<128> as fidl::encoding::ValueTypeMarker>::borrow,
5329 ),
5330 encoder,
5331 offset + cur_offset,
5332 depth,
5333 )?;
5334
5335 _prev_end_offset = cur_offset + envelope_size;
5336
5337 Ok(())
5338 }
5339 }
5340
5341 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for AdvertisingData {
5342 #[inline(always)]
5343 fn new_empty() -> Self {
5344 Self::default()
5345 }
5346
5347 unsafe fn decode(
5348 &mut self,
5349 decoder: &mut fidl::encoding::Decoder<'_, D>,
5350 offset: usize,
5351 mut depth: fidl::encoding::Depth,
5352 ) -> fidl::Result<()> {
5353 decoder.debug_check_bounds::<Self>(offset);
5354 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
5355 None => return Err(fidl::Error::NotNullable),
5356 Some(len) => len,
5357 };
5358 if len == 0 {
5360 return Ok(());
5361 };
5362 depth.increment()?;
5363 let envelope_size = 8;
5364 let bytes_len = len * envelope_size;
5365 let offset = decoder.out_of_line_offset(bytes_len)?;
5366 let mut _next_ordinal_to_read = 0;
5368 let mut next_offset = offset;
5369 let end_offset = offset + bytes_len;
5370 _next_ordinal_to_read += 1;
5371 if next_offset >= end_offset {
5372 return Ok(());
5373 }
5374
5375 while _next_ordinal_to_read < 1 {
5377 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5378 _next_ordinal_to_read += 1;
5379 next_offset += envelope_size;
5380 }
5381
5382 let next_out_of_line = decoder.next_out_of_line();
5383 let handles_before = decoder.remaining_handles();
5384 if let Some((inlined, num_bytes, num_handles)) =
5385 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5386 {
5387 let member_inline_size =
5388 <fidl::encoding::BoundedString<248> as fidl::encoding::TypeMarker>::inline_size(
5389 decoder.context,
5390 );
5391 if inlined != (member_inline_size <= 4) {
5392 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5393 }
5394 let inner_offset;
5395 let mut inner_depth = depth.clone();
5396 if inlined {
5397 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5398 inner_offset = next_offset;
5399 } else {
5400 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5401 inner_depth.increment()?;
5402 }
5403 let val_ref = self
5404 .name
5405 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<248>, D));
5406 fidl::decode!(
5407 fidl::encoding::BoundedString<248>,
5408 D,
5409 val_ref,
5410 decoder,
5411 inner_offset,
5412 inner_depth
5413 )?;
5414 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5415 {
5416 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5417 }
5418 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5419 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5420 }
5421 }
5422
5423 next_offset += envelope_size;
5424 _next_ordinal_to_read += 1;
5425 if next_offset >= end_offset {
5426 return Ok(());
5427 }
5428
5429 while _next_ordinal_to_read < 2 {
5431 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5432 _next_ordinal_to_read += 1;
5433 next_offset += envelope_size;
5434 }
5435
5436 let next_out_of_line = decoder.next_out_of_line();
5437 let handles_before = decoder.remaining_handles();
5438 if let Some((inlined, num_bytes, num_handles)) =
5439 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5440 {
5441 let member_inline_size = <fidl_fuchsia_bluetooth__common::Appearance as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5442 if inlined != (member_inline_size <= 4) {
5443 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5444 }
5445 let inner_offset;
5446 let mut inner_depth = depth.clone();
5447 if inlined {
5448 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5449 inner_offset = next_offset;
5450 } else {
5451 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5452 inner_depth.increment()?;
5453 }
5454 let val_ref = self.appearance.get_or_insert_with(|| {
5455 fidl::new_empty!(fidl_fuchsia_bluetooth__common::Appearance, D)
5456 });
5457 fidl::decode!(
5458 fidl_fuchsia_bluetooth__common::Appearance,
5459 D,
5460 val_ref,
5461 decoder,
5462 inner_offset,
5463 inner_depth
5464 )?;
5465 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5466 {
5467 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5468 }
5469 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5470 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5471 }
5472 }
5473
5474 next_offset += envelope_size;
5475 _next_ordinal_to_read += 1;
5476 if next_offset >= end_offset {
5477 return Ok(());
5478 }
5479
5480 while _next_ordinal_to_read < 3 {
5482 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5483 _next_ordinal_to_read += 1;
5484 next_offset += envelope_size;
5485 }
5486
5487 let next_out_of_line = decoder.next_out_of_line();
5488 let handles_before = decoder.remaining_handles();
5489 if let Some((inlined, num_bytes, num_handles)) =
5490 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5491 {
5492 let member_inline_size =
5493 <i8 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5494 if inlined != (member_inline_size <= 4) {
5495 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5496 }
5497 let inner_offset;
5498 let mut inner_depth = depth.clone();
5499 if inlined {
5500 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5501 inner_offset = next_offset;
5502 } else {
5503 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5504 inner_depth.increment()?;
5505 }
5506 let val_ref = self.tx_power_level.get_or_insert_with(|| fidl::new_empty!(i8, D));
5507 fidl::decode!(i8, D, val_ref, decoder, inner_offset, inner_depth)?;
5508 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5509 {
5510 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5511 }
5512 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5513 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5514 }
5515 }
5516
5517 next_offset += envelope_size;
5518 _next_ordinal_to_read += 1;
5519 if next_offset >= end_offset {
5520 return Ok(());
5521 }
5522
5523 while _next_ordinal_to_read < 4 {
5525 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5526 _next_ordinal_to_read += 1;
5527 next_offset += envelope_size;
5528 }
5529
5530 let next_out_of_line = decoder.next_out_of_line();
5531 let handles_before = decoder.remaining_handles();
5532 if let Some((inlined, num_bytes, num_handles)) =
5533 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5534 {
5535 let member_inline_size = <fidl::encoding::UnboundedVector<
5536 fidl_fuchsia_bluetooth__common::Uuid,
5537 > as fidl::encoding::TypeMarker>::inline_size(
5538 decoder.context
5539 );
5540 if inlined != (member_inline_size <= 4) {
5541 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5542 }
5543 let inner_offset;
5544 let mut inner_depth = depth.clone();
5545 if inlined {
5546 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5547 inner_offset = next_offset;
5548 } else {
5549 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5550 inner_depth.increment()?;
5551 }
5552 let val_ref = self.service_uuids.get_or_insert_with(|| {
5553 fidl::new_empty!(
5554 fidl::encoding::UnboundedVector<fidl_fuchsia_bluetooth__common::Uuid>,
5555 D
5556 )
5557 });
5558 fidl::decode!(
5559 fidl::encoding::UnboundedVector<fidl_fuchsia_bluetooth__common::Uuid>,
5560 D,
5561 val_ref,
5562 decoder,
5563 inner_offset,
5564 inner_depth
5565 )?;
5566 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5567 {
5568 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5569 }
5570 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5571 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5572 }
5573 }
5574
5575 next_offset += envelope_size;
5576 _next_ordinal_to_read += 1;
5577 if next_offset >= end_offset {
5578 return Ok(());
5579 }
5580
5581 while _next_ordinal_to_read < 5 {
5583 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5584 _next_ordinal_to_read += 1;
5585 next_offset += envelope_size;
5586 }
5587
5588 let next_out_of_line = decoder.next_out_of_line();
5589 let handles_before = decoder.remaining_handles();
5590 if let Some((inlined, num_bytes, num_handles)) =
5591 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5592 {
5593 let member_inline_size = <fidl::encoding::UnboundedVector<ServiceData> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5594 if inlined != (member_inline_size <= 4) {
5595 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5596 }
5597 let inner_offset;
5598 let mut inner_depth = depth.clone();
5599 if inlined {
5600 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5601 inner_offset = next_offset;
5602 } else {
5603 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5604 inner_depth.increment()?;
5605 }
5606 let val_ref = self.service_data.get_or_insert_with(|| {
5607 fidl::new_empty!(fidl::encoding::UnboundedVector<ServiceData>, D)
5608 });
5609 fidl::decode!(
5610 fidl::encoding::UnboundedVector<ServiceData>,
5611 D,
5612 val_ref,
5613 decoder,
5614 inner_offset,
5615 inner_depth
5616 )?;
5617 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5618 {
5619 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5620 }
5621 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5622 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5623 }
5624 }
5625
5626 next_offset += envelope_size;
5627 _next_ordinal_to_read += 1;
5628 if next_offset >= end_offset {
5629 return Ok(());
5630 }
5631
5632 while _next_ordinal_to_read < 6 {
5634 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5635 _next_ordinal_to_read += 1;
5636 next_offset += envelope_size;
5637 }
5638
5639 let next_out_of_line = decoder.next_out_of_line();
5640 let handles_before = decoder.remaining_handles();
5641 if let Some((inlined, num_bytes, num_handles)) =
5642 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5643 {
5644 let member_inline_size = <fidl::encoding::UnboundedVector<ManufacturerData> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5645 if inlined != (member_inline_size <= 4) {
5646 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5647 }
5648 let inner_offset;
5649 let mut inner_depth = depth.clone();
5650 if inlined {
5651 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5652 inner_offset = next_offset;
5653 } else {
5654 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5655 inner_depth.increment()?;
5656 }
5657 let val_ref = self.manufacturer_data.get_or_insert_with(|| {
5658 fidl::new_empty!(fidl::encoding::UnboundedVector<ManufacturerData>, D)
5659 });
5660 fidl::decode!(
5661 fidl::encoding::UnboundedVector<ManufacturerData>,
5662 D,
5663 val_ref,
5664 decoder,
5665 inner_offset,
5666 inner_depth
5667 )?;
5668 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5669 {
5670 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5671 }
5672 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5673 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5674 }
5675 }
5676
5677 next_offset += envelope_size;
5678 _next_ordinal_to_read += 1;
5679 if next_offset >= end_offset {
5680 return Ok(());
5681 }
5682
5683 while _next_ordinal_to_read < 7 {
5685 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5686 _next_ordinal_to_read += 1;
5687 next_offset += envelope_size;
5688 }
5689
5690 let next_out_of_line = decoder.next_out_of_line();
5691 let handles_before = decoder.remaining_handles();
5692 if let Some((inlined, num_bytes, num_handles)) =
5693 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5694 {
5695 let member_inline_size = <fidl::encoding::UnboundedVector<
5696 fidl::encoding::BoundedString<278>,
5697 > as fidl::encoding::TypeMarker>::inline_size(
5698 decoder.context
5699 );
5700 if inlined != (member_inline_size <= 4) {
5701 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5702 }
5703 let inner_offset;
5704 let mut inner_depth = depth.clone();
5705 if inlined {
5706 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5707 inner_offset = next_offset;
5708 } else {
5709 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5710 inner_depth.increment()?;
5711 }
5712 let val_ref = self.uris.get_or_insert_with(|| {
5713 fidl::new_empty!(
5714 fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<278>>,
5715 D
5716 )
5717 });
5718 fidl::decode!(
5719 fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<278>>,
5720 D,
5721 val_ref,
5722 decoder,
5723 inner_offset,
5724 inner_depth
5725 )?;
5726 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5727 {
5728 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5729 }
5730 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5731 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5732 }
5733 }
5734
5735 next_offset += envelope_size;
5736 _next_ordinal_to_read += 1;
5737 if next_offset >= end_offset {
5738 return Ok(());
5739 }
5740
5741 while _next_ordinal_to_read < 8 {
5743 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5744 _next_ordinal_to_read += 1;
5745 next_offset += envelope_size;
5746 }
5747
5748 let next_out_of_line = decoder.next_out_of_line();
5749 let handles_before = decoder.remaining_handles();
5750 if let Some((inlined, num_bytes, num_handles)) =
5751 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5752 {
5753 let member_inline_size =
5754 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5755 if inlined != (member_inline_size <= 4) {
5756 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5757 }
5758 let inner_offset;
5759 let mut inner_depth = depth.clone();
5760 if inlined {
5761 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5762 inner_offset = next_offset;
5763 } else {
5764 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5765 inner_depth.increment()?;
5766 }
5767 let val_ref =
5768 self.include_tx_power_level.get_or_insert_with(|| fidl::new_empty!(bool, D));
5769 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
5770 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5771 {
5772 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5773 }
5774 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5775 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5776 }
5777 }
5778
5779 next_offset += envelope_size;
5780 _next_ordinal_to_read += 1;
5781 if next_offset >= end_offset {
5782 return Ok(());
5783 }
5784
5785 while _next_ordinal_to_read < 9 {
5787 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5788 _next_ordinal_to_read += 1;
5789 next_offset += envelope_size;
5790 }
5791
5792 let next_out_of_line = decoder.next_out_of_line();
5793 let handles_before = decoder.remaining_handles();
5794 if let Some((inlined, num_bytes, num_handles)) =
5795 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5796 {
5797 let member_inline_size =
5798 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
5799 decoder.context,
5800 );
5801 if inlined != (member_inline_size <= 4) {
5802 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5803 }
5804 let inner_offset;
5805 let mut inner_depth = depth.clone();
5806 if inlined {
5807 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5808 inner_offset = next_offset;
5809 } else {
5810 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5811 inner_depth.increment()?;
5812 }
5813 let val_ref = self
5814 .resolvable_set_identifier
5815 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
5816 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
5817 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5818 {
5819 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5820 }
5821 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5822 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5823 }
5824 }
5825
5826 next_offset += envelope_size;
5827 _next_ordinal_to_read += 1;
5828 if next_offset >= end_offset {
5829 return Ok(());
5830 }
5831
5832 while _next_ordinal_to_read < 10 {
5834 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5835 _next_ordinal_to_read += 1;
5836 next_offset += envelope_size;
5837 }
5838
5839 let next_out_of_line = decoder.next_out_of_line();
5840 let handles_before = decoder.remaining_handles();
5841 if let Some((inlined, num_bytes, num_handles)) =
5842 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5843 {
5844 let member_inline_size =
5845 <fidl::encoding::BoundedString<128> as fidl::encoding::TypeMarker>::inline_size(
5846 decoder.context,
5847 );
5848 if inlined != (member_inline_size <= 4) {
5849 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5850 }
5851 let inner_offset;
5852 let mut inner_depth = depth.clone();
5853 if inlined {
5854 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5855 inner_offset = next_offset;
5856 } else {
5857 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5858 inner_depth.increment()?;
5859 }
5860 let val_ref = self
5861 .broadcast_name
5862 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<128>, D));
5863 fidl::decode!(
5864 fidl::encoding::BoundedString<128>,
5865 D,
5866 val_ref,
5867 decoder,
5868 inner_offset,
5869 inner_depth
5870 )?;
5871 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5872 {
5873 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5874 }
5875 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5876 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5877 }
5878 }
5879
5880 next_offset += envelope_size;
5881
5882 while next_offset < end_offset {
5884 _next_ordinal_to_read += 1;
5885 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5886 next_offset += envelope_size;
5887 }
5888
5889 Ok(())
5890 }
5891 }
5892
5893 impl AdvertisingParameters {
5894 #[inline(always)]
5895 fn max_ordinal_present(&self) -> u64 {
5896 if let Some(_) = self.address_type {
5897 return 7;
5898 }
5899 if let Some(_) = self.advertising_procedure {
5900 return 6;
5901 }
5902 if let Some(_) = self.connection_options {
5903 return 5;
5904 }
5905 if let Some(_) = self.connectable {
5906 return 4;
5907 }
5908 if let Some(_) = self.mode_hint {
5909 return 3;
5910 }
5911 if let Some(_) = self.scan_response {
5912 return 2;
5913 }
5914 if let Some(_) = self.data {
5915 return 1;
5916 }
5917 0
5918 }
5919 }
5920
5921 impl fidl::encoding::ValueTypeMarker for AdvertisingParameters {
5922 type Borrowed<'a> = &'a Self;
5923 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5924 value
5925 }
5926 }
5927
5928 unsafe impl fidl::encoding::TypeMarker for AdvertisingParameters {
5929 type Owned = Self;
5930
5931 #[inline(always)]
5932 fn inline_align(_context: fidl::encoding::Context) -> usize {
5933 8
5934 }
5935
5936 #[inline(always)]
5937 fn inline_size(_context: fidl::encoding::Context) -> usize {
5938 16
5939 }
5940 }
5941
5942 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<AdvertisingParameters, D>
5943 for &AdvertisingParameters
5944 {
5945 unsafe fn encode(
5946 self,
5947 encoder: &mut fidl::encoding::Encoder<'_, D>,
5948 offset: usize,
5949 mut depth: fidl::encoding::Depth,
5950 ) -> fidl::Result<()> {
5951 encoder.debug_check_bounds::<AdvertisingParameters>(offset);
5952 let max_ordinal: u64 = self.max_ordinal_present();
5954 encoder.write_num(max_ordinal, offset);
5955 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
5956 if max_ordinal == 0 {
5958 return Ok(());
5959 }
5960 depth.increment()?;
5961 let envelope_size = 8;
5962 let bytes_len = max_ordinal as usize * envelope_size;
5963 #[allow(unused_variables)]
5964 let offset = encoder.out_of_line_offset(bytes_len);
5965 let mut _prev_end_offset: usize = 0;
5966 if 1 > max_ordinal {
5967 return Ok(());
5968 }
5969
5970 let cur_offset: usize = (1 - 1) * envelope_size;
5973
5974 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5976
5977 fidl::encoding::encode_in_envelope_optional::<AdvertisingData, D>(
5982 self.data
5983 .as_ref()
5984 .map(<AdvertisingData as fidl::encoding::ValueTypeMarker>::borrow),
5985 encoder,
5986 offset + cur_offset,
5987 depth,
5988 )?;
5989
5990 _prev_end_offset = cur_offset + envelope_size;
5991 if 2 > max_ordinal {
5992 return Ok(());
5993 }
5994
5995 let cur_offset: usize = (2 - 1) * envelope_size;
5998
5999 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6001
6002 fidl::encoding::encode_in_envelope_optional::<AdvertisingData, D>(
6007 self.scan_response
6008 .as_ref()
6009 .map(<AdvertisingData as fidl::encoding::ValueTypeMarker>::borrow),
6010 encoder,
6011 offset + cur_offset,
6012 depth,
6013 )?;
6014
6015 _prev_end_offset = cur_offset + envelope_size;
6016 if 3 > max_ordinal {
6017 return Ok(());
6018 }
6019
6020 let cur_offset: usize = (3 - 1) * envelope_size;
6023
6024 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6026
6027 fidl::encoding::encode_in_envelope_optional::<AdvertisingModeHint, D>(
6032 self.mode_hint
6033 .as_ref()
6034 .map(<AdvertisingModeHint as fidl::encoding::ValueTypeMarker>::borrow),
6035 encoder,
6036 offset + cur_offset,
6037 depth,
6038 )?;
6039
6040 _prev_end_offset = cur_offset + envelope_size;
6041 if 4 > max_ordinal {
6042 return Ok(());
6043 }
6044
6045 let cur_offset: usize = (4 - 1) * envelope_size;
6048
6049 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6051
6052 fidl::encoding::encode_in_envelope_optional::<bool, D>(
6057 self.connectable.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
6058 encoder,
6059 offset + cur_offset,
6060 depth,
6061 )?;
6062
6063 _prev_end_offset = cur_offset + envelope_size;
6064 if 5 > max_ordinal {
6065 return Ok(());
6066 }
6067
6068 let cur_offset: usize = (5 - 1) * envelope_size;
6071
6072 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6074
6075 fidl::encoding::encode_in_envelope_optional::<ConnectionOptions, D>(
6080 self.connection_options
6081 .as_ref()
6082 .map(<ConnectionOptions as fidl::encoding::ValueTypeMarker>::borrow),
6083 encoder,
6084 offset + cur_offset,
6085 depth,
6086 )?;
6087
6088 _prev_end_offset = cur_offset + envelope_size;
6089 if 6 > max_ordinal {
6090 return Ok(());
6091 }
6092
6093 let cur_offset: usize = (6 - 1) * envelope_size;
6096
6097 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6099
6100 fidl::encoding::encode_in_envelope_optional::<AdvertisingProcedure, D>(
6105 self.advertising_procedure
6106 .as_ref()
6107 .map(<AdvertisingProcedure as fidl::encoding::ValueTypeMarker>::borrow),
6108 encoder,
6109 offset + cur_offset,
6110 depth,
6111 )?;
6112
6113 _prev_end_offset = cur_offset + envelope_size;
6114 if 7 > max_ordinal {
6115 return Ok(());
6116 }
6117
6118 let cur_offset: usize = (7 - 1) * envelope_size;
6121
6122 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6124
6125 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_bluetooth__common::AddressType, D>(
6130 self.address_type.as_ref().map(<fidl_fuchsia_bluetooth__common::AddressType as fidl::encoding::ValueTypeMarker>::borrow),
6131 encoder, offset + cur_offset, depth
6132 )?;
6133
6134 _prev_end_offset = cur_offset + envelope_size;
6135
6136 Ok(())
6137 }
6138 }
6139
6140 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for AdvertisingParameters {
6141 #[inline(always)]
6142 fn new_empty() -> Self {
6143 Self::default()
6144 }
6145
6146 unsafe fn decode(
6147 &mut self,
6148 decoder: &mut fidl::encoding::Decoder<'_, D>,
6149 offset: usize,
6150 mut depth: fidl::encoding::Depth,
6151 ) -> fidl::Result<()> {
6152 decoder.debug_check_bounds::<Self>(offset);
6153 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
6154 None => return Err(fidl::Error::NotNullable),
6155 Some(len) => len,
6156 };
6157 if len == 0 {
6159 return Ok(());
6160 };
6161 depth.increment()?;
6162 let envelope_size = 8;
6163 let bytes_len = len * envelope_size;
6164 let offset = decoder.out_of_line_offset(bytes_len)?;
6165 let mut _next_ordinal_to_read = 0;
6167 let mut next_offset = offset;
6168 let end_offset = offset + bytes_len;
6169 _next_ordinal_to_read += 1;
6170 if next_offset >= end_offset {
6171 return Ok(());
6172 }
6173
6174 while _next_ordinal_to_read < 1 {
6176 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6177 _next_ordinal_to_read += 1;
6178 next_offset += envelope_size;
6179 }
6180
6181 let next_out_of_line = decoder.next_out_of_line();
6182 let handles_before = decoder.remaining_handles();
6183 if let Some((inlined, num_bytes, num_handles)) =
6184 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6185 {
6186 let member_inline_size =
6187 <AdvertisingData as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6188 if inlined != (member_inline_size <= 4) {
6189 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6190 }
6191 let inner_offset;
6192 let mut inner_depth = depth.clone();
6193 if inlined {
6194 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6195 inner_offset = next_offset;
6196 } else {
6197 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6198 inner_depth.increment()?;
6199 }
6200 let val_ref = self.data.get_or_insert_with(|| fidl::new_empty!(AdvertisingData, D));
6201 fidl::decode!(AdvertisingData, D, val_ref, decoder, inner_offset, inner_depth)?;
6202 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6203 {
6204 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6205 }
6206 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6207 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6208 }
6209 }
6210
6211 next_offset += envelope_size;
6212 _next_ordinal_to_read += 1;
6213 if next_offset >= end_offset {
6214 return Ok(());
6215 }
6216
6217 while _next_ordinal_to_read < 2 {
6219 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6220 _next_ordinal_to_read += 1;
6221 next_offset += envelope_size;
6222 }
6223
6224 let next_out_of_line = decoder.next_out_of_line();
6225 let handles_before = decoder.remaining_handles();
6226 if let Some((inlined, num_bytes, num_handles)) =
6227 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6228 {
6229 let member_inline_size =
6230 <AdvertisingData as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6231 if inlined != (member_inline_size <= 4) {
6232 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6233 }
6234 let inner_offset;
6235 let mut inner_depth = depth.clone();
6236 if inlined {
6237 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6238 inner_offset = next_offset;
6239 } else {
6240 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6241 inner_depth.increment()?;
6242 }
6243 let val_ref =
6244 self.scan_response.get_or_insert_with(|| fidl::new_empty!(AdvertisingData, D));
6245 fidl::decode!(AdvertisingData, D, val_ref, decoder, inner_offset, inner_depth)?;
6246 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6247 {
6248 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6249 }
6250 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6251 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6252 }
6253 }
6254
6255 next_offset += envelope_size;
6256 _next_ordinal_to_read += 1;
6257 if next_offset >= end_offset {
6258 return Ok(());
6259 }
6260
6261 while _next_ordinal_to_read < 3 {
6263 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6264 _next_ordinal_to_read += 1;
6265 next_offset += envelope_size;
6266 }
6267
6268 let next_out_of_line = decoder.next_out_of_line();
6269 let handles_before = decoder.remaining_handles();
6270 if let Some((inlined, num_bytes, num_handles)) =
6271 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6272 {
6273 let member_inline_size =
6274 <AdvertisingModeHint as fidl::encoding::TypeMarker>::inline_size(
6275 decoder.context,
6276 );
6277 if inlined != (member_inline_size <= 4) {
6278 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6279 }
6280 let inner_offset;
6281 let mut inner_depth = depth.clone();
6282 if inlined {
6283 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6284 inner_offset = next_offset;
6285 } else {
6286 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6287 inner_depth.increment()?;
6288 }
6289 let val_ref =
6290 self.mode_hint.get_or_insert_with(|| fidl::new_empty!(AdvertisingModeHint, D));
6291 fidl::decode!(AdvertisingModeHint, D, val_ref, decoder, inner_offset, inner_depth)?;
6292 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6293 {
6294 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6295 }
6296 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6297 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6298 }
6299 }
6300
6301 next_offset += envelope_size;
6302 _next_ordinal_to_read += 1;
6303 if next_offset >= end_offset {
6304 return Ok(());
6305 }
6306
6307 while _next_ordinal_to_read < 4 {
6309 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6310 _next_ordinal_to_read += 1;
6311 next_offset += envelope_size;
6312 }
6313
6314 let next_out_of_line = decoder.next_out_of_line();
6315 let handles_before = decoder.remaining_handles();
6316 if let Some((inlined, num_bytes, num_handles)) =
6317 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6318 {
6319 let member_inline_size =
6320 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6321 if inlined != (member_inline_size <= 4) {
6322 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6323 }
6324 let inner_offset;
6325 let mut inner_depth = depth.clone();
6326 if inlined {
6327 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6328 inner_offset = next_offset;
6329 } else {
6330 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6331 inner_depth.increment()?;
6332 }
6333 let val_ref = self.connectable.get_or_insert_with(|| fidl::new_empty!(bool, D));
6334 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
6335 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6336 {
6337 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6338 }
6339 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6340 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6341 }
6342 }
6343
6344 next_offset += envelope_size;
6345 _next_ordinal_to_read += 1;
6346 if next_offset >= end_offset {
6347 return Ok(());
6348 }
6349
6350 while _next_ordinal_to_read < 5 {
6352 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6353 _next_ordinal_to_read += 1;
6354 next_offset += envelope_size;
6355 }
6356
6357 let next_out_of_line = decoder.next_out_of_line();
6358 let handles_before = decoder.remaining_handles();
6359 if let Some((inlined, num_bytes, num_handles)) =
6360 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6361 {
6362 let member_inline_size =
6363 <ConnectionOptions as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6364 if inlined != (member_inline_size <= 4) {
6365 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6366 }
6367 let inner_offset;
6368 let mut inner_depth = depth.clone();
6369 if inlined {
6370 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6371 inner_offset = next_offset;
6372 } else {
6373 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6374 inner_depth.increment()?;
6375 }
6376 let val_ref = self
6377 .connection_options
6378 .get_or_insert_with(|| fidl::new_empty!(ConnectionOptions, D));
6379 fidl::decode!(ConnectionOptions, D, val_ref, decoder, inner_offset, inner_depth)?;
6380 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6381 {
6382 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6383 }
6384 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6385 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6386 }
6387 }
6388
6389 next_offset += envelope_size;
6390 _next_ordinal_to_read += 1;
6391 if next_offset >= end_offset {
6392 return Ok(());
6393 }
6394
6395 while _next_ordinal_to_read < 6 {
6397 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6398 _next_ordinal_to_read += 1;
6399 next_offset += envelope_size;
6400 }
6401
6402 let next_out_of_line = decoder.next_out_of_line();
6403 let handles_before = decoder.remaining_handles();
6404 if let Some((inlined, num_bytes, num_handles)) =
6405 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6406 {
6407 let member_inline_size =
6408 <AdvertisingProcedure as fidl::encoding::TypeMarker>::inline_size(
6409 decoder.context,
6410 );
6411 if inlined != (member_inline_size <= 4) {
6412 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6413 }
6414 let inner_offset;
6415 let mut inner_depth = depth.clone();
6416 if inlined {
6417 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6418 inner_offset = next_offset;
6419 } else {
6420 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6421 inner_depth.increment()?;
6422 }
6423 let val_ref = self
6424 .advertising_procedure
6425 .get_or_insert_with(|| fidl::new_empty!(AdvertisingProcedure, D));
6426 fidl::decode!(
6427 AdvertisingProcedure,
6428 D,
6429 val_ref,
6430 decoder,
6431 inner_offset,
6432 inner_depth
6433 )?;
6434 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6435 {
6436 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6437 }
6438 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6439 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6440 }
6441 }
6442
6443 next_offset += envelope_size;
6444 _next_ordinal_to_read += 1;
6445 if next_offset >= end_offset {
6446 return Ok(());
6447 }
6448
6449 while _next_ordinal_to_read < 7 {
6451 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6452 _next_ordinal_to_read += 1;
6453 next_offset += envelope_size;
6454 }
6455
6456 let next_out_of_line = decoder.next_out_of_line();
6457 let handles_before = decoder.remaining_handles();
6458 if let Some((inlined, num_bytes, num_handles)) =
6459 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6460 {
6461 let member_inline_size = <fidl_fuchsia_bluetooth__common::AddressType as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6462 if inlined != (member_inline_size <= 4) {
6463 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6464 }
6465 let inner_offset;
6466 let mut inner_depth = depth.clone();
6467 if inlined {
6468 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6469 inner_offset = next_offset;
6470 } else {
6471 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6472 inner_depth.increment()?;
6473 }
6474 let val_ref = self.address_type.get_or_insert_with(|| {
6475 fidl::new_empty!(fidl_fuchsia_bluetooth__common::AddressType, D)
6476 });
6477 fidl::decode!(
6478 fidl_fuchsia_bluetooth__common::AddressType,
6479 D,
6480 val_ref,
6481 decoder,
6482 inner_offset,
6483 inner_depth
6484 )?;
6485 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6486 {
6487 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6488 }
6489 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6490 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6491 }
6492 }
6493
6494 next_offset += envelope_size;
6495
6496 while next_offset < end_offset {
6498 _next_ordinal_to_read += 1;
6499 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6500 next_offset += envelope_size;
6501 }
6502
6503 Ok(())
6504 }
6505 }
6506
6507 impl BroadcastIsochronousGroupInfo {
6508 #[inline(always)]
6509 fn max_ordinal_present(&self) -> u64 {
6510 if let Some(_) = self.encryption {
6511 return 4;
6512 }
6513 if let Some(_) = self.phy {
6514 return 3;
6515 }
6516 if let Some(_) = self.max_sdu_size {
6517 return 2;
6518 }
6519 if let Some(_) = self.streams_count {
6520 return 1;
6521 }
6522 0
6523 }
6524 }
6525
6526 impl fidl::encoding::ValueTypeMarker for BroadcastIsochronousGroupInfo {
6527 type Borrowed<'a> = &'a Self;
6528 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6529 value
6530 }
6531 }
6532
6533 unsafe impl fidl::encoding::TypeMarker for BroadcastIsochronousGroupInfo {
6534 type Owned = Self;
6535
6536 #[inline(always)]
6537 fn inline_align(_context: fidl::encoding::Context) -> usize {
6538 8
6539 }
6540
6541 #[inline(always)]
6542 fn inline_size(_context: fidl::encoding::Context) -> usize {
6543 16
6544 }
6545 }
6546
6547 unsafe impl<D: fidl::encoding::ResourceDialect>
6548 fidl::encoding::Encode<BroadcastIsochronousGroupInfo, D>
6549 for &BroadcastIsochronousGroupInfo
6550 {
6551 unsafe fn encode(
6552 self,
6553 encoder: &mut fidl::encoding::Encoder<'_, D>,
6554 offset: usize,
6555 mut depth: fidl::encoding::Depth,
6556 ) -> fidl::Result<()> {
6557 encoder.debug_check_bounds::<BroadcastIsochronousGroupInfo>(offset);
6558 let max_ordinal: u64 = self.max_ordinal_present();
6560 encoder.write_num(max_ordinal, offset);
6561 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
6562 if max_ordinal == 0 {
6564 return Ok(());
6565 }
6566 depth.increment()?;
6567 let envelope_size = 8;
6568 let bytes_len = max_ordinal as usize * envelope_size;
6569 #[allow(unused_variables)]
6570 let offset = encoder.out_of_line_offset(bytes_len);
6571 let mut _prev_end_offset: usize = 0;
6572 if 1 > max_ordinal {
6573 return Ok(());
6574 }
6575
6576 let cur_offset: usize = (1 - 1) * envelope_size;
6579
6580 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6582
6583 fidl::encoding::encode_in_envelope_optional::<u8, D>(
6588 self.streams_count.as_ref().map(<u8 as fidl::encoding::ValueTypeMarker>::borrow),
6589 encoder,
6590 offset + cur_offset,
6591 depth,
6592 )?;
6593
6594 _prev_end_offset = cur_offset + envelope_size;
6595 if 2 > max_ordinal {
6596 return Ok(());
6597 }
6598
6599 let cur_offset: usize = (2 - 1) * envelope_size;
6602
6603 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6605
6606 fidl::encoding::encode_in_envelope_optional::<u16, D>(
6611 self.max_sdu_size.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
6612 encoder,
6613 offset + cur_offset,
6614 depth,
6615 )?;
6616
6617 _prev_end_offset = cur_offset + envelope_size;
6618 if 3 > max_ordinal {
6619 return Ok(());
6620 }
6621
6622 let cur_offset: usize = (3 - 1) * envelope_size;
6625
6626 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6628
6629 fidl::encoding::encode_in_envelope_optional::<PhysicalLayer, D>(
6634 self.phy.as_ref().map(<PhysicalLayer as fidl::encoding::ValueTypeMarker>::borrow),
6635 encoder,
6636 offset + cur_offset,
6637 depth,
6638 )?;
6639
6640 _prev_end_offset = cur_offset + envelope_size;
6641 if 4 > max_ordinal {
6642 return Ok(());
6643 }
6644
6645 let cur_offset: usize = (4 - 1) * envelope_size;
6648
6649 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6651
6652 fidl::encoding::encode_in_envelope_optional::<bool, D>(
6657 self.encryption.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
6658 encoder,
6659 offset + cur_offset,
6660 depth,
6661 )?;
6662
6663 _prev_end_offset = cur_offset + envelope_size;
6664
6665 Ok(())
6666 }
6667 }
6668
6669 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
6670 for BroadcastIsochronousGroupInfo
6671 {
6672 #[inline(always)]
6673 fn new_empty() -> Self {
6674 Self::default()
6675 }
6676
6677 unsafe fn decode(
6678 &mut self,
6679 decoder: &mut fidl::encoding::Decoder<'_, D>,
6680 offset: usize,
6681 mut depth: fidl::encoding::Depth,
6682 ) -> fidl::Result<()> {
6683 decoder.debug_check_bounds::<Self>(offset);
6684 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
6685 None => return Err(fidl::Error::NotNullable),
6686 Some(len) => len,
6687 };
6688 if len == 0 {
6690 return Ok(());
6691 };
6692 depth.increment()?;
6693 let envelope_size = 8;
6694 let bytes_len = len * envelope_size;
6695 let offset = decoder.out_of_line_offset(bytes_len)?;
6696 let mut _next_ordinal_to_read = 0;
6698 let mut next_offset = offset;
6699 let end_offset = offset + bytes_len;
6700 _next_ordinal_to_read += 1;
6701 if next_offset >= end_offset {
6702 return Ok(());
6703 }
6704
6705 while _next_ordinal_to_read < 1 {
6707 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6708 _next_ordinal_to_read += 1;
6709 next_offset += envelope_size;
6710 }
6711
6712 let next_out_of_line = decoder.next_out_of_line();
6713 let handles_before = decoder.remaining_handles();
6714 if let Some((inlined, num_bytes, num_handles)) =
6715 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6716 {
6717 let member_inline_size =
6718 <u8 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6719 if inlined != (member_inline_size <= 4) {
6720 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6721 }
6722 let inner_offset;
6723 let mut inner_depth = depth.clone();
6724 if inlined {
6725 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6726 inner_offset = next_offset;
6727 } else {
6728 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6729 inner_depth.increment()?;
6730 }
6731 let val_ref = self.streams_count.get_or_insert_with(|| fidl::new_empty!(u8, D));
6732 fidl::decode!(u8, D, val_ref, decoder, inner_offset, inner_depth)?;
6733 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6734 {
6735 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6736 }
6737 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6738 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6739 }
6740 }
6741
6742 next_offset += envelope_size;
6743 _next_ordinal_to_read += 1;
6744 if next_offset >= end_offset {
6745 return Ok(());
6746 }
6747
6748 while _next_ordinal_to_read < 2 {
6750 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6751 _next_ordinal_to_read += 1;
6752 next_offset += envelope_size;
6753 }
6754
6755 let next_out_of_line = decoder.next_out_of_line();
6756 let handles_before = decoder.remaining_handles();
6757 if let Some((inlined, num_bytes, num_handles)) =
6758 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6759 {
6760 let member_inline_size =
6761 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6762 if inlined != (member_inline_size <= 4) {
6763 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6764 }
6765 let inner_offset;
6766 let mut inner_depth = depth.clone();
6767 if inlined {
6768 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6769 inner_offset = next_offset;
6770 } else {
6771 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6772 inner_depth.increment()?;
6773 }
6774 let val_ref = self.max_sdu_size.get_or_insert_with(|| fidl::new_empty!(u16, D));
6775 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
6776 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6777 {
6778 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6779 }
6780 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6781 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6782 }
6783 }
6784
6785 next_offset += envelope_size;
6786 _next_ordinal_to_read += 1;
6787 if next_offset >= end_offset {
6788 return Ok(());
6789 }
6790
6791 while _next_ordinal_to_read < 3 {
6793 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6794 _next_ordinal_to_read += 1;
6795 next_offset += envelope_size;
6796 }
6797
6798 let next_out_of_line = decoder.next_out_of_line();
6799 let handles_before = decoder.remaining_handles();
6800 if let Some((inlined, num_bytes, num_handles)) =
6801 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6802 {
6803 let member_inline_size =
6804 <PhysicalLayer as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6805 if inlined != (member_inline_size <= 4) {
6806 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6807 }
6808 let inner_offset;
6809 let mut inner_depth = depth.clone();
6810 if inlined {
6811 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6812 inner_offset = next_offset;
6813 } else {
6814 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6815 inner_depth.increment()?;
6816 }
6817 let val_ref = self.phy.get_or_insert_with(|| fidl::new_empty!(PhysicalLayer, D));
6818 fidl::decode!(PhysicalLayer, D, val_ref, decoder, inner_offset, inner_depth)?;
6819 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6820 {
6821 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6822 }
6823 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6824 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6825 }
6826 }
6827
6828 next_offset += envelope_size;
6829 _next_ordinal_to_read += 1;
6830 if next_offset >= end_offset {
6831 return Ok(());
6832 }
6833
6834 while _next_ordinal_to_read < 4 {
6836 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6837 _next_ordinal_to_read += 1;
6838 next_offset += envelope_size;
6839 }
6840
6841 let next_out_of_line = decoder.next_out_of_line();
6842 let handles_before = decoder.remaining_handles();
6843 if let Some((inlined, num_bytes, num_handles)) =
6844 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6845 {
6846 let member_inline_size =
6847 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6848 if inlined != (member_inline_size <= 4) {
6849 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6850 }
6851 let inner_offset;
6852 let mut inner_depth = depth.clone();
6853 if inlined {
6854 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6855 inner_offset = next_offset;
6856 } else {
6857 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6858 inner_depth.increment()?;
6859 }
6860 let val_ref = self.encryption.get_or_insert_with(|| fidl::new_empty!(bool, D));
6861 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
6862 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6863 {
6864 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6865 }
6866 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6867 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6868 }
6869 }
6870
6871 next_offset += envelope_size;
6872
6873 while next_offset < end_offset {
6875 _next_ordinal_to_read += 1;
6876 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6877 next_offset += envelope_size;
6878 }
6879
6880 Ok(())
6881 }
6882 }
6883
6884 impl BroadcastIsochronousGroupInfoReport {
6885 #[inline(always)]
6886 fn max_ordinal_present(&self) -> u64 {
6887 if let Some(_) = self.timestamp {
6888 return 2;
6889 }
6890 if let Some(_) = self.info {
6891 return 1;
6892 }
6893 0
6894 }
6895 }
6896
6897 impl fidl::encoding::ValueTypeMarker for BroadcastIsochronousGroupInfoReport {
6898 type Borrowed<'a> = &'a Self;
6899 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6900 value
6901 }
6902 }
6903
6904 unsafe impl fidl::encoding::TypeMarker for BroadcastIsochronousGroupInfoReport {
6905 type Owned = Self;
6906
6907 #[inline(always)]
6908 fn inline_align(_context: fidl::encoding::Context) -> usize {
6909 8
6910 }
6911
6912 #[inline(always)]
6913 fn inline_size(_context: fidl::encoding::Context) -> usize {
6914 16
6915 }
6916 }
6917
6918 unsafe impl<D: fidl::encoding::ResourceDialect>
6919 fidl::encoding::Encode<BroadcastIsochronousGroupInfoReport, D>
6920 for &BroadcastIsochronousGroupInfoReport
6921 {
6922 unsafe fn encode(
6923 self,
6924 encoder: &mut fidl::encoding::Encoder<'_, D>,
6925 offset: usize,
6926 mut depth: fidl::encoding::Depth,
6927 ) -> fidl::Result<()> {
6928 encoder.debug_check_bounds::<BroadcastIsochronousGroupInfoReport>(offset);
6929 let max_ordinal: u64 = self.max_ordinal_present();
6931 encoder.write_num(max_ordinal, offset);
6932 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
6933 if max_ordinal == 0 {
6935 return Ok(());
6936 }
6937 depth.increment()?;
6938 let envelope_size = 8;
6939 let bytes_len = max_ordinal as usize * envelope_size;
6940 #[allow(unused_variables)]
6941 let offset = encoder.out_of_line_offset(bytes_len);
6942 let mut _prev_end_offset: usize = 0;
6943 if 1 > max_ordinal {
6944 return Ok(());
6945 }
6946
6947 let cur_offset: usize = (1 - 1) * envelope_size;
6950
6951 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6953
6954 fidl::encoding::encode_in_envelope_optional::<BroadcastIsochronousGroupInfo, D>(
6959 self.info.as_ref().map(
6960 <BroadcastIsochronousGroupInfo as fidl::encoding::ValueTypeMarker>::borrow,
6961 ),
6962 encoder,
6963 offset + cur_offset,
6964 depth,
6965 )?;
6966
6967 _prev_end_offset = cur_offset + envelope_size;
6968 if 2 > max_ordinal {
6969 return Ok(());
6970 }
6971
6972 let cur_offset: usize = (2 - 1) * envelope_size;
6975
6976 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6978
6979 fidl::encoding::encode_in_envelope_optional::<i64, D>(
6984 self.timestamp.as_ref().map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
6985 encoder,
6986 offset + cur_offset,
6987 depth,
6988 )?;
6989
6990 _prev_end_offset = cur_offset + envelope_size;
6991
6992 Ok(())
6993 }
6994 }
6995
6996 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
6997 for BroadcastIsochronousGroupInfoReport
6998 {
6999 #[inline(always)]
7000 fn new_empty() -> Self {
7001 Self::default()
7002 }
7003
7004 unsafe fn decode(
7005 &mut self,
7006 decoder: &mut fidl::encoding::Decoder<'_, D>,
7007 offset: usize,
7008 mut depth: fidl::encoding::Depth,
7009 ) -> fidl::Result<()> {
7010 decoder.debug_check_bounds::<Self>(offset);
7011 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
7012 None => return Err(fidl::Error::NotNullable),
7013 Some(len) => len,
7014 };
7015 if len == 0 {
7017 return Ok(());
7018 };
7019 depth.increment()?;
7020 let envelope_size = 8;
7021 let bytes_len = len * envelope_size;
7022 let offset = decoder.out_of_line_offset(bytes_len)?;
7023 let mut _next_ordinal_to_read = 0;
7025 let mut next_offset = offset;
7026 let end_offset = offset + bytes_len;
7027 _next_ordinal_to_read += 1;
7028 if next_offset >= end_offset {
7029 return Ok(());
7030 }
7031
7032 while _next_ordinal_to_read < 1 {
7034 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7035 _next_ordinal_to_read += 1;
7036 next_offset += envelope_size;
7037 }
7038
7039 let next_out_of_line = decoder.next_out_of_line();
7040 let handles_before = decoder.remaining_handles();
7041 if let Some((inlined, num_bytes, num_handles)) =
7042 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7043 {
7044 let member_inline_size =
7045 <BroadcastIsochronousGroupInfo as fidl::encoding::TypeMarker>::inline_size(
7046 decoder.context,
7047 );
7048 if inlined != (member_inline_size <= 4) {
7049 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7050 }
7051 let inner_offset;
7052 let mut inner_depth = depth.clone();
7053 if inlined {
7054 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7055 inner_offset = next_offset;
7056 } else {
7057 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7058 inner_depth.increment()?;
7059 }
7060 let val_ref = self
7061 .info
7062 .get_or_insert_with(|| fidl::new_empty!(BroadcastIsochronousGroupInfo, D));
7063 fidl::decode!(
7064 BroadcastIsochronousGroupInfo,
7065 D,
7066 val_ref,
7067 decoder,
7068 inner_offset,
7069 inner_depth
7070 )?;
7071 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7072 {
7073 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7074 }
7075 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7076 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7077 }
7078 }
7079
7080 next_offset += envelope_size;
7081 _next_ordinal_to_read += 1;
7082 if next_offset >= end_offset {
7083 return Ok(());
7084 }
7085
7086 while _next_ordinal_to_read < 2 {
7088 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7089 _next_ordinal_to_read += 1;
7090 next_offset += envelope_size;
7091 }
7092
7093 let next_out_of_line = decoder.next_out_of_line();
7094 let handles_before = decoder.remaining_handles();
7095 if let Some((inlined, num_bytes, num_handles)) =
7096 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7097 {
7098 let member_inline_size =
7099 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7100 if inlined != (member_inline_size <= 4) {
7101 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7102 }
7103 let inner_offset;
7104 let mut inner_depth = depth.clone();
7105 if inlined {
7106 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7107 inner_offset = next_offset;
7108 } else {
7109 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7110 inner_depth.increment()?;
7111 }
7112 let val_ref = self.timestamp.get_or_insert_with(|| fidl::new_empty!(i64, D));
7113 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
7114 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7115 {
7116 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7117 }
7118 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7119 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7120 }
7121 }
7122
7123 next_offset += envelope_size;
7124
7125 while next_offset < end_offset {
7127 _next_ordinal_to_read += 1;
7128 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7129 next_offset += envelope_size;
7130 }
7131
7132 Ok(())
7133 }
7134 }
7135
7136 impl CentralCreateConnectedIsochronousGroupResponse {
7137 #[inline(always)]
7138 fn max_ordinal_present(&self) -> u64 {
7139 if let Some(_) = self.cig_id {
7140 return 1;
7141 }
7142 0
7143 }
7144 }
7145
7146 impl fidl::encoding::ValueTypeMarker for CentralCreateConnectedIsochronousGroupResponse {
7147 type Borrowed<'a> = &'a Self;
7148 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7149 value
7150 }
7151 }
7152
7153 unsafe impl fidl::encoding::TypeMarker for CentralCreateConnectedIsochronousGroupResponse {
7154 type Owned = Self;
7155
7156 #[inline(always)]
7157 fn inline_align(_context: fidl::encoding::Context) -> usize {
7158 8
7159 }
7160
7161 #[inline(always)]
7162 fn inline_size(_context: fidl::encoding::Context) -> usize {
7163 16
7164 }
7165 }
7166
7167 unsafe impl<D: fidl::encoding::ResourceDialect>
7168 fidl::encoding::Encode<CentralCreateConnectedIsochronousGroupResponse, D>
7169 for &CentralCreateConnectedIsochronousGroupResponse
7170 {
7171 unsafe fn encode(
7172 self,
7173 encoder: &mut fidl::encoding::Encoder<'_, D>,
7174 offset: usize,
7175 mut depth: fidl::encoding::Depth,
7176 ) -> fidl::Result<()> {
7177 encoder.debug_check_bounds::<CentralCreateConnectedIsochronousGroupResponse>(offset);
7178 let max_ordinal: u64 = self.max_ordinal_present();
7180 encoder.write_num(max_ordinal, offset);
7181 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
7182 if max_ordinal == 0 {
7184 return Ok(());
7185 }
7186 depth.increment()?;
7187 let envelope_size = 8;
7188 let bytes_len = max_ordinal as usize * envelope_size;
7189 #[allow(unused_variables)]
7190 let offset = encoder.out_of_line_offset(bytes_len);
7191 let mut _prev_end_offset: usize = 0;
7192 if 1 > max_ordinal {
7193 return Ok(());
7194 }
7195
7196 let cur_offset: usize = (1 - 1) * envelope_size;
7199
7200 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7202
7203 fidl::encoding::encode_in_envelope_optional::<u8, D>(
7208 self.cig_id.as_ref().map(<u8 as fidl::encoding::ValueTypeMarker>::borrow),
7209 encoder,
7210 offset + cur_offset,
7211 depth,
7212 )?;
7213
7214 _prev_end_offset = cur_offset + envelope_size;
7215
7216 Ok(())
7217 }
7218 }
7219
7220 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
7221 for CentralCreateConnectedIsochronousGroupResponse
7222 {
7223 #[inline(always)]
7224 fn new_empty() -> Self {
7225 Self::default()
7226 }
7227
7228 unsafe fn decode(
7229 &mut self,
7230 decoder: &mut fidl::encoding::Decoder<'_, D>,
7231 offset: usize,
7232 mut depth: fidl::encoding::Depth,
7233 ) -> fidl::Result<()> {
7234 decoder.debug_check_bounds::<Self>(offset);
7235 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
7236 None => return Err(fidl::Error::NotNullable),
7237 Some(len) => len,
7238 };
7239 if len == 0 {
7241 return Ok(());
7242 };
7243 depth.increment()?;
7244 let envelope_size = 8;
7245 let bytes_len = len * envelope_size;
7246 let offset = decoder.out_of_line_offset(bytes_len)?;
7247 let mut _next_ordinal_to_read = 0;
7249 let mut next_offset = offset;
7250 let end_offset = offset + bytes_len;
7251 _next_ordinal_to_read += 1;
7252 if next_offset >= end_offset {
7253 return Ok(());
7254 }
7255
7256 while _next_ordinal_to_read < 1 {
7258 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7259 _next_ordinal_to_read += 1;
7260 next_offset += envelope_size;
7261 }
7262
7263 let next_out_of_line = decoder.next_out_of_line();
7264 let handles_before = decoder.remaining_handles();
7265 if let Some((inlined, num_bytes, num_handles)) =
7266 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7267 {
7268 let member_inline_size =
7269 <u8 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7270 if inlined != (member_inline_size <= 4) {
7271 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7272 }
7273 let inner_offset;
7274 let mut inner_depth = depth.clone();
7275 if inlined {
7276 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7277 inner_offset = next_offset;
7278 } else {
7279 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7280 inner_depth.increment()?;
7281 }
7282 let val_ref = self.cig_id.get_or_insert_with(|| fidl::new_empty!(u8, D));
7283 fidl::decode!(u8, D, val_ref, decoder, inner_offset, inner_depth)?;
7284 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7285 {
7286 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7287 }
7288 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7289 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7290 }
7291 }
7292
7293 next_offset += envelope_size;
7294
7295 while next_offset < end_offset {
7297 _next_ordinal_to_read += 1;
7298 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7299 next_offset += envelope_size;
7300 }
7301
7302 Ok(())
7303 }
7304 }
7305
7306 impl ChannelListenerRegistryListenL2capResponse {
7307 #[inline(always)]
7308 fn max_ordinal_present(&self) -> u64 {
7309 if let Some(_) = self.psm {
7310 return 1;
7311 }
7312 0
7313 }
7314 }
7315
7316 impl fidl::encoding::ValueTypeMarker for ChannelListenerRegistryListenL2capResponse {
7317 type Borrowed<'a> = &'a Self;
7318 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7319 value
7320 }
7321 }
7322
7323 unsafe impl fidl::encoding::TypeMarker for ChannelListenerRegistryListenL2capResponse {
7324 type Owned = Self;
7325
7326 #[inline(always)]
7327 fn inline_align(_context: fidl::encoding::Context) -> usize {
7328 8
7329 }
7330
7331 #[inline(always)]
7332 fn inline_size(_context: fidl::encoding::Context) -> usize {
7333 16
7334 }
7335 }
7336
7337 unsafe impl<D: fidl::encoding::ResourceDialect>
7338 fidl::encoding::Encode<ChannelListenerRegistryListenL2capResponse, D>
7339 for &ChannelListenerRegistryListenL2capResponse
7340 {
7341 unsafe fn encode(
7342 self,
7343 encoder: &mut fidl::encoding::Encoder<'_, D>,
7344 offset: usize,
7345 mut depth: fidl::encoding::Depth,
7346 ) -> fidl::Result<()> {
7347 encoder.debug_check_bounds::<ChannelListenerRegistryListenL2capResponse>(offset);
7348 let max_ordinal: u64 = self.max_ordinal_present();
7350 encoder.write_num(max_ordinal, offset);
7351 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
7352 if max_ordinal == 0 {
7354 return Ok(());
7355 }
7356 depth.increment()?;
7357 let envelope_size = 8;
7358 let bytes_len = max_ordinal as usize * envelope_size;
7359 #[allow(unused_variables)]
7360 let offset = encoder.out_of_line_offset(bytes_len);
7361 let mut _prev_end_offset: usize = 0;
7362 if 1 > max_ordinal {
7363 return Ok(());
7364 }
7365
7366 let cur_offset: usize = (1 - 1) * envelope_size;
7369
7370 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7372
7373 fidl::encoding::encode_in_envelope_optional::<u16, D>(
7378 self.psm.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
7379 encoder,
7380 offset + cur_offset,
7381 depth,
7382 )?;
7383
7384 _prev_end_offset = cur_offset + envelope_size;
7385
7386 Ok(())
7387 }
7388 }
7389
7390 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
7391 for ChannelListenerRegistryListenL2capResponse
7392 {
7393 #[inline(always)]
7394 fn new_empty() -> Self {
7395 Self::default()
7396 }
7397
7398 unsafe fn decode(
7399 &mut self,
7400 decoder: &mut fidl::encoding::Decoder<'_, D>,
7401 offset: usize,
7402 mut depth: fidl::encoding::Depth,
7403 ) -> fidl::Result<()> {
7404 decoder.debug_check_bounds::<Self>(offset);
7405 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
7406 None => return Err(fidl::Error::NotNullable),
7407 Some(len) => len,
7408 };
7409 if len == 0 {
7411 return Ok(());
7412 };
7413 depth.increment()?;
7414 let envelope_size = 8;
7415 let bytes_len = len * envelope_size;
7416 let offset = decoder.out_of_line_offset(bytes_len)?;
7417 let mut _next_ordinal_to_read = 0;
7419 let mut next_offset = offset;
7420 let end_offset = offset + bytes_len;
7421 _next_ordinal_to_read += 1;
7422 if next_offset >= end_offset {
7423 return Ok(());
7424 }
7425
7426 while _next_ordinal_to_read < 1 {
7428 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7429 _next_ordinal_to_read += 1;
7430 next_offset += envelope_size;
7431 }
7432
7433 let next_out_of_line = decoder.next_out_of_line();
7434 let handles_before = decoder.remaining_handles();
7435 if let Some((inlined, num_bytes, num_handles)) =
7436 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7437 {
7438 let member_inline_size =
7439 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7440 if inlined != (member_inline_size <= 4) {
7441 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7442 }
7443 let inner_offset;
7444 let mut inner_depth = depth.clone();
7445 if inlined {
7446 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7447 inner_offset = next_offset;
7448 } else {
7449 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7450 inner_depth.increment()?;
7451 }
7452 let val_ref = self.psm.get_or_insert_with(|| fidl::new_empty!(u16, D));
7453 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
7454 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7455 {
7456 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7457 }
7458 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7459 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7460 }
7461 }
7462
7463 next_offset += envelope_size;
7464
7465 while next_offset < end_offset {
7467 _next_ordinal_to_read += 1;
7468 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7469 next_offset += envelope_size;
7470 }
7471
7472 Ok(())
7473 }
7474 }
7475
7476 impl CigParameters {
7477 #[inline(always)]
7478 fn max_ordinal_present(&self) -> u64 {
7479 if let Some(_) = self.max_transport_latency_p_to_c {
7480 return 6;
7481 }
7482 if let Some(_) = self.max_transport_latency_c_to_p {
7483 return 5;
7484 }
7485 if let Some(_) = self.framing {
7486 return 4;
7487 }
7488 if let Some(_) = self.packing {
7489 return 3;
7490 }
7491 if let Some(_) = self.sdu_interval_p_to_c {
7492 return 2;
7493 }
7494 if let Some(_) = self.sdu_interval_c_to_p {
7495 return 1;
7496 }
7497 0
7498 }
7499 }
7500
7501 impl fidl::encoding::ValueTypeMarker for CigParameters {
7502 type Borrowed<'a> = &'a Self;
7503 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7504 value
7505 }
7506 }
7507
7508 unsafe impl fidl::encoding::TypeMarker for CigParameters {
7509 type Owned = Self;
7510
7511 #[inline(always)]
7512 fn inline_align(_context: fidl::encoding::Context) -> usize {
7513 8
7514 }
7515
7516 #[inline(always)]
7517 fn inline_size(_context: fidl::encoding::Context) -> usize {
7518 16
7519 }
7520 }
7521
7522 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<CigParameters, D>
7523 for &CigParameters
7524 {
7525 unsafe fn encode(
7526 self,
7527 encoder: &mut fidl::encoding::Encoder<'_, D>,
7528 offset: usize,
7529 mut depth: fidl::encoding::Depth,
7530 ) -> fidl::Result<()> {
7531 encoder.debug_check_bounds::<CigParameters>(offset);
7532 let max_ordinal: u64 = self.max_ordinal_present();
7534 encoder.write_num(max_ordinal, offset);
7535 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
7536 if max_ordinal == 0 {
7538 return Ok(());
7539 }
7540 depth.increment()?;
7541 let envelope_size = 8;
7542 let bytes_len = max_ordinal as usize * envelope_size;
7543 #[allow(unused_variables)]
7544 let offset = encoder.out_of_line_offset(bytes_len);
7545 let mut _prev_end_offset: usize = 0;
7546 if 1 > max_ordinal {
7547 return Ok(());
7548 }
7549
7550 let cur_offset: usize = (1 - 1) * envelope_size;
7553
7554 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7556
7557 fidl::encoding::encode_in_envelope_optional::<u32, D>(
7562 self.sdu_interval_c_to_p
7563 .as_ref()
7564 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
7565 encoder,
7566 offset + cur_offset,
7567 depth,
7568 )?;
7569
7570 _prev_end_offset = cur_offset + envelope_size;
7571 if 2 > max_ordinal {
7572 return Ok(());
7573 }
7574
7575 let cur_offset: usize = (2 - 1) * envelope_size;
7578
7579 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7581
7582 fidl::encoding::encode_in_envelope_optional::<u32, D>(
7587 self.sdu_interval_p_to_c
7588 .as_ref()
7589 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
7590 encoder,
7591 offset + cur_offset,
7592 depth,
7593 )?;
7594
7595 _prev_end_offset = cur_offset + envelope_size;
7596 if 3 > max_ordinal {
7597 return Ok(());
7598 }
7599
7600 let cur_offset: usize = (3 - 1) * envelope_size;
7603
7604 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7606
7607 fidl::encoding::encode_in_envelope_optional::<CigPacking, D>(
7612 self.packing.as_ref().map(<CigPacking as fidl::encoding::ValueTypeMarker>::borrow),
7613 encoder,
7614 offset + cur_offset,
7615 depth,
7616 )?;
7617
7618 _prev_end_offset = cur_offset + envelope_size;
7619 if 4 > max_ordinal {
7620 return Ok(());
7621 }
7622
7623 let cur_offset: usize = (4 - 1) * envelope_size;
7626
7627 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7629
7630 fidl::encoding::encode_in_envelope_optional::<CigFramingOptions, D>(
7635 self.framing
7636 .as_ref()
7637 .map(<CigFramingOptions as fidl::encoding::ValueTypeMarker>::borrow),
7638 encoder,
7639 offset + cur_offset,
7640 depth,
7641 )?;
7642
7643 _prev_end_offset = cur_offset + envelope_size;
7644 if 5 > max_ordinal {
7645 return Ok(());
7646 }
7647
7648 let cur_offset: usize = (5 - 1) * envelope_size;
7651
7652 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7654
7655 fidl::encoding::encode_in_envelope_optional::<u16, D>(
7660 self.max_transport_latency_c_to_p
7661 .as_ref()
7662 .map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
7663 encoder,
7664 offset + cur_offset,
7665 depth,
7666 )?;
7667
7668 _prev_end_offset = cur_offset + envelope_size;
7669 if 6 > max_ordinal {
7670 return Ok(());
7671 }
7672
7673 let cur_offset: usize = (6 - 1) * envelope_size;
7676
7677 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7679
7680 fidl::encoding::encode_in_envelope_optional::<u16, D>(
7685 self.max_transport_latency_p_to_c
7686 .as_ref()
7687 .map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
7688 encoder,
7689 offset + cur_offset,
7690 depth,
7691 )?;
7692
7693 _prev_end_offset = cur_offset + envelope_size;
7694
7695 Ok(())
7696 }
7697 }
7698
7699 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for CigParameters {
7700 #[inline(always)]
7701 fn new_empty() -> Self {
7702 Self::default()
7703 }
7704
7705 unsafe fn decode(
7706 &mut self,
7707 decoder: &mut fidl::encoding::Decoder<'_, D>,
7708 offset: usize,
7709 mut depth: fidl::encoding::Depth,
7710 ) -> fidl::Result<()> {
7711 decoder.debug_check_bounds::<Self>(offset);
7712 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
7713 None => return Err(fidl::Error::NotNullable),
7714 Some(len) => len,
7715 };
7716 if len == 0 {
7718 return Ok(());
7719 };
7720 depth.increment()?;
7721 let envelope_size = 8;
7722 let bytes_len = len * envelope_size;
7723 let offset = decoder.out_of_line_offset(bytes_len)?;
7724 let mut _next_ordinal_to_read = 0;
7726 let mut next_offset = offset;
7727 let end_offset = offset + bytes_len;
7728 _next_ordinal_to_read += 1;
7729 if next_offset >= end_offset {
7730 return Ok(());
7731 }
7732
7733 while _next_ordinal_to_read < 1 {
7735 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7736 _next_ordinal_to_read += 1;
7737 next_offset += envelope_size;
7738 }
7739
7740 let next_out_of_line = decoder.next_out_of_line();
7741 let handles_before = decoder.remaining_handles();
7742 if let Some((inlined, num_bytes, num_handles)) =
7743 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7744 {
7745 let member_inline_size =
7746 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7747 if inlined != (member_inline_size <= 4) {
7748 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7749 }
7750 let inner_offset;
7751 let mut inner_depth = depth.clone();
7752 if inlined {
7753 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7754 inner_offset = next_offset;
7755 } else {
7756 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7757 inner_depth.increment()?;
7758 }
7759 let val_ref =
7760 self.sdu_interval_c_to_p.get_or_insert_with(|| fidl::new_empty!(u32, D));
7761 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
7762 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7763 {
7764 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7765 }
7766 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7767 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7768 }
7769 }
7770
7771 next_offset += envelope_size;
7772 _next_ordinal_to_read += 1;
7773 if next_offset >= end_offset {
7774 return Ok(());
7775 }
7776
7777 while _next_ordinal_to_read < 2 {
7779 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7780 _next_ordinal_to_read += 1;
7781 next_offset += envelope_size;
7782 }
7783
7784 let next_out_of_line = decoder.next_out_of_line();
7785 let handles_before = decoder.remaining_handles();
7786 if let Some((inlined, num_bytes, num_handles)) =
7787 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7788 {
7789 let member_inline_size =
7790 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7791 if inlined != (member_inline_size <= 4) {
7792 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7793 }
7794 let inner_offset;
7795 let mut inner_depth = depth.clone();
7796 if inlined {
7797 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7798 inner_offset = next_offset;
7799 } else {
7800 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7801 inner_depth.increment()?;
7802 }
7803 let val_ref =
7804 self.sdu_interval_p_to_c.get_or_insert_with(|| fidl::new_empty!(u32, D));
7805 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
7806 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7807 {
7808 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7809 }
7810 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7811 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7812 }
7813 }
7814
7815 next_offset += envelope_size;
7816 _next_ordinal_to_read += 1;
7817 if next_offset >= end_offset {
7818 return Ok(());
7819 }
7820
7821 while _next_ordinal_to_read < 3 {
7823 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7824 _next_ordinal_to_read += 1;
7825 next_offset += envelope_size;
7826 }
7827
7828 let next_out_of_line = decoder.next_out_of_line();
7829 let handles_before = decoder.remaining_handles();
7830 if let Some((inlined, num_bytes, num_handles)) =
7831 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7832 {
7833 let member_inline_size =
7834 <CigPacking as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7835 if inlined != (member_inline_size <= 4) {
7836 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7837 }
7838 let inner_offset;
7839 let mut inner_depth = depth.clone();
7840 if inlined {
7841 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7842 inner_offset = next_offset;
7843 } else {
7844 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7845 inner_depth.increment()?;
7846 }
7847 let val_ref = self.packing.get_or_insert_with(|| fidl::new_empty!(CigPacking, D));
7848 fidl::decode!(CigPacking, D, val_ref, decoder, inner_offset, inner_depth)?;
7849 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7850 {
7851 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7852 }
7853 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7854 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7855 }
7856 }
7857
7858 next_offset += envelope_size;
7859 _next_ordinal_to_read += 1;
7860 if next_offset >= end_offset {
7861 return Ok(());
7862 }
7863
7864 while _next_ordinal_to_read < 4 {
7866 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7867 _next_ordinal_to_read += 1;
7868 next_offset += envelope_size;
7869 }
7870
7871 let next_out_of_line = decoder.next_out_of_line();
7872 let handles_before = decoder.remaining_handles();
7873 if let Some((inlined, num_bytes, num_handles)) =
7874 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7875 {
7876 let member_inline_size =
7877 <CigFramingOptions as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7878 if inlined != (member_inline_size <= 4) {
7879 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7880 }
7881 let inner_offset;
7882 let mut inner_depth = depth.clone();
7883 if inlined {
7884 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7885 inner_offset = next_offset;
7886 } else {
7887 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7888 inner_depth.increment()?;
7889 }
7890 let val_ref =
7891 self.framing.get_or_insert_with(|| fidl::new_empty!(CigFramingOptions, D));
7892 fidl::decode!(CigFramingOptions, D, val_ref, decoder, inner_offset, inner_depth)?;
7893 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7894 {
7895 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7896 }
7897 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7898 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7899 }
7900 }
7901
7902 next_offset += envelope_size;
7903 _next_ordinal_to_read += 1;
7904 if next_offset >= end_offset {
7905 return Ok(());
7906 }
7907
7908 while _next_ordinal_to_read < 5 {
7910 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7911 _next_ordinal_to_read += 1;
7912 next_offset += envelope_size;
7913 }
7914
7915 let next_out_of_line = decoder.next_out_of_line();
7916 let handles_before = decoder.remaining_handles();
7917 if let Some((inlined, num_bytes, num_handles)) =
7918 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7919 {
7920 let member_inline_size =
7921 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7922 if inlined != (member_inline_size <= 4) {
7923 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7924 }
7925 let inner_offset;
7926 let mut inner_depth = depth.clone();
7927 if inlined {
7928 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7929 inner_offset = next_offset;
7930 } else {
7931 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7932 inner_depth.increment()?;
7933 }
7934 let val_ref = self
7935 .max_transport_latency_c_to_p
7936 .get_or_insert_with(|| fidl::new_empty!(u16, D));
7937 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
7938 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7939 {
7940 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7941 }
7942 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7943 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7944 }
7945 }
7946
7947 next_offset += envelope_size;
7948 _next_ordinal_to_read += 1;
7949 if next_offset >= end_offset {
7950 return Ok(());
7951 }
7952
7953 while _next_ordinal_to_read < 6 {
7955 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7956 _next_ordinal_to_read += 1;
7957 next_offset += envelope_size;
7958 }
7959
7960 let next_out_of_line = decoder.next_out_of_line();
7961 let handles_before = decoder.remaining_handles();
7962 if let Some((inlined, num_bytes, num_handles)) =
7963 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7964 {
7965 let member_inline_size =
7966 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7967 if inlined != (member_inline_size <= 4) {
7968 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7969 }
7970 let inner_offset;
7971 let mut inner_depth = depth.clone();
7972 if inlined {
7973 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7974 inner_offset = next_offset;
7975 } else {
7976 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7977 inner_depth.increment()?;
7978 }
7979 let val_ref = self
7980 .max_transport_latency_p_to_c
7981 .get_or_insert_with(|| fidl::new_empty!(u16, D));
7982 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
7983 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7984 {
7985 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7986 }
7987 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7988 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7989 }
7990 }
7991
7992 next_offset += envelope_size;
7993
7994 while next_offset < end_offset {
7996 _next_ordinal_to_read += 1;
7997 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7998 next_offset += envelope_size;
7999 }
8000
8001 Ok(())
8002 }
8003 }
8004
8005 impl CisEstablishedParameters {
8006 #[inline(always)]
8007 fn max_ordinal_present(&self) -> u64 {
8008 if let Some(_) = self.peripheral_to_central_params {
8009 return 6;
8010 }
8011 if let Some(_) = self.central_to_peripheral_params {
8012 return 5;
8013 }
8014 if let Some(_) = self.iso_interval {
8015 return 4;
8016 }
8017 if let Some(_) = self.max_subevents {
8018 return 3;
8019 }
8020 if let Some(_) = self.cis_sync_delay {
8021 return 2;
8022 }
8023 if let Some(_) = self.cig_sync_delay {
8024 return 1;
8025 }
8026 0
8027 }
8028 }
8029
8030 impl fidl::encoding::ValueTypeMarker for CisEstablishedParameters {
8031 type Borrowed<'a> = &'a Self;
8032 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
8033 value
8034 }
8035 }
8036
8037 unsafe impl fidl::encoding::TypeMarker for CisEstablishedParameters {
8038 type Owned = Self;
8039
8040 #[inline(always)]
8041 fn inline_align(_context: fidl::encoding::Context) -> usize {
8042 8
8043 }
8044
8045 #[inline(always)]
8046 fn inline_size(_context: fidl::encoding::Context) -> usize {
8047 16
8048 }
8049 }
8050
8051 unsafe impl<D: fidl::encoding::ResourceDialect>
8052 fidl::encoding::Encode<CisEstablishedParameters, D> for &CisEstablishedParameters
8053 {
8054 unsafe fn encode(
8055 self,
8056 encoder: &mut fidl::encoding::Encoder<'_, D>,
8057 offset: usize,
8058 mut depth: fidl::encoding::Depth,
8059 ) -> fidl::Result<()> {
8060 encoder.debug_check_bounds::<CisEstablishedParameters>(offset);
8061 let max_ordinal: u64 = self.max_ordinal_present();
8063 encoder.write_num(max_ordinal, offset);
8064 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
8065 if max_ordinal == 0 {
8067 return Ok(());
8068 }
8069 depth.increment()?;
8070 let envelope_size = 8;
8071 let bytes_len = max_ordinal as usize * envelope_size;
8072 #[allow(unused_variables)]
8073 let offset = encoder.out_of_line_offset(bytes_len);
8074 let mut _prev_end_offset: usize = 0;
8075 if 1 > max_ordinal {
8076 return Ok(());
8077 }
8078
8079 let cur_offset: usize = (1 - 1) * envelope_size;
8082
8083 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8085
8086 fidl::encoding::encode_in_envelope_optional::<i64, D>(
8091 self.cig_sync_delay.as_ref().map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
8092 encoder,
8093 offset + cur_offset,
8094 depth,
8095 )?;
8096
8097 _prev_end_offset = cur_offset + envelope_size;
8098 if 2 > max_ordinal {
8099 return Ok(());
8100 }
8101
8102 let cur_offset: usize = (2 - 1) * envelope_size;
8105
8106 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8108
8109 fidl::encoding::encode_in_envelope_optional::<i64, D>(
8114 self.cis_sync_delay.as_ref().map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
8115 encoder,
8116 offset + cur_offset,
8117 depth,
8118 )?;
8119
8120 _prev_end_offset = cur_offset + envelope_size;
8121 if 3 > max_ordinal {
8122 return Ok(());
8123 }
8124
8125 let cur_offset: usize = (3 - 1) * envelope_size;
8128
8129 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8131
8132 fidl::encoding::encode_in_envelope_optional::<u8, D>(
8137 self.max_subevents.as_ref().map(<u8 as fidl::encoding::ValueTypeMarker>::borrow),
8138 encoder,
8139 offset + cur_offset,
8140 depth,
8141 )?;
8142
8143 _prev_end_offset = cur_offset + envelope_size;
8144 if 4 > max_ordinal {
8145 return Ok(());
8146 }
8147
8148 let cur_offset: usize = (4 - 1) * envelope_size;
8151
8152 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8154
8155 fidl::encoding::encode_in_envelope_optional::<i64, D>(
8160 self.iso_interval.as_ref().map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
8161 encoder,
8162 offset + cur_offset,
8163 depth,
8164 )?;
8165
8166 _prev_end_offset = cur_offset + envelope_size;
8167 if 5 > max_ordinal {
8168 return Ok(());
8169 }
8170
8171 let cur_offset: usize = (5 - 1) * envelope_size;
8174
8175 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8177
8178 fidl::encoding::encode_in_envelope_optional::<CisUnidirectionalParams, D>(
8183 self.central_to_peripheral_params
8184 .as_ref()
8185 .map(<CisUnidirectionalParams as fidl::encoding::ValueTypeMarker>::borrow),
8186 encoder,
8187 offset + cur_offset,
8188 depth,
8189 )?;
8190
8191 _prev_end_offset = cur_offset + envelope_size;
8192 if 6 > max_ordinal {
8193 return Ok(());
8194 }
8195
8196 let cur_offset: usize = (6 - 1) * envelope_size;
8199
8200 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8202
8203 fidl::encoding::encode_in_envelope_optional::<CisUnidirectionalParams, D>(
8208 self.peripheral_to_central_params
8209 .as_ref()
8210 .map(<CisUnidirectionalParams as fidl::encoding::ValueTypeMarker>::borrow),
8211 encoder,
8212 offset + cur_offset,
8213 depth,
8214 )?;
8215
8216 _prev_end_offset = cur_offset + envelope_size;
8217
8218 Ok(())
8219 }
8220 }
8221
8222 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
8223 for CisEstablishedParameters
8224 {
8225 #[inline(always)]
8226 fn new_empty() -> Self {
8227 Self::default()
8228 }
8229
8230 unsafe fn decode(
8231 &mut self,
8232 decoder: &mut fidl::encoding::Decoder<'_, D>,
8233 offset: usize,
8234 mut depth: fidl::encoding::Depth,
8235 ) -> fidl::Result<()> {
8236 decoder.debug_check_bounds::<Self>(offset);
8237 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
8238 None => return Err(fidl::Error::NotNullable),
8239 Some(len) => len,
8240 };
8241 if len == 0 {
8243 return Ok(());
8244 };
8245 depth.increment()?;
8246 let envelope_size = 8;
8247 let bytes_len = len * envelope_size;
8248 let offset = decoder.out_of_line_offset(bytes_len)?;
8249 let mut _next_ordinal_to_read = 0;
8251 let mut next_offset = offset;
8252 let end_offset = offset + bytes_len;
8253 _next_ordinal_to_read += 1;
8254 if next_offset >= end_offset {
8255 return Ok(());
8256 }
8257
8258 while _next_ordinal_to_read < 1 {
8260 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8261 _next_ordinal_to_read += 1;
8262 next_offset += envelope_size;
8263 }
8264
8265 let next_out_of_line = decoder.next_out_of_line();
8266 let handles_before = decoder.remaining_handles();
8267 if let Some((inlined, num_bytes, num_handles)) =
8268 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8269 {
8270 let member_inline_size =
8271 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8272 if inlined != (member_inline_size <= 4) {
8273 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8274 }
8275 let inner_offset;
8276 let mut inner_depth = depth.clone();
8277 if inlined {
8278 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8279 inner_offset = next_offset;
8280 } else {
8281 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8282 inner_depth.increment()?;
8283 }
8284 let val_ref = self.cig_sync_delay.get_or_insert_with(|| fidl::new_empty!(i64, D));
8285 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
8286 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8287 {
8288 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8289 }
8290 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8291 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8292 }
8293 }
8294
8295 next_offset += envelope_size;
8296 _next_ordinal_to_read += 1;
8297 if next_offset >= end_offset {
8298 return Ok(());
8299 }
8300
8301 while _next_ordinal_to_read < 2 {
8303 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8304 _next_ordinal_to_read += 1;
8305 next_offset += envelope_size;
8306 }
8307
8308 let next_out_of_line = decoder.next_out_of_line();
8309 let handles_before = decoder.remaining_handles();
8310 if let Some((inlined, num_bytes, num_handles)) =
8311 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8312 {
8313 let member_inline_size =
8314 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8315 if inlined != (member_inline_size <= 4) {
8316 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8317 }
8318 let inner_offset;
8319 let mut inner_depth = depth.clone();
8320 if inlined {
8321 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8322 inner_offset = next_offset;
8323 } else {
8324 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8325 inner_depth.increment()?;
8326 }
8327 let val_ref = self.cis_sync_delay.get_or_insert_with(|| fidl::new_empty!(i64, D));
8328 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
8329 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8330 {
8331 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8332 }
8333 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8334 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8335 }
8336 }
8337
8338 next_offset += envelope_size;
8339 _next_ordinal_to_read += 1;
8340 if next_offset >= end_offset {
8341 return Ok(());
8342 }
8343
8344 while _next_ordinal_to_read < 3 {
8346 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8347 _next_ordinal_to_read += 1;
8348 next_offset += envelope_size;
8349 }
8350
8351 let next_out_of_line = decoder.next_out_of_line();
8352 let handles_before = decoder.remaining_handles();
8353 if let Some((inlined, num_bytes, num_handles)) =
8354 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8355 {
8356 let member_inline_size =
8357 <u8 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8358 if inlined != (member_inline_size <= 4) {
8359 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8360 }
8361 let inner_offset;
8362 let mut inner_depth = depth.clone();
8363 if inlined {
8364 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8365 inner_offset = next_offset;
8366 } else {
8367 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8368 inner_depth.increment()?;
8369 }
8370 let val_ref = self.max_subevents.get_or_insert_with(|| fidl::new_empty!(u8, D));
8371 fidl::decode!(u8, D, val_ref, decoder, inner_offset, inner_depth)?;
8372 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8373 {
8374 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8375 }
8376 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8377 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8378 }
8379 }
8380
8381 next_offset += envelope_size;
8382 _next_ordinal_to_read += 1;
8383 if next_offset >= end_offset {
8384 return Ok(());
8385 }
8386
8387 while _next_ordinal_to_read < 4 {
8389 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8390 _next_ordinal_to_read += 1;
8391 next_offset += envelope_size;
8392 }
8393
8394 let next_out_of_line = decoder.next_out_of_line();
8395 let handles_before = decoder.remaining_handles();
8396 if let Some((inlined, num_bytes, num_handles)) =
8397 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8398 {
8399 let member_inline_size =
8400 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8401 if inlined != (member_inline_size <= 4) {
8402 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8403 }
8404 let inner_offset;
8405 let mut inner_depth = depth.clone();
8406 if inlined {
8407 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8408 inner_offset = next_offset;
8409 } else {
8410 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8411 inner_depth.increment()?;
8412 }
8413 let val_ref = self.iso_interval.get_or_insert_with(|| fidl::new_empty!(i64, D));
8414 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
8415 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8416 {
8417 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8418 }
8419 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8420 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8421 }
8422 }
8423
8424 next_offset += envelope_size;
8425 _next_ordinal_to_read += 1;
8426 if next_offset >= end_offset {
8427 return Ok(());
8428 }
8429
8430 while _next_ordinal_to_read < 5 {
8432 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8433 _next_ordinal_to_read += 1;
8434 next_offset += envelope_size;
8435 }
8436
8437 let next_out_of_line = decoder.next_out_of_line();
8438 let handles_before = decoder.remaining_handles();
8439 if let Some((inlined, num_bytes, num_handles)) =
8440 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8441 {
8442 let member_inline_size =
8443 <CisUnidirectionalParams as fidl::encoding::TypeMarker>::inline_size(
8444 decoder.context,
8445 );
8446 if inlined != (member_inline_size <= 4) {
8447 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8448 }
8449 let inner_offset;
8450 let mut inner_depth = depth.clone();
8451 if inlined {
8452 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8453 inner_offset = next_offset;
8454 } else {
8455 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8456 inner_depth.increment()?;
8457 }
8458 let val_ref = self
8459 .central_to_peripheral_params
8460 .get_or_insert_with(|| fidl::new_empty!(CisUnidirectionalParams, D));
8461 fidl::decode!(
8462 CisUnidirectionalParams,
8463 D,
8464 val_ref,
8465 decoder,
8466 inner_offset,
8467 inner_depth
8468 )?;
8469 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8470 {
8471 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8472 }
8473 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8474 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8475 }
8476 }
8477
8478 next_offset += envelope_size;
8479 _next_ordinal_to_read += 1;
8480 if next_offset >= end_offset {
8481 return Ok(());
8482 }
8483
8484 while _next_ordinal_to_read < 6 {
8486 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8487 _next_ordinal_to_read += 1;
8488 next_offset += envelope_size;
8489 }
8490
8491 let next_out_of_line = decoder.next_out_of_line();
8492 let handles_before = decoder.remaining_handles();
8493 if let Some((inlined, num_bytes, num_handles)) =
8494 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8495 {
8496 let member_inline_size =
8497 <CisUnidirectionalParams as fidl::encoding::TypeMarker>::inline_size(
8498 decoder.context,
8499 );
8500 if inlined != (member_inline_size <= 4) {
8501 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8502 }
8503 let inner_offset;
8504 let mut inner_depth = depth.clone();
8505 if inlined {
8506 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8507 inner_offset = next_offset;
8508 } else {
8509 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8510 inner_depth.increment()?;
8511 }
8512 let val_ref = self
8513 .peripheral_to_central_params
8514 .get_or_insert_with(|| fidl::new_empty!(CisUnidirectionalParams, D));
8515 fidl::decode!(
8516 CisUnidirectionalParams,
8517 D,
8518 val_ref,
8519 decoder,
8520 inner_offset,
8521 inner_depth
8522 )?;
8523 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8524 {
8525 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8526 }
8527 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8528 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8529 }
8530 }
8531
8532 next_offset += envelope_size;
8533
8534 while next_offset < end_offset {
8536 _next_ordinal_to_read += 1;
8537 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8538 next_offset += envelope_size;
8539 }
8540
8541 Ok(())
8542 }
8543 }
8544
8545 impl CisParameters {
8546 #[inline(always)]
8547 fn max_ordinal_present(&self) -> u64 {
8548 if let Some(_) = self.id {
8549 return 2;
8550 }
8551 if let Some(_) = self.cis_id {
8552 return 1;
8553 }
8554 0
8555 }
8556 }
8557
8558 impl fidl::encoding::ValueTypeMarker for CisParameters {
8559 type Borrowed<'a> = &'a Self;
8560 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
8561 value
8562 }
8563 }
8564
8565 unsafe impl fidl::encoding::TypeMarker for CisParameters {
8566 type Owned = Self;
8567
8568 #[inline(always)]
8569 fn inline_align(_context: fidl::encoding::Context) -> usize {
8570 8
8571 }
8572
8573 #[inline(always)]
8574 fn inline_size(_context: fidl::encoding::Context) -> usize {
8575 16
8576 }
8577 }
8578
8579 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<CisParameters, D>
8580 for &CisParameters
8581 {
8582 unsafe fn encode(
8583 self,
8584 encoder: &mut fidl::encoding::Encoder<'_, D>,
8585 offset: usize,
8586 mut depth: fidl::encoding::Depth,
8587 ) -> fidl::Result<()> {
8588 encoder.debug_check_bounds::<CisParameters>(offset);
8589 let max_ordinal: u64 = self.max_ordinal_present();
8591 encoder.write_num(max_ordinal, offset);
8592 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
8593 if max_ordinal == 0 {
8595 return Ok(());
8596 }
8597 depth.increment()?;
8598 let envelope_size = 8;
8599 let bytes_len = max_ordinal as usize * envelope_size;
8600 #[allow(unused_variables)]
8601 let offset = encoder.out_of_line_offset(bytes_len);
8602 let mut _prev_end_offset: usize = 0;
8603 if 1 > max_ordinal {
8604 return Ok(());
8605 }
8606
8607 let cur_offset: usize = (1 - 1) * envelope_size;
8610
8611 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8613
8614 fidl::encoding::encode_in_envelope_optional::<u8, D>(
8619 self.cis_id.as_ref().map(<u8 as fidl::encoding::ValueTypeMarker>::borrow),
8620 encoder,
8621 offset + cur_offset,
8622 depth,
8623 )?;
8624
8625 _prev_end_offset = cur_offset + envelope_size;
8626 if 2 > max_ordinal {
8627 return Ok(());
8628 }
8629
8630 let cur_offset: usize = (2 - 1) * envelope_size;
8633
8634 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8636
8637 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_bluetooth__common::PeerId, D>(
8642 self.id.as_ref().map(<fidl_fuchsia_bluetooth__common::PeerId as fidl::encoding::ValueTypeMarker>::borrow),
8643 encoder, offset + cur_offset, depth
8644 )?;
8645
8646 _prev_end_offset = cur_offset + envelope_size;
8647
8648 Ok(())
8649 }
8650 }
8651
8652 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for CisParameters {
8653 #[inline(always)]
8654 fn new_empty() -> Self {
8655 Self::default()
8656 }
8657
8658 unsafe fn decode(
8659 &mut self,
8660 decoder: &mut fidl::encoding::Decoder<'_, D>,
8661 offset: usize,
8662 mut depth: fidl::encoding::Depth,
8663 ) -> fidl::Result<()> {
8664 decoder.debug_check_bounds::<Self>(offset);
8665 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
8666 None => return Err(fidl::Error::NotNullable),
8667 Some(len) => len,
8668 };
8669 if len == 0 {
8671 return Ok(());
8672 };
8673 depth.increment()?;
8674 let envelope_size = 8;
8675 let bytes_len = len * envelope_size;
8676 let offset = decoder.out_of_line_offset(bytes_len)?;
8677 let mut _next_ordinal_to_read = 0;
8679 let mut next_offset = offset;
8680 let end_offset = offset + bytes_len;
8681 _next_ordinal_to_read += 1;
8682 if next_offset >= end_offset {
8683 return Ok(());
8684 }
8685
8686 while _next_ordinal_to_read < 1 {
8688 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8689 _next_ordinal_to_read += 1;
8690 next_offset += envelope_size;
8691 }
8692
8693 let next_out_of_line = decoder.next_out_of_line();
8694 let handles_before = decoder.remaining_handles();
8695 if let Some((inlined, num_bytes, num_handles)) =
8696 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8697 {
8698 let member_inline_size =
8699 <u8 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8700 if inlined != (member_inline_size <= 4) {
8701 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8702 }
8703 let inner_offset;
8704 let mut inner_depth = depth.clone();
8705 if inlined {
8706 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8707 inner_offset = next_offset;
8708 } else {
8709 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8710 inner_depth.increment()?;
8711 }
8712 let val_ref = self.cis_id.get_or_insert_with(|| fidl::new_empty!(u8, D));
8713 fidl::decode!(u8, D, val_ref, decoder, inner_offset, inner_depth)?;
8714 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8715 {
8716 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8717 }
8718 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8719 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8720 }
8721 }
8722
8723 next_offset += envelope_size;
8724 _next_ordinal_to_read += 1;
8725 if next_offset >= end_offset {
8726 return Ok(());
8727 }
8728
8729 while _next_ordinal_to_read < 2 {
8731 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8732 _next_ordinal_to_read += 1;
8733 next_offset += envelope_size;
8734 }
8735
8736 let next_out_of_line = decoder.next_out_of_line();
8737 let handles_before = decoder.remaining_handles();
8738 if let Some((inlined, num_bytes, num_handles)) =
8739 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8740 {
8741 let member_inline_size = <fidl_fuchsia_bluetooth__common::PeerId as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8742 if inlined != (member_inline_size <= 4) {
8743 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8744 }
8745 let inner_offset;
8746 let mut inner_depth = depth.clone();
8747 if inlined {
8748 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8749 inner_offset = next_offset;
8750 } else {
8751 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8752 inner_depth.increment()?;
8753 }
8754 let val_ref = self.id.get_or_insert_with(|| {
8755 fidl::new_empty!(fidl_fuchsia_bluetooth__common::PeerId, D)
8756 });
8757 fidl::decode!(
8758 fidl_fuchsia_bluetooth__common::PeerId,
8759 D,
8760 val_ref,
8761 decoder,
8762 inner_offset,
8763 inner_depth
8764 )?;
8765 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8766 {
8767 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8768 }
8769 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8770 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8771 }
8772 }
8773
8774 next_offset += envelope_size;
8775
8776 while next_offset < end_offset {
8778 _next_ordinal_to_read += 1;
8779 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8780 next_offset += envelope_size;
8781 }
8782
8783 Ok(())
8784 }
8785 }
8786
8787 impl CisUnidirectionalParams {
8788 #[inline(always)]
8789 fn max_ordinal_present(&self) -> u64 {
8790 if let Some(_) = self.flush_timeout {
8791 return 3;
8792 }
8793 if let Some(_) = self.burst_number {
8794 return 2;
8795 }
8796 if let Some(_) = self.transport_latency {
8797 return 1;
8798 }
8799 0
8800 }
8801 }
8802
8803 impl fidl::encoding::ValueTypeMarker for CisUnidirectionalParams {
8804 type Borrowed<'a> = &'a Self;
8805 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
8806 value
8807 }
8808 }
8809
8810 unsafe impl fidl::encoding::TypeMarker for CisUnidirectionalParams {
8811 type Owned = Self;
8812
8813 #[inline(always)]
8814 fn inline_align(_context: fidl::encoding::Context) -> usize {
8815 8
8816 }
8817
8818 #[inline(always)]
8819 fn inline_size(_context: fidl::encoding::Context) -> usize {
8820 16
8821 }
8822 }
8823
8824 unsafe impl<D: fidl::encoding::ResourceDialect>
8825 fidl::encoding::Encode<CisUnidirectionalParams, D> for &CisUnidirectionalParams
8826 {
8827 unsafe fn encode(
8828 self,
8829 encoder: &mut fidl::encoding::Encoder<'_, D>,
8830 offset: usize,
8831 mut depth: fidl::encoding::Depth,
8832 ) -> fidl::Result<()> {
8833 encoder.debug_check_bounds::<CisUnidirectionalParams>(offset);
8834 let max_ordinal: u64 = self.max_ordinal_present();
8836 encoder.write_num(max_ordinal, offset);
8837 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
8838 if max_ordinal == 0 {
8840 return Ok(());
8841 }
8842 depth.increment()?;
8843 let envelope_size = 8;
8844 let bytes_len = max_ordinal as usize * envelope_size;
8845 #[allow(unused_variables)]
8846 let offset = encoder.out_of_line_offset(bytes_len);
8847 let mut _prev_end_offset: usize = 0;
8848 if 1 > max_ordinal {
8849 return Ok(());
8850 }
8851
8852 let cur_offset: usize = (1 - 1) * envelope_size;
8855
8856 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8858
8859 fidl::encoding::encode_in_envelope_optional::<i64, D>(
8864 self.transport_latency
8865 .as_ref()
8866 .map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
8867 encoder,
8868 offset + cur_offset,
8869 depth,
8870 )?;
8871
8872 _prev_end_offset = cur_offset + envelope_size;
8873 if 2 > max_ordinal {
8874 return Ok(());
8875 }
8876
8877 let cur_offset: usize = (2 - 1) * envelope_size;
8880
8881 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8883
8884 fidl::encoding::encode_in_envelope_optional::<u8, D>(
8889 self.burst_number.as_ref().map(<u8 as fidl::encoding::ValueTypeMarker>::borrow),
8890 encoder,
8891 offset + cur_offset,
8892 depth,
8893 )?;
8894
8895 _prev_end_offset = cur_offset + envelope_size;
8896 if 3 > max_ordinal {
8897 return Ok(());
8898 }
8899
8900 let cur_offset: usize = (3 - 1) * envelope_size;
8903
8904 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8906
8907 fidl::encoding::encode_in_envelope_optional::<u8, D>(
8912 self.flush_timeout.as_ref().map(<u8 as fidl::encoding::ValueTypeMarker>::borrow),
8913 encoder,
8914 offset + cur_offset,
8915 depth,
8916 )?;
8917
8918 _prev_end_offset = cur_offset + envelope_size;
8919
8920 Ok(())
8921 }
8922 }
8923
8924 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
8925 for CisUnidirectionalParams
8926 {
8927 #[inline(always)]
8928 fn new_empty() -> Self {
8929 Self::default()
8930 }
8931
8932 unsafe fn decode(
8933 &mut self,
8934 decoder: &mut fidl::encoding::Decoder<'_, D>,
8935 offset: usize,
8936 mut depth: fidl::encoding::Depth,
8937 ) -> fidl::Result<()> {
8938 decoder.debug_check_bounds::<Self>(offset);
8939 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
8940 None => return Err(fidl::Error::NotNullable),
8941 Some(len) => len,
8942 };
8943 if len == 0 {
8945 return Ok(());
8946 };
8947 depth.increment()?;
8948 let envelope_size = 8;
8949 let bytes_len = len * envelope_size;
8950 let offset = decoder.out_of_line_offset(bytes_len)?;
8951 let mut _next_ordinal_to_read = 0;
8953 let mut next_offset = offset;
8954 let end_offset = offset + bytes_len;
8955 _next_ordinal_to_read += 1;
8956 if next_offset >= end_offset {
8957 return Ok(());
8958 }
8959
8960 while _next_ordinal_to_read < 1 {
8962 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8963 _next_ordinal_to_read += 1;
8964 next_offset += envelope_size;
8965 }
8966
8967 let next_out_of_line = decoder.next_out_of_line();
8968 let handles_before = decoder.remaining_handles();
8969 if let Some((inlined, num_bytes, num_handles)) =
8970 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8971 {
8972 let member_inline_size =
8973 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8974 if inlined != (member_inline_size <= 4) {
8975 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8976 }
8977 let inner_offset;
8978 let mut inner_depth = depth.clone();
8979 if inlined {
8980 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8981 inner_offset = next_offset;
8982 } else {
8983 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8984 inner_depth.increment()?;
8985 }
8986 let val_ref =
8987 self.transport_latency.get_or_insert_with(|| fidl::new_empty!(i64, D));
8988 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
8989 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8990 {
8991 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8992 }
8993 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8994 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8995 }
8996 }
8997
8998 next_offset += envelope_size;
8999 _next_ordinal_to_read += 1;
9000 if next_offset >= end_offset {
9001 return Ok(());
9002 }
9003
9004 while _next_ordinal_to_read < 2 {
9006 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9007 _next_ordinal_to_read += 1;
9008 next_offset += envelope_size;
9009 }
9010
9011 let next_out_of_line = decoder.next_out_of_line();
9012 let handles_before = decoder.remaining_handles();
9013 if let Some((inlined, num_bytes, num_handles)) =
9014 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9015 {
9016 let member_inline_size =
9017 <u8 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9018 if inlined != (member_inline_size <= 4) {
9019 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9020 }
9021 let inner_offset;
9022 let mut inner_depth = depth.clone();
9023 if inlined {
9024 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9025 inner_offset = next_offset;
9026 } else {
9027 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9028 inner_depth.increment()?;
9029 }
9030 let val_ref = self.burst_number.get_or_insert_with(|| fidl::new_empty!(u8, D));
9031 fidl::decode!(u8, D, val_ref, decoder, inner_offset, inner_depth)?;
9032 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9033 {
9034 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9035 }
9036 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9037 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9038 }
9039 }
9040
9041 next_offset += envelope_size;
9042 _next_ordinal_to_read += 1;
9043 if next_offset >= end_offset {
9044 return Ok(());
9045 }
9046
9047 while _next_ordinal_to_read < 3 {
9049 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9050 _next_ordinal_to_read += 1;
9051 next_offset += envelope_size;
9052 }
9053
9054 let next_out_of_line = decoder.next_out_of_line();
9055 let handles_before = decoder.remaining_handles();
9056 if let Some((inlined, num_bytes, num_handles)) =
9057 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9058 {
9059 let member_inline_size =
9060 <u8 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9061 if inlined != (member_inline_size <= 4) {
9062 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9063 }
9064 let inner_offset;
9065 let mut inner_depth = depth.clone();
9066 if inlined {
9067 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9068 inner_offset = next_offset;
9069 } else {
9070 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9071 inner_depth.increment()?;
9072 }
9073 let val_ref = self.flush_timeout.get_or_insert_with(|| fidl::new_empty!(u8, D));
9074 fidl::decode!(u8, D, val_ref, decoder, inner_offset, inner_depth)?;
9075 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9076 {
9077 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9078 }
9079 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9080 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9081 }
9082 }
9083
9084 next_offset += envelope_size;
9085
9086 while next_offset < end_offset {
9088 _next_ordinal_to_read += 1;
9089 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9090 next_offset += envelope_size;
9091 }
9092
9093 Ok(())
9094 }
9095 }
9096
9097 impl CodecDelayGetCodecLocalDelayRangeRequest {
9098 #[inline(always)]
9099 fn max_ordinal_present(&self) -> u64 {
9100 if let Some(_) = self.codec_attributes {
9101 return 3;
9102 }
9103 if let Some(_) = self.data_direction {
9104 return 2;
9105 }
9106 if let Some(_) = self.logical_transport_type {
9107 return 1;
9108 }
9109 0
9110 }
9111 }
9112
9113 impl fidl::encoding::ValueTypeMarker for CodecDelayGetCodecLocalDelayRangeRequest {
9114 type Borrowed<'a> = &'a Self;
9115 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
9116 value
9117 }
9118 }
9119
9120 unsafe impl fidl::encoding::TypeMarker for CodecDelayGetCodecLocalDelayRangeRequest {
9121 type Owned = Self;
9122
9123 #[inline(always)]
9124 fn inline_align(_context: fidl::encoding::Context) -> usize {
9125 8
9126 }
9127
9128 #[inline(always)]
9129 fn inline_size(_context: fidl::encoding::Context) -> usize {
9130 16
9131 }
9132 }
9133
9134 unsafe impl<D: fidl::encoding::ResourceDialect>
9135 fidl::encoding::Encode<CodecDelayGetCodecLocalDelayRangeRequest, D>
9136 for &CodecDelayGetCodecLocalDelayRangeRequest
9137 {
9138 unsafe fn encode(
9139 self,
9140 encoder: &mut fidl::encoding::Encoder<'_, D>,
9141 offset: usize,
9142 mut depth: fidl::encoding::Depth,
9143 ) -> fidl::Result<()> {
9144 encoder.debug_check_bounds::<CodecDelayGetCodecLocalDelayRangeRequest>(offset);
9145 let max_ordinal: u64 = self.max_ordinal_present();
9147 encoder.write_num(max_ordinal, offset);
9148 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
9149 if max_ordinal == 0 {
9151 return Ok(());
9152 }
9153 depth.increment()?;
9154 let envelope_size = 8;
9155 let bytes_len = max_ordinal as usize * envelope_size;
9156 #[allow(unused_variables)]
9157 let offset = encoder.out_of_line_offset(bytes_len);
9158 let mut _prev_end_offset: usize = 0;
9159 if 1 > max_ordinal {
9160 return Ok(());
9161 }
9162
9163 let cur_offset: usize = (1 - 1) * envelope_size;
9166
9167 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9169
9170 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_bluetooth__common::LogicalTransportType, D>(
9175 self.logical_transport_type.as_ref().map(<fidl_fuchsia_bluetooth__common::LogicalTransportType as fidl::encoding::ValueTypeMarker>::borrow),
9176 encoder, offset + cur_offset, depth
9177 )?;
9178
9179 _prev_end_offset = cur_offset + envelope_size;
9180 if 2 > max_ordinal {
9181 return Ok(());
9182 }
9183
9184 let cur_offset: usize = (2 - 1) * envelope_size;
9187
9188 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9190
9191 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_bluetooth__common::DataDirection, D>(
9196 self.data_direction.as_ref().map(<fidl_fuchsia_bluetooth__common::DataDirection as fidl::encoding::ValueTypeMarker>::borrow),
9197 encoder, offset + cur_offset, depth
9198 )?;
9199
9200 _prev_end_offset = cur_offset + envelope_size;
9201 if 3 > max_ordinal {
9202 return Ok(());
9203 }
9204
9205 let cur_offset: usize = (3 - 1) * envelope_size;
9208
9209 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9211
9212 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_bluetooth__common::CodecAttributes, D>(
9217 self.codec_attributes.as_ref().map(<fidl_fuchsia_bluetooth__common::CodecAttributes as fidl::encoding::ValueTypeMarker>::borrow),
9218 encoder, offset + cur_offset, depth
9219 )?;
9220
9221 _prev_end_offset = cur_offset + envelope_size;
9222
9223 Ok(())
9224 }
9225 }
9226
9227 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
9228 for CodecDelayGetCodecLocalDelayRangeRequest
9229 {
9230 #[inline(always)]
9231 fn new_empty() -> Self {
9232 Self::default()
9233 }
9234
9235 unsafe fn decode(
9236 &mut self,
9237 decoder: &mut fidl::encoding::Decoder<'_, D>,
9238 offset: usize,
9239 mut depth: fidl::encoding::Depth,
9240 ) -> fidl::Result<()> {
9241 decoder.debug_check_bounds::<Self>(offset);
9242 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
9243 None => return Err(fidl::Error::NotNullable),
9244 Some(len) => len,
9245 };
9246 if len == 0 {
9248 return Ok(());
9249 };
9250 depth.increment()?;
9251 let envelope_size = 8;
9252 let bytes_len = len * envelope_size;
9253 let offset = decoder.out_of_line_offset(bytes_len)?;
9254 let mut _next_ordinal_to_read = 0;
9256 let mut next_offset = offset;
9257 let end_offset = offset + bytes_len;
9258 _next_ordinal_to_read += 1;
9259 if next_offset >= end_offset {
9260 return Ok(());
9261 }
9262
9263 while _next_ordinal_to_read < 1 {
9265 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9266 _next_ordinal_to_read += 1;
9267 next_offset += envelope_size;
9268 }
9269
9270 let next_out_of_line = decoder.next_out_of_line();
9271 let handles_before = decoder.remaining_handles();
9272 if let Some((inlined, num_bytes, num_handles)) =
9273 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9274 {
9275 let member_inline_size = <fidl_fuchsia_bluetooth__common::LogicalTransportType as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9276 if inlined != (member_inline_size <= 4) {
9277 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9278 }
9279 let inner_offset;
9280 let mut inner_depth = depth.clone();
9281 if inlined {
9282 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9283 inner_offset = next_offset;
9284 } else {
9285 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9286 inner_depth.increment()?;
9287 }
9288 let val_ref = self.logical_transport_type.get_or_insert_with(|| {
9289 fidl::new_empty!(fidl_fuchsia_bluetooth__common::LogicalTransportType, D)
9290 });
9291 fidl::decode!(
9292 fidl_fuchsia_bluetooth__common::LogicalTransportType,
9293 D,
9294 val_ref,
9295 decoder,
9296 inner_offset,
9297 inner_depth
9298 )?;
9299 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9300 {
9301 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9302 }
9303 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9304 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9305 }
9306 }
9307
9308 next_offset += envelope_size;
9309 _next_ordinal_to_read += 1;
9310 if next_offset >= end_offset {
9311 return Ok(());
9312 }
9313
9314 while _next_ordinal_to_read < 2 {
9316 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9317 _next_ordinal_to_read += 1;
9318 next_offset += envelope_size;
9319 }
9320
9321 let next_out_of_line = decoder.next_out_of_line();
9322 let handles_before = decoder.remaining_handles();
9323 if let Some((inlined, num_bytes, num_handles)) =
9324 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9325 {
9326 let member_inline_size = <fidl_fuchsia_bluetooth__common::DataDirection as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9327 if inlined != (member_inline_size <= 4) {
9328 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9329 }
9330 let inner_offset;
9331 let mut inner_depth = depth.clone();
9332 if inlined {
9333 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9334 inner_offset = next_offset;
9335 } else {
9336 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9337 inner_depth.increment()?;
9338 }
9339 let val_ref = self.data_direction.get_or_insert_with(|| {
9340 fidl::new_empty!(fidl_fuchsia_bluetooth__common::DataDirection, D)
9341 });
9342 fidl::decode!(
9343 fidl_fuchsia_bluetooth__common::DataDirection,
9344 D,
9345 val_ref,
9346 decoder,
9347 inner_offset,
9348 inner_depth
9349 )?;
9350 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9351 {
9352 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9353 }
9354 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9355 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9356 }
9357 }
9358
9359 next_offset += envelope_size;
9360 _next_ordinal_to_read += 1;
9361 if next_offset >= end_offset {
9362 return Ok(());
9363 }
9364
9365 while _next_ordinal_to_read < 3 {
9367 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9368 _next_ordinal_to_read += 1;
9369 next_offset += envelope_size;
9370 }
9371
9372 let next_out_of_line = decoder.next_out_of_line();
9373 let handles_before = decoder.remaining_handles();
9374 if let Some((inlined, num_bytes, num_handles)) =
9375 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9376 {
9377 let member_inline_size = <fidl_fuchsia_bluetooth__common::CodecAttributes as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9378 if inlined != (member_inline_size <= 4) {
9379 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9380 }
9381 let inner_offset;
9382 let mut inner_depth = depth.clone();
9383 if inlined {
9384 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9385 inner_offset = next_offset;
9386 } else {
9387 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9388 inner_depth.increment()?;
9389 }
9390 let val_ref = self.codec_attributes.get_or_insert_with(|| {
9391 fidl::new_empty!(fidl_fuchsia_bluetooth__common::CodecAttributes, D)
9392 });
9393 fidl::decode!(
9394 fidl_fuchsia_bluetooth__common::CodecAttributes,
9395 D,
9396 val_ref,
9397 decoder,
9398 inner_offset,
9399 inner_depth
9400 )?;
9401 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9402 {
9403 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9404 }
9405 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9406 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9407 }
9408 }
9409
9410 next_offset += envelope_size;
9411
9412 while next_offset < end_offset {
9414 _next_ordinal_to_read += 1;
9415 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9416 next_offset += envelope_size;
9417 }
9418
9419 Ok(())
9420 }
9421 }
9422
9423 impl CodecDelayGetCodecLocalDelayRangeResponse {
9424 #[inline(always)]
9425 fn max_ordinal_present(&self) -> u64 {
9426 if let Some(_) = self.max_controller_delay {
9427 return 2;
9428 }
9429 if let Some(_) = self.min_controller_delay {
9430 return 1;
9431 }
9432 0
9433 }
9434 }
9435
9436 impl fidl::encoding::ValueTypeMarker for CodecDelayGetCodecLocalDelayRangeResponse {
9437 type Borrowed<'a> = &'a Self;
9438 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
9439 value
9440 }
9441 }
9442
9443 unsafe impl fidl::encoding::TypeMarker for CodecDelayGetCodecLocalDelayRangeResponse {
9444 type Owned = Self;
9445
9446 #[inline(always)]
9447 fn inline_align(_context: fidl::encoding::Context) -> usize {
9448 8
9449 }
9450
9451 #[inline(always)]
9452 fn inline_size(_context: fidl::encoding::Context) -> usize {
9453 16
9454 }
9455 }
9456
9457 unsafe impl<D: fidl::encoding::ResourceDialect>
9458 fidl::encoding::Encode<CodecDelayGetCodecLocalDelayRangeResponse, D>
9459 for &CodecDelayGetCodecLocalDelayRangeResponse
9460 {
9461 unsafe fn encode(
9462 self,
9463 encoder: &mut fidl::encoding::Encoder<'_, D>,
9464 offset: usize,
9465 mut depth: fidl::encoding::Depth,
9466 ) -> fidl::Result<()> {
9467 encoder.debug_check_bounds::<CodecDelayGetCodecLocalDelayRangeResponse>(offset);
9468 let max_ordinal: u64 = self.max_ordinal_present();
9470 encoder.write_num(max_ordinal, offset);
9471 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
9472 if max_ordinal == 0 {
9474 return Ok(());
9475 }
9476 depth.increment()?;
9477 let envelope_size = 8;
9478 let bytes_len = max_ordinal as usize * envelope_size;
9479 #[allow(unused_variables)]
9480 let offset = encoder.out_of_line_offset(bytes_len);
9481 let mut _prev_end_offset: usize = 0;
9482 if 1 > max_ordinal {
9483 return Ok(());
9484 }
9485
9486 let cur_offset: usize = (1 - 1) * envelope_size;
9489
9490 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9492
9493 fidl::encoding::encode_in_envelope_optional::<i64, D>(
9498 self.min_controller_delay
9499 .as_ref()
9500 .map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
9501 encoder,
9502 offset + cur_offset,
9503 depth,
9504 )?;
9505
9506 _prev_end_offset = cur_offset + envelope_size;
9507 if 2 > max_ordinal {
9508 return Ok(());
9509 }
9510
9511 let cur_offset: usize = (2 - 1) * envelope_size;
9514
9515 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9517
9518 fidl::encoding::encode_in_envelope_optional::<i64, D>(
9523 self.max_controller_delay
9524 .as_ref()
9525 .map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
9526 encoder,
9527 offset + cur_offset,
9528 depth,
9529 )?;
9530
9531 _prev_end_offset = cur_offset + envelope_size;
9532
9533 Ok(())
9534 }
9535 }
9536
9537 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
9538 for CodecDelayGetCodecLocalDelayRangeResponse
9539 {
9540 #[inline(always)]
9541 fn new_empty() -> Self {
9542 Self::default()
9543 }
9544
9545 unsafe fn decode(
9546 &mut self,
9547 decoder: &mut fidl::encoding::Decoder<'_, D>,
9548 offset: usize,
9549 mut depth: fidl::encoding::Depth,
9550 ) -> fidl::Result<()> {
9551 decoder.debug_check_bounds::<Self>(offset);
9552 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
9553 None => return Err(fidl::Error::NotNullable),
9554 Some(len) => len,
9555 };
9556 if len == 0 {
9558 return Ok(());
9559 };
9560 depth.increment()?;
9561 let envelope_size = 8;
9562 let bytes_len = len * envelope_size;
9563 let offset = decoder.out_of_line_offset(bytes_len)?;
9564 let mut _next_ordinal_to_read = 0;
9566 let mut next_offset = offset;
9567 let end_offset = offset + bytes_len;
9568 _next_ordinal_to_read += 1;
9569 if next_offset >= end_offset {
9570 return Ok(());
9571 }
9572
9573 while _next_ordinal_to_read < 1 {
9575 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9576 _next_ordinal_to_read += 1;
9577 next_offset += envelope_size;
9578 }
9579
9580 let next_out_of_line = decoder.next_out_of_line();
9581 let handles_before = decoder.remaining_handles();
9582 if let Some((inlined, num_bytes, num_handles)) =
9583 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9584 {
9585 let member_inline_size =
9586 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9587 if inlined != (member_inline_size <= 4) {
9588 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9589 }
9590 let inner_offset;
9591 let mut inner_depth = depth.clone();
9592 if inlined {
9593 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9594 inner_offset = next_offset;
9595 } else {
9596 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9597 inner_depth.increment()?;
9598 }
9599 let val_ref =
9600 self.min_controller_delay.get_or_insert_with(|| fidl::new_empty!(i64, D));
9601 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
9602 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9603 {
9604 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9605 }
9606 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9607 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9608 }
9609 }
9610
9611 next_offset += envelope_size;
9612 _next_ordinal_to_read += 1;
9613 if next_offset >= end_offset {
9614 return Ok(());
9615 }
9616
9617 while _next_ordinal_to_read < 2 {
9619 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9620 _next_ordinal_to_read += 1;
9621 next_offset += envelope_size;
9622 }
9623
9624 let next_out_of_line = decoder.next_out_of_line();
9625 let handles_before = decoder.remaining_handles();
9626 if let Some((inlined, num_bytes, num_handles)) =
9627 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9628 {
9629 let member_inline_size =
9630 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9631 if inlined != (member_inline_size <= 4) {
9632 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9633 }
9634 let inner_offset;
9635 let mut inner_depth = depth.clone();
9636 if inlined {
9637 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9638 inner_offset = next_offset;
9639 } else {
9640 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9641 inner_depth.increment()?;
9642 }
9643 let val_ref =
9644 self.max_controller_delay.get_or_insert_with(|| fidl::new_empty!(i64, D));
9645 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
9646 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9647 {
9648 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9649 }
9650 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9651 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9652 }
9653 }
9654
9655 next_offset += envelope_size;
9656
9657 while next_offset < end_offset {
9659 _next_ordinal_to_read += 1;
9660 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9661 next_offset += envelope_size;
9662 }
9663
9664 Ok(())
9665 }
9666 }
9667
9668 impl ConnectedIsochronousGroupEstablishStreamsRequest {
9669 #[inline(always)]
9670 fn max_ordinal_present(&self) -> u64 {
9671 if let Some(_) = self.cis_params {
9672 return 1;
9673 }
9674 0
9675 }
9676 }
9677
9678 impl fidl::encoding::ValueTypeMarker for ConnectedIsochronousGroupEstablishStreamsRequest {
9679 type Borrowed<'a> = &'a Self;
9680 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
9681 value
9682 }
9683 }
9684
9685 unsafe impl fidl::encoding::TypeMarker for ConnectedIsochronousGroupEstablishStreamsRequest {
9686 type Owned = Self;
9687
9688 #[inline(always)]
9689 fn inline_align(_context: fidl::encoding::Context) -> usize {
9690 8
9691 }
9692
9693 #[inline(always)]
9694 fn inline_size(_context: fidl::encoding::Context) -> usize {
9695 16
9696 }
9697 }
9698
9699 unsafe impl<D: fidl::encoding::ResourceDialect>
9700 fidl::encoding::Encode<ConnectedIsochronousGroupEstablishStreamsRequest, D>
9701 for &ConnectedIsochronousGroupEstablishStreamsRequest
9702 {
9703 unsafe fn encode(
9704 self,
9705 encoder: &mut fidl::encoding::Encoder<'_, D>,
9706 offset: usize,
9707 mut depth: fidl::encoding::Depth,
9708 ) -> fidl::Result<()> {
9709 encoder.debug_check_bounds::<ConnectedIsochronousGroupEstablishStreamsRequest>(offset);
9710 let max_ordinal: u64 = self.max_ordinal_present();
9712 encoder.write_num(max_ordinal, offset);
9713 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
9714 if max_ordinal == 0 {
9716 return Ok(());
9717 }
9718 depth.increment()?;
9719 let envelope_size = 8;
9720 let bytes_len = max_ordinal as usize * envelope_size;
9721 #[allow(unused_variables)]
9722 let offset = encoder.out_of_line_offset(bytes_len);
9723 let mut _prev_end_offset: usize = 0;
9724 if 1 > max_ordinal {
9725 return Ok(());
9726 }
9727
9728 let cur_offset: usize = (1 - 1) * envelope_size;
9731
9732 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9734
9735 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<CisParameters, 31>, D>(
9740 self.cis_params.as_ref().map(<fidl::encoding::Vector<CisParameters, 31> as fidl::encoding::ValueTypeMarker>::borrow),
9741 encoder, offset + cur_offset, depth
9742 )?;
9743
9744 _prev_end_offset = cur_offset + envelope_size;
9745
9746 Ok(())
9747 }
9748 }
9749
9750 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
9751 for ConnectedIsochronousGroupEstablishStreamsRequest
9752 {
9753 #[inline(always)]
9754 fn new_empty() -> Self {
9755 Self::default()
9756 }
9757
9758 unsafe fn decode(
9759 &mut self,
9760 decoder: &mut fidl::encoding::Decoder<'_, D>,
9761 offset: usize,
9762 mut depth: fidl::encoding::Depth,
9763 ) -> fidl::Result<()> {
9764 decoder.debug_check_bounds::<Self>(offset);
9765 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
9766 None => return Err(fidl::Error::NotNullable),
9767 Some(len) => len,
9768 };
9769 if len == 0 {
9771 return Ok(());
9772 };
9773 depth.increment()?;
9774 let envelope_size = 8;
9775 let bytes_len = len * envelope_size;
9776 let offset = decoder.out_of_line_offset(bytes_len)?;
9777 let mut _next_ordinal_to_read = 0;
9779 let mut next_offset = offset;
9780 let end_offset = offset + bytes_len;
9781 _next_ordinal_to_read += 1;
9782 if next_offset >= end_offset {
9783 return Ok(());
9784 }
9785
9786 while _next_ordinal_to_read < 1 {
9788 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9789 _next_ordinal_to_read += 1;
9790 next_offset += envelope_size;
9791 }
9792
9793 let next_out_of_line = decoder.next_out_of_line();
9794 let handles_before = decoder.remaining_handles();
9795 if let Some((inlined, num_bytes, num_handles)) =
9796 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9797 {
9798 let member_inline_size = <fidl::encoding::Vector<CisParameters, 31> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9799 if inlined != (member_inline_size <= 4) {
9800 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9801 }
9802 let inner_offset;
9803 let mut inner_depth = depth.clone();
9804 if inlined {
9805 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9806 inner_offset = next_offset;
9807 } else {
9808 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9809 inner_depth.increment()?;
9810 }
9811 let val_ref = self.cis_params.get_or_insert_with(
9812 || fidl::new_empty!(fidl::encoding::Vector<CisParameters, 31>, D),
9813 );
9814 fidl::decode!(fidl::encoding::Vector<CisParameters, 31>, D, val_ref, decoder, inner_offset, inner_depth)?;
9815 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9816 {
9817 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9818 }
9819 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9820 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9821 }
9822 }
9823
9824 next_offset += envelope_size;
9825
9826 while next_offset < end_offset {
9828 _next_ordinal_to_read += 1;
9829 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9830 next_offset += envelope_size;
9831 }
9832
9833 Ok(())
9834 }
9835 }
9836
9837 impl ConnectionOptions {
9838 #[inline(always)]
9839 fn max_ordinal_present(&self) -> u64 {
9840 if let Some(_) = self.service_filter {
9841 return 2;
9842 }
9843 if let Some(_) = self.bondable_mode {
9844 return 1;
9845 }
9846 0
9847 }
9848 }
9849
9850 impl fidl::encoding::ValueTypeMarker for ConnectionOptions {
9851 type Borrowed<'a> = &'a Self;
9852 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
9853 value
9854 }
9855 }
9856
9857 unsafe impl fidl::encoding::TypeMarker for ConnectionOptions {
9858 type Owned = Self;
9859
9860 #[inline(always)]
9861 fn inline_align(_context: fidl::encoding::Context) -> usize {
9862 8
9863 }
9864
9865 #[inline(always)]
9866 fn inline_size(_context: fidl::encoding::Context) -> usize {
9867 16
9868 }
9869 }
9870
9871 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ConnectionOptions, D>
9872 for &ConnectionOptions
9873 {
9874 unsafe fn encode(
9875 self,
9876 encoder: &mut fidl::encoding::Encoder<'_, D>,
9877 offset: usize,
9878 mut depth: fidl::encoding::Depth,
9879 ) -> fidl::Result<()> {
9880 encoder.debug_check_bounds::<ConnectionOptions>(offset);
9881 let max_ordinal: u64 = self.max_ordinal_present();
9883 encoder.write_num(max_ordinal, offset);
9884 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
9885 if max_ordinal == 0 {
9887 return Ok(());
9888 }
9889 depth.increment()?;
9890 let envelope_size = 8;
9891 let bytes_len = max_ordinal as usize * envelope_size;
9892 #[allow(unused_variables)]
9893 let offset = encoder.out_of_line_offset(bytes_len);
9894 let mut _prev_end_offset: usize = 0;
9895 if 1 > max_ordinal {
9896 return Ok(());
9897 }
9898
9899 let cur_offset: usize = (1 - 1) * envelope_size;
9902
9903 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9905
9906 fidl::encoding::encode_in_envelope_optional::<bool, D>(
9911 self.bondable_mode.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
9912 encoder,
9913 offset + cur_offset,
9914 depth,
9915 )?;
9916
9917 _prev_end_offset = cur_offset + envelope_size;
9918 if 2 > max_ordinal {
9919 return Ok(());
9920 }
9921
9922 let cur_offset: usize = (2 - 1) * envelope_size;
9925
9926 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9928
9929 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_bluetooth__common::Uuid, D>(
9934 self.service_filter.as_ref().map(<fidl_fuchsia_bluetooth__common::Uuid as fidl::encoding::ValueTypeMarker>::borrow),
9935 encoder, offset + cur_offset, depth
9936 )?;
9937
9938 _prev_end_offset = cur_offset + envelope_size;
9939
9940 Ok(())
9941 }
9942 }
9943
9944 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ConnectionOptions {
9945 #[inline(always)]
9946 fn new_empty() -> Self {
9947 Self::default()
9948 }
9949
9950 unsafe fn decode(
9951 &mut self,
9952 decoder: &mut fidl::encoding::Decoder<'_, D>,
9953 offset: usize,
9954 mut depth: fidl::encoding::Depth,
9955 ) -> fidl::Result<()> {
9956 decoder.debug_check_bounds::<Self>(offset);
9957 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
9958 None => return Err(fidl::Error::NotNullable),
9959 Some(len) => len,
9960 };
9961 if len == 0 {
9963 return Ok(());
9964 };
9965 depth.increment()?;
9966 let envelope_size = 8;
9967 let bytes_len = len * envelope_size;
9968 let offset = decoder.out_of_line_offset(bytes_len)?;
9969 let mut _next_ordinal_to_read = 0;
9971 let mut next_offset = offset;
9972 let end_offset = offset + bytes_len;
9973 _next_ordinal_to_read += 1;
9974 if next_offset >= end_offset {
9975 return Ok(());
9976 }
9977
9978 while _next_ordinal_to_read < 1 {
9980 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9981 _next_ordinal_to_read += 1;
9982 next_offset += envelope_size;
9983 }
9984
9985 let next_out_of_line = decoder.next_out_of_line();
9986 let handles_before = decoder.remaining_handles();
9987 if let Some((inlined, num_bytes, num_handles)) =
9988 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9989 {
9990 let member_inline_size =
9991 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9992 if inlined != (member_inline_size <= 4) {
9993 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9994 }
9995 let inner_offset;
9996 let mut inner_depth = depth.clone();
9997 if inlined {
9998 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9999 inner_offset = next_offset;
10000 } else {
10001 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10002 inner_depth.increment()?;
10003 }
10004 let val_ref = self.bondable_mode.get_or_insert_with(|| fidl::new_empty!(bool, D));
10005 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
10006 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10007 {
10008 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10009 }
10010 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10011 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10012 }
10013 }
10014
10015 next_offset += envelope_size;
10016 _next_ordinal_to_read += 1;
10017 if next_offset >= end_offset {
10018 return Ok(());
10019 }
10020
10021 while _next_ordinal_to_read < 2 {
10023 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10024 _next_ordinal_to_read += 1;
10025 next_offset += envelope_size;
10026 }
10027
10028 let next_out_of_line = decoder.next_out_of_line();
10029 let handles_before = decoder.remaining_handles();
10030 if let Some((inlined, num_bytes, num_handles)) =
10031 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10032 {
10033 let member_inline_size = <fidl_fuchsia_bluetooth__common::Uuid as fidl::encoding::TypeMarker>::inline_size(decoder.context);
10034 if inlined != (member_inline_size <= 4) {
10035 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10036 }
10037 let inner_offset;
10038 let mut inner_depth = depth.clone();
10039 if inlined {
10040 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10041 inner_offset = next_offset;
10042 } else {
10043 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10044 inner_depth.increment()?;
10045 }
10046 let val_ref = self.service_filter.get_or_insert_with(|| {
10047 fidl::new_empty!(fidl_fuchsia_bluetooth__common::Uuid, D)
10048 });
10049 fidl::decode!(
10050 fidl_fuchsia_bluetooth__common::Uuid,
10051 D,
10052 val_ref,
10053 decoder,
10054 inner_offset,
10055 inner_depth
10056 )?;
10057 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10058 {
10059 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10060 }
10061 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10062 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10063 }
10064 }
10065
10066 next_offset += envelope_size;
10067
10068 while next_offset < end_offset {
10070 _next_ordinal_to_read += 1;
10071 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10072 next_offset += envelope_size;
10073 }
10074
10075 Ok(())
10076 }
10077 }
10078
10079 impl ConnectionTransferPeriodicAdvertisingSyncRequest {
10080 #[inline(always)]
10081 fn max_ordinal_present(&self) -> u64 {
10082 if let Some(_) = self.service_data {
10083 return 2;
10084 }
10085 if let Some(_) = self.sync_id {
10086 return 1;
10087 }
10088 0
10089 }
10090 }
10091
10092 impl fidl::encoding::ValueTypeMarker for ConnectionTransferPeriodicAdvertisingSyncRequest {
10093 type Borrowed<'a> = &'a Self;
10094 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
10095 value
10096 }
10097 }
10098
10099 unsafe impl fidl::encoding::TypeMarker for ConnectionTransferPeriodicAdvertisingSyncRequest {
10100 type Owned = Self;
10101
10102 #[inline(always)]
10103 fn inline_align(_context: fidl::encoding::Context) -> usize {
10104 8
10105 }
10106
10107 #[inline(always)]
10108 fn inline_size(_context: fidl::encoding::Context) -> usize {
10109 16
10110 }
10111 }
10112
10113 unsafe impl<D: fidl::encoding::ResourceDialect>
10114 fidl::encoding::Encode<ConnectionTransferPeriodicAdvertisingSyncRequest, D>
10115 for &ConnectionTransferPeriodicAdvertisingSyncRequest
10116 {
10117 unsafe fn encode(
10118 self,
10119 encoder: &mut fidl::encoding::Encoder<'_, D>,
10120 offset: usize,
10121 mut depth: fidl::encoding::Depth,
10122 ) -> fidl::Result<()> {
10123 encoder.debug_check_bounds::<ConnectionTransferPeriodicAdvertisingSyncRequest>(offset);
10124 let max_ordinal: u64 = self.max_ordinal_present();
10126 encoder.write_num(max_ordinal, offset);
10127 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
10128 if max_ordinal == 0 {
10130 return Ok(());
10131 }
10132 depth.increment()?;
10133 let envelope_size = 8;
10134 let bytes_len = max_ordinal as usize * envelope_size;
10135 #[allow(unused_variables)]
10136 let offset = encoder.out_of_line_offset(bytes_len);
10137 let mut _prev_end_offset: usize = 0;
10138 if 1 > max_ordinal {
10139 return Ok(());
10140 }
10141
10142 let cur_offset: usize = (1 - 1) * envelope_size;
10145
10146 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10148
10149 fidl::encoding::encode_in_envelope_optional::<PeriodicAdvertisingSyncId, D>(
10154 self.sync_id
10155 .as_ref()
10156 .map(<PeriodicAdvertisingSyncId as fidl::encoding::ValueTypeMarker>::borrow),
10157 encoder,
10158 offset + cur_offset,
10159 depth,
10160 )?;
10161
10162 _prev_end_offset = cur_offset + envelope_size;
10163 if 2 > max_ordinal {
10164 return Ok(());
10165 }
10166
10167 let cur_offset: usize = (2 - 1) * envelope_size;
10170
10171 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10173
10174 fidl::encoding::encode_in_envelope_optional::<u16, D>(
10179 self.service_data.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
10180 encoder,
10181 offset + cur_offset,
10182 depth,
10183 )?;
10184
10185 _prev_end_offset = cur_offset + envelope_size;
10186
10187 Ok(())
10188 }
10189 }
10190
10191 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
10192 for ConnectionTransferPeriodicAdvertisingSyncRequest
10193 {
10194 #[inline(always)]
10195 fn new_empty() -> Self {
10196 Self::default()
10197 }
10198
10199 unsafe fn decode(
10200 &mut self,
10201 decoder: &mut fidl::encoding::Decoder<'_, D>,
10202 offset: usize,
10203 mut depth: fidl::encoding::Depth,
10204 ) -> fidl::Result<()> {
10205 decoder.debug_check_bounds::<Self>(offset);
10206 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
10207 None => return Err(fidl::Error::NotNullable),
10208 Some(len) => len,
10209 };
10210 if len == 0 {
10212 return Ok(());
10213 };
10214 depth.increment()?;
10215 let envelope_size = 8;
10216 let bytes_len = len * envelope_size;
10217 let offset = decoder.out_of_line_offset(bytes_len)?;
10218 let mut _next_ordinal_to_read = 0;
10220 let mut next_offset = offset;
10221 let end_offset = offset + bytes_len;
10222 _next_ordinal_to_read += 1;
10223 if next_offset >= end_offset {
10224 return Ok(());
10225 }
10226
10227 while _next_ordinal_to_read < 1 {
10229 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10230 _next_ordinal_to_read += 1;
10231 next_offset += envelope_size;
10232 }
10233
10234 let next_out_of_line = decoder.next_out_of_line();
10235 let handles_before = decoder.remaining_handles();
10236 if let Some((inlined, num_bytes, num_handles)) =
10237 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10238 {
10239 let member_inline_size =
10240 <PeriodicAdvertisingSyncId as fidl::encoding::TypeMarker>::inline_size(
10241 decoder.context,
10242 );
10243 if inlined != (member_inline_size <= 4) {
10244 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10245 }
10246 let inner_offset;
10247 let mut inner_depth = depth.clone();
10248 if inlined {
10249 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10250 inner_offset = next_offset;
10251 } else {
10252 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10253 inner_depth.increment()?;
10254 }
10255 let val_ref = self
10256 .sync_id
10257 .get_or_insert_with(|| fidl::new_empty!(PeriodicAdvertisingSyncId, D));
10258 fidl::decode!(
10259 PeriodicAdvertisingSyncId,
10260 D,
10261 val_ref,
10262 decoder,
10263 inner_offset,
10264 inner_depth
10265 )?;
10266 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10267 {
10268 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10269 }
10270 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10271 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10272 }
10273 }
10274
10275 next_offset += envelope_size;
10276 _next_ordinal_to_read += 1;
10277 if next_offset >= end_offset {
10278 return Ok(());
10279 }
10280
10281 while _next_ordinal_to_read < 2 {
10283 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10284 _next_ordinal_to_read += 1;
10285 next_offset += envelope_size;
10286 }
10287
10288 let next_out_of_line = decoder.next_out_of_line();
10289 let handles_before = decoder.remaining_handles();
10290 if let Some((inlined, num_bytes, num_handles)) =
10291 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10292 {
10293 let member_inline_size =
10294 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
10295 if inlined != (member_inline_size <= 4) {
10296 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10297 }
10298 let inner_offset;
10299 let mut inner_depth = depth.clone();
10300 if inlined {
10301 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10302 inner_offset = next_offset;
10303 } else {
10304 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10305 inner_depth.increment()?;
10306 }
10307 let val_ref = self.service_data.get_or_insert_with(|| fidl::new_empty!(u16, D));
10308 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
10309 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10310 {
10311 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10312 }
10313 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10314 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10315 }
10316 }
10317
10318 next_offset += envelope_size;
10319
10320 while next_offset < end_offset {
10322 _next_ordinal_to_read += 1;
10323 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10324 next_offset += envelope_size;
10325 }
10326
10327 Ok(())
10328 }
10329 }
10330
10331 impl Extended {
10332 #[inline(always)]
10333 fn max_ordinal_present(&self) -> u64 {
10334 0
10335 }
10336 }
10337
10338 impl fidl::encoding::ValueTypeMarker for Extended {
10339 type Borrowed<'a> = &'a Self;
10340 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
10341 value
10342 }
10343 }
10344
10345 unsafe impl fidl::encoding::TypeMarker for Extended {
10346 type Owned = Self;
10347
10348 #[inline(always)]
10349 fn inline_align(_context: fidl::encoding::Context) -> usize {
10350 8
10351 }
10352
10353 #[inline(always)]
10354 fn inline_size(_context: fidl::encoding::Context) -> usize {
10355 16
10356 }
10357 }
10358
10359 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Extended, D> for &Extended {
10360 unsafe fn encode(
10361 self,
10362 encoder: &mut fidl::encoding::Encoder<'_, D>,
10363 offset: usize,
10364 mut depth: fidl::encoding::Depth,
10365 ) -> fidl::Result<()> {
10366 encoder.debug_check_bounds::<Extended>(offset);
10367 let max_ordinal: u64 = self.max_ordinal_present();
10369 encoder.write_num(max_ordinal, offset);
10370 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
10371 if max_ordinal == 0 {
10373 return Ok(());
10374 }
10375 depth.increment()?;
10376 let envelope_size = 8;
10377 let bytes_len = max_ordinal as usize * envelope_size;
10378 #[allow(unused_variables)]
10379 let offset = encoder.out_of_line_offset(bytes_len);
10380 let mut _prev_end_offset: usize = 0;
10381
10382 Ok(())
10383 }
10384 }
10385
10386 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Extended {
10387 #[inline(always)]
10388 fn new_empty() -> Self {
10389 Self::default()
10390 }
10391
10392 unsafe fn decode(
10393 &mut self,
10394 decoder: &mut fidl::encoding::Decoder<'_, D>,
10395 offset: usize,
10396 mut depth: fidl::encoding::Depth,
10397 ) -> fidl::Result<()> {
10398 decoder.debug_check_bounds::<Self>(offset);
10399 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
10400 None => return Err(fidl::Error::NotNullable),
10401 Some(len) => len,
10402 };
10403 if len == 0 {
10405 return Ok(());
10406 };
10407 depth.increment()?;
10408 let envelope_size = 8;
10409 let bytes_len = len * envelope_size;
10410 let offset = decoder.out_of_line_offset(bytes_len)?;
10411 let mut _next_ordinal_to_read = 0;
10413 let mut next_offset = offset;
10414 let end_offset = offset + bytes_len;
10415
10416 while next_offset < end_offset {
10418 _next_ordinal_to_read += 1;
10419 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10420 next_offset += envelope_size;
10421 }
10422
10423 Ok(())
10424 }
10425 }
10426
10427 impl Filter {
10428 #[inline(always)]
10429 fn max_ordinal_present(&self) -> u64 {
10430 if let Some(_) = self.solicitation_uuid {
10431 return 7;
10432 }
10433 if let Some(_) = self.max_path_loss {
10434 return 6;
10435 }
10436 if let Some(_) = self.name {
10437 return 5;
10438 }
10439 if let Some(_) = self.connectable {
10440 return 4;
10441 }
10442 if let Some(_) = self.manufacturer_id {
10443 return 3;
10444 }
10445 if let Some(_) = self.service_data_uuid {
10446 return 2;
10447 }
10448 if let Some(_) = self.service_uuid {
10449 return 1;
10450 }
10451 0
10452 }
10453 }
10454
10455 impl fidl::encoding::ValueTypeMarker for Filter {
10456 type Borrowed<'a> = &'a Self;
10457 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
10458 value
10459 }
10460 }
10461
10462 unsafe impl fidl::encoding::TypeMarker for Filter {
10463 type Owned = Self;
10464
10465 #[inline(always)]
10466 fn inline_align(_context: fidl::encoding::Context) -> usize {
10467 8
10468 }
10469
10470 #[inline(always)]
10471 fn inline_size(_context: fidl::encoding::Context) -> usize {
10472 16
10473 }
10474 }
10475
10476 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Filter, D> for &Filter {
10477 unsafe fn encode(
10478 self,
10479 encoder: &mut fidl::encoding::Encoder<'_, D>,
10480 offset: usize,
10481 mut depth: fidl::encoding::Depth,
10482 ) -> fidl::Result<()> {
10483 encoder.debug_check_bounds::<Filter>(offset);
10484 let max_ordinal: u64 = self.max_ordinal_present();
10486 encoder.write_num(max_ordinal, offset);
10487 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
10488 if max_ordinal == 0 {
10490 return Ok(());
10491 }
10492 depth.increment()?;
10493 let envelope_size = 8;
10494 let bytes_len = max_ordinal as usize * envelope_size;
10495 #[allow(unused_variables)]
10496 let offset = encoder.out_of_line_offset(bytes_len);
10497 let mut _prev_end_offset: usize = 0;
10498 if 1 > max_ordinal {
10499 return Ok(());
10500 }
10501
10502 let cur_offset: usize = (1 - 1) * envelope_size;
10505
10506 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10508
10509 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_bluetooth__common::Uuid, D>(
10514 self.service_uuid.as_ref().map(<fidl_fuchsia_bluetooth__common::Uuid as fidl::encoding::ValueTypeMarker>::borrow),
10515 encoder, offset + cur_offset, depth
10516 )?;
10517
10518 _prev_end_offset = cur_offset + envelope_size;
10519 if 2 > max_ordinal {
10520 return Ok(());
10521 }
10522
10523 let cur_offset: usize = (2 - 1) * envelope_size;
10526
10527 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10529
10530 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_bluetooth__common::Uuid, D>(
10535 self.service_data_uuid.as_ref().map(<fidl_fuchsia_bluetooth__common::Uuid as fidl::encoding::ValueTypeMarker>::borrow),
10536 encoder, offset + cur_offset, depth
10537 )?;
10538
10539 _prev_end_offset = cur_offset + envelope_size;
10540 if 3 > max_ordinal {
10541 return Ok(());
10542 }
10543
10544 let cur_offset: usize = (3 - 1) * envelope_size;
10547
10548 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10550
10551 fidl::encoding::encode_in_envelope_optional::<u16, D>(
10556 self.manufacturer_id.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
10557 encoder,
10558 offset + cur_offset,
10559 depth,
10560 )?;
10561
10562 _prev_end_offset = cur_offset + envelope_size;
10563 if 4 > max_ordinal {
10564 return Ok(());
10565 }
10566
10567 let cur_offset: usize = (4 - 1) * envelope_size;
10570
10571 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10573
10574 fidl::encoding::encode_in_envelope_optional::<bool, D>(
10579 self.connectable.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
10580 encoder,
10581 offset + cur_offset,
10582 depth,
10583 )?;
10584
10585 _prev_end_offset = cur_offset + envelope_size;
10586 if 5 > max_ordinal {
10587 return Ok(());
10588 }
10589
10590 let cur_offset: usize = (5 - 1) * envelope_size;
10593
10594 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10596
10597 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<248>, D>(
10602 self.name.as_ref().map(
10603 <fidl::encoding::BoundedString<248> as fidl::encoding::ValueTypeMarker>::borrow,
10604 ),
10605 encoder,
10606 offset + cur_offset,
10607 depth,
10608 )?;
10609
10610 _prev_end_offset = cur_offset + envelope_size;
10611 if 6 > max_ordinal {
10612 return Ok(());
10613 }
10614
10615 let cur_offset: usize = (6 - 1) * envelope_size;
10618
10619 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10621
10622 fidl::encoding::encode_in_envelope_optional::<i8, D>(
10627 self.max_path_loss.as_ref().map(<i8 as fidl::encoding::ValueTypeMarker>::borrow),
10628 encoder,
10629 offset + cur_offset,
10630 depth,
10631 )?;
10632
10633 _prev_end_offset = cur_offset + envelope_size;
10634 if 7 > max_ordinal {
10635 return Ok(());
10636 }
10637
10638 let cur_offset: usize = (7 - 1) * envelope_size;
10641
10642 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10644
10645 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_bluetooth__common::Uuid, D>(
10650 self.solicitation_uuid.as_ref().map(<fidl_fuchsia_bluetooth__common::Uuid as fidl::encoding::ValueTypeMarker>::borrow),
10651 encoder, offset + cur_offset, depth
10652 )?;
10653
10654 _prev_end_offset = cur_offset + envelope_size;
10655
10656 Ok(())
10657 }
10658 }
10659
10660 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Filter {
10661 #[inline(always)]
10662 fn new_empty() -> Self {
10663 Self::default()
10664 }
10665
10666 unsafe fn decode(
10667 &mut self,
10668 decoder: &mut fidl::encoding::Decoder<'_, D>,
10669 offset: usize,
10670 mut depth: fidl::encoding::Depth,
10671 ) -> fidl::Result<()> {
10672 decoder.debug_check_bounds::<Self>(offset);
10673 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
10674 None => return Err(fidl::Error::NotNullable),
10675 Some(len) => len,
10676 };
10677 if len == 0 {
10679 return Ok(());
10680 };
10681 depth.increment()?;
10682 let envelope_size = 8;
10683 let bytes_len = len * envelope_size;
10684 let offset = decoder.out_of_line_offset(bytes_len)?;
10685 let mut _next_ordinal_to_read = 0;
10687 let mut next_offset = offset;
10688 let end_offset = offset + bytes_len;
10689 _next_ordinal_to_read += 1;
10690 if next_offset >= end_offset {
10691 return Ok(());
10692 }
10693
10694 while _next_ordinal_to_read < 1 {
10696 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10697 _next_ordinal_to_read += 1;
10698 next_offset += envelope_size;
10699 }
10700
10701 let next_out_of_line = decoder.next_out_of_line();
10702 let handles_before = decoder.remaining_handles();
10703 if let Some((inlined, num_bytes, num_handles)) =
10704 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10705 {
10706 let member_inline_size = <fidl_fuchsia_bluetooth__common::Uuid as fidl::encoding::TypeMarker>::inline_size(decoder.context);
10707 if inlined != (member_inline_size <= 4) {
10708 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10709 }
10710 let inner_offset;
10711 let mut inner_depth = depth.clone();
10712 if inlined {
10713 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10714 inner_offset = next_offset;
10715 } else {
10716 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10717 inner_depth.increment()?;
10718 }
10719 let val_ref = self.service_uuid.get_or_insert_with(|| {
10720 fidl::new_empty!(fidl_fuchsia_bluetooth__common::Uuid, D)
10721 });
10722 fidl::decode!(
10723 fidl_fuchsia_bluetooth__common::Uuid,
10724 D,
10725 val_ref,
10726 decoder,
10727 inner_offset,
10728 inner_depth
10729 )?;
10730 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10731 {
10732 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10733 }
10734 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10735 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10736 }
10737 }
10738
10739 next_offset += envelope_size;
10740 _next_ordinal_to_read += 1;
10741 if next_offset >= end_offset {
10742 return Ok(());
10743 }
10744
10745 while _next_ordinal_to_read < 2 {
10747 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10748 _next_ordinal_to_read += 1;
10749 next_offset += envelope_size;
10750 }
10751
10752 let next_out_of_line = decoder.next_out_of_line();
10753 let handles_before = decoder.remaining_handles();
10754 if let Some((inlined, num_bytes, num_handles)) =
10755 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10756 {
10757 let member_inline_size = <fidl_fuchsia_bluetooth__common::Uuid as fidl::encoding::TypeMarker>::inline_size(decoder.context);
10758 if inlined != (member_inline_size <= 4) {
10759 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10760 }
10761 let inner_offset;
10762 let mut inner_depth = depth.clone();
10763 if inlined {
10764 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10765 inner_offset = next_offset;
10766 } else {
10767 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10768 inner_depth.increment()?;
10769 }
10770 let val_ref = self.service_data_uuid.get_or_insert_with(|| {
10771 fidl::new_empty!(fidl_fuchsia_bluetooth__common::Uuid, D)
10772 });
10773 fidl::decode!(
10774 fidl_fuchsia_bluetooth__common::Uuid,
10775 D,
10776 val_ref,
10777 decoder,
10778 inner_offset,
10779 inner_depth
10780 )?;
10781 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10782 {
10783 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10784 }
10785 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10786 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10787 }
10788 }
10789
10790 next_offset += envelope_size;
10791 _next_ordinal_to_read += 1;
10792 if next_offset >= end_offset {
10793 return Ok(());
10794 }
10795
10796 while _next_ordinal_to_read < 3 {
10798 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10799 _next_ordinal_to_read += 1;
10800 next_offset += envelope_size;
10801 }
10802
10803 let next_out_of_line = decoder.next_out_of_line();
10804 let handles_before = decoder.remaining_handles();
10805 if let Some((inlined, num_bytes, num_handles)) =
10806 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10807 {
10808 let member_inline_size =
10809 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
10810 if inlined != (member_inline_size <= 4) {
10811 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10812 }
10813 let inner_offset;
10814 let mut inner_depth = depth.clone();
10815 if inlined {
10816 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10817 inner_offset = next_offset;
10818 } else {
10819 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10820 inner_depth.increment()?;
10821 }
10822 let val_ref = self.manufacturer_id.get_or_insert_with(|| fidl::new_empty!(u16, D));
10823 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
10824 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10825 {
10826 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10827 }
10828 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10829 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10830 }
10831 }
10832
10833 next_offset += envelope_size;
10834 _next_ordinal_to_read += 1;
10835 if next_offset >= end_offset {
10836 return Ok(());
10837 }
10838
10839 while _next_ordinal_to_read < 4 {
10841 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10842 _next_ordinal_to_read += 1;
10843 next_offset += envelope_size;
10844 }
10845
10846 let next_out_of_line = decoder.next_out_of_line();
10847 let handles_before = decoder.remaining_handles();
10848 if let Some((inlined, num_bytes, num_handles)) =
10849 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10850 {
10851 let member_inline_size =
10852 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
10853 if inlined != (member_inline_size <= 4) {
10854 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10855 }
10856 let inner_offset;
10857 let mut inner_depth = depth.clone();
10858 if inlined {
10859 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10860 inner_offset = next_offset;
10861 } else {
10862 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10863 inner_depth.increment()?;
10864 }
10865 let val_ref = self.connectable.get_or_insert_with(|| fidl::new_empty!(bool, D));
10866 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
10867 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10868 {
10869 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10870 }
10871 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10872 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10873 }
10874 }
10875
10876 next_offset += envelope_size;
10877 _next_ordinal_to_read += 1;
10878 if next_offset >= end_offset {
10879 return Ok(());
10880 }
10881
10882 while _next_ordinal_to_read < 5 {
10884 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10885 _next_ordinal_to_read += 1;
10886 next_offset += envelope_size;
10887 }
10888
10889 let next_out_of_line = decoder.next_out_of_line();
10890 let handles_before = decoder.remaining_handles();
10891 if let Some((inlined, num_bytes, num_handles)) =
10892 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10893 {
10894 let member_inline_size =
10895 <fidl::encoding::BoundedString<248> as fidl::encoding::TypeMarker>::inline_size(
10896 decoder.context,
10897 );
10898 if inlined != (member_inline_size <= 4) {
10899 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10900 }
10901 let inner_offset;
10902 let mut inner_depth = depth.clone();
10903 if inlined {
10904 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10905 inner_offset = next_offset;
10906 } else {
10907 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10908 inner_depth.increment()?;
10909 }
10910 let val_ref = self
10911 .name
10912 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<248>, D));
10913 fidl::decode!(
10914 fidl::encoding::BoundedString<248>,
10915 D,
10916 val_ref,
10917 decoder,
10918 inner_offset,
10919 inner_depth
10920 )?;
10921 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10922 {
10923 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10924 }
10925 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10926 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10927 }
10928 }
10929
10930 next_offset += envelope_size;
10931 _next_ordinal_to_read += 1;
10932 if next_offset >= end_offset {
10933 return Ok(());
10934 }
10935
10936 while _next_ordinal_to_read < 6 {
10938 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10939 _next_ordinal_to_read += 1;
10940 next_offset += envelope_size;
10941 }
10942
10943 let next_out_of_line = decoder.next_out_of_line();
10944 let handles_before = decoder.remaining_handles();
10945 if let Some((inlined, num_bytes, num_handles)) =
10946 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10947 {
10948 let member_inline_size =
10949 <i8 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
10950 if inlined != (member_inline_size <= 4) {
10951 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10952 }
10953 let inner_offset;
10954 let mut inner_depth = depth.clone();
10955 if inlined {
10956 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10957 inner_offset = next_offset;
10958 } else {
10959 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10960 inner_depth.increment()?;
10961 }
10962 let val_ref = self.max_path_loss.get_or_insert_with(|| fidl::new_empty!(i8, D));
10963 fidl::decode!(i8, D, val_ref, decoder, inner_offset, inner_depth)?;
10964 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10965 {
10966 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10967 }
10968 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10969 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10970 }
10971 }
10972
10973 next_offset += envelope_size;
10974 _next_ordinal_to_read += 1;
10975 if next_offset >= end_offset {
10976 return Ok(());
10977 }
10978
10979 while _next_ordinal_to_read < 7 {
10981 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10982 _next_ordinal_to_read += 1;
10983 next_offset += envelope_size;
10984 }
10985
10986 let next_out_of_line = decoder.next_out_of_line();
10987 let handles_before = decoder.remaining_handles();
10988 if let Some((inlined, num_bytes, num_handles)) =
10989 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10990 {
10991 let member_inline_size = <fidl_fuchsia_bluetooth__common::Uuid as fidl::encoding::TypeMarker>::inline_size(decoder.context);
10992 if inlined != (member_inline_size <= 4) {
10993 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10994 }
10995 let inner_offset;
10996 let mut inner_depth = depth.clone();
10997 if inlined {
10998 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10999 inner_offset = next_offset;
11000 } else {
11001 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11002 inner_depth.increment()?;
11003 }
11004 let val_ref = self.solicitation_uuid.get_or_insert_with(|| {
11005 fidl::new_empty!(fidl_fuchsia_bluetooth__common::Uuid, D)
11006 });
11007 fidl::decode!(
11008 fidl_fuchsia_bluetooth__common::Uuid,
11009 D,
11010 val_ref,
11011 decoder,
11012 inner_offset,
11013 inner_depth
11014 )?;
11015 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11016 {
11017 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11018 }
11019 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11020 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11021 }
11022 }
11023
11024 next_offset += envelope_size;
11025
11026 while next_offset < end_offset {
11028 _next_ordinal_to_read += 1;
11029 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11030 next_offset += envelope_size;
11031 }
11032
11033 Ok(())
11034 }
11035 }
11036
11037 impl IsochronousStreamOnEstablishedRequest {
11038 #[inline(always)]
11039 fn max_ordinal_present(&self) -> u64 {
11040 if let Some(_) = self.established_params {
11041 return 2;
11042 }
11043 if let Some(_) = self.result {
11044 return 1;
11045 }
11046 0
11047 }
11048 }
11049
11050 impl fidl::encoding::ValueTypeMarker for IsochronousStreamOnEstablishedRequest {
11051 type Borrowed<'a> = &'a Self;
11052 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
11053 value
11054 }
11055 }
11056
11057 unsafe impl fidl::encoding::TypeMarker for IsochronousStreamOnEstablishedRequest {
11058 type Owned = Self;
11059
11060 #[inline(always)]
11061 fn inline_align(_context: fidl::encoding::Context) -> usize {
11062 8
11063 }
11064
11065 #[inline(always)]
11066 fn inline_size(_context: fidl::encoding::Context) -> usize {
11067 16
11068 }
11069 }
11070
11071 unsafe impl<D: fidl::encoding::ResourceDialect>
11072 fidl::encoding::Encode<IsochronousStreamOnEstablishedRequest, D>
11073 for &IsochronousStreamOnEstablishedRequest
11074 {
11075 unsafe fn encode(
11076 self,
11077 encoder: &mut fidl::encoding::Encoder<'_, D>,
11078 offset: usize,
11079 mut depth: fidl::encoding::Depth,
11080 ) -> fidl::Result<()> {
11081 encoder.debug_check_bounds::<IsochronousStreamOnEstablishedRequest>(offset);
11082 let max_ordinal: u64 = self.max_ordinal_present();
11084 encoder.write_num(max_ordinal, offset);
11085 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
11086 if max_ordinal == 0 {
11088 return Ok(());
11089 }
11090 depth.increment()?;
11091 let envelope_size = 8;
11092 let bytes_len = max_ordinal as usize * envelope_size;
11093 #[allow(unused_variables)]
11094 let offset = encoder.out_of_line_offset(bytes_len);
11095 let mut _prev_end_offset: usize = 0;
11096 if 1 > max_ordinal {
11097 return Ok(());
11098 }
11099
11100 let cur_offset: usize = (1 - 1) * envelope_size;
11103
11104 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11106
11107 fidl::encoding::encode_in_envelope_optional::<i32, D>(
11112 self.result.as_ref().map(<i32 as fidl::encoding::ValueTypeMarker>::borrow),
11113 encoder,
11114 offset + cur_offset,
11115 depth,
11116 )?;
11117
11118 _prev_end_offset = cur_offset + envelope_size;
11119 if 2 > max_ordinal {
11120 return Ok(());
11121 }
11122
11123 let cur_offset: usize = (2 - 1) * envelope_size;
11126
11127 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11129
11130 fidl::encoding::encode_in_envelope_optional::<CisEstablishedParameters, D>(
11135 self.established_params
11136 .as_ref()
11137 .map(<CisEstablishedParameters as fidl::encoding::ValueTypeMarker>::borrow),
11138 encoder,
11139 offset + cur_offset,
11140 depth,
11141 )?;
11142
11143 _prev_end_offset = cur_offset + envelope_size;
11144
11145 Ok(())
11146 }
11147 }
11148
11149 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
11150 for IsochronousStreamOnEstablishedRequest
11151 {
11152 #[inline(always)]
11153 fn new_empty() -> Self {
11154 Self::default()
11155 }
11156
11157 unsafe fn decode(
11158 &mut self,
11159 decoder: &mut fidl::encoding::Decoder<'_, D>,
11160 offset: usize,
11161 mut depth: fidl::encoding::Depth,
11162 ) -> fidl::Result<()> {
11163 decoder.debug_check_bounds::<Self>(offset);
11164 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
11165 None => return Err(fidl::Error::NotNullable),
11166 Some(len) => len,
11167 };
11168 if len == 0 {
11170 return Ok(());
11171 };
11172 depth.increment()?;
11173 let envelope_size = 8;
11174 let bytes_len = len * envelope_size;
11175 let offset = decoder.out_of_line_offset(bytes_len)?;
11176 let mut _next_ordinal_to_read = 0;
11178 let mut next_offset = offset;
11179 let end_offset = offset + bytes_len;
11180 _next_ordinal_to_read += 1;
11181 if next_offset >= end_offset {
11182 return Ok(());
11183 }
11184
11185 while _next_ordinal_to_read < 1 {
11187 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11188 _next_ordinal_to_read += 1;
11189 next_offset += envelope_size;
11190 }
11191
11192 let next_out_of_line = decoder.next_out_of_line();
11193 let handles_before = decoder.remaining_handles();
11194 if let Some((inlined, num_bytes, num_handles)) =
11195 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11196 {
11197 let member_inline_size =
11198 <i32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
11199 if inlined != (member_inline_size <= 4) {
11200 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11201 }
11202 let inner_offset;
11203 let mut inner_depth = depth.clone();
11204 if inlined {
11205 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11206 inner_offset = next_offset;
11207 } else {
11208 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11209 inner_depth.increment()?;
11210 }
11211 let val_ref = self.result.get_or_insert_with(|| fidl::new_empty!(i32, D));
11212 fidl::decode!(i32, D, val_ref, decoder, inner_offset, inner_depth)?;
11213 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11214 {
11215 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11216 }
11217 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11218 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11219 }
11220 }
11221
11222 next_offset += envelope_size;
11223 _next_ordinal_to_read += 1;
11224 if next_offset >= end_offset {
11225 return Ok(());
11226 }
11227
11228 while _next_ordinal_to_read < 2 {
11230 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11231 _next_ordinal_to_read += 1;
11232 next_offset += envelope_size;
11233 }
11234
11235 let next_out_of_line = decoder.next_out_of_line();
11236 let handles_before = decoder.remaining_handles();
11237 if let Some((inlined, num_bytes, num_handles)) =
11238 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11239 {
11240 let member_inline_size =
11241 <CisEstablishedParameters as fidl::encoding::TypeMarker>::inline_size(
11242 decoder.context,
11243 );
11244 if inlined != (member_inline_size <= 4) {
11245 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11246 }
11247 let inner_offset;
11248 let mut inner_depth = depth.clone();
11249 if inlined {
11250 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11251 inner_offset = next_offset;
11252 } else {
11253 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11254 inner_depth.increment()?;
11255 }
11256 let val_ref = self
11257 .established_params
11258 .get_or_insert_with(|| fidl::new_empty!(CisEstablishedParameters, D));
11259 fidl::decode!(
11260 CisEstablishedParameters,
11261 D,
11262 val_ref,
11263 decoder,
11264 inner_offset,
11265 inner_depth
11266 )?;
11267 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11268 {
11269 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11270 }
11271 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11272 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11273 }
11274 }
11275
11276 next_offset += envelope_size;
11277
11278 while next_offset < end_offset {
11280 _next_ordinal_to_read += 1;
11281 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11282 next_offset += envelope_size;
11283 }
11284
11285 Ok(())
11286 }
11287 }
11288
11289 impl IsochronousStreamSetupDataPathRequest {
11290 #[inline(always)]
11291 fn max_ordinal_present(&self) -> u64 {
11292 if let Some(_) = self.controller_delay {
11293 return 3;
11294 }
11295 if let Some(_) = self.codec_attributes {
11296 return 2;
11297 }
11298 if let Some(_) = self.data_direction {
11299 return 1;
11300 }
11301 0
11302 }
11303 }
11304
11305 impl fidl::encoding::ValueTypeMarker for IsochronousStreamSetupDataPathRequest {
11306 type Borrowed<'a> = &'a Self;
11307 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
11308 value
11309 }
11310 }
11311
11312 unsafe impl fidl::encoding::TypeMarker for IsochronousStreamSetupDataPathRequest {
11313 type Owned = Self;
11314
11315 #[inline(always)]
11316 fn inline_align(_context: fidl::encoding::Context) -> usize {
11317 8
11318 }
11319
11320 #[inline(always)]
11321 fn inline_size(_context: fidl::encoding::Context) -> usize {
11322 16
11323 }
11324 }
11325
11326 unsafe impl<D: fidl::encoding::ResourceDialect>
11327 fidl::encoding::Encode<IsochronousStreamSetupDataPathRequest, D>
11328 for &IsochronousStreamSetupDataPathRequest
11329 {
11330 unsafe fn encode(
11331 self,
11332 encoder: &mut fidl::encoding::Encoder<'_, D>,
11333 offset: usize,
11334 mut depth: fidl::encoding::Depth,
11335 ) -> fidl::Result<()> {
11336 encoder.debug_check_bounds::<IsochronousStreamSetupDataPathRequest>(offset);
11337 let max_ordinal: u64 = self.max_ordinal_present();
11339 encoder.write_num(max_ordinal, offset);
11340 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
11341 if max_ordinal == 0 {
11343 return Ok(());
11344 }
11345 depth.increment()?;
11346 let envelope_size = 8;
11347 let bytes_len = max_ordinal as usize * envelope_size;
11348 #[allow(unused_variables)]
11349 let offset = encoder.out_of_line_offset(bytes_len);
11350 let mut _prev_end_offset: usize = 0;
11351 if 1 > max_ordinal {
11352 return Ok(());
11353 }
11354
11355 let cur_offset: usize = (1 - 1) * envelope_size;
11358
11359 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11361
11362 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_bluetooth__common::DataDirection, D>(
11367 self.data_direction.as_ref().map(<fidl_fuchsia_bluetooth__common::DataDirection as fidl::encoding::ValueTypeMarker>::borrow),
11368 encoder, offset + cur_offset, depth
11369 )?;
11370
11371 _prev_end_offset = cur_offset + envelope_size;
11372 if 2 > max_ordinal {
11373 return Ok(());
11374 }
11375
11376 let cur_offset: usize = (2 - 1) * envelope_size;
11379
11380 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11382
11383 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_bluetooth__common::CodecAttributes, D>(
11388 self.codec_attributes.as_ref().map(<fidl_fuchsia_bluetooth__common::CodecAttributes as fidl::encoding::ValueTypeMarker>::borrow),
11389 encoder, offset + cur_offset, depth
11390 )?;
11391
11392 _prev_end_offset = cur_offset + envelope_size;
11393 if 3 > max_ordinal {
11394 return Ok(());
11395 }
11396
11397 let cur_offset: usize = (3 - 1) * envelope_size;
11400
11401 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11403
11404 fidl::encoding::encode_in_envelope_optional::<i64, D>(
11409 self.controller_delay
11410 .as_ref()
11411 .map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
11412 encoder,
11413 offset + cur_offset,
11414 depth,
11415 )?;
11416
11417 _prev_end_offset = cur_offset + envelope_size;
11418
11419 Ok(())
11420 }
11421 }
11422
11423 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
11424 for IsochronousStreamSetupDataPathRequest
11425 {
11426 #[inline(always)]
11427 fn new_empty() -> Self {
11428 Self::default()
11429 }
11430
11431 unsafe fn decode(
11432 &mut self,
11433 decoder: &mut fidl::encoding::Decoder<'_, D>,
11434 offset: usize,
11435 mut depth: fidl::encoding::Depth,
11436 ) -> fidl::Result<()> {
11437 decoder.debug_check_bounds::<Self>(offset);
11438 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
11439 None => return Err(fidl::Error::NotNullable),
11440 Some(len) => len,
11441 };
11442 if len == 0 {
11444 return Ok(());
11445 };
11446 depth.increment()?;
11447 let envelope_size = 8;
11448 let bytes_len = len * envelope_size;
11449 let offset = decoder.out_of_line_offset(bytes_len)?;
11450 let mut _next_ordinal_to_read = 0;
11452 let mut next_offset = offset;
11453 let end_offset = offset + bytes_len;
11454 _next_ordinal_to_read += 1;
11455 if next_offset >= end_offset {
11456 return Ok(());
11457 }
11458
11459 while _next_ordinal_to_read < 1 {
11461 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11462 _next_ordinal_to_read += 1;
11463 next_offset += envelope_size;
11464 }
11465
11466 let next_out_of_line = decoder.next_out_of_line();
11467 let handles_before = decoder.remaining_handles();
11468 if let Some((inlined, num_bytes, num_handles)) =
11469 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11470 {
11471 let member_inline_size = <fidl_fuchsia_bluetooth__common::DataDirection as fidl::encoding::TypeMarker>::inline_size(decoder.context);
11472 if inlined != (member_inline_size <= 4) {
11473 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11474 }
11475 let inner_offset;
11476 let mut inner_depth = depth.clone();
11477 if inlined {
11478 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11479 inner_offset = next_offset;
11480 } else {
11481 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11482 inner_depth.increment()?;
11483 }
11484 let val_ref = self.data_direction.get_or_insert_with(|| {
11485 fidl::new_empty!(fidl_fuchsia_bluetooth__common::DataDirection, D)
11486 });
11487 fidl::decode!(
11488 fidl_fuchsia_bluetooth__common::DataDirection,
11489 D,
11490 val_ref,
11491 decoder,
11492 inner_offset,
11493 inner_depth
11494 )?;
11495 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11496 {
11497 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11498 }
11499 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11500 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11501 }
11502 }
11503
11504 next_offset += envelope_size;
11505 _next_ordinal_to_read += 1;
11506 if next_offset >= end_offset {
11507 return Ok(());
11508 }
11509
11510 while _next_ordinal_to_read < 2 {
11512 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11513 _next_ordinal_to_read += 1;
11514 next_offset += envelope_size;
11515 }
11516
11517 let next_out_of_line = decoder.next_out_of_line();
11518 let handles_before = decoder.remaining_handles();
11519 if let Some((inlined, num_bytes, num_handles)) =
11520 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11521 {
11522 let member_inline_size = <fidl_fuchsia_bluetooth__common::CodecAttributes as fidl::encoding::TypeMarker>::inline_size(decoder.context);
11523 if inlined != (member_inline_size <= 4) {
11524 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11525 }
11526 let inner_offset;
11527 let mut inner_depth = depth.clone();
11528 if inlined {
11529 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11530 inner_offset = next_offset;
11531 } else {
11532 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11533 inner_depth.increment()?;
11534 }
11535 let val_ref = self.codec_attributes.get_or_insert_with(|| {
11536 fidl::new_empty!(fidl_fuchsia_bluetooth__common::CodecAttributes, D)
11537 });
11538 fidl::decode!(
11539 fidl_fuchsia_bluetooth__common::CodecAttributes,
11540 D,
11541 val_ref,
11542 decoder,
11543 inner_offset,
11544 inner_depth
11545 )?;
11546 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11547 {
11548 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11549 }
11550 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11551 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11552 }
11553 }
11554
11555 next_offset += envelope_size;
11556 _next_ordinal_to_read += 1;
11557 if next_offset >= end_offset {
11558 return Ok(());
11559 }
11560
11561 while _next_ordinal_to_read < 3 {
11563 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11564 _next_ordinal_to_read += 1;
11565 next_offset += envelope_size;
11566 }
11567
11568 let next_out_of_line = decoder.next_out_of_line();
11569 let handles_before = decoder.remaining_handles();
11570 if let Some((inlined, num_bytes, num_handles)) =
11571 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11572 {
11573 let member_inline_size =
11574 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
11575 if inlined != (member_inline_size <= 4) {
11576 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11577 }
11578 let inner_offset;
11579 let mut inner_depth = depth.clone();
11580 if inlined {
11581 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11582 inner_offset = next_offset;
11583 } else {
11584 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11585 inner_depth.increment()?;
11586 }
11587 let val_ref = self.controller_delay.get_or_insert_with(|| fidl::new_empty!(i64, D));
11588 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
11589 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11590 {
11591 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11592 }
11593 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11594 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11595 }
11596 }
11597
11598 next_offset += envelope_size;
11599
11600 while next_offset < end_offset {
11602 _next_ordinal_to_read += 1;
11603 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11604 next_offset += envelope_size;
11605 }
11606
11607 Ok(())
11608 }
11609 }
11610
11611 impl IsochronousStreamWriteRequest {
11612 #[inline(always)]
11613 fn max_ordinal_present(&self) -> u64 {
11614 if let Some(_) = self.data {
11615 return 1;
11616 }
11617 0
11618 }
11619 }
11620
11621 impl fidl::encoding::ValueTypeMarker for IsochronousStreamWriteRequest {
11622 type Borrowed<'a> = &'a Self;
11623 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
11624 value
11625 }
11626 }
11627
11628 unsafe impl fidl::encoding::TypeMarker for IsochronousStreamWriteRequest {
11629 type Owned = Self;
11630
11631 #[inline(always)]
11632 fn inline_align(_context: fidl::encoding::Context) -> usize {
11633 8
11634 }
11635
11636 #[inline(always)]
11637 fn inline_size(_context: fidl::encoding::Context) -> usize {
11638 16
11639 }
11640 }
11641
11642 unsafe impl<D: fidl::encoding::ResourceDialect>
11643 fidl::encoding::Encode<IsochronousStreamWriteRequest, D>
11644 for &IsochronousStreamWriteRequest
11645 {
11646 unsafe fn encode(
11647 self,
11648 encoder: &mut fidl::encoding::Encoder<'_, D>,
11649 offset: usize,
11650 mut depth: fidl::encoding::Depth,
11651 ) -> fidl::Result<()> {
11652 encoder.debug_check_bounds::<IsochronousStreamWriteRequest>(offset);
11653 let max_ordinal: u64 = self.max_ordinal_present();
11655 encoder.write_num(max_ordinal, offset);
11656 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
11657 if max_ordinal == 0 {
11659 return Ok(());
11660 }
11661 depth.increment()?;
11662 let envelope_size = 8;
11663 let bytes_len = max_ordinal as usize * envelope_size;
11664 #[allow(unused_variables)]
11665 let offset = encoder.out_of_line_offset(bytes_len);
11666 let mut _prev_end_offset: usize = 0;
11667 if 1 > max_ordinal {
11668 return Ok(());
11669 }
11670
11671 let cur_offset: usize = (1 - 1) * envelope_size;
11674
11675 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11677
11678 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u8, 4095>, D>(
11683 self.data.as_ref().map(
11684 <fidl::encoding::Vector<u8, 4095> as fidl::encoding::ValueTypeMarker>::borrow,
11685 ),
11686 encoder,
11687 offset + cur_offset,
11688 depth,
11689 )?;
11690
11691 _prev_end_offset = cur_offset + envelope_size;
11692
11693 Ok(())
11694 }
11695 }
11696
11697 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
11698 for IsochronousStreamWriteRequest
11699 {
11700 #[inline(always)]
11701 fn new_empty() -> Self {
11702 Self::default()
11703 }
11704
11705 unsafe fn decode(
11706 &mut self,
11707 decoder: &mut fidl::encoding::Decoder<'_, D>,
11708 offset: usize,
11709 mut depth: fidl::encoding::Depth,
11710 ) -> fidl::Result<()> {
11711 decoder.debug_check_bounds::<Self>(offset);
11712 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
11713 None => return Err(fidl::Error::NotNullable),
11714 Some(len) => len,
11715 };
11716 if len == 0 {
11718 return Ok(());
11719 };
11720 depth.increment()?;
11721 let envelope_size = 8;
11722 let bytes_len = len * envelope_size;
11723 let offset = decoder.out_of_line_offset(bytes_len)?;
11724 let mut _next_ordinal_to_read = 0;
11726 let mut next_offset = offset;
11727 let end_offset = offset + bytes_len;
11728 _next_ordinal_to_read += 1;
11729 if next_offset >= end_offset {
11730 return Ok(());
11731 }
11732
11733 while _next_ordinal_to_read < 1 {
11735 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11736 _next_ordinal_to_read += 1;
11737 next_offset += envelope_size;
11738 }
11739
11740 let next_out_of_line = decoder.next_out_of_line();
11741 let handles_before = decoder.remaining_handles();
11742 if let Some((inlined, num_bytes, num_handles)) =
11743 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11744 {
11745 let member_inline_size =
11746 <fidl::encoding::Vector<u8, 4095> as fidl::encoding::TypeMarker>::inline_size(
11747 decoder.context,
11748 );
11749 if inlined != (member_inline_size <= 4) {
11750 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11751 }
11752 let inner_offset;
11753 let mut inner_depth = depth.clone();
11754 if inlined {
11755 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11756 inner_offset = next_offset;
11757 } else {
11758 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11759 inner_depth.increment()?;
11760 }
11761 let val_ref = self
11762 .data
11763 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u8, 4095>, D));
11764 fidl::decode!(fidl::encoding::Vector<u8, 4095>, D, val_ref, decoder, inner_offset, inner_depth)?;
11765 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11766 {
11767 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11768 }
11769 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11770 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11771 }
11772 }
11773
11774 next_offset += envelope_size;
11775
11776 while next_offset < end_offset {
11778 _next_ordinal_to_read += 1;
11779 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11780 next_offset += envelope_size;
11781 }
11782
11783 Ok(())
11784 }
11785 }
11786
11787 impl IsochronousStreamReadResponse {
11788 #[inline(always)]
11789 fn max_ordinal_present(&self) -> u64 {
11790 if let Some(_) = self.timestamp {
11791 return 4;
11792 }
11793 if let Some(_) = self.status_flag {
11794 return 3;
11795 }
11796 if let Some(_) = self.sequence_number {
11797 return 2;
11798 }
11799 if let Some(_) = self.data {
11800 return 1;
11801 }
11802 0
11803 }
11804 }
11805
11806 impl fidl::encoding::ValueTypeMarker for IsochronousStreamReadResponse {
11807 type Borrowed<'a> = &'a Self;
11808 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
11809 value
11810 }
11811 }
11812
11813 unsafe impl fidl::encoding::TypeMarker for IsochronousStreamReadResponse {
11814 type Owned = Self;
11815
11816 #[inline(always)]
11817 fn inline_align(_context: fidl::encoding::Context) -> usize {
11818 8
11819 }
11820
11821 #[inline(always)]
11822 fn inline_size(_context: fidl::encoding::Context) -> usize {
11823 16
11824 }
11825 }
11826
11827 unsafe impl<D: fidl::encoding::ResourceDialect>
11828 fidl::encoding::Encode<IsochronousStreamReadResponse, D>
11829 for &IsochronousStreamReadResponse
11830 {
11831 unsafe fn encode(
11832 self,
11833 encoder: &mut fidl::encoding::Encoder<'_, D>,
11834 offset: usize,
11835 mut depth: fidl::encoding::Depth,
11836 ) -> fidl::Result<()> {
11837 encoder.debug_check_bounds::<IsochronousStreamReadResponse>(offset);
11838 let max_ordinal: u64 = self.max_ordinal_present();
11840 encoder.write_num(max_ordinal, offset);
11841 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
11842 if max_ordinal == 0 {
11844 return Ok(());
11845 }
11846 depth.increment()?;
11847 let envelope_size = 8;
11848 let bytes_len = max_ordinal as usize * envelope_size;
11849 #[allow(unused_variables)]
11850 let offset = encoder.out_of_line_offset(bytes_len);
11851 let mut _prev_end_offset: usize = 0;
11852 if 1 > max_ordinal {
11853 return Ok(());
11854 }
11855
11856 let cur_offset: usize = (1 - 1) * envelope_size;
11859
11860 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11862
11863 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u8>, D>(
11868 self.data.as_ref().map(<fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow),
11869 encoder, offset + cur_offset, depth
11870 )?;
11871
11872 _prev_end_offset = cur_offset + envelope_size;
11873 if 2 > max_ordinal {
11874 return Ok(());
11875 }
11876
11877 let cur_offset: usize = (2 - 1) * envelope_size;
11880
11881 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11883
11884 fidl::encoding::encode_in_envelope_optional::<u16, D>(
11889 self.sequence_number.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
11890 encoder,
11891 offset + cur_offset,
11892 depth,
11893 )?;
11894
11895 _prev_end_offset = cur_offset + envelope_size;
11896 if 3 > max_ordinal {
11897 return Ok(());
11898 }
11899
11900 let cur_offset: usize = (3 - 1) * envelope_size;
11903
11904 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11906
11907 fidl::encoding::encode_in_envelope_optional::<IsoPacketStatusFlag, D>(
11912 self.status_flag
11913 .as_ref()
11914 .map(<IsoPacketStatusFlag as fidl::encoding::ValueTypeMarker>::borrow),
11915 encoder,
11916 offset + cur_offset,
11917 depth,
11918 )?;
11919
11920 _prev_end_offset = cur_offset + envelope_size;
11921 if 4 > max_ordinal {
11922 return Ok(());
11923 }
11924
11925 let cur_offset: usize = (4 - 1) * envelope_size;
11928
11929 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11931
11932 fidl::encoding::encode_in_envelope_optional::<i64, D>(
11937 self.timestamp.as_ref().map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
11938 encoder,
11939 offset + cur_offset,
11940 depth,
11941 )?;
11942
11943 _prev_end_offset = cur_offset + envelope_size;
11944
11945 Ok(())
11946 }
11947 }
11948
11949 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
11950 for IsochronousStreamReadResponse
11951 {
11952 #[inline(always)]
11953 fn new_empty() -> Self {
11954 Self::default()
11955 }
11956
11957 unsafe fn decode(
11958 &mut self,
11959 decoder: &mut fidl::encoding::Decoder<'_, D>,
11960 offset: usize,
11961 mut depth: fidl::encoding::Depth,
11962 ) -> fidl::Result<()> {
11963 decoder.debug_check_bounds::<Self>(offset);
11964 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
11965 None => return Err(fidl::Error::NotNullable),
11966 Some(len) => len,
11967 };
11968 if len == 0 {
11970 return Ok(());
11971 };
11972 depth.increment()?;
11973 let envelope_size = 8;
11974 let bytes_len = len * envelope_size;
11975 let offset = decoder.out_of_line_offset(bytes_len)?;
11976 let mut _next_ordinal_to_read = 0;
11978 let mut next_offset = offset;
11979 let end_offset = offset + bytes_len;
11980 _next_ordinal_to_read += 1;
11981 if next_offset >= end_offset {
11982 return Ok(());
11983 }
11984
11985 while _next_ordinal_to_read < 1 {
11987 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11988 _next_ordinal_to_read += 1;
11989 next_offset += envelope_size;
11990 }
11991
11992 let next_out_of_line = decoder.next_out_of_line();
11993 let handles_before = decoder.remaining_handles();
11994 if let Some((inlined, num_bytes, num_handles)) =
11995 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11996 {
11997 let member_inline_size = <fidl::encoding::UnboundedVector<u8> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
11998 if inlined != (member_inline_size <= 4) {
11999 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12000 }
12001 let inner_offset;
12002 let mut inner_depth = depth.clone();
12003 if inlined {
12004 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12005 inner_offset = next_offset;
12006 } else {
12007 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12008 inner_depth.increment()?;
12009 }
12010 let val_ref = self.data.get_or_insert_with(|| {
12011 fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D)
12012 });
12013 fidl::decode!(
12014 fidl::encoding::UnboundedVector<u8>,
12015 D,
12016 val_ref,
12017 decoder,
12018 inner_offset,
12019 inner_depth
12020 )?;
12021 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12022 {
12023 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12024 }
12025 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12026 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12027 }
12028 }
12029
12030 next_offset += envelope_size;
12031 _next_ordinal_to_read += 1;
12032 if next_offset >= end_offset {
12033 return Ok(());
12034 }
12035
12036 while _next_ordinal_to_read < 2 {
12038 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12039 _next_ordinal_to_read += 1;
12040 next_offset += envelope_size;
12041 }
12042
12043 let next_out_of_line = decoder.next_out_of_line();
12044 let handles_before = decoder.remaining_handles();
12045 if let Some((inlined, num_bytes, num_handles)) =
12046 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12047 {
12048 let member_inline_size =
12049 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
12050 if inlined != (member_inline_size <= 4) {
12051 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12052 }
12053 let inner_offset;
12054 let mut inner_depth = depth.clone();
12055 if inlined {
12056 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12057 inner_offset = next_offset;
12058 } else {
12059 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12060 inner_depth.increment()?;
12061 }
12062 let val_ref = self.sequence_number.get_or_insert_with(|| fidl::new_empty!(u16, D));
12063 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
12064 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12065 {
12066 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12067 }
12068 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12069 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12070 }
12071 }
12072
12073 next_offset += envelope_size;
12074 _next_ordinal_to_read += 1;
12075 if next_offset >= end_offset {
12076 return Ok(());
12077 }
12078
12079 while _next_ordinal_to_read < 3 {
12081 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12082 _next_ordinal_to_read += 1;
12083 next_offset += envelope_size;
12084 }
12085
12086 let next_out_of_line = decoder.next_out_of_line();
12087 let handles_before = decoder.remaining_handles();
12088 if let Some((inlined, num_bytes, num_handles)) =
12089 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12090 {
12091 let member_inline_size =
12092 <IsoPacketStatusFlag as fidl::encoding::TypeMarker>::inline_size(
12093 decoder.context,
12094 );
12095 if inlined != (member_inline_size <= 4) {
12096 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12097 }
12098 let inner_offset;
12099 let mut inner_depth = depth.clone();
12100 if inlined {
12101 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12102 inner_offset = next_offset;
12103 } else {
12104 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12105 inner_depth.increment()?;
12106 }
12107 let val_ref = self
12108 .status_flag
12109 .get_or_insert_with(|| fidl::new_empty!(IsoPacketStatusFlag, D));
12110 fidl::decode!(IsoPacketStatusFlag, D, val_ref, decoder, inner_offset, inner_depth)?;
12111 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12112 {
12113 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12114 }
12115 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12116 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12117 }
12118 }
12119
12120 next_offset += envelope_size;
12121 _next_ordinal_to_read += 1;
12122 if next_offset >= end_offset {
12123 return Ok(());
12124 }
12125
12126 while _next_ordinal_to_read < 4 {
12128 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12129 _next_ordinal_to_read += 1;
12130 next_offset += envelope_size;
12131 }
12132
12133 let next_out_of_line = decoder.next_out_of_line();
12134 let handles_before = decoder.remaining_handles();
12135 if let Some((inlined, num_bytes, num_handles)) =
12136 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12137 {
12138 let member_inline_size =
12139 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
12140 if inlined != (member_inline_size <= 4) {
12141 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12142 }
12143 let inner_offset;
12144 let mut inner_depth = depth.clone();
12145 if inlined {
12146 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12147 inner_offset = next_offset;
12148 } else {
12149 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12150 inner_depth.increment()?;
12151 }
12152 let val_ref = self.timestamp.get_or_insert_with(|| fidl::new_empty!(i64, D));
12153 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
12154 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12155 {
12156 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12157 }
12158 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12159 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12160 }
12161 }
12162
12163 next_offset += envelope_size;
12164
12165 while next_offset < end_offset {
12167 _next_ordinal_to_read += 1;
12168 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12169 next_offset += envelope_size;
12170 }
12171
12172 Ok(())
12173 }
12174 }
12175
12176 impl Legacy {
12177 #[inline(always)]
12178 fn max_ordinal_present(&self) -> u64 {
12179 0
12180 }
12181 }
12182
12183 impl fidl::encoding::ValueTypeMarker for Legacy {
12184 type Borrowed<'a> = &'a Self;
12185 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
12186 value
12187 }
12188 }
12189
12190 unsafe impl fidl::encoding::TypeMarker for Legacy {
12191 type Owned = Self;
12192
12193 #[inline(always)]
12194 fn inline_align(_context: fidl::encoding::Context) -> usize {
12195 8
12196 }
12197
12198 #[inline(always)]
12199 fn inline_size(_context: fidl::encoding::Context) -> usize {
12200 16
12201 }
12202 }
12203
12204 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Legacy, D> for &Legacy {
12205 unsafe fn encode(
12206 self,
12207 encoder: &mut fidl::encoding::Encoder<'_, D>,
12208 offset: usize,
12209 mut depth: fidl::encoding::Depth,
12210 ) -> fidl::Result<()> {
12211 encoder.debug_check_bounds::<Legacy>(offset);
12212 let max_ordinal: u64 = self.max_ordinal_present();
12214 encoder.write_num(max_ordinal, offset);
12215 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
12216 if max_ordinal == 0 {
12218 return Ok(());
12219 }
12220 depth.increment()?;
12221 let envelope_size = 8;
12222 let bytes_len = max_ordinal as usize * envelope_size;
12223 #[allow(unused_variables)]
12224 let offset = encoder.out_of_line_offset(bytes_len);
12225 let mut _prev_end_offset: usize = 0;
12226
12227 Ok(())
12228 }
12229 }
12230
12231 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Legacy {
12232 #[inline(always)]
12233 fn new_empty() -> Self {
12234 Self::default()
12235 }
12236
12237 unsafe fn decode(
12238 &mut self,
12239 decoder: &mut fidl::encoding::Decoder<'_, D>,
12240 offset: usize,
12241 mut depth: fidl::encoding::Depth,
12242 ) -> fidl::Result<()> {
12243 decoder.debug_check_bounds::<Self>(offset);
12244 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
12245 None => return Err(fidl::Error::NotNullable),
12246 Some(len) => len,
12247 };
12248 if len == 0 {
12250 return Ok(());
12251 };
12252 depth.increment()?;
12253 let envelope_size = 8;
12254 let bytes_len = len * envelope_size;
12255 let offset = decoder.out_of_line_offset(bytes_len)?;
12256 let mut _next_ordinal_to_read = 0;
12258 let mut next_offset = offset;
12259 let end_offset = offset + bytes_len;
12260
12261 while next_offset < end_offset {
12263 _next_ordinal_to_read += 1;
12264 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12265 next_offset += envelope_size;
12266 }
12267
12268 Ok(())
12269 }
12270 }
12271
12272 impl Peer {
12273 #[inline(always)]
12274 fn max_ordinal_present(&self) -> u64 {
12275 if let Some(_) = self.periodic_advertising_interval {
12276 return 10;
12277 }
12278 if let Some(_) = self.advertising_sid {
12279 return 9;
12280 }
12281 if let Some(_) = self.last_updated {
12282 return 8;
12283 }
12284 if let Some(_) = self.bonded {
12285 return 7;
12286 }
12287 if let Some(_) = self.data {
12288 return 6;
12289 }
12290 if let Some(_) = self.name {
12291 return 5;
12292 }
12293 if let Some(_) = self.advertising_data {
12294 return 4;
12295 }
12296 if let Some(_) = self.rssi {
12297 return 3;
12298 }
12299 if let Some(_) = self.connectable {
12300 return 2;
12301 }
12302 if let Some(_) = self.id {
12303 return 1;
12304 }
12305 0
12306 }
12307 }
12308
12309 impl fidl::encoding::ValueTypeMarker for Peer {
12310 type Borrowed<'a> = &'a Self;
12311 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
12312 value
12313 }
12314 }
12315
12316 unsafe impl fidl::encoding::TypeMarker for Peer {
12317 type Owned = Self;
12318
12319 #[inline(always)]
12320 fn inline_align(_context: fidl::encoding::Context) -> usize {
12321 8
12322 }
12323
12324 #[inline(always)]
12325 fn inline_size(_context: fidl::encoding::Context) -> usize {
12326 16
12327 }
12328 }
12329
12330 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Peer, D> for &Peer {
12331 unsafe fn encode(
12332 self,
12333 encoder: &mut fidl::encoding::Encoder<'_, D>,
12334 offset: usize,
12335 mut depth: fidl::encoding::Depth,
12336 ) -> fidl::Result<()> {
12337 encoder.debug_check_bounds::<Peer>(offset);
12338 let max_ordinal: u64 = self.max_ordinal_present();
12340 encoder.write_num(max_ordinal, offset);
12341 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
12342 if max_ordinal == 0 {
12344 return Ok(());
12345 }
12346 depth.increment()?;
12347 let envelope_size = 8;
12348 let bytes_len = max_ordinal as usize * envelope_size;
12349 #[allow(unused_variables)]
12350 let offset = encoder.out_of_line_offset(bytes_len);
12351 let mut _prev_end_offset: usize = 0;
12352 if 1 > max_ordinal {
12353 return Ok(());
12354 }
12355
12356 let cur_offset: usize = (1 - 1) * envelope_size;
12359
12360 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12362
12363 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_bluetooth__common::PeerId, D>(
12368 self.id.as_ref().map(<fidl_fuchsia_bluetooth__common::PeerId as fidl::encoding::ValueTypeMarker>::borrow),
12369 encoder, offset + cur_offset, depth
12370 )?;
12371
12372 _prev_end_offset = cur_offset + envelope_size;
12373 if 2 > max_ordinal {
12374 return Ok(());
12375 }
12376
12377 let cur_offset: usize = (2 - 1) * envelope_size;
12380
12381 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12383
12384 fidl::encoding::encode_in_envelope_optional::<bool, D>(
12389 self.connectable.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
12390 encoder,
12391 offset + cur_offset,
12392 depth,
12393 )?;
12394
12395 _prev_end_offset = cur_offset + envelope_size;
12396 if 3 > max_ordinal {
12397 return Ok(());
12398 }
12399
12400 let cur_offset: usize = (3 - 1) * envelope_size;
12403
12404 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12406
12407 fidl::encoding::encode_in_envelope_optional::<i8, D>(
12412 self.rssi.as_ref().map(<i8 as fidl::encoding::ValueTypeMarker>::borrow),
12413 encoder,
12414 offset + cur_offset,
12415 depth,
12416 )?;
12417
12418 _prev_end_offset = cur_offset + envelope_size;
12419 if 4 > max_ordinal {
12420 return Ok(());
12421 }
12422
12423 let cur_offset: usize = (4 - 1) * envelope_size;
12426
12427 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12429
12430 fidl::encoding::encode_in_envelope_optional::<AdvertisingData, D>(
12435 self.advertising_data
12436 .as_ref()
12437 .map(<AdvertisingData as fidl::encoding::ValueTypeMarker>::borrow),
12438 encoder,
12439 offset + cur_offset,
12440 depth,
12441 )?;
12442
12443 _prev_end_offset = cur_offset + envelope_size;
12444 if 5 > max_ordinal {
12445 return Ok(());
12446 }
12447
12448 let cur_offset: usize = (5 - 1) * envelope_size;
12451
12452 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12454
12455 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<248>, D>(
12460 self.name.as_ref().map(
12461 <fidl::encoding::BoundedString<248> as fidl::encoding::ValueTypeMarker>::borrow,
12462 ),
12463 encoder,
12464 offset + cur_offset,
12465 depth,
12466 )?;
12467
12468 _prev_end_offset = cur_offset + envelope_size;
12469 if 6 > max_ordinal {
12470 return Ok(());
12471 }
12472
12473 let cur_offset: usize = (6 - 1) * envelope_size;
12476
12477 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12479
12480 fidl::encoding::encode_in_envelope_optional::<ScanData, D>(
12485 self.data.as_ref().map(<ScanData as fidl::encoding::ValueTypeMarker>::borrow),
12486 encoder,
12487 offset + cur_offset,
12488 depth,
12489 )?;
12490
12491 _prev_end_offset = cur_offset + envelope_size;
12492 if 7 > max_ordinal {
12493 return Ok(());
12494 }
12495
12496 let cur_offset: usize = (7 - 1) * envelope_size;
12499
12500 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12502
12503 fidl::encoding::encode_in_envelope_optional::<bool, D>(
12508 self.bonded.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
12509 encoder,
12510 offset + cur_offset,
12511 depth,
12512 )?;
12513
12514 _prev_end_offset = cur_offset + envelope_size;
12515 if 8 > max_ordinal {
12516 return Ok(());
12517 }
12518
12519 let cur_offset: usize = (8 - 1) * envelope_size;
12522
12523 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12525
12526 fidl::encoding::encode_in_envelope_optional::<i64, D>(
12531 self.last_updated.as_ref().map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
12532 encoder,
12533 offset + cur_offset,
12534 depth,
12535 )?;
12536
12537 _prev_end_offset = cur_offset + envelope_size;
12538 if 9 > max_ordinal {
12539 return Ok(());
12540 }
12541
12542 let cur_offset: usize = (9 - 1) * envelope_size;
12545
12546 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12548
12549 fidl::encoding::encode_in_envelope_optional::<u8, D>(
12554 self.advertising_sid.as_ref().map(<u8 as fidl::encoding::ValueTypeMarker>::borrow),
12555 encoder,
12556 offset + cur_offset,
12557 depth,
12558 )?;
12559
12560 _prev_end_offset = cur_offset + envelope_size;
12561 if 10 > max_ordinal {
12562 return Ok(());
12563 }
12564
12565 let cur_offset: usize = (10 - 1) * envelope_size;
12568
12569 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12571
12572 fidl::encoding::encode_in_envelope_optional::<u16, D>(
12577 self.periodic_advertising_interval
12578 .as_ref()
12579 .map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
12580 encoder,
12581 offset + cur_offset,
12582 depth,
12583 )?;
12584
12585 _prev_end_offset = cur_offset + envelope_size;
12586
12587 Ok(())
12588 }
12589 }
12590
12591 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Peer {
12592 #[inline(always)]
12593 fn new_empty() -> Self {
12594 Self::default()
12595 }
12596
12597 unsafe fn decode(
12598 &mut self,
12599 decoder: &mut fidl::encoding::Decoder<'_, D>,
12600 offset: usize,
12601 mut depth: fidl::encoding::Depth,
12602 ) -> fidl::Result<()> {
12603 decoder.debug_check_bounds::<Self>(offset);
12604 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
12605 None => return Err(fidl::Error::NotNullable),
12606 Some(len) => len,
12607 };
12608 if len == 0 {
12610 return Ok(());
12611 };
12612 depth.increment()?;
12613 let envelope_size = 8;
12614 let bytes_len = len * envelope_size;
12615 let offset = decoder.out_of_line_offset(bytes_len)?;
12616 let mut _next_ordinal_to_read = 0;
12618 let mut next_offset = offset;
12619 let end_offset = offset + bytes_len;
12620 _next_ordinal_to_read += 1;
12621 if next_offset >= end_offset {
12622 return Ok(());
12623 }
12624
12625 while _next_ordinal_to_read < 1 {
12627 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12628 _next_ordinal_to_read += 1;
12629 next_offset += envelope_size;
12630 }
12631
12632 let next_out_of_line = decoder.next_out_of_line();
12633 let handles_before = decoder.remaining_handles();
12634 if let Some((inlined, num_bytes, num_handles)) =
12635 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12636 {
12637 let member_inline_size = <fidl_fuchsia_bluetooth__common::PeerId as fidl::encoding::TypeMarker>::inline_size(decoder.context);
12638 if inlined != (member_inline_size <= 4) {
12639 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12640 }
12641 let inner_offset;
12642 let mut inner_depth = depth.clone();
12643 if inlined {
12644 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12645 inner_offset = next_offset;
12646 } else {
12647 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12648 inner_depth.increment()?;
12649 }
12650 let val_ref = self.id.get_or_insert_with(|| {
12651 fidl::new_empty!(fidl_fuchsia_bluetooth__common::PeerId, D)
12652 });
12653 fidl::decode!(
12654 fidl_fuchsia_bluetooth__common::PeerId,
12655 D,
12656 val_ref,
12657 decoder,
12658 inner_offset,
12659 inner_depth
12660 )?;
12661 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12662 {
12663 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12664 }
12665 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12666 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12667 }
12668 }
12669
12670 next_offset += envelope_size;
12671 _next_ordinal_to_read += 1;
12672 if next_offset >= end_offset {
12673 return Ok(());
12674 }
12675
12676 while _next_ordinal_to_read < 2 {
12678 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12679 _next_ordinal_to_read += 1;
12680 next_offset += envelope_size;
12681 }
12682
12683 let next_out_of_line = decoder.next_out_of_line();
12684 let handles_before = decoder.remaining_handles();
12685 if let Some((inlined, num_bytes, num_handles)) =
12686 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12687 {
12688 let member_inline_size =
12689 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
12690 if inlined != (member_inline_size <= 4) {
12691 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12692 }
12693 let inner_offset;
12694 let mut inner_depth = depth.clone();
12695 if inlined {
12696 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12697 inner_offset = next_offset;
12698 } else {
12699 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12700 inner_depth.increment()?;
12701 }
12702 let val_ref = self.connectable.get_or_insert_with(|| fidl::new_empty!(bool, D));
12703 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
12704 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12705 {
12706 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12707 }
12708 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12709 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12710 }
12711 }
12712
12713 next_offset += envelope_size;
12714 _next_ordinal_to_read += 1;
12715 if next_offset >= end_offset {
12716 return Ok(());
12717 }
12718
12719 while _next_ordinal_to_read < 3 {
12721 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12722 _next_ordinal_to_read += 1;
12723 next_offset += envelope_size;
12724 }
12725
12726 let next_out_of_line = decoder.next_out_of_line();
12727 let handles_before = decoder.remaining_handles();
12728 if let Some((inlined, num_bytes, num_handles)) =
12729 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12730 {
12731 let member_inline_size =
12732 <i8 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
12733 if inlined != (member_inline_size <= 4) {
12734 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12735 }
12736 let inner_offset;
12737 let mut inner_depth = depth.clone();
12738 if inlined {
12739 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12740 inner_offset = next_offset;
12741 } else {
12742 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12743 inner_depth.increment()?;
12744 }
12745 let val_ref = self.rssi.get_or_insert_with(|| fidl::new_empty!(i8, D));
12746 fidl::decode!(i8, D, val_ref, decoder, inner_offset, inner_depth)?;
12747 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12748 {
12749 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12750 }
12751 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12752 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12753 }
12754 }
12755
12756 next_offset += envelope_size;
12757 _next_ordinal_to_read += 1;
12758 if next_offset >= end_offset {
12759 return Ok(());
12760 }
12761
12762 while _next_ordinal_to_read < 4 {
12764 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12765 _next_ordinal_to_read += 1;
12766 next_offset += envelope_size;
12767 }
12768
12769 let next_out_of_line = decoder.next_out_of_line();
12770 let handles_before = decoder.remaining_handles();
12771 if let Some((inlined, num_bytes, num_handles)) =
12772 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12773 {
12774 let member_inline_size =
12775 <AdvertisingData as fidl::encoding::TypeMarker>::inline_size(decoder.context);
12776 if inlined != (member_inline_size <= 4) {
12777 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12778 }
12779 let inner_offset;
12780 let mut inner_depth = depth.clone();
12781 if inlined {
12782 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12783 inner_offset = next_offset;
12784 } else {
12785 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12786 inner_depth.increment()?;
12787 }
12788 let val_ref = self
12789 .advertising_data
12790 .get_or_insert_with(|| fidl::new_empty!(AdvertisingData, D));
12791 fidl::decode!(AdvertisingData, D, val_ref, decoder, inner_offset, inner_depth)?;
12792 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12793 {
12794 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12795 }
12796 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12797 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12798 }
12799 }
12800
12801 next_offset += envelope_size;
12802 _next_ordinal_to_read += 1;
12803 if next_offset >= end_offset {
12804 return Ok(());
12805 }
12806
12807 while _next_ordinal_to_read < 5 {
12809 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12810 _next_ordinal_to_read += 1;
12811 next_offset += envelope_size;
12812 }
12813
12814 let next_out_of_line = decoder.next_out_of_line();
12815 let handles_before = decoder.remaining_handles();
12816 if let Some((inlined, num_bytes, num_handles)) =
12817 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12818 {
12819 let member_inline_size =
12820 <fidl::encoding::BoundedString<248> as fidl::encoding::TypeMarker>::inline_size(
12821 decoder.context,
12822 );
12823 if inlined != (member_inline_size <= 4) {
12824 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12825 }
12826 let inner_offset;
12827 let mut inner_depth = depth.clone();
12828 if inlined {
12829 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12830 inner_offset = next_offset;
12831 } else {
12832 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12833 inner_depth.increment()?;
12834 }
12835 let val_ref = self
12836 .name
12837 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<248>, D));
12838 fidl::decode!(
12839 fidl::encoding::BoundedString<248>,
12840 D,
12841 val_ref,
12842 decoder,
12843 inner_offset,
12844 inner_depth
12845 )?;
12846 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12847 {
12848 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12849 }
12850 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12851 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12852 }
12853 }
12854
12855 next_offset += envelope_size;
12856 _next_ordinal_to_read += 1;
12857 if next_offset >= end_offset {
12858 return Ok(());
12859 }
12860
12861 while _next_ordinal_to_read < 6 {
12863 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12864 _next_ordinal_to_read += 1;
12865 next_offset += envelope_size;
12866 }
12867
12868 let next_out_of_line = decoder.next_out_of_line();
12869 let handles_before = decoder.remaining_handles();
12870 if let Some((inlined, num_bytes, num_handles)) =
12871 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12872 {
12873 let member_inline_size =
12874 <ScanData as fidl::encoding::TypeMarker>::inline_size(decoder.context);
12875 if inlined != (member_inline_size <= 4) {
12876 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12877 }
12878 let inner_offset;
12879 let mut inner_depth = depth.clone();
12880 if inlined {
12881 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12882 inner_offset = next_offset;
12883 } else {
12884 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12885 inner_depth.increment()?;
12886 }
12887 let val_ref = self.data.get_or_insert_with(|| fidl::new_empty!(ScanData, D));
12888 fidl::decode!(ScanData, D, val_ref, decoder, inner_offset, inner_depth)?;
12889 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12890 {
12891 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12892 }
12893 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12894 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12895 }
12896 }
12897
12898 next_offset += envelope_size;
12899 _next_ordinal_to_read += 1;
12900 if next_offset >= end_offset {
12901 return Ok(());
12902 }
12903
12904 while _next_ordinal_to_read < 7 {
12906 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12907 _next_ordinal_to_read += 1;
12908 next_offset += envelope_size;
12909 }
12910
12911 let next_out_of_line = decoder.next_out_of_line();
12912 let handles_before = decoder.remaining_handles();
12913 if let Some((inlined, num_bytes, num_handles)) =
12914 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12915 {
12916 let member_inline_size =
12917 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
12918 if inlined != (member_inline_size <= 4) {
12919 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12920 }
12921 let inner_offset;
12922 let mut inner_depth = depth.clone();
12923 if inlined {
12924 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12925 inner_offset = next_offset;
12926 } else {
12927 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12928 inner_depth.increment()?;
12929 }
12930 let val_ref = self.bonded.get_or_insert_with(|| fidl::new_empty!(bool, D));
12931 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
12932 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12933 {
12934 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12935 }
12936 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12937 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12938 }
12939 }
12940
12941 next_offset += envelope_size;
12942 _next_ordinal_to_read += 1;
12943 if next_offset >= end_offset {
12944 return Ok(());
12945 }
12946
12947 while _next_ordinal_to_read < 8 {
12949 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12950 _next_ordinal_to_read += 1;
12951 next_offset += envelope_size;
12952 }
12953
12954 let next_out_of_line = decoder.next_out_of_line();
12955 let handles_before = decoder.remaining_handles();
12956 if let Some((inlined, num_bytes, num_handles)) =
12957 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12958 {
12959 let member_inline_size =
12960 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
12961 if inlined != (member_inline_size <= 4) {
12962 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12963 }
12964 let inner_offset;
12965 let mut inner_depth = depth.clone();
12966 if inlined {
12967 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12968 inner_offset = next_offset;
12969 } else {
12970 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12971 inner_depth.increment()?;
12972 }
12973 let val_ref = self.last_updated.get_or_insert_with(|| fidl::new_empty!(i64, D));
12974 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
12975 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12976 {
12977 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12978 }
12979 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12980 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12981 }
12982 }
12983
12984 next_offset += envelope_size;
12985 _next_ordinal_to_read += 1;
12986 if next_offset >= end_offset {
12987 return Ok(());
12988 }
12989
12990 while _next_ordinal_to_read < 9 {
12992 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12993 _next_ordinal_to_read += 1;
12994 next_offset += envelope_size;
12995 }
12996
12997 let next_out_of_line = decoder.next_out_of_line();
12998 let handles_before = decoder.remaining_handles();
12999 if let Some((inlined, num_bytes, num_handles)) =
13000 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13001 {
13002 let member_inline_size =
13003 <u8 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
13004 if inlined != (member_inline_size <= 4) {
13005 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13006 }
13007 let inner_offset;
13008 let mut inner_depth = depth.clone();
13009 if inlined {
13010 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13011 inner_offset = next_offset;
13012 } else {
13013 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13014 inner_depth.increment()?;
13015 }
13016 let val_ref = self.advertising_sid.get_or_insert_with(|| fidl::new_empty!(u8, D));
13017 fidl::decode!(u8, D, val_ref, decoder, inner_offset, inner_depth)?;
13018 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13019 {
13020 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13021 }
13022 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13023 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13024 }
13025 }
13026
13027 next_offset += envelope_size;
13028 _next_ordinal_to_read += 1;
13029 if next_offset >= end_offset {
13030 return Ok(());
13031 }
13032
13033 while _next_ordinal_to_read < 10 {
13035 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13036 _next_ordinal_to_read += 1;
13037 next_offset += envelope_size;
13038 }
13039
13040 let next_out_of_line = decoder.next_out_of_line();
13041 let handles_before = decoder.remaining_handles();
13042 if let Some((inlined, num_bytes, num_handles)) =
13043 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13044 {
13045 let member_inline_size =
13046 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
13047 if inlined != (member_inline_size <= 4) {
13048 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13049 }
13050 let inner_offset;
13051 let mut inner_depth = depth.clone();
13052 if inlined {
13053 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13054 inner_offset = next_offset;
13055 } else {
13056 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13057 inner_depth.increment()?;
13058 }
13059 let val_ref = self
13060 .periodic_advertising_interval
13061 .get_or_insert_with(|| fidl::new_empty!(u16, D));
13062 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
13063 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13064 {
13065 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13066 }
13067 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13068 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13069 }
13070 }
13071
13072 next_offset += envelope_size;
13073
13074 while next_offset < end_offset {
13076 _next_ordinal_to_read += 1;
13077 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13078 next_offset += envelope_size;
13079 }
13080
13081 Ok(())
13082 }
13083 }
13084
13085 impl PeriodicAdvertisingReport {
13086 #[inline(always)]
13087 fn max_ordinal_present(&self) -> u64 {
13088 if let Some(_) = self.timestamp {
13089 return 5;
13090 }
13091 if let Some(_) = self.subevent {
13092 return 4;
13093 }
13094 if let Some(_) = self.event_counter {
13095 return 3;
13096 }
13097 if let Some(_) = self.data {
13098 return 2;
13099 }
13100 if let Some(_) = self.rssi {
13101 return 1;
13102 }
13103 0
13104 }
13105 }
13106
13107 impl fidl::encoding::ValueTypeMarker for PeriodicAdvertisingReport {
13108 type Borrowed<'a> = &'a Self;
13109 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
13110 value
13111 }
13112 }
13113
13114 unsafe impl fidl::encoding::TypeMarker for PeriodicAdvertisingReport {
13115 type Owned = Self;
13116
13117 #[inline(always)]
13118 fn inline_align(_context: fidl::encoding::Context) -> usize {
13119 8
13120 }
13121
13122 #[inline(always)]
13123 fn inline_size(_context: fidl::encoding::Context) -> usize {
13124 16
13125 }
13126 }
13127
13128 unsafe impl<D: fidl::encoding::ResourceDialect>
13129 fidl::encoding::Encode<PeriodicAdvertisingReport, D> for &PeriodicAdvertisingReport
13130 {
13131 unsafe fn encode(
13132 self,
13133 encoder: &mut fidl::encoding::Encoder<'_, D>,
13134 offset: usize,
13135 mut depth: fidl::encoding::Depth,
13136 ) -> fidl::Result<()> {
13137 encoder.debug_check_bounds::<PeriodicAdvertisingReport>(offset);
13138 let max_ordinal: u64 = self.max_ordinal_present();
13140 encoder.write_num(max_ordinal, offset);
13141 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
13142 if max_ordinal == 0 {
13144 return Ok(());
13145 }
13146 depth.increment()?;
13147 let envelope_size = 8;
13148 let bytes_len = max_ordinal as usize * envelope_size;
13149 #[allow(unused_variables)]
13150 let offset = encoder.out_of_line_offset(bytes_len);
13151 let mut _prev_end_offset: usize = 0;
13152 if 1 > max_ordinal {
13153 return Ok(());
13154 }
13155
13156 let cur_offset: usize = (1 - 1) * envelope_size;
13159
13160 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13162
13163 fidl::encoding::encode_in_envelope_optional::<i8, D>(
13168 self.rssi.as_ref().map(<i8 as fidl::encoding::ValueTypeMarker>::borrow),
13169 encoder,
13170 offset + cur_offset,
13171 depth,
13172 )?;
13173
13174 _prev_end_offset = cur_offset + envelope_size;
13175 if 2 > max_ordinal {
13176 return Ok(());
13177 }
13178
13179 let cur_offset: usize = (2 - 1) * envelope_size;
13182
13183 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13185
13186 fidl::encoding::encode_in_envelope_optional::<ScanData, D>(
13191 self.data.as_ref().map(<ScanData as fidl::encoding::ValueTypeMarker>::borrow),
13192 encoder,
13193 offset + cur_offset,
13194 depth,
13195 )?;
13196
13197 _prev_end_offset = cur_offset + envelope_size;
13198 if 3 > max_ordinal {
13199 return Ok(());
13200 }
13201
13202 let cur_offset: usize = (3 - 1) * envelope_size;
13205
13206 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13208
13209 fidl::encoding::encode_in_envelope_optional::<u16, D>(
13214 self.event_counter.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
13215 encoder,
13216 offset + cur_offset,
13217 depth,
13218 )?;
13219
13220 _prev_end_offset = cur_offset + envelope_size;
13221 if 4 > max_ordinal {
13222 return Ok(());
13223 }
13224
13225 let cur_offset: usize = (4 - 1) * envelope_size;
13228
13229 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13231
13232 fidl::encoding::encode_in_envelope_optional::<u8, D>(
13237 self.subevent.as_ref().map(<u8 as fidl::encoding::ValueTypeMarker>::borrow),
13238 encoder,
13239 offset + cur_offset,
13240 depth,
13241 )?;
13242
13243 _prev_end_offset = cur_offset + envelope_size;
13244 if 5 > max_ordinal {
13245 return Ok(());
13246 }
13247
13248 let cur_offset: usize = (5 - 1) * envelope_size;
13251
13252 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13254
13255 fidl::encoding::encode_in_envelope_optional::<i64, D>(
13260 self.timestamp.as_ref().map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
13261 encoder,
13262 offset + cur_offset,
13263 depth,
13264 )?;
13265
13266 _prev_end_offset = cur_offset + envelope_size;
13267
13268 Ok(())
13269 }
13270 }
13271
13272 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
13273 for PeriodicAdvertisingReport
13274 {
13275 #[inline(always)]
13276 fn new_empty() -> Self {
13277 Self::default()
13278 }
13279
13280 unsafe fn decode(
13281 &mut self,
13282 decoder: &mut fidl::encoding::Decoder<'_, D>,
13283 offset: usize,
13284 mut depth: fidl::encoding::Depth,
13285 ) -> fidl::Result<()> {
13286 decoder.debug_check_bounds::<Self>(offset);
13287 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
13288 None => return Err(fidl::Error::NotNullable),
13289 Some(len) => len,
13290 };
13291 if len == 0 {
13293 return Ok(());
13294 };
13295 depth.increment()?;
13296 let envelope_size = 8;
13297 let bytes_len = len * envelope_size;
13298 let offset = decoder.out_of_line_offset(bytes_len)?;
13299 let mut _next_ordinal_to_read = 0;
13301 let mut next_offset = offset;
13302 let end_offset = offset + bytes_len;
13303 _next_ordinal_to_read += 1;
13304 if next_offset >= end_offset {
13305 return Ok(());
13306 }
13307
13308 while _next_ordinal_to_read < 1 {
13310 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13311 _next_ordinal_to_read += 1;
13312 next_offset += envelope_size;
13313 }
13314
13315 let next_out_of_line = decoder.next_out_of_line();
13316 let handles_before = decoder.remaining_handles();
13317 if let Some((inlined, num_bytes, num_handles)) =
13318 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13319 {
13320 let member_inline_size =
13321 <i8 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
13322 if inlined != (member_inline_size <= 4) {
13323 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13324 }
13325 let inner_offset;
13326 let mut inner_depth = depth.clone();
13327 if inlined {
13328 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13329 inner_offset = next_offset;
13330 } else {
13331 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13332 inner_depth.increment()?;
13333 }
13334 let val_ref = self.rssi.get_or_insert_with(|| fidl::new_empty!(i8, D));
13335 fidl::decode!(i8, D, val_ref, decoder, inner_offset, inner_depth)?;
13336 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13337 {
13338 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13339 }
13340 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13341 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13342 }
13343 }
13344
13345 next_offset += envelope_size;
13346 _next_ordinal_to_read += 1;
13347 if next_offset >= end_offset {
13348 return Ok(());
13349 }
13350
13351 while _next_ordinal_to_read < 2 {
13353 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13354 _next_ordinal_to_read += 1;
13355 next_offset += envelope_size;
13356 }
13357
13358 let next_out_of_line = decoder.next_out_of_line();
13359 let handles_before = decoder.remaining_handles();
13360 if let Some((inlined, num_bytes, num_handles)) =
13361 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13362 {
13363 let member_inline_size =
13364 <ScanData as fidl::encoding::TypeMarker>::inline_size(decoder.context);
13365 if inlined != (member_inline_size <= 4) {
13366 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13367 }
13368 let inner_offset;
13369 let mut inner_depth = depth.clone();
13370 if inlined {
13371 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13372 inner_offset = next_offset;
13373 } else {
13374 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13375 inner_depth.increment()?;
13376 }
13377 let val_ref = self.data.get_or_insert_with(|| fidl::new_empty!(ScanData, D));
13378 fidl::decode!(ScanData, D, val_ref, decoder, inner_offset, inner_depth)?;
13379 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13380 {
13381 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13382 }
13383 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13384 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13385 }
13386 }
13387
13388 next_offset += envelope_size;
13389 _next_ordinal_to_read += 1;
13390 if next_offset >= end_offset {
13391 return Ok(());
13392 }
13393
13394 while _next_ordinal_to_read < 3 {
13396 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13397 _next_ordinal_to_read += 1;
13398 next_offset += envelope_size;
13399 }
13400
13401 let next_out_of_line = decoder.next_out_of_line();
13402 let handles_before = decoder.remaining_handles();
13403 if let Some((inlined, num_bytes, num_handles)) =
13404 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13405 {
13406 let member_inline_size =
13407 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
13408 if inlined != (member_inline_size <= 4) {
13409 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13410 }
13411 let inner_offset;
13412 let mut inner_depth = depth.clone();
13413 if inlined {
13414 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13415 inner_offset = next_offset;
13416 } else {
13417 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13418 inner_depth.increment()?;
13419 }
13420 let val_ref = self.event_counter.get_or_insert_with(|| fidl::new_empty!(u16, D));
13421 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
13422 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13423 {
13424 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13425 }
13426 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13427 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13428 }
13429 }
13430
13431 next_offset += envelope_size;
13432 _next_ordinal_to_read += 1;
13433 if next_offset >= end_offset {
13434 return Ok(());
13435 }
13436
13437 while _next_ordinal_to_read < 4 {
13439 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13440 _next_ordinal_to_read += 1;
13441 next_offset += envelope_size;
13442 }
13443
13444 let next_out_of_line = decoder.next_out_of_line();
13445 let handles_before = decoder.remaining_handles();
13446 if let Some((inlined, num_bytes, num_handles)) =
13447 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13448 {
13449 let member_inline_size =
13450 <u8 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
13451 if inlined != (member_inline_size <= 4) {
13452 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13453 }
13454 let inner_offset;
13455 let mut inner_depth = depth.clone();
13456 if inlined {
13457 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13458 inner_offset = next_offset;
13459 } else {
13460 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13461 inner_depth.increment()?;
13462 }
13463 let val_ref = self.subevent.get_or_insert_with(|| fidl::new_empty!(u8, D));
13464 fidl::decode!(u8, D, val_ref, decoder, inner_offset, inner_depth)?;
13465 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13466 {
13467 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13468 }
13469 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13470 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13471 }
13472 }
13473
13474 next_offset += envelope_size;
13475 _next_ordinal_to_read += 1;
13476 if next_offset >= end_offset {
13477 return Ok(());
13478 }
13479
13480 while _next_ordinal_to_read < 5 {
13482 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13483 _next_ordinal_to_read += 1;
13484 next_offset += envelope_size;
13485 }
13486
13487 let next_out_of_line = decoder.next_out_of_line();
13488 let handles_before = decoder.remaining_handles();
13489 if let Some((inlined, num_bytes, num_handles)) =
13490 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13491 {
13492 let member_inline_size =
13493 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
13494 if inlined != (member_inline_size <= 4) {
13495 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13496 }
13497 let inner_offset;
13498 let mut inner_depth = depth.clone();
13499 if inlined {
13500 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13501 inner_offset = next_offset;
13502 } else {
13503 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13504 inner_depth.increment()?;
13505 }
13506 let val_ref = self.timestamp.get_or_insert_with(|| fidl::new_empty!(i64, D));
13507 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
13508 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13509 {
13510 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13511 }
13512 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13513 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13514 }
13515 }
13516
13517 next_offset += envelope_size;
13518
13519 while next_offset < end_offset {
13521 _next_ordinal_to_read += 1;
13522 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13523 next_offset += envelope_size;
13524 }
13525
13526 Ok(())
13527 }
13528 }
13529
13530 impl PeriodicAdvertisingSyncConfiguration {
13531 #[inline(always)]
13532 fn max_ordinal_present(&self) -> u64 {
13533 if let Some(_) = self.filter_duplicates {
13534 return 1;
13535 }
13536 0
13537 }
13538 }
13539
13540 impl fidl::encoding::ValueTypeMarker for PeriodicAdvertisingSyncConfiguration {
13541 type Borrowed<'a> = &'a Self;
13542 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
13543 value
13544 }
13545 }
13546
13547 unsafe impl fidl::encoding::TypeMarker for PeriodicAdvertisingSyncConfiguration {
13548 type Owned = Self;
13549
13550 #[inline(always)]
13551 fn inline_align(_context: fidl::encoding::Context) -> usize {
13552 8
13553 }
13554
13555 #[inline(always)]
13556 fn inline_size(_context: fidl::encoding::Context) -> usize {
13557 16
13558 }
13559 }
13560
13561 unsafe impl<D: fidl::encoding::ResourceDialect>
13562 fidl::encoding::Encode<PeriodicAdvertisingSyncConfiguration, D>
13563 for &PeriodicAdvertisingSyncConfiguration
13564 {
13565 unsafe fn encode(
13566 self,
13567 encoder: &mut fidl::encoding::Encoder<'_, D>,
13568 offset: usize,
13569 mut depth: fidl::encoding::Depth,
13570 ) -> fidl::Result<()> {
13571 encoder.debug_check_bounds::<PeriodicAdvertisingSyncConfiguration>(offset);
13572 let max_ordinal: u64 = self.max_ordinal_present();
13574 encoder.write_num(max_ordinal, offset);
13575 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
13576 if max_ordinal == 0 {
13578 return Ok(());
13579 }
13580 depth.increment()?;
13581 let envelope_size = 8;
13582 let bytes_len = max_ordinal as usize * envelope_size;
13583 #[allow(unused_variables)]
13584 let offset = encoder.out_of_line_offset(bytes_len);
13585 let mut _prev_end_offset: usize = 0;
13586 if 1 > max_ordinal {
13587 return Ok(());
13588 }
13589
13590 let cur_offset: usize = (1 - 1) * envelope_size;
13593
13594 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13596
13597 fidl::encoding::encode_in_envelope_optional::<bool, D>(
13602 self.filter_duplicates
13603 .as_ref()
13604 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
13605 encoder,
13606 offset + cur_offset,
13607 depth,
13608 )?;
13609
13610 _prev_end_offset = cur_offset + envelope_size;
13611
13612 Ok(())
13613 }
13614 }
13615
13616 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
13617 for PeriodicAdvertisingSyncConfiguration
13618 {
13619 #[inline(always)]
13620 fn new_empty() -> Self {
13621 Self::default()
13622 }
13623
13624 unsafe fn decode(
13625 &mut self,
13626 decoder: &mut fidl::encoding::Decoder<'_, D>,
13627 offset: usize,
13628 mut depth: fidl::encoding::Depth,
13629 ) -> fidl::Result<()> {
13630 decoder.debug_check_bounds::<Self>(offset);
13631 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
13632 None => return Err(fidl::Error::NotNullable),
13633 Some(len) => len,
13634 };
13635 if len == 0 {
13637 return Ok(());
13638 };
13639 depth.increment()?;
13640 let envelope_size = 8;
13641 let bytes_len = len * envelope_size;
13642 let offset = decoder.out_of_line_offset(bytes_len)?;
13643 let mut _next_ordinal_to_read = 0;
13645 let mut next_offset = offset;
13646 let end_offset = offset + bytes_len;
13647 _next_ordinal_to_read += 1;
13648 if next_offset >= end_offset {
13649 return Ok(());
13650 }
13651
13652 while _next_ordinal_to_read < 1 {
13654 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13655 _next_ordinal_to_read += 1;
13656 next_offset += envelope_size;
13657 }
13658
13659 let next_out_of_line = decoder.next_out_of_line();
13660 let handles_before = decoder.remaining_handles();
13661 if let Some((inlined, num_bytes, num_handles)) =
13662 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13663 {
13664 let member_inline_size =
13665 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
13666 if inlined != (member_inline_size <= 4) {
13667 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13668 }
13669 let inner_offset;
13670 let mut inner_depth = depth.clone();
13671 if inlined {
13672 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13673 inner_offset = next_offset;
13674 } else {
13675 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13676 inner_depth.increment()?;
13677 }
13678 let val_ref =
13679 self.filter_duplicates.get_or_insert_with(|| fidl::new_empty!(bool, D));
13680 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
13681 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13682 {
13683 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13684 }
13685 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13686 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13687 }
13688 }
13689
13690 next_offset += envelope_size;
13691
13692 while next_offset < end_offset {
13694 _next_ordinal_to_read += 1;
13695 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13696 next_offset += envelope_size;
13697 }
13698
13699 Ok(())
13700 }
13701 }
13702
13703 impl PeriodicAdvertisingSyncOnEstablishedRequest {
13704 #[inline(always)]
13705 fn max_ordinal_present(&self) -> u64 {
13706 if let Some(_) = self.periodic_advertising_interval {
13707 return 7;
13708 }
13709 if let Some(_) = self.phy {
13710 return 6;
13711 }
13712 if let Some(_) = self.advertising_sid {
13713 return 5;
13714 }
13715 if let Some(_) = self.service_data {
13716 return 4;
13717 }
13718 if let Some(_) = self.peer_id {
13719 return 3;
13720 }
13721 if let Some(_) = self.subevents_count {
13722 return 2;
13723 }
13724 if let Some(_) = self.id {
13725 return 1;
13726 }
13727 0
13728 }
13729 }
13730
13731 impl fidl::encoding::ValueTypeMarker for PeriodicAdvertisingSyncOnEstablishedRequest {
13732 type Borrowed<'a> = &'a Self;
13733 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
13734 value
13735 }
13736 }
13737
13738 unsafe impl fidl::encoding::TypeMarker for PeriodicAdvertisingSyncOnEstablishedRequest {
13739 type Owned = Self;
13740
13741 #[inline(always)]
13742 fn inline_align(_context: fidl::encoding::Context) -> usize {
13743 8
13744 }
13745
13746 #[inline(always)]
13747 fn inline_size(_context: fidl::encoding::Context) -> usize {
13748 16
13749 }
13750 }
13751
13752 unsafe impl<D: fidl::encoding::ResourceDialect>
13753 fidl::encoding::Encode<PeriodicAdvertisingSyncOnEstablishedRequest, D>
13754 for &PeriodicAdvertisingSyncOnEstablishedRequest
13755 {
13756 unsafe fn encode(
13757 self,
13758 encoder: &mut fidl::encoding::Encoder<'_, D>,
13759 offset: usize,
13760 mut depth: fidl::encoding::Depth,
13761 ) -> fidl::Result<()> {
13762 encoder.debug_check_bounds::<PeriodicAdvertisingSyncOnEstablishedRequest>(offset);
13763 let max_ordinal: u64 = self.max_ordinal_present();
13765 encoder.write_num(max_ordinal, offset);
13766 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
13767 if max_ordinal == 0 {
13769 return Ok(());
13770 }
13771 depth.increment()?;
13772 let envelope_size = 8;
13773 let bytes_len = max_ordinal as usize * envelope_size;
13774 #[allow(unused_variables)]
13775 let offset = encoder.out_of_line_offset(bytes_len);
13776 let mut _prev_end_offset: usize = 0;
13777 if 1 > max_ordinal {
13778 return Ok(());
13779 }
13780
13781 let cur_offset: usize = (1 - 1) * envelope_size;
13784
13785 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13787
13788 fidl::encoding::encode_in_envelope_optional::<PeriodicAdvertisingSyncId, D>(
13793 self.id
13794 .as_ref()
13795 .map(<PeriodicAdvertisingSyncId as fidl::encoding::ValueTypeMarker>::borrow),
13796 encoder,
13797 offset + cur_offset,
13798 depth,
13799 )?;
13800
13801 _prev_end_offset = cur_offset + envelope_size;
13802 if 2 > max_ordinal {
13803 return Ok(());
13804 }
13805
13806 let cur_offset: usize = (2 - 1) * envelope_size;
13809
13810 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13812
13813 fidl::encoding::encode_in_envelope_optional::<u8, D>(
13818 self.subevents_count.as_ref().map(<u8 as fidl::encoding::ValueTypeMarker>::borrow),
13819 encoder,
13820 offset + cur_offset,
13821 depth,
13822 )?;
13823
13824 _prev_end_offset = cur_offset + envelope_size;
13825 if 3 > max_ordinal {
13826 return Ok(());
13827 }
13828
13829 let cur_offset: usize = (3 - 1) * envelope_size;
13832
13833 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13835
13836 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_bluetooth__common::PeerId, D>(
13841 self.peer_id.as_ref().map(<fidl_fuchsia_bluetooth__common::PeerId as fidl::encoding::ValueTypeMarker>::borrow),
13842 encoder, offset + cur_offset, depth
13843 )?;
13844
13845 _prev_end_offset = cur_offset + envelope_size;
13846 if 4 > max_ordinal {
13847 return Ok(());
13848 }
13849
13850 let cur_offset: usize = (4 - 1) * envelope_size;
13853
13854 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13856
13857 fidl::encoding::encode_in_envelope_optional::<u16, D>(
13862 self.service_data.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
13863 encoder,
13864 offset + cur_offset,
13865 depth,
13866 )?;
13867
13868 _prev_end_offset = cur_offset + envelope_size;
13869 if 5 > max_ordinal {
13870 return Ok(());
13871 }
13872
13873 let cur_offset: usize = (5 - 1) * envelope_size;
13876
13877 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13879
13880 fidl::encoding::encode_in_envelope_optional::<u8, D>(
13885 self.advertising_sid.as_ref().map(<u8 as fidl::encoding::ValueTypeMarker>::borrow),
13886 encoder,
13887 offset + cur_offset,
13888 depth,
13889 )?;
13890
13891 _prev_end_offset = cur_offset + envelope_size;
13892 if 6 > max_ordinal {
13893 return Ok(());
13894 }
13895
13896 let cur_offset: usize = (6 - 1) * envelope_size;
13899
13900 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13902
13903 fidl::encoding::encode_in_envelope_optional::<PhysicalLayer, D>(
13908 self.phy.as_ref().map(<PhysicalLayer as fidl::encoding::ValueTypeMarker>::borrow),
13909 encoder,
13910 offset + cur_offset,
13911 depth,
13912 )?;
13913
13914 _prev_end_offset = cur_offset + envelope_size;
13915 if 7 > max_ordinal {
13916 return Ok(());
13917 }
13918
13919 let cur_offset: usize = (7 - 1) * envelope_size;
13922
13923 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13925
13926 fidl::encoding::encode_in_envelope_optional::<u16, D>(
13931 self.periodic_advertising_interval
13932 .as_ref()
13933 .map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
13934 encoder,
13935 offset + cur_offset,
13936 depth,
13937 )?;
13938
13939 _prev_end_offset = cur_offset + envelope_size;
13940
13941 Ok(())
13942 }
13943 }
13944
13945 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
13946 for PeriodicAdvertisingSyncOnEstablishedRequest
13947 {
13948 #[inline(always)]
13949 fn new_empty() -> Self {
13950 Self::default()
13951 }
13952
13953 unsafe fn decode(
13954 &mut self,
13955 decoder: &mut fidl::encoding::Decoder<'_, D>,
13956 offset: usize,
13957 mut depth: fidl::encoding::Depth,
13958 ) -> fidl::Result<()> {
13959 decoder.debug_check_bounds::<Self>(offset);
13960 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
13961 None => return Err(fidl::Error::NotNullable),
13962 Some(len) => len,
13963 };
13964 if len == 0 {
13966 return Ok(());
13967 };
13968 depth.increment()?;
13969 let envelope_size = 8;
13970 let bytes_len = len * envelope_size;
13971 let offset = decoder.out_of_line_offset(bytes_len)?;
13972 let mut _next_ordinal_to_read = 0;
13974 let mut next_offset = offset;
13975 let end_offset = offset + bytes_len;
13976 _next_ordinal_to_read += 1;
13977 if next_offset >= end_offset {
13978 return Ok(());
13979 }
13980
13981 while _next_ordinal_to_read < 1 {
13983 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13984 _next_ordinal_to_read += 1;
13985 next_offset += envelope_size;
13986 }
13987
13988 let next_out_of_line = decoder.next_out_of_line();
13989 let handles_before = decoder.remaining_handles();
13990 if let Some((inlined, num_bytes, num_handles)) =
13991 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13992 {
13993 let member_inline_size =
13994 <PeriodicAdvertisingSyncId as fidl::encoding::TypeMarker>::inline_size(
13995 decoder.context,
13996 );
13997 if inlined != (member_inline_size <= 4) {
13998 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13999 }
14000 let inner_offset;
14001 let mut inner_depth = depth.clone();
14002 if inlined {
14003 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14004 inner_offset = next_offset;
14005 } else {
14006 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14007 inner_depth.increment()?;
14008 }
14009 let val_ref =
14010 self.id.get_or_insert_with(|| fidl::new_empty!(PeriodicAdvertisingSyncId, D));
14011 fidl::decode!(
14012 PeriodicAdvertisingSyncId,
14013 D,
14014 val_ref,
14015 decoder,
14016 inner_offset,
14017 inner_depth
14018 )?;
14019 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14020 {
14021 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14022 }
14023 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14024 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14025 }
14026 }
14027
14028 next_offset += envelope_size;
14029 _next_ordinal_to_read += 1;
14030 if next_offset >= end_offset {
14031 return Ok(());
14032 }
14033
14034 while _next_ordinal_to_read < 2 {
14036 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14037 _next_ordinal_to_read += 1;
14038 next_offset += envelope_size;
14039 }
14040
14041 let next_out_of_line = decoder.next_out_of_line();
14042 let handles_before = decoder.remaining_handles();
14043 if let Some((inlined, num_bytes, num_handles)) =
14044 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14045 {
14046 let member_inline_size =
14047 <u8 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
14048 if inlined != (member_inline_size <= 4) {
14049 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14050 }
14051 let inner_offset;
14052 let mut inner_depth = depth.clone();
14053 if inlined {
14054 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14055 inner_offset = next_offset;
14056 } else {
14057 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14058 inner_depth.increment()?;
14059 }
14060 let val_ref = self.subevents_count.get_or_insert_with(|| fidl::new_empty!(u8, D));
14061 fidl::decode!(u8, D, val_ref, decoder, inner_offset, inner_depth)?;
14062 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14063 {
14064 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14065 }
14066 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14067 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14068 }
14069 }
14070
14071 next_offset += envelope_size;
14072 _next_ordinal_to_read += 1;
14073 if next_offset >= end_offset {
14074 return Ok(());
14075 }
14076
14077 while _next_ordinal_to_read < 3 {
14079 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14080 _next_ordinal_to_read += 1;
14081 next_offset += envelope_size;
14082 }
14083
14084 let next_out_of_line = decoder.next_out_of_line();
14085 let handles_before = decoder.remaining_handles();
14086 if let Some((inlined, num_bytes, num_handles)) =
14087 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14088 {
14089 let member_inline_size = <fidl_fuchsia_bluetooth__common::PeerId as fidl::encoding::TypeMarker>::inline_size(decoder.context);
14090 if inlined != (member_inline_size <= 4) {
14091 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14092 }
14093 let inner_offset;
14094 let mut inner_depth = depth.clone();
14095 if inlined {
14096 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14097 inner_offset = next_offset;
14098 } else {
14099 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14100 inner_depth.increment()?;
14101 }
14102 let val_ref = self.peer_id.get_or_insert_with(|| {
14103 fidl::new_empty!(fidl_fuchsia_bluetooth__common::PeerId, D)
14104 });
14105 fidl::decode!(
14106 fidl_fuchsia_bluetooth__common::PeerId,
14107 D,
14108 val_ref,
14109 decoder,
14110 inner_offset,
14111 inner_depth
14112 )?;
14113 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14114 {
14115 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14116 }
14117 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14118 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14119 }
14120 }
14121
14122 next_offset += envelope_size;
14123 _next_ordinal_to_read += 1;
14124 if next_offset >= end_offset {
14125 return Ok(());
14126 }
14127
14128 while _next_ordinal_to_read < 4 {
14130 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14131 _next_ordinal_to_read += 1;
14132 next_offset += envelope_size;
14133 }
14134
14135 let next_out_of_line = decoder.next_out_of_line();
14136 let handles_before = decoder.remaining_handles();
14137 if let Some((inlined, num_bytes, num_handles)) =
14138 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14139 {
14140 let member_inline_size =
14141 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
14142 if inlined != (member_inline_size <= 4) {
14143 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14144 }
14145 let inner_offset;
14146 let mut inner_depth = depth.clone();
14147 if inlined {
14148 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14149 inner_offset = next_offset;
14150 } else {
14151 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14152 inner_depth.increment()?;
14153 }
14154 let val_ref = self.service_data.get_or_insert_with(|| fidl::new_empty!(u16, D));
14155 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
14156 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14157 {
14158 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14159 }
14160 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14161 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14162 }
14163 }
14164
14165 next_offset += envelope_size;
14166 _next_ordinal_to_read += 1;
14167 if next_offset >= end_offset {
14168 return Ok(());
14169 }
14170
14171 while _next_ordinal_to_read < 5 {
14173 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14174 _next_ordinal_to_read += 1;
14175 next_offset += envelope_size;
14176 }
14177
14178 let next_out_of_line = decoder.next_out_of_line();
14179 let handles_before = decoder.remaining_handles();
14180 if let Some((inlined, num_bytes, num_handles)) =
14181 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14182 {
14183 let member_inline_size =
14184 <u8 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
14185 if inlined != (member_inline_size <= 4) {
14186 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14187 }
14188 let inner_offset;
14189 let mut inner_depth = depth.clone();
14190 if inlined {
14191 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14192 inner_offset = next_offset;
14193 } else {
14194 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14195 inner_depth.increment()?;
14196 }
14197 let val_ref = self.advertising_sid.get_or_insert_with(|| fidl::new_empty!(u8, D));
14198 fidl::decode!(u8, D, val_ref, decoder, inner_offset, inner_depth)?;
14199 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14200 {
14201 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14202 }
14203 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14204 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14205 }
14206 }
14207
14208 next_offset += envelope_size;
14209 _next_ordinal_to_read += 1;
14210 if next_offset >= end_offset {
14211 return Ok(());
14212 }
14213
14214 while _next_ordinal_to_read < 6 {
14216 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14217 _next_ordinal_to_read += 1;
14218 next_offset += envelope_size;
14219 }
14220
14221 let next_out_of_line = decoder.next_out_of_line();
14222 let handles_before = decoder.remaining_handles();
14223 if let Some((inlined, num_bytes, num_handles)) =
14224 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14225 {
14226 let member_inline_size =
14227 <PhysicalLayer as fidl::encoding::TypeMarker>::inline_size(decoder.context);
14228 if inlined != (member_inline_size <= 4) {
14229 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14230 }
14231 let inner_offset;
14232 let mut inner_depth = depth.clone();
14233 if inlined {
14234 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14235 inner_offset = next_offset;
14236 } else {
14237 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14238 inner_depth.increment()?;
14239 }
14240 let val_ref = self.phy.get_or_insert_with(|| fidl::new_empty!(PhysicalLayer, D));
14241 fidl::decode!(PhysicalLayer, D, val_ref, decoder, inner_offset, inner_depth)?;
14242 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14243 {
14244 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14245 }
14246 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14247 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14248 }
14249 }
14250
14251 next_offset += envelope_size;
14252 _next_ordinal_to_read += 1;
14253 if next_offset >= end_offset {
14254 return Ok(());
14255 }
14256
14257 while _next_ordinal_to_read < 7 {
14259 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14260 _next_ordinal_to_read += 1;
14261 next_offset += envelope_size;
14262 }
14263
14264 let next_out_of_line = decoder.next_out_of_line();
14265 let handles_before = decoder.remaining_handles();
14266 if let Some((inlined, num_bytes, num_handles)) =
14267 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14268 {
14269 let member_inline_size =
14270 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
14271 if inlined != (member_inline_size <= 4) {
14272 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14273 }
14274 let inner_offset;
14275 let mut inner_depth = depth.clone();
14276 if inlined {
14277 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14278 inner_offset = next_offset;
14279 } else {
14280 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14281 inner_depth.increment()?;
14282 }
14283 let val_ref = self
14284 .periodic_advertising_interval
14285 .get_or_insert_with(|| fidl::new_empty!(u16, D));
14286 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
14287 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14288 {
14289 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14290 }
14291 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14292 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14293 }
14294 }
14295
14296 next_offset += envelope_size;
14297
14298 while next_offset < end_offset {
14300 _next_ordinal_to_read += 1;
14301 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14302 next_offset += envelope_size;
14303 }
14304
14305 Ok(())
14306 }
14307 }
14308
14309 impl PeriodicAdvertisingSyncSyncToSubeventsRequest {
14310 #[inline(always)]
14311 fn max_ordinal_present(&self) -> u64 {
14312 if let Some(_) = self.subevents {
14313 return 1;
14314 }
14315 0
14316 }
14317 }
14318
14319 impl fidl::encoding::ValueTypeMarker for PeriodicAdvertisingSyncSyncToSubeventsRequest {
14320 type Borrowed<'a> = &'a Self;
14321 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
14322 value
14323 }
14324 }
14325
14326 unsafe impl fidl::encoding::TypeMarker for PeriodicAdvertisingSyncSyncToSubeventsRequest {
14327 type Owned = Self;
14328
14329 #[inline(always)]
14330 fn inline_align(_context: fidl::encoding::Context) -> usize {
14331 8
14332 }
14333
14334 #[inline(always)]
14335 fn inline_size(_context: fidl::encoding::Context) -> usize {
14336 16
14337 }
14338 }
14339
14340 unsafe impl<D: fidl::encoding::ResourceDialect>
14341 fidl::encoding::Encode<PeriodicAdvertisingSyncSyncToSubeventsRequest, D>
14342 for &PeriodicAdvertisingSyncSyncToSubeventsRequest
14343 {
14344 unsafe fn encode(
14345 self,
14346 encoder: &mut fidl::encoding::Encoder<'_, D>,
14347 offset: usize,
14348 mut depth: fidl::encoding::Depth,
14349 ) -> fidl::Result<()> {
14350 encoder.debug_check_bounds::<PeriodicAdvertisingSyncSyncToSubeventsRequest>(offset);
14351 let max_ordinal: u64 = self.max_ordinal_present();
14353 encoder.write_num(max_ordinal, offset);
14354 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
14355 if max_ordinal == 0 {
14357 return Ok(());
14358 }
14359 depth.increment()?;
14360 let envelope_size = 8;
14361 let bytes_len = max_ordinal as usize * envelope_size;
14362 #[allow(unused_variables)]
14363 let offset = encoder.out_of_line_offset(bytes_len);
14364 let mut _prev_end_offset: usize = 0;
14365 if 1 > max_ordinal {
14366 return Ok(());
14367 }
14368
14369 let cur_offset: usize = (1 - 1) * envelope_size;
14372
14373 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14375
14376 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u8, 128>, D>(
14381 self.subevents.as_ref().map(
14382 <fidl::encoding::Vector<u8, 128> as fidl::encoding::ValueTypeMarker>::borrow,
14383 ),
14384 encoder,
14385 offset + cur_offset,
14386 depth,
14387 )?;
14388
14389 _prev_end_offset = cur_offset + envelope_size;
14390
14391 Ok(())
14392 }
14393 }
14394
14395 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
14396 for PeriodicAdvertisingSyncSyncToSubeventsRequest
14397 {
14398 #[inline(always)]
14399 fn new_empty() -> Self {
14400 Self::default()
14401 }
14402
14403 unsafe fn decode(
14404 &mut self,
14405 decoder: &mut fidl::encoding::Decoder<'_, D>,
14406 offset: usize,
14407 mut depth: fidl::encoding::Depth,
14408 ) -> fidl::Result<()> {
14409 decoder.debug_check_bounds::<Self>(offset);
14410 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
14411 None => return Err(fidl::Error::NotNullable),
14412 Some(len) => len,
14413 };
14414 if len == 0 {
14416 return Ok(());
14417 };
14418 depth.increment()?;
14419 let envelope_size = 8;
14420 let bytes_len = len * envelope_size;
14421 let offset = decoder.out_of_line_offset(bytes_len)?;
14422 let mut _next_ordinal_to_read = 0;
14424 let mut next_offset = offset;
14425 let end_offset = offset + bytes_len;
14426 _next_ordinal_to_read += 1;
14427 if next_offset >= end_offset {
14428 return Ok(());
14429 }
14430
14431 while _next_ordinal_to_read < 1 {
14433 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14434 _next_ordinal_to_read += 1;
14435 next_offset += envelope_size;
14436 }
14437
14438 let next_out_of_line = decoder.next_out_of_line();
14439 let handles_before = decoder.remaining_handles();
14440 if let Some((inlined, num_bytes, num_handles)) =
14441 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14442 {
14443 let member_inline_size =
14444 <fidl::encoding::Vector<u8, 128> as fidl::encoding::TypeMarker>::inline_size(
14445 decoder.context,
14446 );
14447 if inlined != (member_inline_size <= 4) {
14448 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14449 }
14450 let inner_offset;
14451 let mut inner_depth = depth.clone();
14452 if inlined {
14453 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14454 inner_offset = next_offset;
14455 } else {
14456 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14457 inner_depth.increment()?;
14458 }
14459 let val_ref = self
14460 .subevents
14461 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u8, 128>, D));
14462 fidl::decode!(fidl::encoding::Vector<u8, 128>, D, val_ref, decoder, inner_offset, inner_depth)?;
14463 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14464 {
14465 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14466 }
14467 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14468 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14469 }
14470 }
14471
14472 next_offset += envelope_size;
14473
14474 while next_offset < end_offset {
14476 _next_ordinal_to_read += 1;
14477 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14478 next_offset += envelope_size;
14479 }
14480
14481 Ok(())
14482 }
14483 }
14484
14485 impl PeriodicAdvertisingSyncWatchAdvertisingReportResponse {
14486 #[inline(always)]
14487 fn max_ordinal_present(&self) -> u64 {
14488 if let Some(_) = self.reports {
14489 return 1;
14490 }
14491 0
14492 }
14493 }
14494
14495 impl fidl::encoding::ValueTypeMarker for PeriodicAdvertisingSyncWatchAdvertisingReportResponse {
14496 type Borrowed<'a> = &'a Self;
14497 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
14498 value
14499 }
14500 }
14501
14502 unsafe impl fidl::encoding::TypeMarker for PeriodicAdvertisingSyncWatchAdvertisingReportResponse {
14503 type Owned = Self;
14504
14505 #[inline(always)]
14506 fn inline_align(_context: fidl::encoding::Context) -> usize {
14507 8
14508 }
14509
14510 #[inline(always)]
14511 fn inline_size(_context: fidl::encoding::Context) -> usize {
14512 16
14513 }
14514 }
14515
14516 unsafe impl<D: fidl::encoding::ResourceDialect>
14517 fidl::encoding::Encode<PeriodicAdvertisingSyncWatchAdvertisingReportResponse, D>
14518 for &PeriodicAdvertisingSyncWatchAdvertisingReportResponse
14519 {
14520 unsafe fn encode(
14521 self,
14522 encoder: &mut fidl::encoding::Encoder<'_, D>,
14523 offset: usize,
14524 mut depth: fidl::encoding::Depth,
14525 ) -> fidl::Result<()> {
14526 encoder.debug_check_bounds::<PeriodicAdvertisingSyncWatchAdvertisingReportResponse>(
14527 offset,
14528 );
14529 let max_ordinal: u64 = self.max_ordinal_present();
14531 encoder.write_num(max_ordinal, offset);
14532 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
14533 if max_ordinal == 0 {
14535 return Ok(());
14536 }
14537 depth.increment()?;
14538 let envelope_size = 8;
14539 let bytes_len = max_ordinal as usize * envelope_size;
14540 #[allow(unused_variables)]
14541 let offset = encoder.out_of_line_offset(bytes_len);
14542 let mut _prev_end_offset: usize = 0;
14543 if 1 > max_ordinal {
14544 return Ok(());
14545 }
14546
14547 let cur_offset: usize = (1 - 1) * envelope_size;
14550
14551 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14553
14554 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<SyncReport>, D>(
14559 self.reports.as_ref().map(<fidl::encoding::UnboundedVector<SyncReport> as fidl::encoding::ValueTypeMarker>::borrow),
14560 encoder, offset + cur_offset, depth
14561 )?;
14562
14563 _prev_end_offset = cur_offset + envelope_size;
14564
14565 Ok(())
14566 }
14567 }
14568
14569 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
14570 for PeriodicAdvertisingSyncWatchAdvertisingReportResponse
14571 {
14572 #[inline(always)]
14573 fn new_empty() -> Self {
14574 Self::default()
14575 }
14576
14577 unsafe fn decode(
14578 &mut self,
14579 decoder: &mut fidl::encoding::Decoder<'_, D>,
14580 offset: usize,
14581 mut depth: fidl::encoding::Depth,
14582 ) -> fidl::Result<()> {
14583 decoder.debug_check_bounds::<Self>(offset);
14584 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
14585 None => return Err(fidl::Error::NotNullable),
14586 Some(len) => len,
14587 };
14588 if len == 0 {
14590 return Ok(());
14591 };
14592 depth.increment()?;
14593 let envelope_size = 8;
14594 let bytes_len = len * envelope_size;
14595 let offset = decoder.out_of_line_offset(bytes_len)?;
14596 let mut _next_ordinal_to_read = 0;
14598 let mut next_offset = offset;
14599 let end_offset = offset + bytes_len;
14600 _next_ordinal_to_read += 1;
14601 if next_offset >= end_offset {
14602 return Ok(());
14603 }
14604
14605 while _next_ordinal_to_read < 1 {
14607 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14608 _next_ordinal_to_read += 1;
14609 next_offset += envelope_size;
14610 }
14611
14612 let next_out_of_line = decoder.next_out_of_line();
14613 let handles_before = decoder.remaining_handles();
14614 if let Some((inlined, num_bytes, num_handles)) =
14615 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14616 {
14617 let member_inline_size = <fidl::encoding::UnboundedVector<SyncReport> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
14618 if inlined != (member_inline_size <= 4) {
14619 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14620 }
14621 let inner_offset;
14622 let mut inner_depth = depth.clone();
14623 if inlined {
14624 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14625 inner_offset = next_offset;
14626 } else {
14627 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14628 inner_depth.increment()?;
14629 }
14630 let val_ref = self.reports.get_or_insert_with(|| {
14631 fidl::new_empty!(fidl::encoding::UnboundedVector<SyncReport>, D)
14632 });
14633 fidl::decode!(
14634 fidl::encoding::UnboundedVector<SyncReport>,
14635 D,
14636 val_ref,
14637 decoder,
14638 inner_offset,
14639 inner_depth
14640 )?;
14641 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14642 {
14643 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14644 }
14645 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14646 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14647 }
14648 }
14649
14650 next_offset += envelope_size;
14651
14652 while next_offset < end_offset {
14654 _next_ordinal_to_read += 1;
14655 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14656 next_offset += envelope_size;
14657 }
14658
14659 Ok(())
14660 }
14661 }
14662
14663 impl ScanData {
14664 #[inline(always)]
14665 fn max_ordinal_present(&self) -> u64 {
14666 if let Some(_) = self.timestamp {
14667 return 7;
14668 }
14669 if let Some(_) = self.uris {
14670 return 6;
14671 }
14672 if let Some(_) = self.manufacturer_data {
14673 return 5;
14674 }
14675 if let Some(_) = self.service_data {
14676 return 4;
14677 }
14678 if let Some(_) = self.service_uuids {
14679 return 3;
14680 }
14681 if let Some(_) = self.appearance {
14682 return 2;
14683 }
14684 if let Some(_) = self.tx_power {
14685 return 1;
14686 }
14687 0
14688 }
14689 }
14690
14691 impl fidl::encoding::ValueTypeMarker for ScanData {
14692 type Borrowed<'a> = &'a Self;
14693 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
14694 value
14695 }
14696 }
14697
14698 unsafe impl fidl::encoding::TypeMarker for ScanData {
14699 type Owned = Self;
14700
14701 #[inline(always)]
14702 fn inline_align(_context: fidl::encoding::Context) -> usize {
14703 8
14704 }
14705
14706 #[inline(always)]
14707 fn inline_size(_context: fidl::encoding::Context) -> usize {
14708 16
14709 }
14710 }
14711
14712 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ScanData, D> for &ScanData {
14713 unsafe fn encode(
14714 self,
14715 encoder: &mut fidl::encoding::Encoder<'_, D>,
14716 offset: usize,
14717 mut depth: fidl::encoding::Depth,
14718 ) -> fidl::Result<()> {
14719 encoder.debug_check_bounds::<ScanData>(offset);
14720 let max_ordinal: u64 = self.max_ordinal_present();
14722 encoder.write_num(max_ordinal, offset);
14723 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
14724 if max_ordinal == 0 {
14726 return Ok(());
14727 }
14728 depth.increment()?;
14729 let envelope_size = 8;
14730 let bytes_len = max_ordinal as usize * envelope_size;
14731 #[allow(unused_variables)]
14732 let offset = encoder.out_of_line_offset(bytes_len);
14733 let mut _prev_end_offset: usize = 0;
14734 if 1 > max_ordinal {
14735 return Ok(());
14736 }
14737
14738 let cur_offset: usize = (1 - 1) * envelope_size;
14741
14742 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14744
14745 fidl::encoding::encode_in_envelope_optional::<i8, D>(
14750 self.tx_power.as_ref().map(<i8 as fidl::encoding::ValueTypeMarker>::borrow),
14751 encoder,
14752 offset + cur_offset,
14753 depth,
14754 )?;
14755
14756 _prev_end_offset = cur_offset + envelope_size;
14757 if 2 > max_ordinal {
14758 return Ok(());
14759 }
14760
14761 let cur_offset: usize = (2 - 1) * envelope_size;
14764
14765 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14767
14768 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_bluetooth__common::Appearance, D>(
14773 self.appearance.as_ref().map(<fidl_fuchsia_bluetooth__common::Appearance as fidl::encoding::ValueTypeMarker>::borrow),
14774 encoder, offset + cur_offset, depth
14775 )?;
14776
14777 _prev_end_offset = cur_offset + envelope_size;
14778 if 3 > max_ordinal {
14779 return Ok(());
14780 }
14781
14782 let cur_offset: usize = (3 - 1) * envelope_size;
14785
14786 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14788
14789 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<fidl_fuchsia_bluetooth__common::Uuid>, D>(
14794 self.service_uuids.as_ref().map(<fidl::encoding::UnboundedVector<fidl_fuchsia_bluetooth__common::Uuid> as fidl::encoding::ValueTypeMarker>::borrow),
14795 encoder, offset + cur_offset, depth
14796 )?;
14797
14798 _prev_end_offset = cur_offset + envelope_size;
14799 if 4 > max_ordinal {
14800 return Ok(());
14801 }
14802
14803 let cur_offset: usize = (4 - 1) * envelope_size;
14806
14807 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14809
14810 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<ServiceData>, D>(
14815 self.service_data.as_ref().map(<fidl::encoding::UnboundedVector<ServiceData> as fidl::encoding::ValueTypeMarker>::borrow),
14816 encoder, offset + cur_offset, depth
14817 )?;
14818
14819 _prev_end_offset = cur_offset + envelope_size;
14820 if 5 > max_ordinal {
14821 return Ok(());
14822 }
14823
14824 let cur_offset: usize = (5 - 1) * envelope_size;
14827
14828 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14830
14831 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<ManufacturerData>, D>(
14836 self.manufacturer_data.as_ref().map(<fidl::encoding::UnboundedVector<ManufacturerData> as fidl::encoding::ValueTypeMarker>::borrow),
14837 encoder, offset + cur_offset, depth
14838 )?;
14839
14840 _prev_end_offset = cur_offset + envelope_size;
14841 if 6 > max_ordinal {
14842 return Ok(());
14843 }
14844
14845 let cur_offset: usize = (6 - 1) * envelope_size;
14848
14849 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14851
14852 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<278>>, D>(
14857 self.uris.as_ref().map(<fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<278>> as fidl::encoding::ValueTypeMarker>::borrow),
14858 encoder, offset + cur_offset, depth
14859 )?;
14860
14861 _prev_end_offset = cur_offset + envelope_size;
14862 if 7 > max_ordinal {
14863 return Ok(());
14864 }
14865
14866 let cur_offset: usize = (7 - 1) * envelope_size;
14869
14870 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14872
14873 fidl::encoding::encode_in_envelope_optional::<i64, D>(
14878 self.timestamp.as_ref().map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
14879 encoder,
14880 offset + cur_offset,
14881 depth,
14882 )?;
14883
14884 _prev_end_offset = cur_offset + envelope_size;
14885
14886 Ok(())
14887 }
14888 }
14889
14890 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ScanData {
14891 #[inline(always)]
14892 fn new_empty() -> Self {
14893 Self::default()
14894 }
14895
14896 unsafe fn decode(
14897 &mut self,
14898 decoder: &mut fidl::encoding::Decoder<'_, D>,
14899 offset: usize,
14900 mut depth: fidl::encoding::Depth,
14901 ) -> fidl::Result<()> {
14902 decoder.debug_check_bounds::<Self>(offset);
14903 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
14904 None => return Err(fidl::Error::NotNullable),
14905 Some(len) => len,
14906 };
14907 if len == 0 {
14909 return Ok(());
14910 };
14911 depth.increment()?;
14912 let envelope_size = 8;
14913 let bytes_len = len * envelope_size;
14914 let offset = decoder.out_of_line_offset(bytes_len)?;
14915 let mut _next_ordinal_to_read = 0;
14917 let mut next_offset = offset;
14918 let end_offset = offset + bytes_len;
14919 _next_ordinal_to_read += 1;
14920 if next_offset >= end_offset {
14921 return Ok(());
14922 }
14923
14924 while _next_ordinal_to_read < 1 {
14926 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14927 _next_ordinal_to_read += 1;
14928 next_offset += envelope_size;
14929 }
14930
14931 let next_out_of_line = decoder.next_out_of_line();
14932 let handles_before = decoder.remaining_handles();
14933 if let Some((inlined, num_bytes, num_handles)) =
14934 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14935 {
14936 let member_inline_size =
14937 <i8 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
14938 if inlined != (member_inline_size <= 4) {
14939 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14940 }
14941 let inner_offset;
14942 let mut inner_depth = depth.clone();
14943 if inlined {
14944 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14945 inner_offset = next_offset;
14946 } else {
14947 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14948 inner_depth.increment()?;
14949 }
14950 let val_ref = self.tx_power.get_or_insert_with(|| fidl::new_empty!(i8, D));
14951 fidl::decode!(i8, D, val_ref, decoder, inner_offset, inner_depth)?;
14952 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14953 {
14954 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14955 }
14956 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14957 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14958 }
14959 }
14960
14961 next_offset += envelope_size;
14962 _next_ordinal_to_read += 1;
14963 if next_offset >= end_offset {
14964 return Ok(());
14965 }
14966
14967 while _next_ordinal_to_read < 2 {
14969 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14970 _next_ordinal_to_read += 1;
14971 next_offset += envelope_size;
14972 }
14973
14974 let next_out_of_line = decoder.next_out_of_line();
14975 let handles_before = decoder.remaining_handles();
14976 if let Some((inlined, num_bytes, num_handles)) =
14977 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14978 {
14979 let member_inline_size = <fidl_fuchsia_bluetooth__common::Appearance as fidl::encoding::TypeMarker>::inline_size(decoder.context);
14980 if inlined != (member_inline_size <= 4) {
14981 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14982 }
14983 let inner_offset;
14984 let mut inner_depth = depth.clone();
14985 if inlined {
14986 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14987 inner_offset = next_offset;
14988 } else {
14989 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14990 inner_depth.increment()?;
14991 }
14992 let val_ref = self.appearance.get_or_insert_with(|| {
14993 fidl::new_empty!(fidl_fuchsia_bluetooth__common::Appearance, D)
14994 });
14995 fidl::decode!(
14996 fidl_fuchsia_bluetooth__common::Appearance,
14997 D,
14998 val_ref,
14999 decoder,
15000 inner_offset,
15001 inner_depth
15002 )?;
15003 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15004 {
15005 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15006 }
15007 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15008 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15009 }
15010 }
15011
15012 next_offset += envelope_size;
15013 _next_ordinal_to_read += 1;
15014 if next_offset >= end_offset {
15015 return Ok(());
15016 }
15017
15018 while _next_ordinal_to_read < 3 {
15020 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15021 _next_ordinal_to_read += 1;
15022 next_offset += envelope_size;
15023 }
15024
15025 let next_out_of_line = decoder.next_out_of_line();
15026 let handles_before = decoder.remaining_handles();
15027 if let Some((inlined, num_bytes, num_handles)) =
15028 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15029 {
15030 let member_inline_size = <fidl::encoding::UnboundedVector<
15031 fidl_fuchsia_bluetooth__common::Uuid,
15032 > as fidl::encoding::TypeMarker>::inline_size(
15033 decoder.context
15034 );
15035 if inlined != (member_inline_size <= 4) {
15036 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15037 }
15038 let inner_offset;
15039 let mut inner_depth = depth.clone();
15040 if inlined {
15041 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15042 inner_offset = next_offset;
15043 } else {
15044 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15045 inner_depth.increment()?;
15046 }
15047 let val_ref = self.service_uuids.get_or_insert_with(|| {
15048 fidl::new_empty!(
15049 fidl::encoding::UnboundedVector<fidl_fuchsia_bluetooth__common::Uuid>,
15050 D
15051 )
15052 });
15053 fidl::decode!(
15054 fidl::encoding::UnboundedVector<fidl_fuchsia_bluetooth__common::Uuid>,
15055 D,
15056 val_ref,
15057 decoder,
15058 inner_offset,
15059 inner_depth
15060 )?;
15061 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15062 {
15063 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15064 }
15065 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15066 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15067 }
15068 }
15069
15070 next_offset += envelope_size;
15071 _next_ordinal_to_read += 1;
15072 if next_offset >= end_offset {
15073 return Ok(());
15074 }
15075
15076 while _next_ordinal_to_read < 4 {
15078 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15079 _next_ordinal_to_read += 1;
15080 next_offset += envelope_size;
15081 }
15082
15083 let next_out_of_line = decoder.next_out_of_line();
15084 let handles_before = decoder.remaining_handles();
15085 if let Some((inlined, num_bytes, num_handles)) =
15086 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15087 {
15088 let member_inline_size = <fidl::encoding::UnboundedVector<ServiceData> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
15089 if inlined != (member_inline_size <= 4) {
15090 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15091 }
15092 let inner_offset;
15093 let mut inner_depth = depth.clone();
15094 if inlined {
15095 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15096 inner_offset = next_offset;
15097 } else {
15098 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15099 inner_depth.increment()?;
15100 }
15101 let val_ref = self.service_data.get_or_insert_with(|| {
15102 fidl::new_empty!(fidl::encoding::UnboundedVector<ServiceData>, D)
15103 });
15104 fidl::decode!(
15105 fidl::encoding::UnboundedVector<ServiceData>,
15106 D,
15107 val_ref,
15108 decoder,
15109 inner_offset,
15110 inner_depth
15111 )?;
15112 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15113 {
15114 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15115 }
15116 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15117 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15118 }
15119 }
15120
15121 next_offset += envelope_size;
15122 _next_ordinal_to_read += 1;
15123 if next_offset >= end_offset {
15124 return Ok(());
15125 }
15126
15127 while _next_ordinal_to_read < 5 {
15129 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15130 _next_ordinal_to_read += 1;
15131 next_offset += envelope_size;
15132 }
15133
15134 let next_out_of_line = decoder.next_out_of_line();
15135 let handles_before = decoder.remaining_handles();
15136 if let Some((inlined, num_bytes, num_handles)) =
15137 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15138 {
15139 let member_inline_size = <fidl::encoding::UnboundedVector<ManufacturerData> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
15140 if inlined != (member_inline_size <= 4) {
15141 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15142 }
15143 let inner_offset;
15144 let mut inner_depth = depth.clone();
15145 if inlined {
15146 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15147 inner_offset = next_offset;
15148 } else {
15149 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15150 inner_depth.increment()?;
15151 }
15152 let val_ref = self.manufacturer_data.get_or_insert_with(|| {
15153 fidl::new_empty!(fidl::encoding::UnboundedVector<ManufacturerData>, D)
15154 });
15155 fidl::decode!(
15156 fidl::encoding::UnboundedVector<ManufacturerData>,
15157 D,
15158 val_ref,
15159 decoder,
15160 inner_offset,
15161 inner_depth
15162 )?;
15163 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15164 {
15165 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15166 }
15167 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15168 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15169 }
15170 }
15171
15172 next_offset += envelope_size;
15173 _next_ordinal_to_read += 1;
15174 if next_offset >= end_offset {
15175 return Ok(());
15176 }
15177
15178 while _next_ordinal_to_read < 6 {
15180 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15181 _next_ordinal_to_read += 1;
15182 next_offset += envelope_size;
15183 }
15184
15185 let next_out_of_line = decoder.next_out_of_line();
15186 let handles_before = decoder.remaining_handles();
15187 if let Some((inlined, num_bytes, num_handles)) =
15188 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15189 {
15190 let member_inline_size = <fidl::encoding::UnboundedVector<
15191 fidl::encoding::BoundedString<278>,
15192 > as fidl::encoding::TypeMarker>::inline_size(
15193 decoder.context
15194 );
15195 if inlined != (member_inline_size <= 4) {
15196 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15197 }
15198 let inner_offset;
15199 let mut inner_depth = depth.clone();
15200 if inlined {
15201 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15202 inner_offset = next_offset;
15203 } else {
15204 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15205 inner_depth.increment()?;
15206 }
15207 let val_ref = self.uris.get_or_insert_with(|| {
15208 fidl::new_empty!(
15209 fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<278>>,
15210 D
15211 )
15212 });
15213 fidl::decode!(
15214 fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<278>>,
15215 D,
15216 val_ref,
15217 decoder,
15218 inner_offset,
15219 inner_depth
15220 )?;
15221 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15222 {
15223 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15224 }
15225 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15226 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15227 }
15228 }
15229
15230 next_offset += envelope_size;
15231 _next_ordinal_to_read += 1;
15232 if next_offset >= end_offset {
15233 return Ok(());
15234 }
15235
15236 while _next_ordinal_to_read < 7 {
15238 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15239 _next_ordinal_to_read += 1;
15240 next_offset += envelope_size;
15241 }
15242
15243 let next_out_of_line = decoder.next_out_of_line();
15244 let handles_before = decoder.remaining_handles();
15245 if let Some((inlined, num_bytes, num_handles)) =
15246 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15247 {
15248 let member_inline_size =
15249 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
15250 if inlined != (member_inline_size <= 4) {
15251 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15252 }
15253 let inner_offset;
15254 let mut inner_depth = depth.clone();
15255 if inlined {
15256 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15257 inner_offset = next_offset;
15258 } else {
15259 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15260 inner_depth.increment()?;
15261 }
15262 let val_ref = self.timestamp.get_or_insert_with(|| fidl::new_empty!(i64, D));
15263 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
15264 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15265 {
15266 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15267 }
15268 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15269 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15270 }
15271 }
15272
15273 next_offset += envelope_size;
15274
15275 while next_offset < end_offset {
15277 _next_ordinal_to_read += 1;
15278 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15279 next_offset += envelope_size;
15280 }
15281
15282 Ok(())
15283 }
15284 }
15285
15286 impl ScanOptions {
15287 #[inline(always)]
15288 fn max_ordinal_present(&self) -> u64 {
15289 if let Some(_) = self.filters {
15290 return 1;
15291 }
15292 0
15293 }
15294 }
15295
15296 impl fidl::encoding::ValueTypeMarker for ScanOptions {
15297 type Borrowed<'a> = &'a Self;
15298 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
15299 value
15300 }
15301 }
15302
15303 unsafe impl fidl::encoding::TypeMarker for ScanOptions {
15304 type Owned = Self;
15305
15306 #[inline(always)]
15307 fn inline_align(_context: fidl::encoding::Context) -> usize {
15308 8
15309 }
15310
15311 #[inline(always)]
15312 fn inline_size(_context: fidl::encoding::Context) -> usize {
15313 16
15314 }
15315 }
15316
15317 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ScanOptions, D>
15318 for &ScanOptions
15319 {
15320 unsafe fn encode(
15321 self,
15322 encoder: &mut fidl::encoding::Encoder<'_, D>,
15323 offset: usize,
15324 mut depth: fidl::encoding::Depth,
15325 ) -> fidl::Result<()> {
15326 encoder.debug_check_bounds::<ScanOptions>(offset);
15327 let max_ordinal: u64 = self.max_ordinal_present();
15329 encoder.write_num(max_ordinal, offset);
15330 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
15331 if max_ordinal == 0 {
15333 return Ok(());
15334 }
15335 depth.increment()?;
15336 let envelope_size = 8;
15337 let bytes_len = max_ordinal as usize * envelope_size;
15338 #[allow(unused_variables)]
15339 let offset = encoder.out_of_line_offset(bytes_len);
15340 let mut _prev_end_offset: usize = 0;
15341 if 1 > max_ordinal {
15342 return Ok(());
15343 }
15344
15345 let cur_offset: usize = (1 - 1) * envelope_size;
15348
15349 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
15351
15352 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<Filter>, D>(
15357 self.filters.as_ref().map(<fidl::encoding::UnboundedVector<Filter> as fidl::encoding::ValueTypeMarker>::borrow),
15358 encoder, offset + cur_offset, depth
15359 )?;
15360
15361 _prev_end_offset = cur_offset + envelope_size;
15362
15363 Ok(())
15364 }
15365 }
15366
15367 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ScanOptions {
15368 #[inline(always)]
15369 fn new_empty() -> Self {
15370 Self::default()
15371 }
15372
15373 unsafe fn decode(
15374 &mut self,
15375 decoder: &mut fidl::encoding::Decoder<'_, D>,
15376 offset: usize,
15377 mut depth: fidl::encoding::Depth,
15378 ) -> fidl::Result<()> {
15379 decoder.debug_check_bounds::<Self>(offset);
15380 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
15381 None => return Err(fidl::Error::NotNullable),
15382 Some(len) => len,
15383 };
15384 if len == 0 {
15386 return Ok(());
15387 };
15388 depth.increment()?;
15389 let envelope_size = 8;
15390 let bytes_len = len * envelope_size;
15391 let offset = decoder.out_of_line_offset(bytes_len)?;
15392 let mut _next_ordinal_to_read = 0;
15394 let mut next_offset = offset;
15395 let end_offset = offset + bytes_len;
15396 _next_ordinal_to_read += 1;
15397 if next_offset >= end_offset {
15398 return Ok(());
15399 }
15400
15401 while _next_ordinal_to_read < 1 {
15403 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15404 _next_ordinal_to_read += 1;
15405 next_offset += envelope_size;
15406 }
15407
15408 let next_out_of_line = decoder.next_out_of_line();
15409 let handles_before = decoder.remaining_handles();
15410 if let Some((inlined, num_bytes, num_handles)) =
15411 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15412 {
15413 let member_inline_size = <fidl::encoding::UnboundedVector<Filter> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
15414 if inlined != (member_inline_size <= 4) {
15415 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15416 }
15417 let inner_offset;
15418 let mut inner_depth = depth.clone();
15419 if inlined {
15420 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15421 inner_offset = next_offset;
15422 } else {
15423 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15424 inner_depth.increment()?;
15425 }
15426 let val_ref = self.filters.get_or_insert_with(|| {
15427 fidl::new_empty!(fidl::encoding::UnboundedVector<Filter>, D)
15428 });
15429 fidl::decode!(
15430 fidl::encoding::UnboundedVector<Filter>,
15431 D,
15432 val_ref,
15433 decoder,
15434 inner_offset,
15435 inner_depth
15436 )?;
15437 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15438 {
15439 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15440 }
15441 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15442 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15443 }
15444 }
15445
15446 next_offset += envelope_size;
15447
15448 while next_offset < end_offset {
15450 _next_ordinal_to_read += 1;
15451 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15452 next_offset += envelope_size;
15453 }
15454
15455 Ok(())
15456 }
15457 }
15458
15459 impl fidl::encoding::ValueTypeMarker for AdvertisingProcedure {
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 AdvertisingProcedure {
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<AdvertisingProcedure, D>
15481 for &AdvertisingProcedure
15482 {
15483 #[inline]
15484 unsafe fn encode(
15485 self,
15486 encoder: &mut fidl::encoding::Encoder<'_, D>,
15487 offset: usize,
15488 _depth: fidl::encoding::Depth,
15489 ) -> fidl::Result<()> {
15490 encoder.debug_check_bounds::<AdvertisingProcedure>(offset);
15491 encoder.write_num::<u64>(self.ordinal(), offset);
15492 match self {
15493 AdvertisingProcedure::Legacy(ref val) => {
15494 fidl::encoding::encode_in_envelope::<Legacy, D>(
15495 <Legacy as fidl::encoding::ValueTypeMarker>::borrow(val),
15496 encoder,
15497 offset + 8,
15498 _depth,
15499 )
15500 }
15501 AdvertisingProcedure::Extended(ref val) => {
15502 fidl::encoding::encode_in_envelope::<Extended, D>(
15503 <Extended as fidl::encoding::ValueTypeMarker>::borrow(val),
15504 encoder,
15505 offset + 8,
15506 _depth,
15507 )
15508 }
15509 AdvertisingProcedure::__SourceBreaking { .. } => Err(fidl::Error::UnknownUnionTag),
15510 }
15511 }
15512 }
15513
15514 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for AdvertisingProcedure {
15515 #[inline(always)]
15516 fn new_empty() -> Self {
15517 Self::__SourceBreaking { unknown_ordinal: 0 }
15518 }
15519
15520 #[inline]
15521 unsafe fn decode(
15522 &mut self,
15523 decoder: &mut fidl::encoding::Decoder<'_, D>,
15524 offset: usize,
15525 mut depth: fidl::encoding::Depth,
15526 ) -> fidl::Result<()> {
15527 decoder.debug_check_bounds::<Self>(offset);
15528 #[allow(unused_variables)]
15529 let next_out_of_line = decoder.next_out_of_line();
15530 let handles_before = decoder.remaining_handles();
15531 let (ordinal, inlined, num_bytes, num_handles) =
15532 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
15533
15534 let member_inline_size = match ordinal {
15535 1 => <Legacy as fidl::encoding::TypeMarker>::inline_size(decoder.context),
15536 2 => <Extended as fidl::encoding::TypeMarker>::inline_size(decoder.context),
15537 0 => return Err(fidl::Error::UnknownUnionTag),
15538 _ => num_bytes as usize,
15539 };
15540
15541 if inlined != (member_inline_size <= 4) {
15542 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15543 }
15544 let _inner_offset;
15545 if inlined {
15546 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
15547 _inner_offset = offset + 8;
15548 } else {
15549 depth.increment()?;
15550 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15551 }
15552 match ordinal {
15553 1 => {
15554 #[allow(irrefutable_let_patterns)]
15555 if let AdvertisingProcedure::Legacy(_) = self {
15556 } else {
15558 *self = AdvertisingProcedure::Legacy(fidl::new_empty!(Legacy, D));
15560 }
15561 #[allow(irrefutable_let_patterns)]
15562 if let AdvertisingProcedure::Legacy(ref mut val) = self {
15563 fidl::decode!(Legacy, D, val, decoder, _inner_offset, depth)?;
15564 } else {
15565 unreachable!()
15566 }
15567 }
15568 2 => {
15569 #[allow(irrefutable_let_patterns)]
15570 if let AdvertisingProcedure::Extended(_) = self {
15571 } else {
15573 *self = AdvertisingProcedure::Extended(fidl::new_empty!(Extended, D));
15575 }
15576 #[allow(irrefutable_let_patterns)]
15577 if let AdvertisingProcedure::Extended(ref mut val) = self {
15578 fidl::decode!(Extended, D, val, decoder, _inner_offset, depth)?;
15579 } else {
15580 unreachable!()
15581 }
15582 }
15583 #[allow(deprecated)]
15584 ordinal => {
15585 for _ in 0..num_handles {
15586 decoder.drop_next_handle()?;
15587 }
15588 *self = AdvertisingProcedure::__SourceBreaking { unknown_ordinal: ordinal };
15589 }
15590 }
15591 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
15592 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15593 }
15594 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15595 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15596 }
15597 Ok(())
15598 }
15599 }
15600
15601 impl fidl::encoding::ValueTypeMarker for SyncReport {
15602 type Borrowed<'a> = &'a Self;
15603 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
15604 value
15605 }
15606 }
15607
15608 unsafe impl fidl::encoding::TypeMarker for SyncReport {
15609 type Owned = Self;
15610
15611 #[inline(always)]
15612 fn inline_align(_context: fidl::encoding::Context) -> usize {
15613 8
15614 }
15615
15616 #[inline(always)]
15617 fn inline_size(_context: fidl::encoding::Context) -> usize {
15618 16
15619 }
15620 }
15621
15622 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<SyncReport, D>
15623 for &SyncReport
15624 {
15625 #[inline]
15626 unsafe fn encode(
15627 self,
15628 encoder: &mut fidl::encoding::Encoder<'_, D>,
15629 offset: usize,
15630 _depth: fidl::encoding::Depth,
15631 ) -> fidl::Result<()> {
15632 encoder.debug_check_bounds::<SyncReport>(offset);
15633 encoder.write_num::<u64>(self.ordinal(), offset);
15634 match self {
15635 SyncReport::PeriodicAdvertisingReport(ref val) => {
15636 fidl::encoding::encode_in_envelope::<PeriodicAdvertisingReport, D>(
15637 <PeriodicAdvertisingReport as fidl::encoding::ValueTypeMarker>::borrow(val),
15638 encoder, offset + 8, _depth
15639 )
15640 }
15641 SyncReport::BroadcastIsochronousGroupInfoReport(ref val) => {
15642 fidl::encoding::encode_in_envelope::<BroadcastIsochronousGroupInfoReport, D>(
15643 <BroadcastIsochronousGroupInfoReport as fidl::encoding::ValueTypeMarker>::borrow(val),
15644 encoder, offset + 8, _depth
15645 )
15646 }
15647 SyncReport::__SourceBreaking { .. } => Err(fidl::Error::UnknownUnionTag),
15648 }
15649 }
15650 }
15651
15652 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for SyncReport {
15653 #[inline(always)]
15654 fn new_empty() -> Self {
15655 Self::__SourceBreaking { unknown_ordinal: 0 }
15656 }
15657
15658 #[inline]
15659 unsafe fn decode(
15660 &mut self,
15661 decoder: &mut fidl::encoding::Decoder<'_, D>,
15662 offset: usize,
15663 mut depth: fidl::encoding::Depth,
15664 ) -> fidl::Result<()> {
15665 decoder.debug_check_bounds::<Self>(offset);
15666 #[allow(unused_variables)]
15667 let next_out_of_line = decoder.next_out_of_line();
15668 let handles_before = decoder.remaining_handles();
15669 let (ordinal, inlined, num_bytes, num_handles) =
15670 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
15671
15672 let member_inline_size = match ordinal {
15673 1 => <PeriodicAdvertisingReport as fidl::encoding::TypeMarker>::inline_size(
15674 decoder.context,
15675 ),
15676 2 => {
15677 <BroadcastIsochronousGroupInfoReport as fidl::encoding::TypeMarker>::inline_size(
15678 decoder.context,
15679 )
15680 }
15681 0 => return Err(fidl::Error::UnknownUnionTag),
15682 _ => num_bytes as usize,
15683 };
15684
15685 if inlined != (member_inline_size <= 4) {
15686 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15687 }
15688 let _inner_offset;
15689 if inlined {
15690 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
15691 _inner_offset = offset + 8;
15692 } else {
15693 depth.increment()?;
15694 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15695 }
15696 match ordinal {
15697 1 => {
15698 #[allow(irrefutable_let_patterns)]
15699 if let SyncReport::PeriodicAdvertisingReport(_) = self {
15700 } else {
15702 *self = SyncReport::PeriodicAdvertisingReport(fidl::new_empty!(
15704 PeriodicAdvertisingReport,
15705 D
15706 ));
15707 }
15708 #[allow(irrefutable_let_patterns)]
15709 if let SyncReport::PeriodicAdvertisingReport(ref mut val) = self {
15710 fidl::decode!(
15711 PeriodicAdvertisingReport,
15712 D,
15713 val,
15714 decoder,
15715 _inner_offset,
15716 depth
15717 )?;
15718 } else {
15719 unreachable!()
15720 }
15721 }
15722 2 => {
15723 #[allow(irrefutable_let_patterns)]
15724 if let SyncReport::BroadcastIsochronousGroupInfoReport(_) = self {
15725 } else {
15727 *self = SyncReport::BroadcastIsochronousGroupInfoReport(fidl::new_empty!(
15729 BroadcastIsochronousGroupInfoReport,
15730 D
15731 ));
15732 }
15733 #[allow(irrefutable_let_patterns)]
15734 if let SyncReport::BroadcastIsochronousGroupInfoReport(ref mut val) = self {
15735 fidl::decode!(
15736 BroadcastIsochronousGroupInfoReport,
15737 D,
15738 val,
15739 decoder,
15740 _inner_offset,
15741 depth
15742 )?;
15743 } else {
15744 unreachable!()
15745 }
15746 }
15747 #[allow(deprecated)]
15748 ordinal => {
15749 for _ in 0..num_handles {
15750 decoder.drop_next_handle()?;
15751 }
15752 *self = SyncReport::__SourceBreaking { unknown_ordinal: ordinal };
15753 }
15754 }
15755 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
15756 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15757 }
15758 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15759 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15760 }
15761 Ok(())
15762 }
15763 }
15764}