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<fidl::encoding::Boxed<fidl_fuchsia_bluetooth__common::UInt16>, D>,
2446 T3: fidl::encoding::Encode<
2447 fidl::encoding::Optional<
2448 fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<36>>,
2449 >,
2450 D,
2451 >,
2452 T4: fidl::encoding::Encode<
2453 fidl::encoding::Optional<fidl::encoding::UnboundedVector<ServiceDataEntry>>,
2454 D,
2455 >,
2456 T5: fidl::encoding::Encode<
2457 fidl::encoding::Optional<
2458 fidl::encoding::UnboundedVector<ManufacturerSpecificDataEntry>,
2459 >,
2460 D,
2461 >,
2462 T6: fidl::encoding::Encode<
2463 fidl::encoding::Optional<
2464 fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<36>>,
2465 >,
2466 D,
2467 >,
2468 T7: fidl::encoding::Encode<
2469 fidl::encoding::Optional<
2470 fidl::encoding::UnboundedVector<fidl::encoding::UnboundedString>,
2471 >,
2472 D,
2473 >,
2474 > fidl::encoding::Encode<AdvertisingDataDeprecated, D> for (T0, T1, T2, T3, T4, T5, T6, T7)
2475 {
2476 #[inline]
2477 unsafe fn encode(
2478 self,
2479 encoder: &mut fidl::encoding::Encoder<'_, D>,
2480 offset: usize,
2481 depth: fidl::encoding::Depth,
2482 ) -> fidl::Result<()> {
2483 encoder.debug_check_bounds::<AdvertisingDataDeprecated>(offset);
2484 self.0.encode(encoder, offset + 0, depth)?;
2488 self.1.encode(encoder, offset + 16, depth)?;
2489 self.2.encode(encoder, offset + 24, depth)?;
2490 self.3.encode(encoder, offset + 32, depth)?;
2491 self.4.encode(encoder, offset + 48, depth)?;
2492 self.5.encode(encoder, offset + 64, depth)?;
2493 self.6.encode(encoder, offset + 80, depth)?;
2494 self.7.encode(encoder, offset + 96, depth)?;
2495 Ok(())
2496 }
2497 }
2498
2499 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2500 for AdvertisingDataDeprecated
2501 {
2502 #[inline(always)]
2503 fn new_empty() -> Self {
2504 Self {
2505 name: fidl::new_empty!(
2506 fidl::encoding::Optional<fidl::encoding::BoundedString<248>>,
2507 D
2508 ),
2509 tx_power_level: fidl::new_empty!(
2510 fidl::encoding::Boxed<fidl_fuchsia_bluetooth__common::Int8>,
2511 D
2512 ),
2513 appearance: fidl::new_empty!(
2514 fidl::encoding::Boxed<fidl_fuchsia_bluetooth__common::UInt16>,
2515 D
2516 ),
2517 service_uuids: fidl::new_empty!(
2518 fidl::encoding::Optional<
2519 fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<36>>,
2520 >,
2521 D
2522 ),
2523 service_data: fidl::new_empty!(
2524 fidl::encoding::Optional<fidl::encoding::UnboundedVector<ServiceDataEntry>>,
2525 D
2526 ),
2527 manufacturer_specific_data: fidl::new_empty!(
2528 fidl::encoding::Optional<
2529 fidl::encoding::UnboundedVector<ManufacturerSpecificDataEntry>,
2530 >,
2531 D
2532 ),
2533 solicited_service_uuids: fidl::new_empty!(
2534 fidl::encoding::Optional<
2535 fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<36>>,
2536 >,
2537 D
2538 ),
2539 uris: fidl::new_empty!(
2540 fidl::encoding::Optional<
2541 fidl::encoding::UnboundedVector<fidl::encoding::UnboundedString>,
2542 >,
2543 D
2544 ),
2545 }
2546 }
2547
2548 #[inline]
2549 unsafe fn decode(
2550 &mut self,
2551 decoder: &mut fidl::encoding::Decoder<'_, D>,
2552 offset: usize,
2553 _depth: fidl::encoding::Depth,
2554 ) -> fidl::Result<()> {
2555 decoder.debug_check_bounds::<Self>(offset);
2556 fidl::decode!(
2558 fidl::encoding::Optional<fidl::encoding::BoundedString<248>>,
2559 D,
2560 &mut self.name,
2561 decoder,
2562 offset + 0,
2563 _depth
2564 )?;
2565 fidl::decode!(
2566 fidl::encoding::Boxed<fidl_fuchsia_bluetooth__common::Int8>,
2567 D,
2568 &mut self.tx_power_level,
2569 decoder,
2570 offset + 16,
2571 _depth
2572 )?;
2573 fidl::decode!(
2574 fidl::encoding::Boxed<fidl_fuchsia_bluetooth__common::UInt16>,
2575 D,
2576 &mut self.appearance,
2577 decoder,
2578 offset + 24,
2579 _depth
2580 )?;
2581 fidl::decode!(
2582 fidl::encoding::Optional<
2583 fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<36>>,
2584 >,
2585 D,
2586 &mut self.service_uuids,
2587 decoder,
2588 offset + 32,
2589 _depth
2590 )?;
2591 fidl::decode!(
2592 fidl::encoding::Optional<fidl::encoding::UnboundedVector<ServiceDataEntry>>,
2593 D,
2594 &mut self.service_data,
2595 decoder,
2596 offset + 48,
2597 _depth
2598 )?;
2599 fidl::decode!(
2600 fidl::encoding::Optional<
2601 fidl::encoding::UnboundedVector<ManufacturerSpecificDataEntry>,
2602 >,
2603 D,
2604 &mut self.manufacturer_specific_data,
2605 decoder,
2606 offset + 64,
2607 _depth
2608 )?;
2609 fidl::decode!(
2610 fidl::encoding::Optional<
2611 fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<36>>,
2612 >,
2613 D,
2614 &mut self.solicited_service_uuids,
2615 decoder,
2616 offset + 80,
2617 _depth
2618 )?;
2619 fidl::decode!(
2620 fidl::encoding::Optional<
2621 fidl::encoding::UnboundedVector<fidl::encoding::UnboundedString>,
2622 >,
2623 D,
2624 &mut self.uris,
2625 decoder,
2626 offset + 96,
2627 _depth
2628 )?;
2629 Ok(())
2630 }
2631 }
2632
2633 impl fidl::encoding::ValueTypeMarker for CentralConnectPeripheralResponse {
2634 type Borrowed<'a> = &'a Self;
2635 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2636 value
2637 }
2638 }
2639
2640 unsafe impl fidl::encoding::TypeMarker for CentralConnectPeripheralResponse {
2641 type Owned = Self;
2642
2643 #[inline(always)]
2644 fn inline_align(_context: fidl::encoding::Context) -> usize {
2645 8
2646 }
2647
2648 #[inline(always)]
2649 fn inline_size(_context: fidl::encoding::Context) -> usize {
2650 8
2651 }
2652 }
2653
2654 unsafe impl<D: fidl::encoding::ResourceDialect>
2655 fidl::encoding::Encode<CentralConnectPeripheralResponse, D>
2656 for &CentralConnectPeripheralResponse
2657 {
2658 #[inline]
2659 unsafe fn encode(
2660 self,
2661 encoder: &mut fidl::encoding::Encoder<'_, D>,
2662 offset: usize,
2663 _depth: fidl::encoding::Depth,
2664 ) -> fidl::Result<()> {
2665 encoder.debug_check_bounds::<CentralConnectPeripheralResponse>(offset);
2666 fidl::encoding::Encode::<CentralConnectPeripheralResponse, D>::encode(
2668 (
2669 <fidl_fuchsia_bluetooth__common::Status as fidl::encoding::ValueTypeMarker>::borrow(&self.status),
2670 ),
2671 encoder, offset, _depth
2672 )
2673 }
2674 }
2675 unsafe impl<
2676 D: fidl::encoding::ResourceDialect,
2677 T0: fidl::encoding::Encode<fidl_fuchsia_bluetooth__common::Status, D>,
2678 > fidl::encoding::Encode<CentralConnectPeripheralResponse, D> for (T0,)
2679 {
2680 #[inline]
2681 unsafe fn encode(
2682 self,
2683 encoder: &mut fidl::encoding::Encoder<'_, D>,
2684 offset: usize,
2685 depth: fidl::encoding::Depth,
2686 ) -> fidl::Result<()> {
2687 encoder.debug_check_bounds::<CentralConnectPeripheralResponse>(offset);
2688 self.0.encode(encoder, offset + 0, depth)?;
2692 Ok(())
2693 }
2694 }
2695
2696 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2697 for CentralConnectPeripheralResponse
2698 {
2699 #[inline(always)]
2700 fn new_empty() -> Self {
2701 Self { status: fidl::new_empty!(fidl_fuchsia_bluetooth__common::Status, D) }
2702 }
2703
2704 #[inline]
2705 unsafe fn decode(
2706 &mut self,
2707 decoder: &mut fidl::encoding::Decoder<'_, D>,
2708 offset: usize,
2709 _depth: fidl::encoding::Depth,
2710 ) -> fidl::Result<()> {
2711 decoder.debug_check_bounds::<Self>(offset);
2712 fidl::decode!(
2714 fidl_fuchsia_bluetooth__common::Status,
2715 D,
2716 &mut self.status,
2717 decoder,
2718 offset + 0,
2719 _depth
2720 )?;
2721 Ok(())
2722 }
2723 }
2724
2725 impl fidl::encoding::ValueTypeMarker for CentralDisconnectPeripheralRequest {
2726 type Borrowed<'a> = &'a Self;
2727 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2728 value
2729 }
2730 }
2731
2732 unsafe impl fidl::encoding::TypeMarker for CentralDisconnectPeripheralRequest {
2733 type Owned = Self;
2734
2735 #[inline(always)]
2736 fn inline_align(_context: fidl::encoding::Context) -> usize {
2737 8
2738 }
2739
2740 #[inline(always)]
2741 fn inline_size(_context: fidl::encoding::Context) -> usize {
2742 16
2743 }
2744 }
2745
2746 unsafe impl<D: fidl::encoding::ResourceDialect>
2747 fidl::encoding::Encode<CentralDisconnectPeripheralRequest, D>
2748 for &CentralDisconnectPeripheralRequest
2749 {
2750 #[inline]
2751 unsafe fn encode(
2752 self,
2753 encoder: &mut fidl::encoding::Encoder<'_, D>,
2754 offset: usize,
2755 _depth: fidl::encoding::Depth,
2756 ) -> fidl::Result<()> {
2757 encoder.debug_check_bounds::<CentralDisconnectPeripheralRequest>(offset);
2758 fidl::encoding::Encode::<CentralDisconnectPeripheralRequest, D>::encode(
2760 (<fidl::encoding::BoundedString<16> as fidl::encoding::ValueTypeMarker>::borrow(
2761 &self.identifier,
2762 ),),
2763 encoder,
2764 offset,
2765 _depth,
2766 )
2767 }
2768 }
2769 unsafe impl<
2770 D: fidl::encoding::ResourceDialect,
2771 T0: fidl::encoding::Encode<fidl::encoding::BoundedString<16>, D>,
2772 > fidl::encoding::Encode<CentralDisconnectPeripheralRequest, D> for (T0,)
2773 {
2774 #[inline]
2775 unsafe fn encode(
2776 self,
2777 encoder: &mut fidl::encoding::Encoder<'_, D>,
2778 offset: usize,
2779 depth: fidl::encoding::Depth,
2780 ) -> fidl::Result<()> {
2781 encoder.debug_check_bounds::<CentralDisconnectPeripheralRequest>(offset);
2782 self.0.encode(encoder, offset + 0, depth)?;
2786 Ok(())
2787 }
2788 }
2789
2790 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2791 for CentralDisconnectPeripheralRequest
2792 {
2793 #[inline(always)]
2794 fn new_empty() -> Self {
2795 Self { identifier: fidl::new_empty!(fidl::encoding::BoundedString<16>, D) }
2796 }
2797
2798 #[inline]
2799 unsafe fn decode(
2800 &mut self,
2801 decoder: &mut fidl::encoding::Decoder<'_, D>,
2802 offset: usize,
2803 _depth: fidl::encoding::Depth,
2804 ) -> fidl::Result<()> {
2805 decoder.debug_check_bounds::<Self>(offset);
2806 fidl::decode!(
2808 fidl::encoding::BoundedString<16>,
2809 D,
2810 &mut self.identifier,
2811 decoder,
2812 offset + 0,
2813 _depth
2814 )?;
2815 Ok(())
2816 }
2817 }
2818
2819 impl fidl::encoding::ValueTypeMarker for CentralDisconnectPeripheralResponse {
2820 type Borrowed<'a> = &'a Self;
2821 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2822 value
2823 }
2824 }
2825
2826 unsafe impl fidl::encoding::TypeMarker for CentralDisconnectPeripheralResponse {
2827 type Owned = Self;
2828
2829 #[inline(always)]
2830 fn inline_align(_context: fidl::encoding::Context) -> usize {
2831 8
2832 }
2833
2834 #[inline(always)]
2835 fn inline_size(_context: fidl::encoding::Context) -> usize {
2836 8
2837 }
2838 }
2839
2840 unsafe impl<D: fidl::encoding::ResourceDialect>
2841 fidl::encoding::Encode<CentralDisconnectPeripheralResponse, D>
2842 for &CentralDisconnectPeripheralResponse
2843 {
2844 #[inline]
2845 unsafe fn encode(
2846 self,
2847 encoder: &mut fidl::encoding::Encoder<'_, D>,
2848 offset: usize,
2849 _depth: fidl::encoding::Depth,
2850 ) -> fidl::Result<()> {
2851 encoder.debug_check_bounds::<CentralDisconnectPeripheralResponse>(offset);
2852 fidl::encoding::Encode::<CentralDisconnectPeripheralResponse, D>::encode(
2854 (
2855 <fidl_fuchsia_bluetooth__common::Status as fidl::encoding::ValueTypeMarker>::borrow(&self.status),
2856 ),
2857 encoder, offset, _depth
2858 )
2859 }
2860 }
2861 unsafe impl<
2862 D: fidl::encoding::ResourceDialect,
2863 T0: fidl::encoding::Encode<fidl_fuchsia_bluetooth__common::Status, D>,
2864 > fidl::encoding::Encode<CentralDisconnectPeripheralResponse, D> for (T0,)
2865 {
2866 #[inline]
2867 unsafe fn encode(
2868 self,
2869 encoder: &mut fidl::encoding::Encoder<'_, D>,
2870 offset: usize,
2871 depth: fidl::encoding::Depth,
2872 ) -> fidl::Result<()> {
2873 encoder.debug_check_bounds::<CentralDisconnectPeripheralResponse>(offset);
2874 self.0.encode(encoder, offset + 0, depth)?;
2878 Ok(())
2879 }
2880 }
2881
2882 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2883 for CentralDisconnectPeripheralResponse
2884 {
2885 #[inline(always)]
2886 fn new_empty() -> Self {
2887 Self { status: fidl::new_empty!(fidl_fuchsia_bluetooth__common::Status, D) }
2888 }
2889
2890 #[inline]
2891 unsafe fn decode(
2892 &mut self,
2893 decoder: &mut fidl::encoding::Decoder<'_, D>,
2894 offset: usize,
2895 _depth: fidl::encoding::Depth,
2896 ) -> fidl::Result<()> {
2897 decoder.debug_check_bounds::<Self>(offset);
2898 fidl::decode!(
2900 fidl_fuchsia_bluetooth__common::Status,
2901 D,
2902 &mut self.status,
2903 decoder,
2904 offset + 0,
2905 _depth
2906 )?;
2907 Ok(())
2908 }
2909 }
2910
2911 impl fidl::encoding::ValueTypeMarker for CentralGetPeripheralRequest {
2912 type Borrowed<'a> = &'a Self;
2913 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2914 value
2915 }
2916 }
2917
2918 unsafe impl fidl::encoding::TypeMarker for CentralGetPeripheralRequest {
2919 type Owned = Self;
2920
2921 #[inline(always)]
2922 fn inline_align(_context: fidl::encoding::Context) -> usize {
2923 8
2924 }
2925
2926 #[inline(always)]
2927 fn inline_size(_context: fidl::encoding::Context) -> usize {
2928 16
2929 }
2930 }
2931
2932 unsafe impl<D: fidl::encoding::ResourceDialect>
2933 fidl::encoding::Encode<CentralGetPeripheralRequest, D> for &CentralGetPeripheralRequest
2934 {
2935 #[inline]
2936 unsafe fn encode(
2937 self,
2938 encoder: &mut fidl::encoding::Encoder<'_, D>,
2939 offset: usize,
2940 _depth: fidl::encoding::Depth,
2941 ) -> fidl::Result<()> {
2942 encoder.debug_check_bounds::<CentralGetPeripheralRequest>(offset);
2943 fidl::encoding::Encode::<CentralGetPeripheralRequest, D>::encode(
2945 (<fidl::encoding::BoundedString<16> as fidl::encoding::ValueTypeMarker>::borrow(
2946 &self.identifier,
2947 ),),
2948 encoder,
2949 offset,
2950 _depth,
2951 )
2952 }
2953 }
2954 unsafe impl<
2955 D: fidl::encoding::ResourceDialect,
2956 T0: fidl::encoding::Encode<fidl::encoding::BoundedString<16>, D>,
2957 > fidl::encoding::Encode<CentralGetPeripheralRequest, D> for (T0,)
2958 {
2959 #[inline]
2960 unsafe fn encode(
2961 self,
2962 encoder: &mut fidl::encoding::Encoder<'_, D>,
2963 offset: usize,
2964 depth: fidl::encoding::Depth,
2965 ) -> fidl::Result<()> {
2966 encoder.debug_check_bounds::<CentralGetPeripheralRequest>(offset);
2967 self.0.encode(encoder, offset + 0, depth)?;
2971 Ok(())
2972 }
2973 }
2974
2975 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2976 for CentralGetPeripheralRequest
2977 {
2978 #[inline(always)]
2979 fn new_empty() -> Self {
2980 Self { identifier: fidl::new_empty!(fidl::encoding::BoundedString<16>, D) }
2981 }
2982
2983 #[inline]
2984 unsafe fn decode(
2985 &mut self,
2986 decoder: &mut fidl::encoding::Decoder<'_, D>,
2987 offset: usize,
2988 _depth: fidl::encoding::Depth,
2989 ) -> fidl::Result<()> {
2990 decoder.debug_check_bounds::<Self>(offset);
2991 fidl::decode!(
2993 fidl::encoding::BoundedString<16>,
2994 D,
2995 &mut self.identifier,
2996 decoder,
2997 offset + 0,
2998 _depth
2999 )?;
3000 Ok(())
3001 }
3002 }
3003
3004 impl fidl::encoding::ValueTypeMarker for CentralGetPeripheralResponse {
3005 type Borrowed<'a> = &'a Self;
3006 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3007 value
3008 }
3009 }
3010
3011 unsafe impl fidl::encoding::TypeMarker for CentralGetPeripheralResponse {
3012 type Owned = Self;
3013
3014 #[inline(always)]
3015 fn inline_align(_context: fidl::encoding::Context) -> usize {
3016 8
3017 }
3018
3019 #[inline(always)]
3020 fn inline_size(_context: fidl::encoding::Context) -> usize {
3021 8
3022 }
3023 }
3024
3025 unsafe impl<D: fidl::encoding::ResourceDialect>
3026 fidl::encoding::Encode<CentralGetPeripheralResponse, D> for &CentralGetPeripheralResponse
3027 {
3028 #[inline]
3029 unsafe fn encode(
3030 self,
3031 encoder: &mut fidl::encoding::Encoder<'_, D>,
3032 offset: usize,
3033 _depth: fidl::encoding::Depth,
3034 ) -> fidl::Result<()> {
3035 encoder.debug_check_bounds::<CentralGetPeripheralResponse>(offset);
3036 fidl::encoding::Encode::<CentralGetPeripheralResponse, D>::encode(
3038 (<fidl::encoding::Boxed<RemoteDevice> as fidl::encoding::ValueTypeMarker>::borrow(
3039 &self.peripheral,
3040 ),),
3041 encoder,
3042 offset,
3043 _depth,
3044 )
3045 }
3046 }
3047 unsafe impl<
3048 D: fidl::encoding::ResourceDialect,
3049 T0: fidl::encoding::Encode<fidl::encoding::Boxed<RemoteDevice>, D>,
3050 > fidl::encoding::Encode<CentralGetPeripheralResponse, D> for (T0,)
3051 {
3052 #[inline]
3053 unsafe fn encode(
3054 self,
3055 encoder: &mut fidl::encoding::Encoder<'_, D>,
3056 offset: usize,
3057 depth: fidl::encoding::Depth,
3058 ) -> fidl::Result<()> {
3059 encoder.debug_check_bounds::<CentralGetPeripheralResponse>(offset);
3060 self.0.encode(encoder, offset + 0, depth)?;
3064 Ok(())
3065 }
3066 }
3067
3068 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3069 for CentralGetPeripheralResponse
3070 {
3071 #[inline(always)]
3072 fn new_empty() -> Self {
3073 Self { peripheral: fidl::new_empty!(fidl::encoding::Boxed<RemoteDevice>, D) }
3074 }
3075
3076 #[inline]
3077 unsafe fn decode(
3078 &mut self,
3079 decoder: &mut fidl::encoding::Decoder<'_, D>,
3080 offset: usize,
3081 _depth: fidl::encoding::Depth,
3082 ) -> fidl::Result<()> {
3083 decoder.debug_check_bounds::<Self>(offset);
3084 fidl::decode!(
3086 fidl::encoding::Boxed<RemoteDevice>,
3087 D,
3088 &mut self.peripheral,
3089 decoder,
3090 offset + 0,
3091 _depth
3092 )?;
3093 Ok(())
3094 }
3095 }
3096
3097 impl fidl::encoding::ValueTypeMarker for CentralGetPeripheralsRequest {
3098 type Borrowed<'a> = &'a Self;
3099 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3100 value
3101 }
3102 }
3103
3104 unsafe impl fidl::encoding::TypeMarker for CentralGetPeripheralsRequest {
3105 type Owned = Self;
3106
3107 #[inline(always)]
3108 fn inline_align(_context: fidl::encoding::Context) -> usize {
3109 8
3110 }
3111
3112 #[inline(always)]
3113 fn inline_size(_context: fidl::encoding::Context) -> usize {
3114 16
3115 }
3116 }
3117
3118 unsafe impl<D: fidl::encoding::ResourceDialect>
3119 fidl::encoding::Encode<CentralGetPeripheralsRequest, D> for &CentralGetPeripheralsRequest
3120 {
3121 #[inline]
3122 unsafe fn encode(
3123 self,
3124 encoder: &mut fidl::encoding::Encoder<'_, D>,
3125 offset: usize,
3126 _depth: fidl::encoding::Depth,
3127 ) -> fidl::Result<()> {
3128 encoder.debug_check_bounds::<CentralGetPeripheralsRequest>(offset);
3129 fidl::encoding::Encode::<CentralGetPeripheralsRequest, D>::encode(
3131 (<fidl::encoding::Optional<
3132 fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<36>>,
3133 > as fidl::encoding::ValueTypeMarker>::borrow(&self.service_uuids),),
3134 encoder,
3135 offset,
3136 _depth,
3137 )
3138 }
3139 }
3140 unsafe impl<
3141 D: fidl::encoding::ResourceDialect,
3142 T0: fidl::encoding::Encode<
3143 fidl::encoding::Optional<
3144 fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<36>>,
3145 >,
3146 D,
3147 >,
3148 > fidl::encoding::Encode<CentralGetPeripheralsRequest, D> for (T0,)
3149 {
3150 #[inline]
3151 unsafe fn encode(
3152 self,
3153 encoder: &mut fidl::encoding::Encoder<'_, D>,
3154 offset: usize,
3155 depth: fidl::encoding::Depth,
3156 ) -> fidl::Result<()> {
3157 encoder.debug_check_bounds::<CentralGetPeripheralsRequest>(offset);
3158 self.0.encode(encoder, offset + 0, depth)?;
3162 Ok(())
3163 }
3164 }
3165
3166 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3167 for CentralGetPeripheralsRequest
3168 {
3169 #[inline(always)]
3170 fn new_empty() -> Self {
3171 Self {
3172 service_uuids: fidl::new_empty!(
3173 fidl::encoding::Optional<
3174 fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<36>>,
3175 >,
3176 D
3177 ),
3178 }
3179 }
3180
3181 #[inline]
3182 unsafe fn decode(
3183 &mut self,
3184 decoder: &mut fidl::encoding::Decoder<'_, D>,
3185 offset: usize,
3186 _depth: fidl::encoding::Depth,
3187 ) -> fidl::Result<()> {
3188 decoder.debug_check_bounds::<Self>(offset);
3189 fidl::decode!(
3191 fidl::encoding::Optional<
3192 fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<36>>,
3193 >,
3194 D,
3195 &mut self.service_uuids,
3196 decoder,
3197 offset + 0,
3198 _depth
3199 )?;
3200 Ok(())
3201 }
3202 }
3203
3204 impl fidl::encoding::ValueTypeMarker for CentralGetPeripheralsResponse {
3205 type Borrowed<'a> = &'a Self;
3206 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3207 value
3208 }
3209 }
3210
3211 unsafe impl fidl::encoding::TypeMarker for CentralGetPeripheralsResponse {
3212 type Owned = Self;
3213
3214 #[inline(always)]
3215 fn inline_align(_context: fidl::encoding::Context) -> usize {
3216 8
3217 }
3218
3219 #[inline(always)]
3220 fn inline_size(_context: fidl::encoding::Context) -> usize {
3221 16
3222 }
3223 }
3224
3225 unsafe impl<D: fidl::encoding::ResourceDialect>
3226 fidl::encoding::Encode<CentralGetPeripheralsResponse, D>
3227 for &CentralGetPeripheralsResponse
3228 {
3229 #[inline]
3230 unsafe fn encode(
3231 self,
3232 encoder: &mut fidl::encoding::Encoder<'_, D>,
3233 offset: usize,
3234 _depth: fidl::encoding::Depth,
3235 ) -> fidl::Result<()> {
3236 encoder.debug_check_bounds::<CentralGetPeripheralsResponse>(offset);
3237 fidl::encoding::Encode::<CentralGetPeripheralsResponse, D>::encode(
3239 (
3240 <fidl::encoding::UnboundedVector<RemoteDevice> as fidl::encoding::ValueTypeMarker>::borrow(&self.peripherals),
3241 ),
3242 encoder, offset, _depth
3243 )
3244 }
3245 }
3246 unsafe impl<
3247 D: fidl::encoding::ResourceDialect,
3248 T0: fidl::encoding::Encode<fidl::encoding::UnboundedVector<RemoteDevice>, D>,
3249 > fidl::encoding::Encode<CentralGetPeripheralsResponse, D> for (T0,)
3250 {
3251 #[inline]
3252 unsafe fn encode(
3253 self,
3254 encoder: &mut fidl::encoding::Encoder<'_, D>,
3255 offset: usize,
3256 depth: fidl::encoding::Depth,
3257 ) -> fidl::Result<()> {
3258 encoder.debug_check_bounds::<CentralGetPeripheralsResponse>(offset);
3259 self.0.encode(encoder, offset + 0, depth)?;
3263 Ok(())
3264 }
3265 }
3266
3267 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3268 for CentralGetPeripheralsResponse
3269 {
3270 #[inline(always)]
3271 fn new_empty() -> Self {
3272 Self { peripherals: fidl::new_empty!(fidl::encoding::UnboundedVector<RemoteDevice>, D) }
3273 }
3274
3275 #[inline]
3276 unsafe fn decode(
3277 &mut self,
3278 decoder: &mut fidl::encoding::Decoder<'_, D>,
3279 offset: usize,
3280 _depth: fidl::encoding::Depth,
3281 ) -> fidl::Result<()> {
3282 decoder.debug_check_bounds::<Self>(offset);
3283 fidl::decode!(
3285 fidl::encoding::UnboundedVector<RemoteDevice>,
3286 D,
3287 &mut self.peripherals,
3288 decoder,
3289 offset + 0,
3290 _depth
3291 )?;
3292 Ok(())
3293 }
3294 }
3295
3296 impl fidl::encoding::ValueTypeMarker for CentralOnDeviceDiscoveredRequest {
3297 type Borrowed<'a> = &'a Self;
3298 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3299 value
3300 }
3301 }
3302
3303 unsafe impl fidl::encoding::TypeMarker for CentralOnDeviceDiscoveredRequest {
3304 type Owned = Self;
3305
3306 #[inline(always)]
3307 fn inline_align(_context: fidl::encoding::Context) -> usize {
3308 8
3309 }
3310
3311 #[inline(always)]
3312 fn inline_size(_context: fidl::encoding::Context) -> usize {
3313 40
3314 }
3315 }
3316
3317 unsafe impl<D: fidl::encoding::ResourceDialect>
3318 fidl::encoding::Encode<CentralOnDeviceDiscoveredRequest, D>
3319 for &CentralOnDeviceDiscoveredRequest
3320 {
3321 #[inline]
3322 unsafe fn encode(
3323 self,
3324 encoder: &mut fidl::encoding::Encoder<'_, D>,
3325 offset: usize,
3326 _depth: fidl::encoding::Depth,
3327 ) -> fidl::Result<()> {
3328 encoder.debug_check_bounds::<CentralOnDeviceDiscoveredRequest>(offset);
3329 fidl::encoding::Encode::<CentralOnDeviceDiscoveredRequest, D>::encode(
3331 (<RemoteDevice as fidl::encoding::ValueTypeMarker>::borrow(&self.device),),
3332 encoder,
3333 offset,
3334 _depth,
3335 )
3336 }
3337 }
3338 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<RemoteDevice, D>>
3339 fidl::encoding::Encode<CentralOnDeviceDiscoveredRequest, D> for (T0,)
3340 {
3341 #[inline]
3342 unsafe fn encode(
3343 self,
3344 encoder: &mut fidl::encoding::Encoder<'_, D>,
3345 offset: usize,
3346 depth: fidl::encoding::Depth,
3347 ) -> fidl::Result<()> {
3348 encoder.debug_check_bounds::<CentralOnDeviceDiscoveredRequest>(offset);
3349 self.0.encode(encoder, offset + 0, depth)?;
3353 Ok(())
3354 }
3355 }
3356
3357 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3358 for CentralOnDeviceDiscoveredRequest
3359 {
3360 #[inline(always)]
3361 fn new_empty() -> Self {
3362 Self { device: fidl::new_empty!(RemoteDevice, D) }
3363 }
3364
3365 #[inline]
3366 unsafe fn decode(
3367 &mut self,
3368 decoder: &mut fidl::encoding::Decoder<'_, D>,
3369 offset: usize,
3370 _depth: fidl::encoding::Depth,
3371 ) -> fidl::Result<()> {
3372 decoder.debug_check_bounds::<Self>(offset);
3373 fidl::decode!(RemoteDevice, D, &mut self.device, decoder, offset + 0, _depth)?;
3375 Ok(())
3376 }
3377 }
3378
3379 impl fidl::encoding::ValueTypeMarker for CentralOnPeripheralDisconnectedRequest {
3380 type Borrowed<'a> = &'a Self;
3381 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3382 value
3383 }
3384 }
3385
3386 unsafe impl fidl::encoding::TypeMarker for CentralOnPeripheralDisconnectedRequest {
3387 type Owned = Self;
3388
3389 #[inline(always)]
3390 fn inline_align(_context: fidl::encoding::Context) -> usize {
3391 8
3392 }
3393
3394 #[inline(always)]
3395 fn inline_size(_context: fidl::encoding::Context) -> usize {
3396 16
3397 }
3398 }
3399
3400 unsafe impl<D: fidl::encoding::ResourceDialect>
3401 fidl::encoding::Encode<CentralOnPeripheralDisconnectedRequest, D>
3402 for &CentralOnPeripheralDisconnectedRequest
3403 {
3404 #[inline]
3405 unsafe fn encode(
3406 self,
3407 encoder: &mut fidl::encoding::Encoder<'_, D>,
3408 offset: usize,
3409 _depth: fidl::encoding::Depth,
3410 ) -> fidl::Result<()> {
3411 encoder.debug_check_bounds::<CentralOnPeripheralDisconnectedRequest>(offset);
3412 fidl::encoding::Encode::<CentralOnPeripheralDisconnectedRequest, D>::encode(
3414 (<fidl::encoding::BoundedString<16> as fidl::encoding::ValueTypeMarker>::borrow(
3415 &self.identifier,
3416 ),),
3417 encoder,
3418 offset,
3419 _depth,
3420 )
3421 }
3422 }
3423 unsafe impl<
3424 D: fidl::encoding::ResourceDialect,
3425 T0: fidl::encoding::Encode<fidl::encoding::BoundedString<16>, D>,
3426 > fidl::encoding::Encode<CentralOnPeripheralDisconnectedRequest, D> for (T0,)
3427 {
3428 #[inline]
3429 unsafe fn encode(
3430 self,
3431 encoder: &mut fidl::encoding::Encoder<'_, D>,
3432 offset: usize,
3433 depth: fidl::encoding::Depth,
3434 ) -> fidl::Result<()> {
3435 encoder.debug_check_bounds::<CentralOnPeripheralDisconnectedRequest>(offset);
3436 self.0.encode(encoder, offset + 0, depth)?;
3440 Ok(())
3441 }
3442 }
3443
3444 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3445 for CentralOnPeripheralDisconnectedRequest
3446 {
3447 #[inline(always)]
3448 fn new_empty() -> Self {
3449 Self { identifier: fidl::new_empty!(fidl::encoding::BoundedString<16>, D) }
3450 }
3451
3452 #[inline]
3453 unsafe fn decode(
3454 &mut self,
3455 decoder: &mut fidl::encoding::Decoder<'_, D>,
3456 offset: usize,
3457 _depth: fidl::encoding::Depth,
3458 ) -> fidl::Result<()> {
3459 decoder.debug_check_bounds::<Self>(offset);
3460 fidl::decode!(
3462 fidl::encoding::BoundedString<16>,
3463 D,
3464 &mut self.identifier,
3465 decoder,
3466 offset + 0,
3467 _depth
3468 )?;
3469 Ok(())
3470 }
3471 }
3472
3473 impl fidl::encoding::ValueTypeMarker for CentralOnScanStateChangedRequest {
3474 type Borrowed<'a> = &'a Self;
3475 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3476 value
3477 }
3478 }
3479
3480 unsafe impl fidl::encoding::TypeMarker for CentralOnScanStateChangedRequest {
3481 type Owned = Self;
3482
3483 #[inline(always)]
3484 fn inline_align(_context: fidl::encoding::Context) -> usize {
3485 1
3486 }
3487
3488 #[inline(always)]
3489 fn inline_size(_context: fidl::encoding::Context) -> usize {
3490 1
3491 }
3492 }
3493
3494 unsafe impl<D: fidl::encoding::ResourceDialect>
3495 fidl::encoding::Encode<CentralOnScanStateChangedRequest, D>
3496 for &CentralOnScanStateChangedRequest
3497 {
3498 #[inline]
3499 unsafe fn encode(
3500 self,
3501 encoder: &mut fidl::encoding::Encoder<'_, D>,
3502 offset: usize,
3503 _depth: fidl::encoding::Depth,
3504 ) -> fidl::Result<()> {
3505 encoder.debug_check_bounds::<CentralOnScanStateChangedRequest>(offset);
3506 fidl::encoding::Encode::<CentralOnScanStateChangedRequest, D>::encode(
3508 (<bool as fidl::encoding::ValueTypeMarker>::borrow(&self.scanning),),
3509 encoder,
3510 offset,
3511 _depth,
3512 )
3513 }
3514 }
3515 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<bool, D>>
3516 fidl::encoding::Encode<CentralOnScanStateChangedRequest, D> for (T0,)
3517 {
3518 #[inline]
3519 unsafe fn encode(
3520 self,
3521 encoder: &mut fidl::encoding::Encoder<'_, D>,
3522 offset: usize,
3523 depth: fidl::encoding::Depth,
3524 ) -> fidl::Result<()> {
3525 encoder.debug_check_bounds::<CentralOnScanStateChangedRequest>(offset);
3526 self.0.encode(encoder, offset + 0, depth)?;
3530 Ok(())
3531 }
3532 }
3533
3534 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3535 for CentralOnScanStateChangedRequest
3536 {
3537 #[inline(always)]
3538 fn new_empty() -> Self {
3539 Self { scanning: fidl::new_empty!(bool, D) }
3540 }
3541
3542 #[inline]
3543 unsafe fn decode(
3544 &mut self,
3545 decoder: &mut fidl::encoding::Decoder<'_, D>,
3546 offset: usize,
3547 _depth: fidl::encoding::Depth,
3548 ) -> fidl::Result<()> {
3549 decoder.debug_check_bounds::<Self>(offset);
3550 fidl::decode!(bool, D, &mut self.scanning, decoder, offset + 0, _depth)?;
3552 Ok(())
3553 }
3554 }
3555
3556 impl fidl::encoding::ValueTypeMarker for CentralStartScanRequest {
3557 type Borrowed<'a> = &'a Self;
3558 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3559 value
3560 }
3561 }
3562
3563 unsafe impl fidl::encoding::TypeMarker for CentralStartScanRequest {
3564 type Owned = Self;
3565
3566 #[inline(always)]
3567 fn inline_align(_context: fidl::encoding::Context) -> usize {
3568 8
3569 }
3570
3571 #[inline(always)]
3572 fn inline_size(_context: fidl::encoding::Context) -> usize {
3573 8
3574 }
3575 }
3576
3577 unsafe impl<D: fidl::encoding::ResourceDialect>
3578 fidl::encoding::Encode<CentralStartScanRequest, D> for &CentralStartScanRequest
3579 {
3580 #[inline]
3581 unsafe fn encode(
3582 self,
3583 encoder: &mut fidl::encoding::Encoder<'_, D>,
3584 offset: usize,
3585 _depth: fidl::encoding::Depth,
3586 ) -> fidl::Result<()> {
3587 encoder.debug_check_bounds::<CentralStartScanRequest>(offset);
3588 fidl::encoding::Encode::<CentralStartScanRequest, D>::encode(
3590 (<fidl::encoding::Boxed<ScanFilter> as fidl::encoding::ValueTypeMarker>::borrow(
3591 &self.filter,
3592 ),),
3593 encoder,
3594 offset,
3595 _depth,
3596 )
3597 }
3598 }
3599 unsafe impl<
3600 D: fidl::encoding::ResourceDialect,
3601 T0: fidl::encoding::Encode<fidl::encoding::Boxed<ScanFilter>, D>,
3602 > fidl::encoding::Encode<CentralStartScanRequest, D> for (T0,)
3603 {
3604 #[inline]
3605 unsafe fn encode(
3606 self,
3607 encoder: &mut fidl::encoding::Encoder<'_, D>,
3608 offset: usize,
3609 depth: fidl::encoding::Depth,
3610 ) -> fidl::Result<()> {
3611 encoder.debug_check_bounds::<CentralStartScanRequest>(offset);
3612 self.0.encode(encoder, offset + 0, depth)?;
3616 Ok(())
3617 }
3618 }
3619
3620 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3621 for CentralStartScanRequest
3622 {
3623 #[inline(always)]
3624 fn new_empty() -> Self {
3625 Self { filter: fidl::new_empty!(fidl::encoding::Boxed<ScanFilter>, D) }
3626 }
3627
3628 #[inline]
3629 unsafe fn decode(
3630 &mut self,
3631 decoder: &mut fidl::encoding::Decoder<'_, D>,
3632 offset: usize,
3633 _depth: fidl::encoding::Depth,
3634 ) -> fidl::Result<()> {
3635 decoder.debug_check_bounds::<Self>(offset);
3636 fidl::decode!(
3638 fidl::encoding::Boxed<ScanFilter>,
3639 D,
3640 &mut self.filter,
3641 decoder,
3642 offset + 0,
3643 _depth
3644 )?;
3645 Ok(())
3646 }
3647 }
3648
3649 impl fidl::encoding::ValueTypeMarker for CentralStartScanResponse {
3650 type Borrowed<'a> = &'a Self;
3651 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3652 value
3653 }
3654 }
3655
3656 unsafe impl fidl::encoding::TypeMarker for CentralStartScanResponse {
3657 type Owned = Self;
3658
3659 #[inline(always)]
3660 fn inline_align(_context: fidl::encoding::Context) -> usize {
3661 8
3662 }
3663
3664 #[inline(always)]
3665 fn inline_size(_context: fidl::encoding::Context) -> usize {
3666 8
3667 }
3668 }
3669
3670 unsafe impl<D: fidl::encoding::ResourceDialect>
3671 fidl::encoding::Encode<CentralStartScanResponse, D> for &CentralStartScanResponse
3672 {
3673 #[inline]
3674 unsafe fn encode(
3675 self,
3676 encoder: &mut fidl::encoding::Encoder<'_, D>,
3677 offset: usize,
3678 _depth: fidl::encoding::Depth,
3679 ) -> fidl::Result<()> {
3680 encoder.debug_check_bounds::<CentralStartScanResponse>(offset);
3681 fidl::encoding::Encode::<CentralStartScanResponse, D>::encode(
3683 (
3684 <fidl_fuchsia_bluetooth__common::Status as fidl::encoding::ValueTypeMarker>::borrow(&self.status),
3685 ),
3686 encoder, offset, _depth
3687 )
3688 }
3689 }
3690 unsafe impl<
3691 D: fidl::encoding::ResourceDialect,
3692 T0: fidl::encoding::Encode<fidl_fuchsia_bluetooth__common::Status, D>,
3693 > fidl::encoding::Encode<CentralStartScanResponse, D> for (T0,)
3694 {
3695 #[inline]
3696 unsafe fn encode(
3697 self,
3698 encoder: &mut fidl::encoding::Encoder<'_, D>,
3699 offset: usize,
3700 depth: fidl::encoding::Depth,
3701 ) -> fidl::Result<()> {
3702 encoder.debug_check_bounds::<CentralStartScanResponse>(offset);
3703 self.0.encode(encoder, offset + 0, depth)?;
3707 Ok(())
3708 }
3709 }
3710
3711 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3712 for CentralStartScanResponse
3713 {
3714 #[inline(always)]
3715 fn new_empty() -> Self {
3716 Self { status: fidl::new_empty!(fidl_fuchsia_bluetooth__common::Status, D) }
3717 }
3718
3719 #[inline]
3720 unsafe fn decode(
3721 &mut self,
3722 decoder: &mut fidl::encoding::Decoder<'_, D>,
3723 offset: usize,
3724 _depth: fidl::encoding::Depth,
3725 ) -> fidl::Result<()> {
3726 decoder.debug_check_bounds::<Self>(offset);
3727 fidl::decode!(
3729 fidl_fuchsia_bluetooth__common::Status,
3730 D,
3731 &mut self.status,
3732 decoder,
3733 offset + 0,
3734 _depth
3735 )?;
3736 Ok(())
3737 }
3738 }
3739
3740 impl fidl::encoding::ValueTypeMarker for ManufacturerData {
3741 type Borrowed<'a> = &'a Self;
3742 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3743 value
3744 }
3745 }
3746
3747 unsafe impl fidl::encoding::TypeMarker for ManufacturerData {
3748 type Owned = Self;
3749
3750 #[inline(always)]
3751 fn inline_align(_context: fidl::encoding::Context) -> usize {
3752 8
3753 }
3754
3755 #[inline(always)]
3756 fn inline_size(_context: fidl::encoding::Context) -> usize {
3757 24
3758 }
3759 }
3760
3761 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ManufacturerData, D>
3762 for &ManufacturerData
3763 {
3764 #[inline]
3765 unsafe fn encode(
3766 self,
3767 encoder: &mut fidl::encoding::Encoder<'_, D>,
3768 offset: usize,
3769 _depth: fidl::encoding::Depth,
3770 ) -> fidl::Result<()> {
3771 encoder.debug_check_bounds::<ManufacturerData>(offset);
3772 fidl::encoding::Encode::<ManufacturerData, D>::encode(
3774 (
3775 <u16 as fidl::encoding::ValueTypeMarker>::borrow(&self.company_id),
3776 <fidl::encoding::Vector<u8, 252> as fidl::encoding::ValueTypeMarker>::borrow(
3777 &self.data,
3778 ),
3779 ),
3780 encoder,
3781 offset,
3782 _depth,
3783 )
3784 }
3785 }
3786 unsafe impl<
3787 D: fidl::encoding::ResourceDialect,
3788 T0: fidl::encoding::Encode<u16, D>,
3789 T1: fidl::encoding::Encode<fidl::encoding::Vector<u8, 252>, D>,
3790 > fidl::encoding::Encode<ManufacturerData, D> for (T0, T1)
3791 {
3792 #[inline]
3793 unsafe fn encode(
3794 self,
3795 encoder: &mut fidl::encoding::Encoder<'_, D>,
3796 offset: usize,
3797 depth: fidl::encoding::Depth,
3798 ) -> fidl::Result<()> {
3799 encoder.debug_check_bounds::<ManufacturerData>(offset);
3800 unsafe {
3803 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(0);
3804 (ptr as *mut u64).write_unaligned(0);
3805 }
3806 self.0.encode(encoder, offset + 0, depth)?;
3808 self.1.encode(encoder, offset + 8, depth)?;
3809 Ok(())
3810 }
3811 }
3812
3813 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ManufacturerData {
3814 #[inline(always)]
3815 fn new_empty() -> Self {
3816 Self {
3817 company_id: fidl::new_empty!(u16, D),
3818 data: fidl::new_empty!(fidl::encoding::Vector<u8, 252>, D),
3819 }
3820 }
3821
3822 #[inline]
3823 unsafe fn decode(
3824 &mut self,
3825 decoder: &mut fidl::encoding::Decoder<'_, D>,
3826 offset: usize,
3827 _depth: fidl::encoding::Depth,
3828 ) -> fidl::Result<()> {
3829 decoder.debug_check_bounds::<Self>(offset);
3830 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(0) };
3832 let padval = unsafe { (ptr as *const u64).read_unaligned() };
3833 let mask = 0xffffffffffff0000u64;
3834 let maskedval = padval & mask;
3835 if maskedval != 0 {
3836 return Err(fidl::Error::NonZeroPadding {
3837 padding_start: offset + 0 + ((mask as u64).trailing_zeros() / 8) as usize,
3838 });
3839 }
3840 fidl::decode!(u16, D, &mut self.company_id, decoder, offset + 0, _depth)?;
3841 fidl::decode!(fidl::encoding::Vector<u8, 252>, D, &mut self.data, decoder, offset + 8, _depth)?;
3842 Ok(())
3843 }
3844 }
3845
3846 impl fidl::encoding::ValueTypeMarker for ManufacturerSpecificDataEntry {
3847 type Borrowed<'a> = &'a Self;
3848 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3849 value
3850 }
3851 }
3852
3853 unsafe impl fidl::encoding::TypeMarker for ManufacturerSpecificDataEntry {
3854 type Owned = Self;
3855
3856 #[inline(always)]
3857 fn inline_align(_context: fidl::encoding::Context) -> usize {
3858 8
3859 }
3860
3861 #[inline(always)]
3862 fn inline_size(_context: fidl::encoding::Context) -> usize {
3863 24
3864 }
3865 }
3866
3867 unsafe impl<D: fidl::encoding::ResourceDialect>
3868 fidl::encoding::Encode<ManufacturerSpecificDataEntry, D>
3869 for &ManufacturerSpecificDataEntry
3870 {
3871 #[inline]
3872 unsafe fn encode(
3873 self,
3874 encoder: &mut fidl::encoding::Encoder<'_, D>,
3875 offset: usize,
3876 _depth: fidl::encoding::Depth,
3877 ) -> fidl::Result<()> {
3878 encoder.debug_check_bounds::<ManufacturerSpecificDataEntry>(offset);
3879 fidl::encoding::Encode::<ManufacturerSpecificDataEntry, D>::encode(
3881 (
3882 <u16 as fidl::encoding::ValueTypeMarker>::borrow(&self.company_id),
3883 <fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow(&self.data),
3884 ),
3885 encoder, offset, _depth
3886 )
3887 }
3888 }
3889 unsafe impl<
3890 D: fidl::encoding::ResourceDialect,
3891 T0: fidl::encoding::Encode<u16, D>,
3892 T1: fidl::encoding::Encode<fidl::encoding::UnboundedVector<u8>, D>,
3893 > fidl::encoding::Encode<ManufacturerSpecificDataEntry, D> for (T0, T1)
3894 {
3895 #[inline]
3896 unsafe fn encode(
3897 self,
3898 encoder: &mut fidl::encoding::Encoder<'_, D>,
3899 offset: usize,
3900 depth: fidl::encoding::Depth,
3901 ) -> fidl::Result<()> {
3902 encoder.debug_check_bounds::<ManufacturerSpecificDataEntry>(offset);
3903 unsafe {
3906 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(0);
3907 (ptr as *mut u64).write_unaligned(0);
3908 }
3909 self.0.encode(encoder, offset + 0, depth)?;
3911 self.1.encode(encoder, offset + 8, depth)?;
3912 Ok(())
3913 }
3914 }
3915
3916 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3917 for ManufacturerSpecificDataEntry
3918 {
3919 #[inline(always)]
3920 fn new_empty() -> Self {
3921 Self {
3922 company_id: fidl::new_empty!(u16, D),
3923 data: fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D),
3924 }
3925 }
3926
3927 #[inline]
3928 unsafe fn decode(
3929 &mut self,
3930 decoder: &mut fidl::encoding::Decoder<'_, D>,
3931 offset: usize,
3932 _depth: fidl::encoding::Depth,
3933 ) -> fidl::Result<()> {
3934 decoder.debug_check_bounds::<Self>(offset);
3935 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(0) };
3937 let padval = unsafe { (ptr as *const u64).read_unaligned() };
3938 let mask = 0xffffffffffff0000u64;
3939 let maskedval = padval & mask;
3940 if maskedval != 0 {
3941 return Err(fidl::Error::NonZeroPadding {
3942 padding_start: offset + 0 + ((mask as u64).trailing_zeros() / 8) as usize,
3943 });
3944 }
3945 fidl::decode!(u16, D, &mut self.company_id, decoder, offset + 0, _depth)?;
3946 fidl::decode!(
3947 fidl::encoding::UnboundedVector<u8>,
3948 D,
3949 &mut self.data,
3950 decoder,
3951 offset + 8,
3952 _depth
3953 )?;
3954 Ok(())
3955 }
3956 }
3957
3958 impl fidl::encoding::ValueTypeMarker for PeriodicAdvertisingSyncId {
3959 type Borrowed<'a> = &'a Self;
3960 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3961 value
3962 }
3963 }
3964
3965 unsafe impl fidl::encoding::TypeMarker for PeriodicAdvertisingSyncId {
3966 type Owned = Self;
3967
3968 #[inline(always)]
3969 fn inline_align(_context: fidl::encoding::Context) -> usize {
3970 8
3971 }
3972
3973 #[inline(always)]
3974 fn inline_size(_context: fidl::encoding::Context) -> usize {
3975 8
3976 }
3977 #[inline(always)]
3978 fn encode_is_copy() -> bool {
3979 true
3980 }
3981
3982 #[inline(always)]
3983 fn decode_is_copy() -> bool {
3984 true
3985 }
3986 }
3987
3988 unsafe impl<D: fidl::encoding::ResourceDialect>
3989 fidl::encoding::Encode<PeriodicAdvertisingSyncId, D> for &PeriodicAdvertisingSyncId
3990 {
3991 #[inline]
3992 unsafe fn encode(
3993 self,
3994 encoder: &mut fidl::encoding::Encoder<'_, D>,
3995 offset: usize,
3996 _depth: fidl::encoding::Depth,
3997 ) -> fidl::Result<()> {
3998 encoder.debug_check_bounds::<PeriodicAdvertisingSyncId>(offset);
3999 unsafe {
4000 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
4002 (buf_ptr as *mut PeriodicAdvertisingSyncId)
4003 .write_unaligned((self as *const PeriodicAdvertisingSyncId).read());
4004 }
4007 Ok(())
4008 }
4009 }
4010 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<u64, D>>
4011 fidl::encoding::Encode<PeriodicAdvertisingSyncId, D> for (T0,)
4012 {
4013 #[inline]
4014 unsafe fn encode(
4015 self,
4016 encoder: &mut fidl::encoding::Encoder<'_, D>,
4017 offset: usize,
4018 depth: fidl::encoding::Depth,
4019 ) -> fidl::Result<()> {
4020 encoder.debug_check_bounds::<PeriodicAdvertisingSyncId>(offset);
4021 self.0.encode(encoder, offset + 0, depth)?;
4025 Ok(())
4026 }
4027 }
4028
4029 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
4030 for PeriodicAdvertisingSyncId
4031 {
4032 #[inline(always)]
4033 fn new_empty() -> Self {
4034 Self { value: fidl::new_empty!(u64, D) }
4035 }
4036
4037 #[inline]
4038 unsafe fn decode(
4039 &mut self,
4040 decoder: &mut fidl::encoding::Decoder<'_, D>,
4041 offset: usize,
4042 _depth: fidl::encoding::Depth,
4043 ) -> fidl::Result<()> {
4044 decoder.debug_check_bounds::<Self>(offset);
4045 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
4046 unsafe {
4049 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 8);
4050 }
4051 Ok(())
4052 }
4053 }
4054
4055 impl fidl::encoding::ValueTypeMarker for PeriodicAdvertisingSyncOnErrorRequest {
4056 type Borrowed<'a> = &'a Self;
4057 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4058 value
4059 }
4060 }
4061
4062 unsafe impl fidl::encoding::TypeMarker for PeriodicAdvertisingSyncOnErrorRequest {
4063 type Owned = Self;
4064
4065 #[inline(always)]
4066 fn inline_align(_context: fidl::encoding::Context) -> usize {
4067 4
4068 }
4069
4070 #[inline(always)]
4071 fn inline_size(_context: fidl::encoding::Context) -> usize {
4072 4
4073 }
4074 }
4075
4076 unsafe impl<D: fidl::encoding::ResourceDialect>
4077 fidl::encoding::Encode<PeriodicAdvertisingSyncOnErrorRequest, D>
4078 for &PeriodicAdvertisingSyncOnErrorRequest
4079 {
4080 #[inline]
4081 unsafe fn encode(
4082 self,
4083 encoder: &mut fidl::encoding::Encoder<'_, D>,
4084 offset: usize,
4085 _depth: fidl::encoding::Depth,
4086 ) -> fidl::Result<()> {
4087 encoder.debug_check_bounds::<PeriodicAdvertisingSyncOnErrorRequest>(offset);
4088 fidl::encoding::Encode::<PeriodicAdvertisingSyncOnErrorRequest, D>::encode(
4090 (<PeriodicAdvertisingSyncError as fidl::encoding::ValueTypeMarker>::borrow(
4091 &self.error,
4092 ),),
4093 encoder,
4094 offset,
4095 _depth,
4096 )
4097 }
4098 }
4099 unsafe impl<
4100 D: fidl::encoding::ResourceDialect,
4101 T0: fidl::encoding::Encode<PeriodicAdvertisingSyncError, D>,
4102 > fidl::encoding::Encode<PeriodicAdvertisingSyncOnErrorRequest, D> for (T0,)
4103 {
4104 #[inline]
4105 unsafe fn encode(
4106 self,
4107 encoder: &mut fidl::encoding::Encoder<'_, D>,
4108 offset: usize,
4109 depth: fidl::encoding::Depth,
4110 ) -> fidl::Result<()> {
4111 encoder.debug_check_bounds::<PeriodicAdvertisingSyncOnErrorRequest>(offset);
4112 self.0.encode(encoder, offset + 0, depth)?;
4116 Ok(())
4117 }
4118 }
4119
4120 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
4121 for PeriodicAdvertisingSyncOnErrorRequest
4122 {
4123 #[inline(always)]
4124 fn new_empty() -> Self {
4125 Self { error: fidl::new_empty!(PeriodicAdvertisingSyncError, D) }
4126 }
4127
4128 #[inline]
4129 unsafe fn decode(
4130 &mut self,
4131 decoder: &mut fidl::encoding::Decoder<'_, D>,
4132 offset: usize,
4133 _depth: fidl::encoding::Depth,
4134 ) -> fidl::Result<()> {
4135 decoder.debug_check_bounds::<Self>(offset);
4136 fidl::decode!(
4138 PeriodicAdvertisingSyncError,
4139 D,
4140 &mut self.error,
4141 decoder,
4142 offset + 0,
4143 _depth
4144 )?;
4145 Ok(())
4146 }
4147 }
4148
4149 impl fidl::encoding::ValueTypeMarker for RemoteDevice {
4150 type Borrowed<'a> = &'a Self;
4151 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4152 value
4153 }
4154 }
4155
4156 unsafe impl fidl::encoding::TypeMarker for RemoteDevice {
4157 type Owned = Self;
4158
4159 #[inline(always)]
4160 fn inline_align(_context: fidl::encoding::Context) -> usize {
4161 8
4162 }
4163
4164 #[inline(always)]
4165 fn inline_size(_context: fidl::encoding::Context) -> usize {
4166 40
4167 }
4168 }
4169
4170 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<RemoteDevice, D>
4171 for &RemoteDevice
4172 {
4173 #[inline]
4174 unsafe fn encode(
4175 self,
4176 encoder: &mut fidl::encoding::Encoder<'_, D>,
4177 offset: usize,
4178 _depth: fidl::encoding::Depth,
4179 ) -> fidl::Result<()> {
4180 encoder.debug_check_bounds::<RemoteDevice>(offset);
4181 fidl::encoding::Encode::<RemoteDevice, D>::encode(
4183 (
4184 <fidl::encoding::BoundedString<16> as fidl::encoding::ValueTypeMarker>::borrow(&self.identifier),
4185 <bool as fidl::encoding::ValueTypeMarker>::borrow(&self.connectable),
4186 <fidl::encoding::Boxed<fidl_fuchsia_bluetooth__common::Int8> as fidl::encoding::ValueTypeMarker>::borrow(&self.rssi),
4187 <fidl::encoding::Boxed<AdvertisingDataDeprecated> as fidl::encoding::ValueTypeMarker>::borrow(&self.advertising_data),
4188 ),
4189 encoder, offset, _depth
4190 )
4191 }
4192 }
4193 unsafe impl<
4194 D: fidl::encoding::ResourceDialect,
4195 T0: fidl::encoding::Encode<fidl::encoding::BoundedString<16>, D>,
4196 T1: fidl::encoding::Encode<bool, D>,
4197 T2: fidl::encoding::Encode<fidl::encoding::Boxed<fidl_fuchsia_bluetooth__common::Int8>, D>,
4198 T3: fidl::encoding::Encode<fidl::encoding::Boxed<AdvertisingDataDeprecated>, D>,
4199 > fidl::encoding::Encode<RemoteDevice, D> for (T0, T1, T2, T3)
4200 {
4201 #[inline]
4202 unsafe fn encode(
4203 self,
4204 encoder: &mut fidl::encoding::Encoder<'_, D>,
4205 offset: usize,
4206 depth: fidl::encoding::Depth,
4207 ) -> fidl::Result<()> {
4208 encoder.debug_check_bounds::<RemoteDevice>(offset);
4209 unsafe {
4212 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(16);
4213 (ptr as *mut u64).write_unaligned(0);
4214 }
4215 self.0.encode(encoder, offset + 0, depth)?;
4217 self.1.encode(encoder, offset + 16, depth)?;
4218 self.2.encode(encoder, offset + 24, depth)?;
4219 self.3.encode(encoder, offset + 32, depth)?;
4220 Ok(())
4221 }
4222 }
4223
4224 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for RemoteDevice {
4225 #[inline(always)]
4226 fn new_empty() -> Self {
4227 Self {
4228 identifier: fidl::new_empty!(fidl::encoding::BoundedString<16>, D),
4229 connectable: fidl::new_empty!(bool, D),
4230 rssi: fidl::new_empty!(
4231 fidl::encoding::Boxed<fidl_fuchsia_bluetooth__common::Int8>,
4232 D
4233 ),
4234 advertising_data: fidl::new_empty!(
4235 fidl::encoding::Boxed<AdvertisingDataDeprecated>,
4236 D
4237 ),
4238 }
4239 }
4240
4241 #[inline]
4242 unsafe fn decode(
4243 &mut self,
4244 decoder: &mut fidl::encoding::Decoder<'_, D>,
4245 offset: usize,
4246 _depth: fidl::encoding::Depth,
4247 ) -> fidl::Result<()> {
4248 decoder.debug_check_bounds::<Self>(offset);
4249 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(16) };
4251 let padval = unsafe { (ptr as *const u64).read_unaligned() };
4252 let mask = 0xffffffffffffff00u64;
4253 let maskedval = padval & mask;
4254 if maskedval != 0 {
4255 return Err(fidl::Error::NonZeroPadding {
4256 padding_start: offset + 16 + ((mask as u64).trailing_zeros() / 8) as usize,
4257 });
4258 }
4259 fidl::decode!(
4260 fidl::encoding::BoundedString<16>,
4261 D,
4262 &mut self.identifier,
4263 decoder,
4264 offset + 0,
4265 _depth
4266 )?;
4267 fidl::decode!(bool, D, &mut self.connectable, decoder, offset + 16, _depth)?;
4268 fidl::decode!(
4269 fidl::encoding::Boxed<fidl_fuchsia_bluetooth__common::Int8>,
4270 D,
4271 &mut self.rssi,
4272 decoder,
4273 offset + 24,
4274 _depth
4275 )?;
4276 fidl::decode!(
4277 fidl::encoding::Boxed<AdvertisingDataDeprecated>,
4278 D,
4279 &mut self.advertising_data,
4280 decoder,
4281 offset + 32,
4282 _depth
4283 )?;
4284 Ok(())
4285 }
4286 }
4287
4288 impl fidl::encoding::ValueTypeMarker for ScanFilter {
4289 type Borrowed<'a> = &'a Self;
4290 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4291 value
4292 }
4293 }
4294
4295 unsafe impl fidl::encoding::TypeMarker for ScanFilter {
4296 type Owned = Self;
4297
4298 #[inline(always)]
4299 fn inline_align(_context: fidl::encoding::Context) -> usize {
4300 8
4301 }
4302
4303 #[inline(always)]
4304 fn inline_size(_context: fidl::encoding::Context) -> usize {
4305 72
4306 }
4307 }
4308
4309 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ScanFilter, D>
4310 for &ScanFilter
4311 {
4312 #[inline]
4313 unsafe fn encode(
4314 self,
4315 encoder: &mut fidl::encoding::Encoder<'_, D>,
4316 offset: usize,
4317 _depth: fidl::encoding::Depth,
4318 ) -> fidl::Result<()> {
4319 encoder.debug_check_bounds::<ScanFilter>(offset);
4320 fidl::encoding::Encode::<ScanFilter, D>::encode(
4322 (
4323 <fidl::encoding::Optional<fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<36>>> as fidl::encoding::ValueTypeMarker>::borrow(&self.service_uuids),
4324 <fidl::encoding::Optional<fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<36>>> as fidl::encoding::ValueTypeMarker>::borrow(&self.service_data_uuids),
4325 <fidl::encoding::Boxed<fidl_fuchsia_bluetooth__common::UInt16> as fidl::encoding::ValueTypeMarker>::borrow(&self.manufacturer_identifier),
4326 <fidl::encoding::Boxed<fidl_fuchsia_bluetooth__common::Bool> as fidl::encoding::ValueTypeMarker>::borrow(&self.connectable),
4327 <fidl::encoding::Optional<fidl::encoding::BoundedString<248>> as fidl::encoding::ValueTypeMarker>::borrow(&self.name_substring),
4328 <fidl::encoding::Boxed<fidl_fuchsia_bluetooth__common::Int8> as fidl::encoding::ValueTypeMarker>::borrow(&self.max_path_loss),
4329 ),
4330 encoder, offset, _depth
4331 )
4332 }
4333 }
4334 unsafe impl<
4335 D: fidl::encoding::ResourceDialect,
4336 T0: fidl::encoding::Encode<
4337 fidl::encoding::Optional<
4338 fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<36>>,
4339 >,
4340 D,
4341 >,
4342 T1: fidl::encoding::Encode<
4343 fidl::encoding::Optional<
4344 fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<36>>,
4345 >,
4346 D,
4347 >,
4348 T2: fidl::encoding::Encode<fidl::encoding::Boxed<fidl_fuchsia_bluetooth__common::UInt16>, D>,
4349 T3: fidl::encoding::Encode<fidl::encoding::Boxed<fidl_fuchsia_bluetooth__common::Bool>, D>,
4350 T4: fidl::encoding::Encode<fidl::encoding::Optional<fidl::encoding::BoundedString<248>>, D>,
4351 T5: fidl::encoding::Encode<fidl::encoding::Boxed<fidl_fuchsia_bluetooth__common::Int8>, D>,
4352 > fidl::encoding::Encode<ScanFilter, D> for (T0, T1, T2, T3, T4, T5)
4353 {
4354 #[inline]
4355 unsafe fn encode(
4356 self,
4357 encoder: &mut fidl::encoding::Encoder<'_, D>,
4358 offset: usize,
4359 depth: fidl::encoding::Depth,
4360 ) -> fidl::Result<()> {
4361 encoder.debug_check_bounds::<ScanFilter>(offset);
4362 self.0.encode(encoder, offset + 0, depth)?;
4366 self.1.encode(encoder, offset + 16, depth)?;
4367 self.2.encode(encoder, offset + 32, depth)?;
4368 self.3.encode(encoder, offset + 40, depth)?;
4369 self.4.encode(encoder, offset + 48, depth)?;
4370 self.5.encode(encoder, offset + 64, depth)?;
4371 Ok(())
4372 }
4373 }
4374
4375 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ScanFilter {
4376 #[inline(always)]
4377 fn new_empty() -> Self {
4378 Self {
4379 service_uuids: fidl::new_empty!(
4380 fidl::encoding::Optional<
4381 fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<36>>,
4382 >,
4383 D
4384 ),
4385 service_data_uuids: fidl::new_empty!(
4386 fidl::encoding::Optional<
4387 fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<36>>,
4388 >,
4389 D
4390 ),
4391 manufacturer_identifier: fidl::new_empty!(
4392 fidl::encoding::Boxed<fidl_fuchsia_bluetooth__common::UInt16>,
4393 D
4394 ),
4395 connectable: fidl::new_empty!(
4396 fidl::encoding::Boxed<fidl_fuchsia_bluetooth__common::Bool>,
4397 D
4398 ),
4399 name_substring: fidl::new_empty!(
4400 fidl::encoding::Optional<fidl::encoding::BoundedString<248>>,
4401 D
4402 ),
4403 max_path_loss: fidl::new_empty!(
4404 fidl::encoding::Boxed<fidl_fuchsia_bluetooth__common::Int8>,
4405 D
4406 ),
4407 }
4408 }
4409
4410 #[inline]
4411 unsafe fn decode(
4412 &mut self,
4413 decoder: &mut fidl::encoding::Decoder<'_, D>,
4414 offset: usize,
4415 _depth: fidl::encoding::Depth,
4416 ) -> fidl::Result<()> {
4417 decoder.debug_check_bounds::<Self>(offset);
4418 fidl::decode!(
4420 fidl::encoding::Optional<
4421 fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<36>>,
4422 >,
4423 D,
4424 &mut self.service_uuids,
4425 decoder,
4426 offset + 0,
4427 _depth
4428 )?;
4429 fidl::decode!(
4430 fidl::encoding::Optional<
4431 fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<36>>,
4432 >,
4433 D,
4434 &mut self.service_data_uuids,
4435 decoder,
4436 offset + 16,
4437 _depth
4438 )?;
4439 fidl::decode!(
4440 fidl::encoding::Boxed<fidl_fuchsia_bluetooth__common::UInt16>,
4441 D,
4442 &mut self.manufacturer_identifier,
4443 decoder,
4444 offset + 32,
4445 _depth
4446 )?;
4447 fidl::decode!(
4448 fidl::encoding::Boxed<fidl_fuchsia_bluetooth__common::Bool>,
4449 D,
4450 &mut self.connectable,
4451 decoder,
4452 offset + 40,
4453 _depth
4454 )?;
4455 fidl::decode!(
4456 fidl::encoding::Optional<fidl::encoding::BoundedString<248>>,
4457 D,
4458 &mut self.name_substring,
4459 decoder,
4460 offset + 48,
4461 _depth
4462 )?;
4463 fidl::decode!(
4464 fidl::encoding::Boxed<fidl_fuchsia_bluetooth__common::Int8>,
4465 D,
4466 &mut self.max_path_loss,
4467 decoder,
4468 offset + 64,
4469 _depth
4470 )?;
4471 Ok(())
4472 }
4473 }
4474
4475 impl fidl::encoding::ValueTypeMarker for ScanResultWatcherWatchResponse {
4476 type Borrowed<'a> = &'a Self;
4477 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4478 value
4479 }
4480 }
4481
4482 unsafe impl fidl::encoding::TypeMarker for ScanResultWatcherWatchResponse {
4483 type Owned = Self;
4484
4485 #[inline(always)]
4486 fn inline_align(_context: fidl::encoding::Context) -> usize {
4487 8
4488 }
4489
4490 #[inline(always)]
4491 fn inline_size(_context: fidl::encoding::Context) -> usize {
4492 16
4493 }
4494 }
4495
4496 unsafe impl<D: fidl::encoding::ResourceDialect>
4497 fidl::encoding::Encode<ScanResultWatcherWatchResponse, D>
4498 for &ScanResultWatcherWatchResponse
4499 {
4500 #[inline]
4501 unsafe fn encode(
4502 self,
4503 encoder: &mut fidl::encoding::Encoder<'_, D>,
4504 offset: usize,
4505 _depth: fidl::encoding::Depth,
4506 ) -> fidl::Result<()> {
4507 encoder.debug_check_bounds::<ScanResultWatcherWatchResponse>(offset);
4508 fidl::encoding::Encode::<ScanResultWatcherWatchResponse, D>::encode(
4510 (
4511 <fidl::encoding::UnboundedVector<Peer> as fidl::encoding::ValueTypeMarker>::borrow(&self.updated),
4512 ),
4513 encoder, offset, _depth
4514 )
4515 }
4516 }
4517 unsafe impl<
4518 D: fidl::encoding::ResourceDialect,
4519 T0: fidl::encoding::Encode<fidl::encoding::UnboundedVector<Peer>, D>,
4520 > fidl::encoding::Encode<ScanResultWatcherWatchResponse, D> for (T0,)
4521 {
4522 #[inline]
4523 unsafe fn encode(
4524 self,
4525 encoder: &mut fidl::encoding::Encoder<'_, D>,
4526 offset: usize,
4527 depth: fidl::encoding::Depth,
4528 ) -> fidl::Result<()> {
4529 encoder.debug_check_bounds::<ScanResultWatcherWatchResponse>(offset);
4530 self.0.encode(encoder, offset + 0, depth)?;
4534 Ok(())
4535 }
4536 }
4537
4538 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
4539 for ScanResultWatcherWatchResponse
4540 {
4541 #[inline(always)]
4542 fn new_empty() -> Self {
4543 Self { updated: fidl::new_empty!(fidl::encoding::UnboundedVector<Peer>, D) }
4544 }
4545
4546 #[inline]
4547 unsafe fn decode(
4548 &mut self,
4549 decoder: &mut fidl::encoding::Decoder<'_, D>,
4550 offset: usize,
4551 _depth: fidl::encoding::Depth,
4552 ) -> fidl::Result<()> {
4553 decoder.debug_check_bounds::<Self>(offset);
4554 fidl::decode!(
4556 fidl::encoding::UnboundedVector<Peer>,
4557 D,
4558 &mut self.updated,
4559 decoder,
4560 offset + 0,
4561 _depth
4562 )?;
4563 Ok(())
4564 }
4565 }
4566
4567 impl fidl::encoding::ValueTypeMarker for ServiceData {
4568 type Borrowed<'a> = &'a Self;
4569 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4570 value
4571 }
4572 }
4573
4574 unsafe impl fidl::encoding::TypeMarker for ServiceData {
4575 type Owned = Self;
4576
4577 #[inline(always)]
4578 fn inline_align(_context: fidl::encoding::Context) -> usize {
4579 8
4580 }
4581
4582 #[inline(always)]
4583 fn inline_size(_context: fidl::encoding::Context) -> usize {
4584 32
4585 }
4586 }
4587
4588 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ServiceData, D>
4589 for &ServiceData
4590 {
4591 #[inline]
4592 unsafe fn encode(
4593 self,
4594 encoder: &mut fidl::encoding::Encoder<'_, D>,
4595 offset: usize,
4596 _depth: fidl::encoding::Depth,
4597 ) -> fidl::Result<()> {
4598 encoder.debug_check_bounds::<ServiceData>(offset);
4599 fidl::encoding::Encode::<ServiceData, D>::encode(
4601 (
4602 <fidl_fuchsia_bluetooth__common::Uuid as fidl::encoding::ValueTypeMarker>::borrow(&self.uuid),
4603 <fidl::encoding::Vector<u8, 252> as fidl::encoding::ValueTypeMarker>::borrow(&self.data),
4604 ),
4605 encoder, offset, _depth
4606 )
4607 }
4608 }
4609 unsafe impl<
4610 D: fidl::encoding::ResourceDialect,
4611 T0: fidl::encoding::Encode<fidl_fuchsia_bluetooth__common::Uuid, D>,
4612 T1: fidl::encoding::Encode<fidl::encoding::Vector<u8, 252>, D>,
4613 > fidl::encoding::Encode<ServiceData, D> for (T0, T1)
4614 {
4615 #[inline]
4616 unsafe fn encode(
4617 self,
4618 encoder: &mut fidl::encoding::Encoder<'_, D>,
4619 offset: usize,
4620 depth: fidl::encoding::Depth,
4621 ) -> fidl::Result<()> {
4622 encoder.debug_check_bounds::<ServiceData>(offset);
4623 self.0.encode(encoder, offset + 0, depth)?;
4627 self.1.encode(encoder, offset + 16, depth)?;
4628 Ok(())
4629 }
4630 }
4631
4632 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ServiceData {
4633 #[inline(always)]
4634 fn new_empty() -> Self {
4635 Self {
4636 uuid: fidl::new_empty!(fidl_fuchsia_bluetooth__common::Uuid, D),
4637 data: fidl::new_empty!(fidl::encoding::Vector<u8, 252>, D),
4638 }
4639 }
4640
4641 #[inline]
4642 unsafe fn decode(
4643 &mut self,
4644 decoder: &mut fidl::encoding::Decoder<'_, D>,
4645 offset: usize,
4646 _depth: fidl::encoding::Depth,
4647 ) -> fidl::Result<()> {
4648 decoder.debug_check_bounds::<Self>(offset);
4649 fidl::decode!(
4651 fidl_fuchsia_bluetooth__common::Uuid,
4652 D,
4653 &mut self.uuid,
4654 decoder,
4655 offset + 0,
4656 _depth
4657 )?;
4658 fidl::decode!(fidl::encoding::Vector<u8, 252>, D, &mut self.data, decoder, offset + 16, _depth)?;
4659 Ok(())
4660 }
4661 }
4662
4663 impl fidl::encoding::ValueTypeMarker for ServiceDataEntry {
4664 type Borrowed<'a> = &'a Self;
4665 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4666 value
4667 }
4668 }
4669
4670 unsafe impl fidl::encoding::TypeMarker for ServiceDataEntry {
4671 type Owned = Self;
4672
4673 #[inline(always)]
4674 fn inline_align(_context: fidl::encoding::Context) -> usize {
4675 8
4676 }
4677
4678 #[inline(always)]
4679 fn inline_size(_context: fidl::encoding::Context) -> usize {
4680 32
4681 }
4682 }
4683
4684 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ServiceDataEntry, D>
4685 for &ServiceDataEntry
4686 {
4687 #[inline]
4688 unsafe fn encode(
4689 self,
4690 encoder: &mut fidl::encoding::Encoder<'_, D>,
4691 offset: usize,
4692 _depth: fidl::encoding::Depth,
4693 ) -> fidl::Result<()> {
4694 encoder.debug_check_bounds::<ServiceDataEntry>(offset);
4695 fidl::encoding::Encode::<ServiceDataEntry, D>::encode(
4697 (
4698 <fidl::encoding::BoundedString<36> as fidl::encoding::ValueTypeMarker>::borrow(&self.uuid),
4699 <fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow(&self.data),
4700 ),
4701 encoder, offset, _depth
4702 )
4703 }
4704 }
4705 unsafe impl<
4706 D: fidl::encoding::ResourceDialect,
4707 T0: fidl::encoding::Encode<fidl::encoding::BoundedString<36>, D>,
4708 T1: fidl::encoding::Encode<fidl::encoding::UnboundedVector<u8>, D>,
4709 > fidl::encoding::Encode<ServiceDataEntry, D> for (T0, T1)
4710 {
4711 #[inline]
4712 unsafe fn encode(
4713 self,
4714 encoder: &mut fidl::encoding::Encoder<'_, D>,
4715 offset: usize,
4716 depth: fidl::encoding::Depth,
4717 ) -> fidl::Result<()> {
4718 encoder.debug_check_bounds::<ServiceDataEntry>(offset);
4719 self.0.encode(encoder, offset + 0, depth)?;
4723 self.1.encode(encoder, offset + 16, depth)?;
4724 Ok(())
4725 }
4726 }
4727
4728 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ServiceDataEntry {
4729 #[inline(always)]
4730 fn new_empty() -> Self {
4731 Self {
4732 uuid: fidl::new_empty!(fidl::encoding::BoundedString<36>, D),
4733 data: fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D),
4734 }
4735 }
4736
4737 #[inline]
4738 unsafe fn decode(
4739 &mut self,
4740 decoder: &mut fidl::encoding::Decoder<'_, D>,
4741 offset: usize,
4742 _depth: fidl::encoding::Depth,
4743 ) -> fidl::Result<()> {
4744 decoder.debug_check_bounds::<Self>(offset);
4745 fidl::decode!(
4747 fidl::encoding::BoundedString<36>,
4748 D,
4749 &mut self.uuid,
4750 decoder,
4751 offset + 0,
4752 _depth
4753 )?;
4754 fidl::decode!(
4755 fidl::encoding::UnboundedVector<u8>,
4756 D,
4757 &mut self.data,
4758 decoder,
4759 offset + 16,
4760 _depth
4761 )?;
4762 Ok(())
4763 }
4764 }
4765
4766 impl AcceptedChannelParameters {
4767 #[inline(always)]
4768 fn max_ordinal_present(&self) -> u64 {
4769 if let Some(_) = self.max_packet_size {
4770 return 2;
4771 }
4772 if let Some(_) = self.accepted_channel_modes {
4773 return 1;
4774 }
4775 0
4776 }
4777 }
4778
4779 impl fidl::encoding::ValueTypeMarker for AcceptedChannelParameters {
4780 type Borrowed<'a> = &'a Self;
4781 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4782 value
4783 }
4784 }
4785
4786 unsafe impl fidl::encoding::TypeMarker for AcceptedChannelParameters {
4787 type Owned = Self;
4788
4789 #[inline(always)]
4790 fn inline_align(_context: fidl::encoding::Context) -> usize {
4791 8
4792 }
4793
4794 #[inline(always)]
4795 fn inline_size(_context: fidl::encoding::Context) -> usize {
4796 16
4797 }
4798 }
4799
4800 unsafe impl<D: fidl::encoding::ResourceDialect>
4801 fidl::encoding::Encode<AcceptedChannelParameters, D> for &AcceptedChannelParameters
4802 {
4803 unsafe fn encode(
4804 self,
4805 encoder: &mut fidl::encoding::Encoder<'_, D>,
4806 offset: usize,
4807 mut depth: fidl::encoding::Depth,
4808 ) -> fidl::Result<()> {
4809 encoder.debug_check_bounds::<AcceptedChannelParameters>(offset);
4810 let max_ordinal: u64 = self.max_ordinal_present();
4812 encoder.write_num(max_ordinal, offset);
4813 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
4814 if max_ordinal == 0 {
4816 return Ok(());
4817 }
4818 depth.increment()?;
4819 let envelope_size = 8;
4820 let bytes_len = max_ordinal as usize * envelope_size;
4821 #[allow(unused_variables)]
4822 let offset = encoder.out_of_line_offset(bytes_len);
4823 let mut _prev_end_offset: usize = 0;
4824 if 1 > max_ordinal {
4825 return Ok(());
4826 }
4827
4828 let cur_offset: usize = (1 - 1) * envelope_size;
4831
4832 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4834
4835 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<fidl_fuchsia_bluetooth__common::ChannelMode>, D>(
4840 self.accepted_channel_modes.as_ref().map(<fidl::encoding::UnboundedVector<fidl_fuchsia_bluetooth__common::ChannelMode> as fidl::encoding::ValueTypeMarker>::borrow),
4841 encoder, offset + cur_offset, depth
4842 )?;
4843
4844 _prev_end_offset = cur_offset + envelope_size;
4845 if 2 > max_ordinal {
4846 return Ok(());
4847 }
4848
4849 let cur_offset: usize = (2 - 1) * envelope_size;
4852
4853 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4855
4856 fidl::encoding::encode_in_envelope_optional::<u16, D>(
4861 self.max_packet_size.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
4862 encoder,
4863 offset + cur_offset,
4864 depth,
4865 )?;
4866
4867 _prev_end_offset = cur_offset + envelope_size;
4868
4869 Ok(())
4870 }
4871 }
4872
4873 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
4874 for AcceptedChannelParameters
4875 {
4876 #[inline(always)]
4877 fn new_empty() -> Self {
4878 Self::default()
4879 }
4880
4881 unsafe fn decode(
4882 &mut self,
4883 decoder: &mut fidl::encoding::Decoder<'_, D>,
4884 offset: usize,
4885 mut depth: fidl::encoding::Depth,
4886 ) -> fidl::Result<()> {
4887 decoder.debug_check_bounds::<Self>(offset);
4888 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
4889 None => return Err(fidl::Error::NotNullable),
4890 Some(len) => len,
4891 };
4892 if len == 0 {
4894 return Ok(());
4895 };
4896 depth.increment()?;
4897 let envelope_size = 8;
4898 let bytes_len = len * envelope_size;
4899 let offset = decoder.out_of_line_offset(bytes_len)?;
4900 let mut _next_ordinal_to_read = 0;
4902 let mut next_offset = offset;
4903 let end_offset = offset + bytes_len;
4904 _next_ordinal_to_read += 1;
4905 if next_offset >= end_offset {
4906 return Ok(());
4907 }
4908
4909 while _next_ordinal_to_read < 1 {
4911 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4912 _next_ordinal_to_read += 1;
4913 next_offset += envelope_size;
4914 }
4915
4916 let next_out_of_line = decoder.next_out_of_line();
4917 let handles_before = decoder.remaining_handles();
4918 if let Some((inlined, num_bytes, num_handles)) =
4919 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4920 {
4921 let member_inline_size = <fidl::encoding::UnboundedVector<
4922 fidl_fuchsia_bluetooth__common::ChannelMode,
4923 > as fidl::encoding::TypeMarker>::inline_size(
4924 decoder.context
4925 );
4926 if inlined != (member_inline_size <= 4) {
4927 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4928 }
4929 let inner_offset;
4930 let mut inner_depth = depth.clone();
4931 if inlined {
4932 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4933 inner_offset = next_offset;
4934 } else {
4935 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4936 inner_depth.increment()?;
4937 }
4938 let val_ref = self.accepted_channel_modes.get_or_insert_with(|| {
4939 fidl::new_empty!(
4940 fidl::encoding::UnboundedVector<
4941 fidl_fuchsia_bluetooth__common::ChannelMode,
4942 >,
4943 D
4944 )
4945 });
4946 fidl::decode!(
4947 fidl::encoding::UnboundedVector<fidl_fuchsia_bluetooth__common::ChannelMode>,
4948 D,
4949 val_ref,
4950 decoder,
4951 inner_offset,
4952 inner_depth
4953 )?;
4954 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4955 {
4956 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4957 }
4958 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4959 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4960 }
4961 }
4962
4963 next_offset += envelope_size;
4964 _next_ordinal_to_read += 1;
4965 if next_offset >= end_offset {
4966 return Ok(());
4967 }
4968
4969 while _next_ordinal_to_read < 2 {
4971 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4972 _next_ordinal_to_read += 1;
4973 next_offset += envelope_size;
4974 }
4975
4976 let next_out_of_line = decoder.next_out_of_line();
4977 let handles_before = decoder.remaining_handles();
4978 if let Some((inlined, num_bytes, num_handles)) =
4979 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4980 {
4981 let member_inline_size =
4982 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4983 if inlined != (member_inline_size <= 4) {
4984 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4985 }
4986 let inner_offset;
4987 let mut inner_depth = depth.clone();
4988 if inlined {
4989 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4990 inner_offset = next_offset;
4991 } else {
4992 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4993 inner_depth.increment()?;
4994 }
4995 let val_ref = self.max_packet_size.get_or_insert_with(|| fidl::new_empty!(u16, D));
4996 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
4997 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4998 {
4999 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5000 }
5001 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5002 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5003 }
5004 }
5005
5006 next_offset += envelope_size;
5007
5008 while next_offset < end_offset {
5010 _next_ordinal_to_read += 1;
5011 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5012 next_offset += envelope_size;
5013 }
5014
5015 Ok(())
5016 }
5017 }
5018
5019 impl AdvertisingData {
5020 #[inline(always)]
5021 fn max_ordinal_present(&self) -> u64 {
5022 if let Some(_) = self.broadcast_name {
5023 return 10;
5024 }
5025 if let Some(_) = self.resolvable_set_identifier {
5026 return 9;
5027 }
5028 if let Some(_) = self.include_tx_power_level {
5029 return 8;
5030 }
5031 if let Some(_) = self.uris {
5032 return 7;
5033 }
5034 if let Some(_) = self.manufacturer_data {
5035 return 6;
5036 }
5037 if let Some(_) = self.service_data {
5038 return 5;
5039 }
5040 if let Some(_) = self.service_uuids {
5041 return 4;
5042 }
5043 if let Some(_) = self.tx_power_level {
5044 return 3;
5045 }
5046 if let Some(_) = self.appearance {
5047 return 2;
5048 }
5049 if let Some(_) = self.name {
5050 return 1;
5051 }
5052 0
5053 }
5054 }
5055
5056 impl fidl::encoding::ValueTypeMarker for AdvertisingData {
5057 type Borrowed<'a> = &'a Self;
5058 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5059 value
5060 }
5061 }
5062
5063 unsafe impl fidl::encoding::TypeMarker for AdvertisingData {
5064 type Owned = Self;
5065
5066 #[inline(always)]
5067 fn inline_align(_context: fidl::encoding::Context) -> usize {
5068 8
5069 }
5070
5071 #[inline(always)]
5072 fn inline_size(_context: fidl::encoding::Context) -> usize {
5073 16
5074 }
5075 }
5076
5077 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<AdvertisingData, D>
5078 for &AdvertisingData
5079 {
5080 unsafe fn encode(
5081 self,
5082 encoder: &mut fidl::encoding::Encoder<'_, D>,
5083 offset: usize,
5084 mut depth: fidl::encoding::Depth,
5085 ) -> fidl::Result<()> {
5086 encoder.debug_check_bounds::<AdvertisingData>(offset);
5087 let max_ordinal: u64 = self.max_ordinal_present();
5089 encoder.write_num(max_ordinal, offset);
5090 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
5091 if max_ordinal == 0 {
5093 return Ok(());
5094 }
5095 depth.increment()?;
5096 let envelope_size = 8;
5097 let bytes_len = max_ordinal as usize * envelope_size;
5098 #[allow(unused_variables)]
5099 let offset = encoder.out_of_line_offset(bytes_len);
5100 let mut _prev_end_offset: usize = 0;
5101 if 1 > max_ordinal {
5102 return Ok(());
5103 }
5104
5105 let cur_offset: usize = (1 - 1) * envelope_size;
5108
5109 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5111
5112 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<248>, D>(
5117 self.name.as_ref().map(
5118 <fidl::encoding::BoundedString<248> as fidl::encoding::ValueTypeMarker>::borrow,
5119 ),
5120 encoder,
5121 offset + cur_offset,
5122 depth,
5123 )?;
5124
5125 _prev_end_offset = cur_offset + envelope_size;
5126 if 2 > max_ordinal {
5127 return Ok(());
5128 }
5129
5130 let cur_offset: usize = (2 - 1) * envelope_size;
5133
5134 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5136
5137 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_bluetooth__common::Appearance, D>(
5142 self.appearance.as_ref().map(<fidl_fuchsia_bluetooth__common::Appearance as fidl::encoding::ValueTypeMarker>::borrow),
5143 encoder, offset + cur_offset, depth
5144 )?;
5145
5146 _prev_end_offset = cur_offset + envelope_size;
5147 if 3 > max_ordinal {
5148 return Ok(());
5149 }
5150
5151 let cur_offset: usize = (3 - 1) * envelope_size;
5154
5155 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5157
5158 fidl::encoding::encode_in_envelope_optional::<i8, D>(
5163 self.tx_power_level.as_ref().map(<i8 as fidl::encoding::ValueTypeMarker>::borrow),
5164 encoder,
5165 offset + cur_offset,
5166 depth,
5167 )?;
5168
5169 _prev_end_offset = cur_offset + envelope_size;
5170 if 4 > max_ordinal {
5171 return Ok(());
5172 }
5173
5174 let cur_offset: usize = (4 - 1) * envelope_size;
5177
5178 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5180
5181 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<fidl_fuchsia_bluetooth__common::Uuid>, D>(
5186 self.service_uuids.as_ref().map(<fidl::encoding::UnboundedVector<fidl_fuchsia_bluetooth__common::Uuid> as fidl::encoding::ValueTypeMarker>::borrow),
5187 encoder, offset + cur_offset, depth
5188 )?;
5189
5190 _prev_end_offset = cur_offset + envelope_size;
5191 if 5 > max_ordinal {
5192 return Ok(());
5193 }
5194
5195 let cur_offset: usize = (5 - 1) * envelope_size;
5198
5199 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5201
5202 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<ServiceData>, D>(
5207 self.service_data.as_ref().map(<fidl::encoding::UnboundedVector<ServiceData> as fidl::encoding::ValueTypeMarker>::borrow),
5208 encoder, offset + cur_offset, depth
5209 )?;
5210
5211 _prev_end_offset = cur_offset + envelope_size;
5212 if 6 > max_ordinal {
5213 return Ok(());
5214 }
5215
5216 let cur_offset: usize = (6 - 1) * envelope_size;
5219
5220 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5222
5223 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<ManufacturerData>, D>(
5228 self.manufacturer_data.as_ref().map(<fidl::encoding::UnboundedVector<ManufacturerData> as fidl::encoding::ValueTypeMarker>::borrow),
5229 encoder, offset + cur_offset, depth
5230 )?;
5231
5232 _prev_end_offset = cur_offset + envelope_size;
5233 if 7 > max_ordinal {
5234 return Ok(());
5235 }
5236
5237 let cur_offset: usize = (7 - 1) * envelope_size;
5240
5241 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5243
5244 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<278>>, D>(
5249 self.uris.as_ref().map(<fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<278>> as fidl::encoding::ValueTypeMarker>::borrow),
5250 encoder, offset + cur_offset, depth
5251 )?;
5252
5253 _prev_end_offset = cur_offset + envelope_size;
5254 if 8 > max_ordinal {
5255 return Ok(());
5256 }
5257
5258 let cur_offset: usize = (8 - 1) * envelope_size;
5261
5262 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5264
5265 fidl::encoding::encode_in_envelope_optional::<bool, D>(
5270 self.include_tx_power_level
5271 .as_ref()
5272 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
5273 encoder,
5274 offset + cur_offset,
5275 depth,
5276 )?;
5277
5278 _prev_end_offset = cur_offset + envelope_size;
5279 if 9 > max_ordinal {
5280 return Ok(());
5281 }
5282
5283 let cur_offset: usize = (9 - 1) * envelope_size;
5286
5287 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5289
5290 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
5295 self.resolvable_set_identifier
5296 .as_ref()
5297 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
5298 encoder,
5299 offset + cur_offset,
5300 depth,
5301 )?;
5302
5303 _prev_end_offset = cur_offset + envelope_size;
5304 if 10 > max_ordinal {
5305 return Ok(());
5306 }
5307
5308 let cur_offset: usize = (10 - 1) * envelope_size;
5311
5312 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5314
5315 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<128>, D>(
5320 self.broadcast_name.as_ref().map(
5321 <fidl::encoding::BoundedString<128> as fidl::encoding::ValueTypeMarker>::borrow,
5322 ),
5323 encoder,
5324 offset + cur_offset,
5325 depth,
5326 )?;
5327
5328 _prev_end_offset = cur_offset + envelope_size;
5329
5330 Ok(())
5331 }
5332 }
5333
5334 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for AdvertisingData {
5335 #[inline(always)]
5336 fn new_empty() -> Self {
5337 Self::default()
5338 }
5339
5340 unsafe fn decode(
5341 &mut self,
5342 decoder: &mut fidl::encoding::Decoder<'_, D>,
5343 offset: usize,
5344 mut depth: fidl::encoding::Depth,
5345 ) -> fidl::Result<()> {
5346 decoder.debug_check_bounds::<Self>(offset);
5347 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
5348 None => return Err(fidl::Error::NotNullable),
5349 Some(len) => len,
5350 };
5351 if len == 0 {
5353 return Ok(());
5354 };
5355 depth.increment()?;
5356 let envelope_size = 8;
5357 let bytes_len = len * envelope_size;
5358 let offset = decoder.out_of_line_offset(bytes_len)?;
5359 let mut _next_ordinal_to_read = 0;
5361 let mut next_offset = offset;
5362 let end_offset = offset + bytes_len;
5363 _next_ordinal_to_read += 1;
5364 if next_offset >= end_offset {
5365 return Ok(());
5366 }
5367
5368 while _next_ordinal_to_read < 1 {
5370 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5371 _next_ordinal_to_read += 1;
5372 next_offset += envelope_size;
5373 }
5374
5375 let next_out_of_line = decoder.next_out_of_line();
5376 let handles_before = decoder.remaining_handles();
5377 if let Some((inlined, num_bytes, num_handles)) =
5378 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5379 {
5380 let member_inline_size =
5381 <fidl::encoding::BoundedString<248> as fidl::encoding::TypeMarker>::inline_size(
5382 decoder.context,
5383 );
5384 if inlined != (member_inline_size <= 4) {
5385 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5386 }
5387 let inner_offset;
5388 let mut inner_depth = depth.clone();
5389 if inlined {
5390 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5391 inner_offset = next_offset;
5392 } else {
5393 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5394 inner_depth.increment()?;
5395 }
5396 let val_ref = self
5397 .name
5398 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<248>, D));
5399 fidl::decode!(
5400 fidl::encoding::BoundedString<248>,
5401 D,
5402 val_ref,
5403 decoder,
5404 inner_offset,
5405 inner_depth
5406 )?;
5407 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5408 {
5409 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5410 }
5411 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5412 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5413 }
5414 }
5415
5416 next_offset += envelope_size;
5417 _next_ordinal_to_read += 1;
5418 if next_offset >= end_offset {
5419 return Ok(());
5420 }
5421
5422 while _next_ordinal_to_read < 2 {
5424 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5425 _next_ordinal_to_read += 1;
5426 next_offset += envelope_size;
5427 }
5428
5429 let next_out_of_line = decoder.next_out_of_line();
5430 let handles_before = decoder.remaining_handles();
5431 if let Some((inlined, num_bytes, num_handles)) =
5432 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5433 {
5434 let member_inline_size = <fidl_fuchsia_bluetooth__common::Appearance as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5435 if inlined != (member_inline_size <= 4) {
5436 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5437 }
5438 let inner_offset;
5439 let mut inner_depth = depth.clone();
5440 if inlined {
5441 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5442 inner_offset = next_offset;
5443 } else {
5444 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5445 inner_depth.increment()?;
5446 }
5447 let val_ref = self.appearance.get_or_insert_with(|| {
5448 fidl::new_empty!(fidl_fuchsia_bluetooth__common::Appearance, D)
5449 });
5450 fidl::decode!(
5451 fidl_fuchsia_bluetooth__common::Appearance,
5452 D,
5453 val_ref,
5454 decoder,
5455 inner_offset,
5456 inner_depth
5457 )?;
5458 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5459 {
5460 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5461 }
5462 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5463 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5464 }
5465 }
5466
5467 next_offset += envelope_size;
5468 _next_ordinal_to_read += 1;
5469 if next_offset >= end_offset {
5470 return Ok(());
5471 }
5472
5473 while _next_ordinal_to_read < 3 {
5475 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5476 _next_ordinal_to_read += 1;
5477 next_offset += envelope_size;
5478 }
5479
5480 let next_out_of_line = decoder.next_out_of_line();
5481 let handles_before = decoder.remaining_handles();
5482 if let Some((inlined, num_bytes, num_handles)) =
5483 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5484 {
5485 let member_inline_size =
5486 <i8 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5487 if inlined != (member_inline_size <= 4) {
5488 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5489 }
5490 let inner_offset;
5491 let mut inner_depth = depth.clone();
5492 if inlined {
5493 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5494 inner_offset = next_offset;
5495 } else {
5496 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5497 inner_depth.increment()?;
5498 }
5499 let val_ref = self.tx_power_level.get_or_insert_with(|| fidl::new_empty!(i8, D));
5500 fidl::decode!(i8, D, val_ref, decoder, inner_offset, inner_depth)?;
5501 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5502 {
5503 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5504 }
5505 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5506 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5507 }
5508 }
5509
5510 next_offset += envelope_size;
5511 _next_ordinal_to_read += 1;
5512 if next_offset >= end_offset {
5513 return Ok(());
5514 }
5515
5516 while _next_ordinal_to_read < 4 {
5518 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5519 _next_ordinal_to_read += 1;
5520 next_offset += envelope_size;
5521 }
5522
5523 let next_out_of_line = decoder.next_out_of_line();
5524 let handles_before = decoder.remaining_handles();
5525 if let Some((inlined, num_bytes, num_handles)) =
5526 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5527 {
5528 let member_inline_size = <fidl::encoding::UnboundedVector<
5529 fidl_fuchsia_bluetooth__common::Uuid,
5530 > as fidl::encoding::TypeMarker>::inline_size(
5531 decoder.context
5532 );
5533 if inlined != (member_inline_size <= 4) {
5534 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5535 }
5536 let inner_offset;
5537 let mut inner_depth = depth.clone();
5538 if inlined {
5539 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5540 inner_offset = next_offset;
5541 } else {
5542 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5543 inner_depth.increment()?;
5544 }
5545 let val_ref = self.service_uuids.get_or_insert_with(|| {
5546 fidl::new_empty!(
5547 fidl::encoding::UnboundedVector<fidl_fuchsia_bluetooth__common::Uuid>,
5548 D
5549 )
5550 });
5551 fidl::decode!(
5552 fidl::encoding::UnboundedVector<fidl_fuchsia_bluetooth__common::Uuid>,
5553 D,
5554 val_ref,
5555 decoder,
5556 inner_offset,
5557 inner_depth
5558 )?;
5559 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5560 {
5561 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5562 }
5563 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5564 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5565 }
5566 }
5567
5568 next_offset += envelope_size;
5569 _next_ordinal_to_read += 1;
5570 if next_offset >= end_offset {
5571 return Ok(());
5572 }
5573
5574 while _next_ordinal_to_read < 5 {
5576 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5577 _next_ordinal_to_read += 1;
5578 next_offset += envelope_size;
5579 }
5580
5581 let next_out_of_line = decoder.next_out_of_line();
5582 let handles_before = decoder.remaining_handles();
5583 if let Some((inlined, num_bytes, num_handles)) =
5584 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5585 {
5586 let member_inline_size = <fidl::encoding::UnboundedVector<ServiceData> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5587 if inlined != (member_inline_size <= 4) {
5588 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5589 }
5590 let inner_offset;
5591 let mut inner_depth = depth.clone();
5592 if inlined {
5593 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5594 inner_offset = next_offset;
5595 } else {
5596 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5597 inner_depth.increment()?;
5598 }
5599 let val_ref = self.service_data.get_or_insert_with(|| {
5600 fidl::new_empty!(fidl::encoding::UnboundedVector<ServiceData>, D)
5601 });
5602 fidl::decode!(
5603 fidl::encoding::UnboundedVector<ServiceData>,
5604 D,
5605 val_ref,
5606 decoder,
5607 inner_offset,
5608 inner_depth
5609 )?;
5610 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5611 {
5612 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5613 }
5614 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5615 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5616 }
5617 }
5618
5619 next_offset += envelope_size;
5620 _next_ordinal_to_read += 1;
5621 if next_offset >= end_offset {
5622 return Ok(());
5623 }
5624
5625 while _next_ordinal_to_read < 6 {
5627 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5628 _next_ordinal_to_read += 1;
5629 next_offset += envelope_size;
5630 }
5631
5632 let next_out_of_line = decoder.next_out_of_line();
5633 let handles_before = decoder.remaining_handles();
5634 if let Some((inlined, num_bytes, num_handles)) =
5635 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5636 {
5637 let member_inline_size = <fidl::encoding::UnboundedVector<ManufacturerData> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5638 if inlined != (member_inline_size <= 4) {
5639 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5640 }
5641 let inner_offset;
5642 let mut inner_depth = depth.clone();
5643 if inlined {
5644 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5645 inner_offset = next_offset;
5646 } else {
5647 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5648 inner_depth.increment()?;
5649 }
5650 let val_ref = self.manufacturer_data.get_or_insert_with(|| {
5651 fidl::new_empty!(fidl::encoding::UnboundedVector<ManufacturerData>, D)
5652 });
5653 fidl::decode!(
5654 fidl::encoding::UnboundedVector<ManufacturerData>,
5655 D,
5656 val_ref,
5657 decoder,
5658 inner_offset,
5659 inner_depth
5660 )?;
5661 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5662 {
5663 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5664 }
5665 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5666 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5667 }
5668 }
5669
5670 next_offset += envelope_size;
5671 _next_ordinal_to_read += 1;
5672 if next_offset >= end_offset {
5673 return Ok(());
5674 }
5675
5676 while _next_ordinal_to_read < 7 {
5678 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5679 _next_ordinal_to_read += 1;
5680 next_offset += envelope_size;
5681 }
5682
5683 let next_out_of_line = decoder.next_out_of_line();
5684 let handles_before = decoder.remaining_handles();
5685 if let Some((inlined, num_bytes, num_handles)) =
5686 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5687 {
5688 let member_inline_size = <fidl::encoding::UnboundedVector<
5689 fidl::encoding::BoundedString<278>,
5690 > as fidl::encoding::TypeMarker>::inline_size(
5691 decoder.context
5692 );
5693 if inlined != (member_inline_size <= 4) {
5694 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5695 }
5696 let inner_offset;
5697 let mut inner_depth = depth.clone();
5698 if inlined {
5699 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5700 inner_offset = next_offset;
5701 } else {
5702 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5703 inner_depth.increment()?;
5704 }
5705 let val_ref = self.uris.get_or_insert_with(|| {
5706 fidl::new_empty!(
5707 fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<278>>,
5708 D
5709 )
5710 });
5711 fidl::decode!(
5712 fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<278>>,
5713 D,
5714 val_ref,
5715 decoder,
5716 inner_offset,
5717 inner_depth
5718 )?;
5719 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5720 {
5721 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5722 }
5723 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5724 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5725 }
5726 }
5727
5728 next_offset += envelope_size;
5729 _next_ordinal_to_read += 1;
5730 if next_offset >= end_offset {
5731 return Ok(());
5732 }
5733
5734 while _next_ordinal_to_read < 8 {
5736 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5737 _next_ordinal_to_read += 1;
5738 next_offset += envelope_size;
5739 }
5740
5741 let next_out_of_line = decoder.next_out_of_line();
5742 let handles_before = decoder.remaining_handles();
5743 if let Some((inlined, num_bytes, num_handles)) =
5744 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5745 {
5746 let member_inline_size =
5747 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5748 if inlined != (member_inline_size <= 4) {
5749 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5750 }
5751 let inner_offset;
5752 let mut inner_depth = depth.clone();
5753 if inlined {
5754 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5755 inner_offset = next_offset;
5756 } else {
5757 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5758 inner_depth.increment()?;
5759 }
5760 let val_ref =
5761 self.include_tx_power_level.get_or_insert_with(|| fidl::new_empty!(bool, D));
5762 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
5763 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5764 {
5765 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5766 }
5767 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5768 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5769 }
5770 }
5771
5772 next_offset += envelope_size;
5773 _next_ordinal_to_read += 1;
5774 if next_offset >= end_offset {
5775 return Ok(());
5776 }
5777
5778 while _next_ordinal_to_read < 9 {
5780 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5781 _next_ordinal_to_read += 1;
5782 next_offset += envelope_size;
5783 }
5784
5785 let next_out_of_line = decoder.next_out_of_line();
5786 let handles_before = decoder.remaining_handles();
5787 if let Some((inlined, num_bytes, num_handles)) =
5788 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5789 {
5790 let member_inline_size =
5791 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
5792 decoder.context,
5793 );
5794 if inlined != (member_inline_size <= 4) {
5795 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5796 }
5797 let inner_offset;
5798 let mut inner_depth = depth.clone();
5799 if inlined {
5800 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5801 inner_offset = next_offset;
5802 } else {
5803 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5804 inner_depth.increment()?;
5805 }
5806 let val_ref = self
5807 .resolvable_set_identifier
5808 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
5809 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
5810 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5811 {
5812 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5813 }
5814 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5815 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5816 }
5817 }
5818
5819 next_offset += envelope_size;
5820 _next_ordinal_to_read += 1;
5821 if next_offset >= end_offset {
5822 return Ok(());
5823 }
5824
5825 while _next_ordinal_to_read < 10 {
5827 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5828 _next_ordinal_to_read += 1;
5829 next_offset += envelope_size;
5830 }
5831
5832 let next_out_of_line = decoder.next_out_of_line();
5833 let handles_before = decoder.remaining_handles();
5834 if let Some((inlined, num_bytes, num_handles)) =
5835 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5836 {
5837 let member_inline_size =
5838 <fidl::encoding::BoundedString<128> as fidl::encoding::TypeMarker>::inline_size(
5839 decoder.context,
5840 );
5841 if inlined != (member_inline_size <= 4) {
5842 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5843 }
5844 let inner_offset;
5845 let mut inner_depth = depth.clone();
5846 if inlined {
5847 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5848 inner_offset = next_offset;
5849 } else {
5850 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5851 inner_depth.increment()?;
5852 }
5853 let val_ref = self
5854 .broadcast_name
5855 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<128>, D));
5856 fidl::decode!(
5857 fidl::encoding::BoundedString<128>,
5858 D,
5859 val_ref,
5860 decoder,
5861 inner_offset,
5862 inner_depth
5863 )?;
5864 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5865 {
5866 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5867 }
5868 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5869 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5870 }
5871 }
5872
5873 next_offset += envelope_size;
5874
5875 while next_offset < end_offset {
5877 _next_ordinal_to_read += 1;
5878 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5879 next_offset += envelope_size;
5880 }
5881
5882 Ok(())
5883 }
5884 }
5885
5886 impl AdvertisingParameters {
5887 #[inline(always)]
5888 fn max_ordinal_present(&self) -> u64 {
5889 if let Some(_) = self.address_type {
5890 return 7;
5891 }
5892 if let Some(_) = self.advertising_procedure {
5893 return 6;
5894 }
5895 if let Some(_) = self.connection_options {
5896 return 5;
5897 }
5898 if let Some(_) = self.connectable {
5899 return 4;
5900 }
5901 if let Some(_) = self.mode_hint {
5902 return 3;
5903 }
5904 if let Some(_) = self.scan_response {
5905 return 2;
5906 }
5907 if let Some(_) = self.data {
5908 return 1;
5909 }
5910 0
5911 }
5912 }
5913
5914 impl fidl::encoding::ValueTypeMarker for AdvertisingParameters {
5915 type Borrowed<'a> = &'a Self;
5916 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5917 value
5918 }
5919 }
5920
5921 unsafe impl fidl::encoding::TypeMarker for AdvertisingParameters {
5922 type Owned = Self;
5923
5924 #[inline(always)]
5925 fn inline_align(_context: fidl::encoding::Context) -> usize {
5926 8
5927 }
5928
5929 #[inline(always)]
5930 fn inline_size(_context: fidl::encoding::Context) -> usize {
5931 16
5932 }
5933 }
5934
5935 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<AdvertisingParameters, D>
5936 for &AdvertisingParameters
5937 {
5938 unsafe fn encode(
5939 self,
5940 encoder: &mut fidl::encoding::Encoder<'_, D>,
5941 offset: usize,
5942 mut depth: fidl::encoding::Depth,
5943 ) -> fidl::Result<()> {
5944 encoder.debug_check_bounds::<AdvertisingParameters>(offset);
5945 let max_ordinal: u64 = self.max_ordinal_present();
5947 encoder.write_num(max_ordinal, offset);
5948 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
5949 if max_ordinal == 0 {
5951 return Ok(());
5952 }
5953 depth.increment()?;
5954 let envelope_size = 8;
5955 let bytes_len = max_ordinal as usize * envelope_size;
5956 #[allow(unused_variables)]
5957 let offset = encoder.out_of_line_offset(bytes_len);
5958 let mut _prev_end_offset: usize = 0;
5959 if 1 > max_ordinal {
5960 return Ok(());
5961 }
5962
5963 let cur_offset: usize = (1 - 1) * envelope_size;
5966
5967 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5969
5970 fidl::encoding::encode_in_envelope_optional::<AdvertisingData, D>(
5975 self.data
5976 .as_ref()
5977 .map(<AdvertisingData as fidl::encoding::ValueTypeMarker>::borrow),
5978 encoder,
5979 offset + cur_offset,
5980 depth,
5981 )?;
5982
5983 _prev_end_offset = cur_offset + envelope_size;
5984 if 2 > max_ordinal {
5985 return Ok(());
5986 }
5987
5988 let cur_offset: usize = (2 - 1) * envelope_size;
5991
5992 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5994
5995 fidl::encoding::encode_in_envelope_optional::<AdvertisingData, D>(
6000 self.scan_response
6001 .as_ref()
6002 .map(<AdvertisingData as fidl::encoding::ValueTypeMarker>::borrow),
6003 encoder,
6004 offset + cur_offset,
6005 depth,
6006 )?;
6007
6008 _prev_end_offset = cur_offset + envelope_size;
6009 if 3 > max_ordinal {
6010 return Ok(());
6011 }
6012
6013 let cur_offset: usize = (3 - 1) * envelope_size;
6016
6017 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6019
6020 fidl::encoding::encode_in_envelope_optional::<AdvertisingModeHint, D>(
6025 self.mode_hint
6026 .as_ref()
6027 .map(<AdvertisingModeHint as fidl::encoding::ValueTypeMarker>::borrow),
6028 encoder,
6029 offset + cur_offset,
6030 depth,
6031 )?;
6032
6033 _prev_end_offset = cur_offset + envelope_size;
6034 if 4 > max_ordinal {
6035 return Ok(());
6036 }
6037
6038 let cur_offset: usize = (4 - 1) * envelope_size;
6041
6042 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6044
6045 fidl::encoding::encode_in_envelope_optional::<bool, D>(
6050 self.connectable.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
6051 encoder,
6052 offset + cur_offset,
6053 depth,
6054 )?;
6055
6056 _prev_end_offset = cur_offset + envelope_size;
6057 if 5 > max_ordinal {
6058 return Ok(());
6059 }
6060
6061 let cur_offset: usize = (5 - 1) * envelope_size;
6064
6065 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6067
6068 fidl::encoding::encode_in_envelope_optional::<ConnectionOptions, D>(
6073 self.connection_options
6074 .as_ref()
6075 .map(<ConnectionOptions as fidl::encoding::ValueTypeMarker>::borrow),
6076 encoder,
6077 offset + cur_offset,
6078 depth,
6079 )?;
6080
6081 _prev_end_offset = cur_offset + envelope_size;
6082 if 6 > max_ordinal {
6083 return Ok(());
6084 }
6085
6086 let cur_offset: usize = (6 - 1) * envelope_size;
6089
6090 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6092
6093 fidl::encoding::encode_in_envelope_optional::<AdvertisingProcedure, D>(
6098 self.advertising_procedure
6099 .as_ref()
6100 .map(<AdvertisingProcedure as fidl::encoding::ValueTypeMarker>::borrow),
6101 encoder,
6102 offset + cur_offset,
6103 depth,
6104 )?;
6105
6106 _prev_end_offset = cur_offset + envelope_size;
6107 if 7 > max_ordinal {
6108 return Ok(());
6109 }
6110
6111 let cur_offset: usize = (7 - 1) * envelope_size;
6114
6115 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6117
6118 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_bluetooth__common::AddressType, D>(
6123 self.address_type.as_ref().map(<fidl_fuchsia_bluetooth__common::AddressType as fidl::encoding::ValueTypeMarker>::borrow),
6124 encoder, offset + cur_offset, depth
6125 )?;
6126
6127 _prev_end_offset = cur_offset + envelope_size;
6128
6129 Ok(())
6130 }
6131 }
6132
6133 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for AdvertisingParameters {
6134 #[inline(always)]
6135 fn new_empty() -> Self {
6136 Self::default()
6137 }
6138
6139 unsafe fn decode(
6140 &mut self,
6141 decoder: &mut fidl::encoding::Decoder<'_, D>,
6142 offset: usize,
6143 mut depth: fidl::encoding::Depth,
6144 ) -> fidl::Result<()> {
6145 decoder.debug_check_bounds::<Self>(offset);
6146 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
6147 None => return Err(fidl::Error::NotNullable),
6148 Some(len) => len,
6149 };
6150 if len == 0 {
6152 return Ok(());
6153 };
6154 depth.increment()?;
6155 let envelope_size = 8;
6156 let bytes_len = len * envelope_size;
6157 let offset = decoder.out_of_line_offset(bytes_len)?;
6158 let mut _next_ordinal_to_read = 0;
6160 let mut next_offset = offset;
6161 let end_offset = offset + bytes_len;
6162 _next_ordinal_to_read += 1;
6163 if next_offset >= end_offset {
6164 return Ok(());
6165 }
6166
6167 while _next_ordinal_to_read < 1 {
6169 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6170 _next_ordinal_to_read += 1;
6171 next_offset += envelope_size;
6172 }
6173
6174 let next_out_of_line = decoder.next_out_of_line();
6175 let handles_before = decoder.remaining_handles();
6176 if let Some((inlined, num_bytes, num_handles)) =
6177 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6178 {
6179 let member_inline_size =
6180 <AdvertisingData as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6181 if inlined != (member_inline_size <= 4) {
6182 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6183 }
6184 let inner_offset;
6185 let mut inner_depth = depth.clone();
6186 if inlined {
6187 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6188 inner_offset = next_offset;
6189 } else {
6190 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6191 inner_depth.increment()?;
6192 }
6193 let val_ref = self.data.get_or_insert_with(|| fidl::new_empty!(AdvertisingData, D));
6194 fidl::decode!(AdvertisingData, D, val_ref, decoder, inner_offset, inner_depth)?;
6195 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6196 {
6197 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6198 }
6199 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6200 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6201 }
6202 }
6203
6204 next_offset += envelope_size;
6205 _next_ordinal_to_read += 1;
6206 if next_offset >= end_offset {
6207 return Ok(());
6208 }
6209
6210 while _next_ordinal_to_read < 2 {
6212 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6213 _next_ordinal_to_read += 1;
6214 next_offset += envelope_size;
6215 }
6216
6217 let next_out_of_line = decoder.next_out_of_line();
6218 let handles_before = decoder.remaining_handles();
6219 if let Some((inlined, num_bytes, num_handles)) =
6220 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6221 {
6222 let member_inline_size =
6223 <AdvertisingData as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6224 if inlined != (member_inline_size <= 4) {
6225 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6226 }
6227 let inner_offset;
6228 let mut inner_depth = depth.clone();
6229 if inlined {
6230 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6231 inner_offset = next_offset;
6232 } else {
6233 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6234 inner_depth.increment()?;
6235 }
6236 let val_ref =
6237 self.scan_response.get_or_insert_with(|| fidl::new_empty!(AdvertisingData, D));
6238 fidl::decode!(AdvertisingData, D, val_ref, decoder, inner_offset, inner_depth)?;
6239 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6240 {
6241 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6242 }
6243 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6244 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6245 }
6246 }
6247
6248 next_offset += envelope_size;
6249 _next_ordinal_to_read += 1;
6250 if next_offset >= end_offset {
6251 return Ok(());
6252 }
6253
6254 while _next_ordinal_to_read < 3 {
6256 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6257 _next_ordinal_to_read += 1;
6258 next_offset += envelope_size;
6259 }
6260
6261 let next_out_of_line = decoder.next_out_of_line();
6262 let handles_before = decoder.remaining_handles();
6263 if let Some((inlined, num_bytes, num_handles)) =
6264 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6265 {
6266 let member_inline_size =
6267 <AdvertisingModeHint as fidl::encoding::TypeMarker>::inline_size(
6268 decoder.context,
6269 );
6270 if inlined != (member_inline_size <= 4) {
6271 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6272 }
6273 let inner_offset;
6274 let mut inner_depth = depth.clone();
6275 if inlined {
6276 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6277 inner_offset = next_offset;
6278 } else {
6279 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6280 inner_depth.increment()?;
6281 }
6282 let val_ref =
6283 self.mode_hint.get_or_insert_with(|| fidl::new_empty!(AdvertisingModeHint, D));
6284 fidl::decode!(AdvertisingModeHint, D, val_ref, decoder, inner_offset, inner_depth)?;
6285 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6286 {
6287 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6288 }
6289 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6290 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6291 }
6292 }
6293
6294 next_offset += envelope_size;
6295 _next_ordinal_to_read += 1;
6296 if next_offset >= end_offset {
6297 return Ok(());
6298 }
6299
6300 while _next_ordinal_to_read < 4 {
6302 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6303 _next_ordinal_to_read += 1;
6304 next_offset += envelope_size;
6305 }
6306
6307 let next_out_of_line = decoder.next_out_of_line();
6308 let handles_before = decoder.remaining_handles();
6309 if let Some((inlined, num_bytes, num_handles)) =
6310 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6311 {
6312 let member_inline_size =
6313 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6314 if inlined != (member_inline_size <= 4) {
6315 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6316 }
6317 let inner_offset;
6318 let mut inner_depth = depth.clone();
6319 if inlined {
6320 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6321 inner_offset = next_offset;
6322 } else {
6323 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6324 inner_depth.increment()?;
6325 }
6326 let val_ref = self.connectable.get_or_insert_with(|| fidl::new_empty!(bool, D));
6327 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
6328 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6329 {
6330 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6331 }
6332 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6333 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6334 }
6335 }
6336
6337 next_offset += envelope_size;
6338 _next_ordinal_to_read += 1;
6339 if next_offset >= end_offset {
6340 return Ok(());
6341 }
6342
6343 while _next_ordinal_to_read < 5 {
6345 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6346 _next_ordinal_to_read += 1;
6347 next_offset += envelope_size;
6348 }
6349
6350 let next_out_of_line = decoder.next_out_of_line();
6351 let handles_before = decoder.remaining_handles();
6352 if let Some((inlined, num_bytes, num_handles)) =
6353 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6354 {
6355 let member_inline_size =
6356 <ConnectionOptions as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6357 if inlined != (member_inline_size <= 4) {
6358 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6359 }
6360 let inner_offset;
6361 let mut inner_depth = depth.clone();
6362 if inlined {
6363 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6364 inner_offset = next_offset;
6365 } else {
6366 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6367 inner_depth.increment()?;
6368 }
6369 let val_ref = self
6370 .connection_options
6371 .get_or_insert_with(|| fidl::new_empty!(ConnectionOptions, D));
6372 fidl::decode!(ConnectionOptions, D, val_ref, decoder, inner_offset, inner_depth)?;
6373 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6374 {
6375 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6376 }
6377 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6378 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6379 }
6380 }
6381
6382 next_offset += envelope_size;
6383 _next_ordinal_to_read += 1;
6384 if next_offset >= end_offset {
6385 return Ok(());
6386 }
6387
6388 while _next_ordinal_to_read < 6 {
6390 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6391 _next_ordinal_to_read += 1;
6392 next_offset += envelope_size;
6393 }
6394
6395 let next_out_of_line = decoder.next_out_of_line();
6396 let handles_before = decoder.remaining_handles();
6397 if let Some((inlined, num_bytes, num_handles)) =
6398 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6399 {
6400 let member_inline_size =
6401 <AdvertisingProcedure as fidl::encoding::TypeMarker>::inline_size(
6402 decoder.context,
6403 );
6404 if inlined != (member_inline_size <= 4) {
6405 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6406 }
6407 let inner_offset;
6408 let mut inner_depth = depth.clone();
6409 if inlined {
6410 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6411 inner_offset = next_offset;
6412 } else {
6413 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6414 inner_depth.increment()?;
6415 }
6416 let val_ref = self
6417 .advertising_procedure
6418 .get_or_insert_with(|| fidl::new_empty!(AdvertisingProcedure, D));
6419 fidl::decode!(
6420 AdvertisingProcedure,
6421 D,
6422 val_ref,
6423 decoder,
6424 inner_offset,
6425 inner_depth
6426 )?;
6427 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6428 {
6429 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6430 }
6431 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6432 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6433 }
6434 }
6435
6436 next_offset += envelope_size;
6437 _next_ordinal_to_read += 1;
6438 if next_offset >= end_offset {
6439 return Ok(());
6440 }
6441
6442 while _next_ordinal_to_read < 7 {
6444 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6445 _next_ordinal_to_read += 1;
6446 next_offset += envelope_size;
6447 }
6448
6449 let next_out_of_line = decoder.next_out_of_line();
6450 let handles_before = decoder.remaining_handles();
6451 if let Some((inlined, num_bytes, num_handles)) =
6452 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6453 {
6454 let member_inline_size = <fidl_fuchsia_bluetooth__common::AddressType as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6455 if inlined != (member_inline_size <= 4) {
6456 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6457 }
6458 let inner_offset;
6459 let mut inner_depth = depth.clone();
6460 if inlined {
6461 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6462 inner_offset = next_offset;
6463 } else {
6464 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6465 inner_depth.increment()?;
6466 }
6467 let val_ref = self.address_type.get_or_insert_with(|| {
6468 fidl::new_empty!(fidl_fuchsia_bluetooth__common::AddressType, D)
6469 });
6470 fidl::decode!(
6471 fidl_fuchsia_bluetooth__common::AddressType,
6472 D,
6473 val_ref,
6474 decoder,
6475 inner_offset,
6476 inner_depth
6477 )?;
6478 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6479 {
6480 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6481 }
6482 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6483 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6484 }
6485 }
6486
6487 next_offset += envelope_size;
6488
6489 while next_offset < end_offset {
6491 _next_ordinal_to_read += 1;
6492 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6493 next_offset += envelope_size;
6494 }
6495
6496 Ok(())
6497 }
6498 }
6499
6500 impl BroadcastIsochronousGroupInfo {
6501 #[inline(always)]
6502 fn max_ordinal_present(&self) -> u64 {
6503 if let Some(_) = self.encryption {
6504 return 4;
6505 }
6506 if let Some(_) = self.phy {
6507 return 3;
6508 }
6509 if let Some(_) = self.max_sdu_size {
6510 return 2;
6511 }
6512 if let Some(_) = self.streams_count {
6513 return 1;
6514 }
6515 0
6516 }
6517 }
6518
6519 impl fidl::encoding::ValueTypeMarker for BroadcastIsochronousGroupInfo {
6520 type Borrowed<'a> = &'a Self;
6521 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6522 value
6523 }
6524 }
6525
6526 unsafe impl fidl::encoding::TypeMarker for BroadcastIsochronousGroupInfo {
6527 type Owned = Self;
6528
6529 #[inline(always)]
6530 fn inline_align(_context: fidl::encoding::Context) -> usize {
6531 8
6532 }
6533
6534 #[inline(always)]
6535 fn inline_size(_context: fidl::encoding::Context) -> usize {
6536 16
6537 }
6538 }
6539
6540 unsafe impl<D: fidl::encoding::ResourceDialect>
6541 fidl::encoding::Encode<BroadcastIsochronousGroupInfo, D>
6542 for &BroadcastIsochronousGroupInfo
6543 {
6544 unsafe fn encode(
6545 self,
6546 encoder: &mut fidl::encoding::Encoder<'_, D>,
6547 offset: usize,
6548 mut depth: fidl::encoding::Depth,
6549 ) -> fidl::Result<()> {
6550 encoder.debug_check_bounds::<BroadcastIsochronousGroupInfo>(offset);
6551 let max_ordinal: u64 = self.max_ordinal_present();
6553 encoder.write_num(max_ordinal, offset);
6554 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
6555 if max_ordinal == 0 {
6557 return Ok(());
6558 }
6559 depth.increment()?;
6560 let envelope_size = 8;
6561 let bytes_len = max_ordinal as usize * envelope_size;
6562 #[allow(unused_variables)]
6563 let offset = encoder.out_of_line_offset(bytes_len);
6564 let mut _prev_end_offset: usize = 0;
6565 if 1 > max_ordinal {
6566 return Ok(());
6567 }
6568
6569 let cur_offset: usize = (1 - 1) * envelope_size;
6572
6573 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6575
6576 fidl::encoding::encode_in_envelope_optional::<u8, D>(
6581 self.streams_count.as_ref().map(<u8 as fidl::encoding::ValueTypeMarker>::borrow),
6582 encoder,
6583 offset + cur_offset,
6584 depth,
6585 )?;
6586
6587 _prev_end_offset = cur_offset + envelope_size;
6588 if 2 > max_ordinal {
6589 return Ok(());
6590 }
6591
6592 let cur_offset: usize = (2 - 1) * envelope_size;
6595
6596 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6598
6599 fidl::encoding::encode_in_envelope_optional::<u16, D>(
6604 self.max_sdu_size.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
6605 encoder,
6606 offset + cur_offset,
6607 depth,
6608 )?;
6609
6610 _prev_end_offset = cur_offset + envelope_size;
6611 if 3 > max_ordinal {
6612 return Ok(());
6613 }
6614
6615 let cur_offset: usize = (3 - 1) * envelope_size;
6618
6619 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6621
6622 fidl::encoding::encode_in_envelope_optional::<PhysicalLayer, D>(
6627 self.phy.as_ref().map(<PhysicalLayer as fidl::encoding::ValueTypeMarker>::borrow),
6628 encoder,
6629 offset + cur_offset,
6630 depth,
6631 )?;
6632
6633 _prev_end_offset = cur_offset + envelope_size;
6634 if 4 > max_ordinal {
6635 return Ok(());
6636 }
6637
6638 let cur_offset: usize = (4 - 1) * envelope_size;
6641
6642 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6644
6645 fidl::encoding::encode_in_envelope_optional::<bool, D>(
6650 self.encryption.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
6651 encoder,
6652 offset + cur_offset,
6653 depth,
6654 )?;
6655
6656 _prev_end_offset = cur_offset + envelope_size;
6657
6658 Ok(())
6659 }
6660 }
6661
6662 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
6663 for BroadcastIsochronousGroupInfo
6664 {
6665 #[inline(always)]
6666 fn new_empty() -> Self {
6667 Self::default()
6668 }
6669
6670 unsafe fn decode(
6671 &mut self,
6672 decoder: &mut fidl::encoding::Decoder<'_, D>,
6673 offset: usize,
6674 mut depth: fidl::encoding::Depth,
6675 ) -> fidl::Result<()> {
6676 decoder.debug_check_bounds::<Self>(offset);
6677 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
6678 None => return Err(fidl::Error::NotNullable),
6679 Some(len) => len,
6680 };
6681 if len == 0 {
6683 return Ok(());
6684 };
6685 depth.increment()?;
6686 let envelope_size = 8;
6687 let bytes_len = len * envelope_size;
6688 let offset = decoder.out_of_line_offset(bytes_len)?;
6689 let mut _next_ordinal_to_read = 0;
6691 let mut next_offset = offset;
6692 let end_offset = offset + bytes_len;
6693 _next_ordinal_to_read += 1;
6694 if next_offset >= end_offset {
6695 return Ok(());
6696 }
6697
6698 while _next_ordinal_to_read < 1 {
6700 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6701 _next_ordinal_to_read += 1;
6702 next_offset += envelope_size;
6703 }
6704
6705 let next_out_of_line = decoder.next_out_of_line();
6706 let handles_before = decoder.remaining_handles();
6707 if let Some((inlined, num_bytes, num_handles)) =
6708 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6709 {
6710 let member_inline_size =
6711 <u8 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6712 if inlined != (member_inline_size <= 4) {
6713 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6714 }
6715 let inner_offset;
6716 let mut inner_depth = depth.clone();
6717 if inlined {
6718 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6719 inner_offset = next_offset;
6720 } else {
6721 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6722 inner_depth.increment()?;
6723 }
6724 let val_ref = self.streams_count.get_or_insert_with(|| fidl::new_empty!(u8, D));
6725 fidl::decode!(u8, D, val_ref, decoder, inner_offset, inner_depth)?;
6726 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6727 {
6728 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6729 }
6730 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6731 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6732 }
6733 }
6734
6735 next_offset += envelope_size;
6736 _next_ordinal_to_read += 1;
6737 if next_offset >= end_offset {
6738 return Ok(());
6739 }
6740
6741 while _next_ordinal_to_read < 2 {
6743 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6744 _next_ordinal_to_read += 1;
6745 next_offset += envelope_size;
6746 }
6747
6748 let next_out_of_line = decoder.next_out_of_line();
6749 let handles_before = decoder.remaining_handles();
6750 if let Some((inlined, num_bytes, num_handles)) =
6751 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6752 {
6753 let member_inline_size =
6754 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6755 if inlined != (member_inline_size <= 4) {
6756 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6757 }
6758 let inner_offset;
6759 let mut inner_depth = depth.clone();
6760 if inlined {
6761 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6762 inner_offset = next_offset;
6763 } else {
6764 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6765 inner_depth.increment()?;
6766 }
6767 let val_ref = self.max_sdu_size.get_or_insert_with(|| fidl::new_empty!(u16, D));
6768 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
6769 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6770 {
6771 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6772 }
6773 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6774 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6775 }
6776 }
6777
6778 next_offset += envelope_size;
6779 _next_ordinal_to_read += 1;
6780 if next_offset >= end_offset {
6781 return Ok(());
6782 }
6783
6784 while _next_ordinal_to_read < 3 {
6786 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6787 _next_ordinal_to_read += 1;
6788 next_offset += envelope_size;
6789 }
6790
6791 let next_out_of_line = decoder.next_out_of_line();
6792 let handles_before = decoder.remaining_handles();
6793 if let Some((inlined, num_bytes, num_handles)) =
6794 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6795 {
6796 let member_inline_size =
6797 <PhysicalLayer as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6798 if inlined != (member_inline_size <= 4) {
6799 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6800 }
6801 let inner_offset;
6802 let mut inner_depth = depth.clone();
6803 if inlined {
6804 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6805 inner_offset = next_offset;
6806 } else {
6807 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6808 inner_depth.increment()?;
6809 }
6810 let val_ref = self.phy.get_or_insert_with(|| fidl::new_empty!(PhysicalLayer, D));
6811 fidl::decode!(PhysicalLayer, D, val_ref, decoder, inner_offset, inner_depth)?;
6812 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6813 {
6814 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6815 }
6816 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6817 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6818 }
6819 }
6820
6821 next_offset += envelope_size;
6822 _next_ordinal_to_read += 1;
6823 if next_offset >= end_offset {
6824 return Ok(());
6825 }
6826
6827 while _next_ordinal_to_read < 4 {
6829 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6830 _next_ordinal_to_read += 1;
6831 next_offset += envelope_size;
6832 }
6833
6834 let next_out_of_line = decoder.next_out_of_line();
6835 let handles_before = decoder.remaining_handles();
6836 if let Some((inlined, num_bytes, num_handles)) =
6837 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6838 {
6839 let member_inline_size =
6840 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6841 if inlined != (member_inline_size <= 4) {
6842 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6843 }
6844 let inner_offset;
6845 let mut inner_depth = depth.clone();
6846 if inlined {
6847 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6848 inner_offset = next_offset;
6849 } else {
6850 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6851 inner_depth.increment()?;
6852 }
6853 let val_ref = self.encryption.get_or_insert_with(|| fidl::new_empty!(bool, D));
6854 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
6855 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6856 {
6857 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6858 }
6859 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6860 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6861 }
6862 }
6863
6864 next_offset += envelope_size;
6865
6866 while next_offset < end_offset {
6868 _next_ordinal_to_read += 1;
6869 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6870 next_offset += envelope_size;
6871 }
6872
6873 Ok(())
6874 }
6875 }
6876
6877 impl BroadcastIsochronousGroupInfoReport {
6878 #[inline(always)]
6879 fn max_ordinal_present(&self) -> u64 {
6880 if let Some(_) = self.timestamp {
6881 return 2;
6882 }
6883 if let Some(_) = self.info {
6884 return 1;
6885 }
6886 0
6887 }
6888 }
6889
6890 impl fidl::encoding::ValueTypeMarker for BroadcastIsochronousGroupInfoReport {
6891 type Borrowed<'a> = &'a Self;
6892 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6893 value
6894 }
6895 }
6896
6897 unsafe impl fidl::encoding::TypeMarker for BroadcastIsochronousGroupInfoReport {
6898 type Owned = Self;
6899
6900 #[inline(always)]
6901 fn inline_align(_context: fidl::encoding::Context) -> usize {
6902 8
6903 }
6904
6905 #[inline(always)]
6906 fn inline_size(_context: fidl::encoding::Context) -> usize {
6907 16
6908 }
6909 }
6910
6911 unsafe impl<D: fidl::encoding::ResourceDialect>
6912 fidl::encoding::Encode<BroadcastIsochronousGroupInfoReport, D>
6913 for &BroadcastIsochronousGroupInfoReport
6914 {
6915 unsafe fn encode(
6916 self,
6917 encoder: &mut fidl::encoding::Encoder<'_, D>,
6918 offset: usize,
6919 mut depth: fidl::encoding::Depth,
6920 ) -> fidl::Result<()> {
6921 encoder.debug_check_bounds::<BroadcastIsochronousGroupInfoReport>(offset);
6922 let max_ordinal: u64 = self.max_ordinal_present();
6924 encoder.write_num(max_ordinal, offset);
6925 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
6926 if max_ordinal == 0 {
6928 return Ok(());
6929 }
6930 depth.increment()?;
6931 let envelope_size = 8;
6932 let bytes_len = max_ordinal as usize * envelope_size;
6933 #[allow(unused_variables)]
6934 let offset = encoder.out_of_line_offset(bytes_len);
6935 let mut _prev_end_offset: usize = 0;
6936 if 1 > max_ordinal {
6937 return Ok(());
6938 }
6939
6940 let cur_offset: usize = (1 - 1) * envelope_size;
6943
6944 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6946
6947 fidl::encoding::encode_in_envelope_optional::<BroadcastIsochronousGroupInfo, D>(
6952 self.info.as_ref().map(
6953 <BroadcastIsochronousGroupInfo as fidl::encoding::ValueTypeMarker>::borrow,
6954 ),
6955 encoder,
6956 offset + cur_offset,
6957 depth,
6958 )?;
6959
6960 _prev_end_offset = cur_offset + envelope_size;
6961 if 2 > max_ordinal {
6962 return Ok(());
6963 }
6964
6965 let cur_offset: usize = (2 - 1) * envelope_size;
6968
6969 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6971
6972 fidl::encoding::encode_in_envelope_optional::<i64, D>(
6977 self.timestamp.as_ref().map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
6978 encoder,
6979 offset + cur_offset,
6980 depth,
6981 )?;
6982
6983 _prev_end_offset = cur_offset + envelope_size;
6984
6985 Ok(())
6986 }
6987 }
6988
6989 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
6990 for BroadcastIsochronousGroupInfoReport
6991 {
6992 #[inline(always)]
6993 fn new_empty() -> Self {
6994 Self::default()
6995 }
6996
6997 unsafe fn decode(
6998 &mut self,
6999 decoder: &mut fidl::encoding::Decoder<'_, D>,
7000 offset: usize,
7001 mut depth: fidl::encoding::Depth,
7002 ) -> fidl::Result<()> {
7003 decoder.debug_check_bounds::<Self>(offset);
7004 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
7005 None => return Err(fidl::Error::NotNullable),
7006 Some(len) => len,
7007 };
7008 if len == 0 {
7010 return Ok(());
7011 };
7012 depth.increment()?;
7013 let envelope_size = 8;
7014 let bytes_len = len * envelope_size;
7015 let offset = decoder.out_of_line_offset(bytes_len)?;
7016 let mut _next_ordinal_to_read = 0;
7018 let mut next_offset = offset;
7019 let end_offset = offset + bytes_len;
7020 _next_ordinal_to_read += 1;
7021 if next_offset >= end_offset {
7022 return Ok(());
7023 }
7024
7025 while _next_ordinal_to_read < 1 {
7027 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7028 _next_ordinal_to_read += 1;
7029 next_offset += envelope_size;
7030 }
7031
7032 let next_out_of_line = decoder.next_out_of_line();
7033 let handles_before = decoder.remaining_handles();
7034 if let Some((inlined, num_bytes, num_handles)) =
7035 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7036 {
7037 let member_inline_size =
7038 <BroadcastIsochronousGroupInfo as fidl::encoding::TypeMarker>::inline_size(
7039 decoder.context,
7040 );
7041 if inlined != (member_inline_size <= 4) {
7042 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7043 }
7044 let inner_offset;
7045 let mut inner_depth = depth.clone();
7046 if inlined {
7047 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7048 inner_offset = next_offset;
7049 } else {
7050 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7051 inner_depth.increment()?;
7052 }
7053 let val_ref = self
7054 .info
7055 .get_or_insert_with(|| fidl::new_empty!(BroadcastIsochronousGroupInfo, D));
7056 fidl::decode!(
7057 BroadcastIsochronousGroupInfo,
7058 D,
7059 val_ref,
7060 decoder,
7061 inner_offset,
7062 inner_depth
7063 )?;
7064 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7065 {
7066 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7067 }
7068 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7069 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7070 }
7071 }
7072
7073 next_offset += envelope_size;
7074 _next_ordinal_to_read += 1;
7075 if next_offset >= end_offset {
7076 return Ok(());
7077 }
7078
7079 while _next_ordinal_to_read < 2 {
7081 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7082 _next_ordinal_to_read += 1;
7083 next_offset += envelope_size;
7084 }
7085
7086 let next_out_of_line = decoder.next_out_of_line();
7087 let handles_before = decoder.remaining_handles();
7088 if let Some((inlined, num_bytes, num_handles)) =
7089 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7090 {
7091 let member_inline_size =
7092 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7093 if inlined != (member_inline_size <= 4) {
7094 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7095 }
7096 let inner_offset;
7097 let mut inner_depth = depth.clone();
7098 if inlined {
7099 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7100 inner_offset = next_offset;
7101 } else {
7102 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7103 inner_depth.increment()?;
7104 }
7105 let val_ref = self.timestamp.get_or_insert_with(|| fidl::new_empty!(i64, D));
7106 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
7107 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7108 {
7109 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7110 }
7111 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7112 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7113 }
7114 }
7115
7116 next_offset += envelope_size;
7117
7118 while next_offset < end_offset {
7120 _next_ordinal_to_read += 1;
7121 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7122 next_offset += envelope_size;
7123 }
7124
7125 Ok(())
7126 }
7127 }
7128
7129 impl CentralCreateConnectedIsochronousGroupResponse {
7130 #[inline(always)]
7131 fn max_ordinal_present(&self) -> u64 {
7132 if let Some(_) = self.cig_id {
7133 return 1;
7134 }
7135 0
7136 }
7137 }
7138
7139 impl fidl::encoding::ValueTypeMarker for CentralCreateConnectedIsochronousGroupResponse {
7140 type Borrowed<'a> = &'a Self;
7141 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7142 value
7143 }
7144 }
7145
7146 unsafe impl fidl::encoding::TypeMarker for CentralCreateConnectedIsochronousGroupResponse {
7147 type Owned = Self;
7148
7149 #[inline(always)]
7150 fn inline_align(_context: fidl::encoding::Context) -> usize {
7151 8
7152 }
7153
7154 #[inline(always)]
7155 fn inline_size(_context: fidl::encoding::Context) -> usize {
7156 16
7157 }
7158 }
7159
7160 unsafe impl<D: fidl::encoding::ResourceDialect>
7161 fidl::encoding::Encode<CentralCreateConnectedIsochronousGroupResponse, D>
7162 for &CentralCreateConnectedIsochronousGroupResponse
7163 {
7164 unsafe fn encode(
7165 self,
7166 encoder: &mut fidl::encoding::Encoder<'_, D>,
7167 offset: usize,
7168 mut depth: fidl::encoding::Depth,
7169 ) -> fidl::Result<()> {
7170 encoder.debug_check_bounds::<CentralCreateConnectedIsochronousGroupResponse>(offset);
7171 let max_ordinal: u64 = self.max_ordinal_present();
7173 encoder.write_num(max_ordinal, offset);
7174 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
7175 if max_ordinal == 0 {
7177 return Ok(());
7178 }
7179 depth.increment()?;
7180 let envelope_size = 8;
7181 let bytes_len = max_ordinal as usize * envelope_size;
7182 #[allow(unused_variables)]
7183 let offset = encoder.out_of_line_offset(bytes_len);
7184 let mut _prev_end_offset: usize = 0;
7185 if 1 > max_ordinal {
7186 return Ok(());
7187 }
7188
7189 let cur_offset: usize = (1 - 1) * envelope_size;
7192
7193 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7195
7196 fidl::encoding::encode_in_envelope_optional::<u8, D>(
7201 self.cig_id.as_ref().map(<u8 as fidl::encoding::ValueTypeMarker>::borrow),
7202 encoder,
7203 offset + cur_offset,
7204 depth,
7205 )?;
7206
7207 _prev_end_offset = cur_offset + envelope_size;
7208
7209 Ok(())
7210 }
7211 }
7212
7213 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
7214 for CentralCreateConnectedIsochronousGroupResponse
7215 {
7216 #[inline(always)]
7217 fn new_empty() -> Self {
7218 Self::default()
7219 }
7220
7221 unsafe fn decode(
7222 &mut self,
7223 decoder: &mut fidl::encoding::Decoder<'_, D>,
7224 offset: usize,
7225 mut depth: fidl::encoding::Depth,
7226 ) -> fidl::Result<()> {
7227 decoder.debug_check_bounds::<Self>(offset);
7228 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
7229 None => return Err(fidl::Error::NotNullable),
7230 Some(len) => len,
7231 };
7232 if len == 0 {
7234 return Ok(());
7235 };
7236 depth.increment()?;
7237 let envelope_size = 8;
7238 let bytes_len = len * envelope_size;
7239 let offset = decoder.out_of_line_offset(bytes_len)?;
7240 let mut _next_ordinal_to_read = 0;
7242 let mut next_offset = offset;
7243 let end_offset = offset + bytes_len;
7244 _next_ordinal_to_read += 1;
7245 if next_offset >= end_offset {
7246 return Ok(());
7247 }
7248
7249 while _next_ordinal_to_read < 1 {
7251 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7252 _next_ordinal_to_read += 1;
7253 next_offset += envelope_size;
7254 }
7255
7256 let next_out_of_line = decoder.next_out_of_line();
7257 let handles_before = decoder.remaining_handles();
7258 if let Some((inlined, num_bytes, num_handles)) =
7259 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7260 {
7261 let member_inline_size =
7262 <u8 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7263 if inlined != (member_inline_size <= 4) {
7264 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7265 }
7266 let inner_offset;
7267 let mut inner_depth = depth.clone();
7268 if inlined {
7269 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7270 inner_offset = next_offset;
7271 } else {
7272 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7273 inner_depth.increment()?;
7274 }
7275 let val_ref = self.cig_id.get_or_insert_with(|| fidl::new_empty!(u8, D));
7276 fidl::decode!(u8, D, val_ref, decoder, inner_offset, inner_depth)?;
7277 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7278 {
7279 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7280 }
7281 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7282 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7283 }
7284 }
7285
7286 next_offset += envelope_size;
7287
7288 while next_offset < end_offset {
7290 _next_ordinal_to_read += 1;
7291 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7292 next_offset += envelope_size;
7293 }
7294
7295 Ok(())
7296 }
7297 }
7298
7299 impl ChannelListenerRegistryListenL2capResponse {
7300 #[inline(always)]
7301 fn max_ordinal_present(&self) -> u64 {
7302 if let Some(_) = self.psm {
7303 return 1;
7304 }
7305 0
7306 }
7307 }
7308
7309 impl fidl::encoding::ValueTypeMarker for ChannelListenerRegistryListenL2capResponse {
7310 type Borrowed<'a> = &'a Self;
7311 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7312 value
7313 }
7314 }
7315
7316 unsafe impl fidl::encoding::TypeMarker for ChannelListenerRegistryListenL2capResponse {
7317 type Owned = Self;
7318
7319 #[inline(always)]
7320 fn inline_align(_context: fidl::encoding::Context) -> usize {
7321 8
7322 }
7323
7324 #[inline(always)]
7325 fn inline_size(_context: fidl::encoding::Context) -> usize {
7326 16
7327 }
7328 }
7329
7330 unsafe impl<D: fidl::encoding::ResourceDialect>
7331 fidl::encoding::Encode<ChannelListenerRegistryListenL2capResponse, D>
7332 for &ChannelListenerRegistryListenL2capResponse
7333 {
7334 unsafe fn encode(
7335 self,
7336 encoder: &mut fidl::encoding::Encoder<'_, D>,
7337 offset: usize,
7338 mut depth: fidl::encoding::Depth,
7339 ) -> fidl::Result<()> {
7340 encoder.debug_check_bounds::<ChannelListenerRegistryListenL2capResponse>(offset);
7341 let max_ordinal: u64 = self.max_ordinal_present();
7343 encoder.write_num(max_ordinal, offset);
7344 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
7345 if max_ordinal == 0 {
7347 return Ok(());
7348 }
7349 depth.increment()?;
7350 let envelope_size = 8;
7351 let bytes_len = max_ordinal as usize * envelope_size;
7352 #[allow(unused_variables)]
7353 let offset = encoder.out_of_line_offset(bytes_len);
7354 let mut _prev_end_offset: usize = 0;
7355 if 1 > max_ordinal {
7356 return Ok(());
7357 }
7358
7359 let cur_offset: usize = (1 - 1) * envelope_size;
7362
7363 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7365
7366 fidl::encoding::encode_in_envelope_optional::<u16, D>(
7371 self.psm.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
7372 encoder,
7373 offset + cur_offset,
7374 depth,
7375 )?;
7376
7377 _prev_end_offset = cur_offset + envelope_size;
7378
7379 Ok(())
7380 }
7381 }
7382
7383 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
7384 for ChannelListenerRegistryListenL2capResponse
7385 {
7386 #[inline(always)]
7387 fn new_empty() -> Self {
7388 Self::default()
7389 }
7390
7391 unsafe fn decode(
7392 &mut self,
7393 decoder: &mut fidl::encoding::Decoder<'_, D>,
7394 offset: usize,
7395 mut depth: fidl::encoding::Depth,
7396 ) -> fidl::Result<()> {
7397 decoder.debug_check_bounds::<Self>(offset);
7398 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
7399 None => return Err(fidl::Error::NotNullable),
7400 Some(len) => len,
7401 };
7402 if len == 0 {
7404 return Ok(());
7405 };
7406 depth.increment()?;
7407 let envelope_size = 8;
7408 let bytes_len = len * envelope_size;
7409 let offset = decoder.out_of_line_offset(bytes_len)?;
7410 let mut _next_ordinal_to_read = 0;
7412 let mut next_offset = offset;
7413 let end_offset = offset + bytes_len;
7414 _next_ordinal_to_read += 1;
7415 if next_offset >= end_offset {
7416 return Ok(());
7417 }
7418
7419 while _next_ordinal_to_read < 1 {
7421 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7422 _next_ordinal_to_read += 1;
7423 next_offset += envelope_size;
7424 }
7425
7426 let next_out_of_line = decoder.next_out_of_line();
7427 let handles_before = decoder.remaining_handles();
7428 if let Some((inlined, num_bytes, num_handles)) =
7429 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7430 {
7431 let member_inline_size =
7432 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7433 if inlined != (member_inline_size <= 4) {
7434 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7435 }
7436 let inner_offset;
7437 let mut inner_depth = depth.clone();
7438 if inlined {
7439 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7440 inner_offset = next_offset;
7441 } else {
7442 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7443 inner_depth.increment()?;
7444 }
7445 let val_ref = self.psm.get_or_insert_with(|| fidl::new_empty!(u16, D));
7446 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
7447 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7448 {
7449 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7450 }
7451 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7452 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7453 }
7454 }
7455
7456 next_offset += envelope_size;
7457
7458 while next_offset < end_offset {
7460 _next_ordinal_to_read += 1;
7461 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7462 next_offset += envelope_size;
7463 }
7464
7465 Ok(())
7466 }
7467 }
7468
7469 impl CigParameters {
7470 #[inline(always)]
7471 fn max_ordinal_present(&self) -> u64 {
7472 if let Some(_) = self.max_transport_latency_p_to_c {
7473 return 6;
7474 }
7475 if let Some(_) = self.max_transport_latency_c_to_p {
7476 return 5;
7477 }
7478 if let Some(_) = self.framing {
7479 return 4;
7480 }
7481 if let Some(_) = self.packing {
7482 return 3;
7483 }
7484 if let Some(_) = self.sdu_interval_p_to_c {
7485 return 2;
7486 }
7487 if let Some(_) = self.sdu_interval_c_to_p {
7488 return 1;
7489 }
7490 0
7491 }
7492 }
7493
7494 impl fidl::encoding::ValueTypeMarker for CigParameters {
7495 type Borrowed<'a> = &'a Self;
7496 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7497 value
7498 }
7499 }
7500
7501 unsafe impl fidl::encoding::TypeMarker for CigParameters {
7502 type Owned = Self;
7503
7504 #[inline(always)]
7505 fn inline_align(_context: fidl::encoding::Context) -> usize {
7506 8
7507 }
7508
7509 #[inline(always)]
7510 fn inline_size(_context: fidl::encoding::Context) -> usize {
7511 16
7512 }
7513 }
7514
7515 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<CigParameters, D>
7516 for &CigParameters
7517 {
7518 unsafe fn encode(
7519 self,
7520 encoder: &mut fidl::encoding::Encoder<'_, D>,
7521 offset: usize,
7522 mut depth: fidl::encoding::Depth,
7523 ) -> fidl::Result<()> {
7524 encoder.debug_check_bounds::<CigParameters>(offset);
7525 let max_ordinal: u64 = self.max_ordinal_present();
7527 encoder.write_num(max_ordinal, offset);
7528 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
7529 if max_ordinal == 0 {
7531 return Ok(());
7532 }
7533 depth.increment()?;
7534 let envelope_size = 8;
7535 let bytes_len = max_ordinal as usize * envelope_size;
7536 #[allow(unused_variables)]
7537 let offset = encoder.out_of_line_offset(bytes_len);
7538 let mut _prev_end_offset: usize = 0;
7539 if 1 > max_ordinal {
7540 return Ok(());
7541 }
7542
7543 let cur_offset: usize = (1 - 1) * envelope_size;
7546
7547 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7549
7550 fidl::encoding::encode_in_envelope_optional::<u32, D>(
7555 self.sdu_interval_c_to_p
7556 .as_ref()
7557 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
7558 encoder,
7559 offset + cur_offset,
7560 depth,
7561 )?;
7562
7563 _prev_end_offset = cur_offset + envelope_size;
7564 if 2 > max_ordinal {
7565 return Ok(());
7566 }
7567
7568 let cur_offset: usize = (2 - 1) * envelope_size;
7571
7572 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7574
7575 fidl::encoding::encode_in_envelope_optional::<u32, D>(
7580 self.sdu_interval_p_to_c
7581 .as_ref()
7582 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
7583 encoder,
7584 offset + cur_offset,
7585 depth,
7586 )?;
7587
7588 _prev_end_offset = cur_offset + envelope_size;
7589 if 3 > max_ordinal {
7590 return Ok(());
7591 }
7592
7593 let cur_offset: usize = (3 - 1) * envelope_size;
7596
7597 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7599
7600 fidl::encoding::encode_in_envelope_optional::<CigPacking, D>(
7605 self.packing.as_ref().map(<CigPacking as fidl::encoding::ValueTypeMarker>::borrow),
7606 encoder,
7607 offset + cur_offset,
7608 depth,
7609 )?;
7610
7611 _prev_end_offset = cur_offset + envelope_size;
7612 if 4 > max_ordinal {
7613 return Ok(());
7614 }
7615
7616 let cur_offset: usize = (4 - 1) * envelope_size;
7619
7620 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7622
7623 fidl::encoding::encode_in_envelope_optional::<CigFramingOptions, D>(
7628 self.framing
7629 .as_ref()
7630 .map(<CigFramingOptions as fidl::encoding::ValueTypeMarker>::borrow),
7631 encoder,
7632 offset + cur_offset,
7633 depth,
7634 )?;
7635
7636 _prev_end_offset = cur_offset + envelope_size;
7637 if 5 > max_ordinal {
7638 return Ok(());
7639 }
7640
7641 let cur_offset: usize = (5 - 1) * envelope_size;
7644
7645 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7647
7648 fidl::encoding::encode_in_envelope_optional::<u16, D>(
7653 self.max_transport_latency_c_to_p
7654 .as_ref()
7655 .map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
7656 encoder,
7657 offset + cur_offset,
7658 depth,
7659 )?;
7660
7661 _prev_end_offset = cur_offset + envelope_size;
7662 if 6 > max_ordinal {
7663 return Ok(());
7664 }
7665
7666 let cur_offset: usize = (6 - 1) * envelope_size;
7669
7670 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7672
7673 fidl::encoding::encode_in_envelope_optional::<u16, D>(
7678 self.max_transport_latency_p_to_c
7679 .as_ref()
7680 .map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
7681 encoder,
7682 offset + cur_offset,
7683 depth,
7684 )?;
7685
7686 _prev_end_offset = cur_offset + envelope_size;
7687
7688 Ok(())
7689 }
7690 }
7691
7692 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for CigParameters {
7693 #[inline(always)]
7694 fn new_empty() -> Self {
7695 Self::default()
7696 }
7697
7698 unsafe fn decode(
7699 &mut self,
7700 decoder: &mut fidl::encoding::Decoder<'_, D>,
7701 offset: usize,
7702 mut depth: fidl::encoding::Depth,
7703 ) -> fidl::Result<()> {
7704 decoder.debug_check_bounds::<Self>(offset);
7705 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
7706 None => return Err(fidl::Error::NotNullable),
7707 Some(len) => len,
7708 };
7709 if len == 0 {
7711 return Ok(());
7712 };
7713 depth.increment()?;
7714 let envelope_size = 8;
7715 let bytes_len = len * envelope_size;
7716 let offset = decoder.out_of_line_offset(bytes_len)?;
7717 let mut _next_ordinal_to_read = 0;
7719 let mut next_offset = offset;
7720 let end_offset = offset + bytes_len;
7721 _next_ordinal_to_read += 1;
7722 if next_offset >= end_offset {
7723 return Ok(());
7724 }
7725
7726 while _next_ordinal_to_read < 1 {
7728 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7729 _next_ordinal_to_read += 1;
7730 next_offset += envelope_size;
7731 }
7732
7733 let next_out_of_line = decoder.next_out_of_line();
7734 let handles_before = decoder.remaining_handles();
7735 if let Some((inlined, num_bytes, num_handles)) =
7736 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7737 {
7738 let member_inline_size =
7739 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7740 if inlined != (member_inline_size <= 4) {
7741 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7742 }
7743 let inner_offset;
7744 let mut inner_depth = depth.clone();
7745 if inlined {
7746 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7747 inner_offset = next_offset;
7748 } else {
7749 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7750 inner_depth.increment()?;
7751 }
7752 let val_ref =
7753 self.sdu_interval_c_to_p.get_or_insert_with(|| fidl::new_empty!(u32, D));
7754 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
7755 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7756 {
7757 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7758 }
7759 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7760 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7761 }
7762 }
7763
7764 next_offset += envelope_size;
7765 _next_ordinal_to_read += 1;
7766 if next_offset >= end_offset {
7767 return Ok(());
7768 }
7769
7770 while _next_ordinal_to_read < 2 {
7772 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7773 _next_ordinal_to_read += 1;
7774 next_offset += envelope_size;
7775 }
7776
7777 let next_out_of_line = decoder.next_out_of_line();
7778 let handles_before = decoder.remaining_handles();
7779 if let Some((inlined, num_bytes, num_handles)) =
7780 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7781 {
7782 let member_inline_size =
7783 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7784 if inlined != (member_inline_size <= 4) {
7785 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7786 }
7787 let inner_offset;
7788 let mut inner_depth = depth.clone();
7789 if inlined {
7790 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7791 inner_offset = next_offset;
7792 } else {
7793 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7794 inner_depth.increment()?;
7795 }
7796 let val_ref =
7797 self.sdu_interval_p_to_c.get_or_insert_with(|| fidl::new_empty!(u32, D));
7798 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
7799 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7800 {
7801 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7802 }
7803 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7804 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7805 }
7806 }
7807
7808 next_offset += envelope_size;
7809 _next_ordinal_to_read += 1;
7810 if next_offset >= end_offset {
7811 return Ok(());
7812 }
7813
7814 while _next_ordinal_to_read < 3 {
7816 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7817 _next_ordinal_to_read += 1;
7818 next_offset += envelope_size;
7819 }
7820
7821 let next_out_of_line = decoder.next_out_of_line();
7822 let handles_before = decoder.remaining_handles();
7823 if let Some((inlined, num_bytes, num_handles)) =
7824 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7825 {
7826 let member_inline_size =
7827 <CigPacking as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7828 if inlined != (member_inline_size <= 4) {
7829 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7830 }
7831 let inner_offset;
7832 let mut inner_depth = depth.clone();
7833 if inlined {
7834 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7835 inner_offset = next_offset;
7836 } else {
7837 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7838 inner_depth.increment()?;
7839 }
7840 let val_ref = self.packing.get_or_insert_with(|| fidl::new_empty!(CigPacking, D));
7841 fidl::decode!(CigPacking, D, val_ref, decoder, inner_offset, inner_depth)?;
7842 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7843 {
7844 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7845 }
7846 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7847 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7848 }
7849 }
7850
7851 next_offset += envelope_size;
7852 _next_ordinal_to_read += 1;
7853 if next_offset >= end_offset {
7854 return Ok(());
7855 }
7856
7857 while _next_ordinal_to_read < 4 {
7859 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7860 _next_ordinal_to_read += 1;
7861 next_offset += envelope_size;
7862 }
7863
7864 let next_out_of_line = decoder.next_out_of_line();
7865 let handles_before = decoder.remaining_handles();
7866 if let Some((inlined, num_bytes, num_handles)) =
7867 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7868 {
7869 let member_inline_size =
7870 <CigFramingOptions as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7871 if inlined != (member_inline_size <= 4) {
7872 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7873 }
7874 let inner_offset;
7875 let mut inner_depth = depth.clone();
7876 if inlined {
7877 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7878 inner_offset = next_offset;
7879 } else {
7880 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7881 inner_depth.increment()?;
7882 }
7883 let val_ref =
7884 self.framing.get_or_insert_with(|| fidl::new_empty!(CigFramingOptions, D));
7885 fidl::decode!(CigFramingOptions, D, val_ref, decoder, inner_offset, inner_depth)?;
7886 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7887 {
7888 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7889 }
7890 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7891 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7892 }
7893 }
7894
7895 next_offset += envelope_size;
7896 _next_ordinal_to_read += 1;
7897 if next_offset >= end_offset {
7898 return Ok(());
7899 }
7900
7901 while _next_ordinal_to_read < 5 {
7903 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7904 _next_ordinal_to_read += 1;
7905 next_offset += envelope_size;
7906 }
7907
7908 let next_out_of_line = decoder.next_out_of_line();
7909 let handles_before = decoder.remaining_handles();
7910 if let Some((inlined, num_bytes, num_handles)) =
7911 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7912 {
7913 let member_inline_size =
7914 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7915 if inlined != (member_inline_size <= 4) {
7916 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7917 }
7918 let inner_offset;
7919 let mut inner_depth = depth.clone();
7920 if inlined {
7921 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7922 inner_offset = next_offset;
7923 } else {
7924 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7925 inner_depth.increment()?;
7926 }
7927 let val_ref = self
7928 .max_transport_latency_c_to_p
7929 .get_or_insert_with(|| fidl::new_empty!(u16, D));
7930 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
7931 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7932 {
7933 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7934 }
7935 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7936 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7937 }
7938 }
7939
7940 next_offset += envelope_size;
7941 _next_ordinal_to_read += 1;
7942 if next_offset >= end_offset {
7943 return Ok(());
7944 }
7945
7946 while _next_ordinal_to_read < 6 {
7948 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7949 _next_ordinal_to_read += 1;
7950 next_offset += envelope_size;
7951 }
7952
7953 let next_out_of_line = decoder.next_out_of_line();
7954 let handles_before = decoder.remaining_handles();
7955 if let Some((inlined, num_bytes, num_handles)) =
7956 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7957 {
7958 let member_inline_size =
7959 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7960 if inlined != (member_inline_size <= 4) {
7961 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7962 }
7963 let inner_offset;
7964 let mut inner_depth = depth.clone();
7965 if inlined {
7966 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7967 inner_offset = next_offset;
7968 } else {
7969 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7970 inner_depth.increment()?;
7971 }
7972 let val_ref = self
7973 .max_transport_latency_p_to_c
7974 .get_or_insert_with(|| fidl::new_empty!(u16, D));
7975 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
7976 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7977 {
7978 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7979 }
7980 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7981 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7982 }
7983 }
7984
7985 next_offset += envelope_size;
7986
7987 while next_offset < end_offset {
7989 _next_ordinal_to_read += 1;
7990 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7991 next_offset += envelope_size;
7992 }
7993
7994 Ok(())
7995 }
7996 }
7997
7998 impl CisEstablishedParameters {
7999 #[inline(always)]
8000 fn max_ordinal_present(&self) -> u64 {
8001 if let Some(_) = self.peripheral_to_central_params {
8002 return 6;
8003 }
8004 if let Some(_) = self.central_to_peripheral_params {
8005 return 5;
8006 }
8007 if let Some(_) = self.iso_interval {
8008 return 4;
8009 }
8010 if let Some(_) = self.max_subevents {
8011 return 3;
8012 }
8013 if let Some(_) = self.cis_sync_delay {
8014 return 2;
8015 }
8016 if let Some(_) = self.cig_sync_delay {
8017 return 1;
8018 }
8019 0
8020 }
8021 }
8022
8023 impl fidl::encoding::ValueTypeMarker for CisEstablishedParameters {
8024 type Borrowed<'a> = &'a Self;
8025 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
8026 value
8027 }
8028 }
8029
8030 unsafe impl fidl::encoding::TypeMarker for CisEstablishedParameters {
8031 type Owned = Self;
8032
8033 #[inline(always)]
8034 fn inline_align(_context: fidl::encoding::Context) -> usize {
8035 8
8036 }
8037
8038 #[inline(always)]
8039 fn inline_size(_context: fidl::encoding::Context) -> usize {
8040 16
8041 }
8042 }
8043
8044 unsafe impl<D: fidl::encoding::ResourceDialect>
8045 fidl::encoding::Encode<CisEstablishedParameters, D> for &CisEstablishedParameters
8046 {
8047 unsafe fn encode(
8048 self,
8049 encoder: &mut fidl::encoding::Encoder<'_, D>,
8050 offset: usize,
8051 mut depth: fidl::encoding::Depth,
8052 ) -> fidl::Result<()> {
8053 encoder.debug_check_bounds::<CisEstablishedParameters>(offset);
8054 let max_ordinal: u64 = self.max_ordinal_present();
8056 encoder.write_num(max_ordinal, offset);
8057 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
8058 if max_ordinal == 0 {
8060 return Ok(());
8061 }
8062 depth.increment()?;
8063 let envelope_size = 8;
8064 let bytes_len = max_ordinal as usize * envelope_size;
8065 #[allow(unused_variables)]
8066 let offset = encoder.out_of_line_offset(bytes_len);
8067 let mut _prev_end_offset: usize = 0;
8068 if 1 > max_ordinal {
8069 return Ok(());
8070 }
8071
8072 let cur_offset: usize = (1 - 1) * envelope_size;
8075
8076 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8078
8079 fidl::encoding::encode_in_envelope_optional::<i64, D>(
8084 self.cig_sync_delay.as_ref().map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
8085 encoder,
8086 offset + cur_offset,
8087 depth,
8088 )?;
8089
8090 _prev_end_offset = cur_offset + envelope_size;
8091 if 2 > max_ordinal {
8092 return Ok(());
8093 }
8094
8095 let cur_offset: usize = (2 - 1) * envelope_size;
8098
8099 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8101
8102 fidl::encoding::encode_in_envelope_optional::<i64, D>(
8107 self.cis_sync_delay.as_ref().map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
8108 encoder,
8109 offset + cur_offset,
8110 depth,
8111 )?;
8112
8113 _prev_end_offset = cur_offset + envelope_size;
8114 if 3 > max_ordinal {
8115 return Ok(());
8116 }
8117
8118 let cur_offset: usize = (3 - 1) * envelope_size;
8121
8122 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8124
8125 fidl::encoding::encode_in_envelope_optional::<u8, D>(
8130 self.max_subevents.as_ref().map(<u8 as fidl::encoding::ValueTypeMarker>::borrow),
8131 encoder,
8132 offset + cur_offset,
8133 depth,
8134 )?;
8135
8136 _prev_end_offset = cur_offset + envelope_size;
8137 if 4 > max_ordinal {
8138 return Ok(());
8139 }
8140
8141 let cur_offset: usize = (4 - 1) * envelope_size;
8144
8145 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8147
8148 fidl::encoding::encode_in_envelope_optional::<i64, D>(
8153 self.iso_interval.as_ref().map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
8154 encoder,
8155 offset + cur_offset,
8156 depth,
8157 )?;
8158
8159 _prev_end_offset = cur_offset + envelope_size;
8160 if 5 > max_ordinal {
8161 return Ok(());
8162 }
8163
8164 let cur_offset: usize = (5 - 1) * envelope_size;
8167
8168 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8170
8171 fidl::encoding::encode_in_envelope_optional::<CisUnidirectionalParams, D>(
8176 self.central_to_peripheral_params
8177 .as_ref()
8178 .map(<CisUnidirectionalParams as fidl::encoding::ValueTypeMarker>::borrow),
8179 encoder,
8180 offset + cur_offset,
8181 depth,
8182 )?;
8183
8184 _prev_end_offset = cur_offset + envelope_size;
8185 if 6 > max_ordinal {
8186 return Ok(());
8187 }
8188
8189 let cur_offset: usize = (6 - 1) * envelope_size;
8192
8193 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8195
8196 fidl::encoding::encode_in_envelope_optional::<CisUnidirectionalParams, D>(
8201 self.peripheral_to_central_params
8202 .as_ref()
8203 .map(<CisUnidirectionalParams as fidl::encoding::ValueTypeMarker>::borrow),
8204 encoder,
8205 offset + cur_offset,
8206 depth,
8207 )?;
8208
8209 _prev_end_offset = cur_offset + envelope_size;
8210
8211 Ok(())
8212 }
8213 }
8214
8215 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
8216 for CisEstablishedParameters
8217 {
8218 #[inline(always)]
8219 fn new_empty() -> Self {
8220 Self::default()
8221 }
8222
8223 unsafe fn decode(
8224 &mut self,
8225 decoder: &mut fidl::encoding::Decoder<'_, D>,
8226 offset: usize,
8227 mut depth: fidl::encoding::Depth,
8228 ) -> fidl::Result<()> {
8229 decoder.debug_check_bounds::<Self>(offset);
8230 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
8231 None => return Err(fidl::Error::NotNullable),
8232 Some(len) => len,
8233 };
8234 if len == 0 {
8236 return Ok(());
8237 };
8238 depth.increment()?;
8239 let envelope_size = 8;
8240 let bytes_len = len * envelope_size;
8241 let offset = decoder.out_of_line_offset(bytes_len)?;
8242 let mut _next_ordinal_to_read = 0;
8244 let mut next_offset = offset;
8245 let end_offset = offset + bytes_len;
8246 _next_ordinal_to_read += 1;
8247 if next_offset >= end_offset {
8248 return Ok(());
8249 }
8250
8251 while _next_ordinal_to_read < 1 {
8253 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8254 _next_ordinal_to_read += 1;
8255 next_offset += envelope_size;
8256 }
8257
8258 let next_out_of_line = decoder.next_out_of_line();
8259 let handles_before = decoder.remaining_handles();
8260 if let Some((inlined, num_bytes, num_handles)) =
8261 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8262 {
8263 let member_inline_size =
8264 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8265 if inlined != (member_inline_size <= 4) {
8266 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8267 }
8268 let inner_offset;
8269 let mut inner_depth = depth.clone();
8270 if inlined {
8271 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8272 inner_offset = next_offset;
8273 } else {
8274 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8275 inner_depth.increment()?;
8276 }
8277 let val_ref = self.cig_sync_delay.get_or_insert_with(|| fidl::new_empty!(i64, D));
8278 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
8279 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8280 {
8281 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8282 }
8283 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8284 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8285 }
8286 }
8287
8288 next_offset += envelope_size;
8289 _next_ordinal_to_read += 1;
8290 if next_offset >= end_offset {
8291 return Ok(());
8292 }
8293
8294 while _next_ordinal_to_read < 2 {
8296 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8297 _next_ordinal_to_read += 1;
8298 next_offset += envelope_size;
8299 }
8300
8301 let next_out_of_line = decoder.next_out_of_line();
8302 let handles_before = decoder.remaining_handles();
8303 if let Some((inlined, num_bytes, num_handles)) =
8304 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8305 {
8306 let member_inline_size =
8307 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8308 if inlined != (member_inline_size <= 4) {
8309 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8310 }
8311 let inner_offset;
8312 let mut inner_depth = depth.clone();
8313 if inlined {
8314 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8315 inner_offset = next_offset;
8316 } else {
8317 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8318 inner_depth.increment()?;
8319 }
8320 let val_ref = self.cis_sync_delay.get_or_insert_with(|| fidl::new_empty!(i64, D));
8321 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
8322 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8323 {
8324 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8325 }
8326 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8327 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8328 }
8329 }
8330
8331 next_offset += envelope_size;
8332 _next_ordinal_to_read += 1;
8333 if next_offset >= end_offset {
8334 return Ok(());
8335 }
8336
8337 while _next_ordinal_to_read < 3 {
8339 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8340 _next_ordinal_to_read += 1;
8341 next_offset += envelope_size;
8342 }
8343
8344 let next_out_of_line = decoder.next_out_of_line();
8345 let handles_before = decoder.remaining_handles();
8346 if let Some((inlined, num_bytes, num_handles)) =
8347 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8348 {
8349 let member_inline_size =
8350 <u8 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8351 if inlined != (member_inline_size <= 4) {
8352 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8353 }
8354 let inner_offset;
8355 let mut inner_depth = depth.clone();
8356 if inlined {
8357 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8358 inner_offset = next_offset;
8359 } else {
8360 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8361 inner_depth.increment()?;
8362 }
8363 let val_ref = self.max_subevents.get_or_insert_with(|| fidl::new_empty!(u8, D));
8364 fidl::decode!(u8, D, val_ref, decoder, inner_offset, inner_depth)?;
8365 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8366 {
8367 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8368 }
8369 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8370 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8371 }
8372 }
8373
8374 next_offset += envelope_size;
8375 _next_ordinal_to_read += 1;
8376 if next_offset >= end_offset {
8377 return Ok(());
8378 }
8379
8380 while _next_ordinal_to_read < 4 {
8382 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8383 _next_ordinal_to_read += 1;
8384 next_offset += envelope_size;
8385 }
8386
8387 let next_out_of_line = decoder.next_out_of_line();
8388 let handles_before = decoder.remaining_handles();
8389 if let Some((inlined, num_bytes, num_handles)) =
8390 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8391 {
8392 let member_inline_size =
8393 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8394 if inlined != (member_inline_size <= 4) {
8395 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8396 }
8397 let inner_offset;
8398 let mut inner_depth = depth.clone();
8399 if inlined {
8400 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8401 inner_offset = next_offset;
8402 } else {
8403 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8404 inner_depth.increment()?;
8405 }
8406 let val_ref = self.iso_interval.get_or_insert_with(|| fidl::new_empty!(i64, D));
8407 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
8408 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8409 {
8410 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8411 }
8412 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8413 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8414 }
8415 }
8416
8417 next_offset += envelope_size;
8418 _next_ordinal_to_read += 1;
8419 if next_offset >= end_offset {
8420 return Ok(());
8421 }
8422
8423 while _next_ordinal_to_read < 5 {
8425 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8426 _next_ordinal_to_read += 1;
8427 next_offset += envelope_size;
8428 }
8429
8430 let next_out_of_line = decoder.next_out_of_line();
8431 let handles_before = decoder.remaining_handles();
8432 if let Some((inlined, num_bytes, num_handles)) =
8433 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8434 {
8435 let member_inline_size =
8436 <CisUnidirectionalParams as fidl::encoding::TypeMarker>::inline_size(
8437 decoder.context,
8438 );
8439 if inlined != (member_inline_size <= 4) {
8440 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8441 }
8442 let inner_offset;
8443 let mut inner_depth = depth.clone();
8444 if inlined {
8445 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8446 inner_offset = next_offset;
8447 } else {
8448 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8449 inner_depth.increment()?;
8450 }
8451 let val_ref = self
8452 .central_to_peripheral_params
8453 .get_or_insert_with(|| fidl::new_empty!(CisUnidirectionalParams, D));
8454 fidl::decode!(
8455 CisUnidirectionalParams,
8456 D,
8457 val_ref,
8458 decoder,
8459 inner_offset,
8460 inner_depth
8461 )?;
8462 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8463 {
8464 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8465 }
8466 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8467 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8468 }
8469 }
8470
8471 next_offset += envelope_size;
8472 _next_ordinal_to_read += 1;
8473 if next_offset >= end_offset {
8474 return Ok(());
8475 }
8476
8477 while _next_ordinal_to_read < 6 {
8479 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8480 _next_ordinal_to_read += 1;
8481 next_offset += envelope_size;
8482 }
8483
8484 let next_out_of_line = decoder.next_out_of_line();
8485 let handles_before = decoder.remaining_handles();
8486 if let Some((inlined, num_bytes, num_handles)) =
8487 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8488 {
8489 let member_inline_size =
8490 <CisUnidirectionalParams as fidl::encoding::TypeMarker>::inline_size(
8491 decoder.context,
8492 );
8493 if inlined != (member_inline_size <= 4) {
8494 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8495 }
8496 let inner_offset;
8497 let mut inner_depth = depth.clone();
8498 if inlined {
8499 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8500 inner_offset = next_offset;
8501 } else {
8502 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8503 inner_depth.increment()?;
8504 }
8505 let val_ref = self
8506 .peripheral_to_central_params
8507 .get_or_insert_with(|| fidl::new_empty!(CisUnidirectionalParams, D));
8508 fidl::decode!(
8509 CisUnidirectionalParams,
8510 D,
8511 val_ref,
8512 decoder,
8513 inner_offset,
8514 inner_depth
8515 )?;
8516 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8517 {
8518 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8519 }
8520 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8521 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8522 }
8523 }
8524
8525 next_offset += envelope_size;
8526
8527 while next_offset < end_offset {
8529 _next_ordinal_to_read += 1;
8530 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8531 next_offset += envelope_size;
8532 }
8533
8534 Ok(())
8535 }
8536 }
8537
8538 impl CisParameters {
8539 #[inline(always)]
8540 fn max_ordinal_present(&self) -> u64 {
8541 if let Some(_) = self.id {
8542 return 2;
8543 }
8544 if let Some(_) = self.cis_id {
8545 return 1;
8546 }
8547 0
8548 }
8549 }
8550
8551 impl fidl::encoding::ValueTypeMarker for CisParameters {
8552 type Borrowed<'a> = &'a Self;
8553 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
8554 value
8555 }
8556 }
8557
8558 unsafe impl fidl::encoding::TypeMarker for CisParameters {
8559 type Owned = Self;
8560
8561 #[inline(always)]
8562 fn inline_align(_context: fidl::encoding::Context) -> usize {
8563 8
8564 }
8565
8566 #[inline(always)]
8567 fn inline_size(_context: fidl::encoding::Context) -> usize {
8568 16
8569 }
8570 }
8571
8572 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<CisParameters, D>
8573 for &CisParameters
8574 {
8575 unsafe fn encode(
8576 self,
8577 encoder: &mut fidl::encoding::Encoder<'_, D>,
8578 offset: usize,
8579 mut depth: fidl::encoding::Depth,
8580 ) -> fidl::Result<()> {
8581 encoder.debug_check_bounds::<CisParameters>(offset);
8582 let max_ordinal: u64 = self.max_ordinal_present();
8584 encoder.write_num(max_ordinal, offset);
8585 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
8586 if max_ordinal == 0 {
8588 return Ok(());
8589 }
8590 depth.increment()?;
8591 let envelope_size = 8;
8592 let bytes_len = max_ordinal as usize * envelope_size;
8593 #[allow(unused_variables)]
8594 let offset = encoder.out_of_line_offset(bytes_len);
8595 let mut _prev_end_offset: usize = 0;
8596 if 1 > max_ordinal {
8597 return Ok(());
8598 }
8599
8600 let cur_offset: usize = (1 - 1) * envelope_size;
8603
8604 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8606
8607 fidl::encoding::encode_in_envelope_optional::<u8, D>(
8612 self.cis_id.as_ref().map(<u8 as fidl::encoding::ValueTypeMarker>::borrow),
8613 encoder,
8614 offset + cur_offset,
8615 depth,
8616 )?;
8617
8618 _prev_end_offset = cur_offset + envelope_size;
8619 if 2 > max_ordinal {
8620 return Ok(());
8621 }
8622
8623 let cur_offset: usize = (2 - 1) * envelope_size;
8626
8627 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8629
8630 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_bluetooth__common::PeerId, D>(
8635 self.id.as_ref().map(<fidl_fuchsia_bluetooth__common::PeerId as fidl::encoding::ValueTypeMarker>::borrow),
8636 encoder, offset + cur_offset, depth
8637 )?;
8638
8639 _prev_end_offset = cur_offset + envelope_size;
8640
8641 Ok(())
8642 }
8643 }
8644
8645 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for CisParameters {
8646 #[inline(always)]
8647 fn new_empty() -> Self {
8648 Self::default()
8649 }
8650
8651 unsafe fn decode(
8652 &mut self,
8653 decoder: &mut fidl::encoding::Decoder<'_, D>,
8654 offset: usize,
8655 mut depth: fidl::encoding::Depth,
8656 ) -> fidl::Result<()> {
8657 decoder.debug_check_bounds::<Self>(offset);
8658 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
8659 None => return Err(fidl::Error::NotNullable),
8660 Some(len) => len,
8661 };
8662 if len == 0 {
8664 return Ok(());
8665 };
8666 depth.increment()?;
8667 let envelope_size = 8;
8668 let bytes_len = len * envelope_size;
8669 let offset = decoder.out_of_line_offset(bytes_len)?;
8670 let mut _next_ordinal_to_read = 0;
8672 let mut next_offset = offset;
8673 let end_offset = offset + bytes_len;
8674 _next_ordinal_to_read += 1;
8675 if next_offset >= end_offset {
8676 return Ok(());
8677 }
8678
8679 while _next_ordinal_to_read < 1 {
8681 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8682 _next_ordinal_to_read += 1;
8683 next_offset += envelope_size;
8684 }
8685
8686 let next_out_of_line = decoder.next_out_of_line();
8687 let handles_before = decoder.remaining_handles();
8688 if let Some((inlined, num_bytes, num_handles)) =
8689 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8690 {
8691 let member_inline_size =
8692 <u8 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8693 if inlined != (member_inline_size <= 4) {
8694 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8695 }
8696 let inner_offset;
8697 let mut inner_depth = depth.clone();
8698 if inlined {
8699 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8700 inner_offset = next_offset;
8701 } else {
8702 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8703 inner_depth.increment()?;
8704 }
8705 let val_ref = self.cis_id.get_or_insert_with(|| fidl::new_empty!(u8, D));
8706 fidl::decode!(u8, D, val_ref, decoder, inner_offset, inner_depth)?;
8707 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8708 {
8709 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8710 }
8711 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8712 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8713 }
8714 }
8715
8716 next_offset += envelope_size;
8717 _next_ordinal_to_read += 1;
8718 if next_offset >= end_offset {
8719 return Ok(());
8720 }
8721
8722 while _next_ordinal_to_read < 2 {
8724 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8725 _next_ordinal_to_read += 1;
8726 next_offset += envelope_size;
8727 }
8728
8729 let next_out_of_line = decoder.next_out_of_line();
8730 let handles_before = decoder.remaining_handles();
8731 if let Some((inlined, num_bytes, num_handles)) =
8732 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8733 {
8734 let member_inline_size = <fidl_fuchsia_bluetooth__common::PeerId as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8735 if inlined != (member_inline_size <= 4) {
8736 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8737 }
8738 let inner_offset;
8739 let mut inner_depth = depth.clone();
8740 if inlined {
8741 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8742 inner_offset = next_offset;
8743 } else {
8744 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8745 inner_depth.increment()?;
8746 }
8747 let val_ref = self.id.get_or_insert_with(|| {
8748 fidl::new_empty!(fidl_fuchsia_bluetooth__common::PeerId, D)
8749 });
8750 fidl::decode!(
8751 fidl_fuchsia_bluetooth__common::PeerId,
8752 D,
8753 val_ref,
8754 decoder,
8755 inner_offset,
8756 inner_depth
8757 )?;
8758 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8759 {
8760 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8761 }
8762 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8763 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8764 }
8765 }
8766
8767 next_offset += envelope_size;
8768
8769 while next_offset < end_offset {
8771 _next_ordinal_to_read += 1;
8772 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8773 next_offset += envelope_size;
8774 }
8775
8776 Ok(())
8777 }
8778 }
8779
8780 impl CisUnidirectionalParams {
8781 #[inline(always)]
8782 fn max_ordinal_present(&self) -> u64 {
8783 if let Some(_) = self.flush_timeout {
8784 return 3;
8785 }
8786 if let Some(_) = self.burst_number {
8787 return 2;
8788 }
8789 if let Some(_) = self.transport_latency {
8790 return 1;
8791 }
8792 0
8793 }
8794 }
8795
8796 impl fidl::encoding::ValueTypeMarker for CisUnidirectionalParams {
8797 type Borrowed<'a> = &'a Self;
8798 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
8799 value
8800 }
8801 }
8802
8803 unsafe impl fidl::encoding::TypeMarker for CisUnidirectionalParams {
8804 type Owned = Self;
8805
8806 #[inline(always)]
8807 fn inline_align(_context: fidl::encoding::Context) -> usize {
8808 8
8809 }
8810
8811 #[inline(always)]
8812 fn inline_size(_context: fidl::encoding::Context) -> usize {
8813 16
8814 }
8815 }
8816
8817 unsafe impl<D: fidl::encoding::ResourceDialect>
8818 fidl::encoding::Encode<CisUnidirectionalParams, D> for &CisUnidirectionalParams
8819 {
8820 unsafe fn encode(
8821 self,
8822 encoder: &mut fidl::encoding::Encoder<'_, D>,
8823 offset: usize,
8824 mut depth: fidl::encoding::Depth,
8825 ) -> fidl::Result<()> {
8826 encoder.debug_check_bounds::<CisUnidirectionalParams>(offset);
8827 let max_ordinal: u64 = self.max_ordinal_present();
8829 encoder.write_num(max_ordinal, offset);
8830 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
8831 if max_ordinal == 0 {
8833 return Ok(());
8834 }
8835 depth.increment()?;
8836 let envelope_size = 8;
8837 let bytes_len = max_ordinal as usize * envelope_size;
8838 #[allow(unused_variables)]
8839 let offset = encoder.out_of_line_offset(bytes_len);
8840 let mut _prev_end_offset: usize = 0;
8841 if 1 > max_ordinal {
8842 return Ok(());
8843 }
8844
8845 let cur_offset: usize = (1 - 1) * envelope_size;
8848
8849 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8851
8852 fidl::encoding::encode_in_envelope_optional::<i64, D>(
8857 self.transport_latency
8858 .as_ref()
8859 .map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
8860 encoder,
8861 offset + cur_offset,
8862 depth,
8863 )?;
8864
8865 _prev_end_offset = cur_offset + envelope_size;
8866 if 2 > max_ordinal {
8867 return Ok(());
8868 }
8869
8870 let cur_offset: usize = (2 - 1) * envelope_size;
8873
8874 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8876
8877 fidl::encoding::encode_in_envelope_optional::<u8, D>(
8882 self.burst_number.as_ref().map(<u8 as fidl::encoding::ValueTypeMarker>::borrow),
8883 encoder,
8884 offset + cur_offset,
8885 depth,
8886 )?;
8887
8888 _prev_end_offset = cur_offset + envelope_size;
8889 if 3 > max_ordinal {
8890 return Ok(());
8891 }
8892
8893 let cur_offset: usize = (3 - 1) * envelope_size;
8896
8897 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8899
8900 fidl::encoding::encode_in_envelope_optional::<u8, D>(
8905 self.flush_timeout.as_ref().map(<u8 as fidl::encoding::ValueTypeMarker>::borrow),
8906 encoder,
8907 offset + cur_offset,
8908 depth,
8909 )?;
8910
8911 _prev_end_offset = cur_offset + envelope_size;
8912
8913 Ok(())
8914 }
8915 }
8916
8917 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
8918 for CisUnidirectionalParams
8919 {
8920 #[inline(always)]
8921 fn new_empty() -> Self {
8922 Self::default()
8923 }
8924
8925 unsafe fn decode(
8926 &mut self,
8927 decoder: &mut fidl::encoding::Decoder<'_, D>,
8928 offset: usize,
8929 mut depth: fidl::encoding::Depth,
8930 ) -> fidl::Result<()> {
8931 decoder.debug_check_bounds::<Self>(offset);
8932 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
8933 None => return Err(fidl::Error::NotNullable),
8934 Some(len) => len,
8935 };
8936 if len == 0 {
8938 return Ok(());
8939 };
8940 depth.increment()?;
8941 let envelope_size = 8;
8942 let bytes_len = len * envelope_size;
8943 let offset = decoder.out_of_line_offset(bytes_len)?;
8944 let mut _next_ordinal_to_read = 0;
8946 let mut next_offset = offset;
8947 let end_offset = offset + bytes_len;
8948 _next_ordinal_to_read += 1;
8949 if next_offset >= end_offset {
8950 return Ok(());
8951 }
8952
8953 while _next_ordinal_to_read < 1 {
8955 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8956 _next_ordinal_to_read += 1;
8957 next_offset += envelope_size;
8958 }
8959
8960 let next_out_of_line = decoder.next_out_of_line();
8961 let handles_before = decoder.remaining_handles();
8962 if let Some((inlined, num_bytes, num_handles)) =
8963 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8964 {
8965 let member_inline_size =
8966 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8967 if inlined != (member_inline_size <= 4) {
8968 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8969 }
8970 let inner_offset;
8971 let mut inner_depth = depth.clone();
8972 if inlined {
8973 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8974 inner_offset = next_offset;
8975 } else {
8976 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8977 inner_depth.increment()?;
8978 }
8979 let val_ref =
8980 self.transport_latency.get_or_insert_with(|| fidl::new_empty!(i64, D));
8981 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
8982 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8983 {
8984 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8985 }
8986 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8987 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8988 }
8989 }
8990
8991 next_offset += envelope_size;
8992 _next_ordinal_to_read += 1;
8993 if next_offset >= end_offset {
8994 return Ok(());
8995 }
8996
8997 while _next_ordinal_to_read < 2 {
8999 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9000 _next_ordinal_to_read += 1;
9001 next_offset += envelope_size;
9002 }
9003
9004 let next_out_of_line = decoder.next_out_of_line();
9005 let handles_before = decoder.remaining_handles();
9006 if let Some((inlined, num_bytes, num_handles)) =
9007 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9008 {
9009 let member_inline_size =
9010 <u8 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9011 if inlined != (member_inline_size <= 4) {
9012 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9013 }
9014 let inner_offset;
9015 let mut inner_depth = depth.clone();
9016 if inlined {
9017 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9018 inner_offset = next_offset;
9019 } else {
9020 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9021 inner_depth.increment()?;
9022 }
9023 let val_ref = self.burst_number.get_or_insert_with(|| fidl::new_empty!(u8, D));
9024 fidl::decode!(u8, D, val_ref, decoder, inner_offset, inner_depth)?;
9025 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9026 {
9027 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9028 }
9029 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9030 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9031 }
9032 }
9033
9034 next_offset += envelope_size;
9035 _next_ordinal_to_read += 1;
9036 if next_offset >= end_offset {
9037 return Ok(());
9038 }
9039
9040 while _next_ordinal_to_read < 3 {
9042 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9043 _next_ordinal_to_read += 1;
9044 next_offset += envelope_size;
9045 }
9046
9047 let next_out_of_line = decoder.next_out_of_line();
9048 let handles_before = decoder.remaining_handles();
9049 if let Some((inlined, num_bytes, num_handles)) =
9050 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9051 {
9052 let member_inline_size =
9053 <u8 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9054 if inlined != (member_inline_size <= 4) {
9055 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9056 }
9057 let inner_offset;
9058 let mut inner_depth = depth.clone();
9059 if inlined {
9060 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9061 inner_offset = next_offset;
9062 } else {
9063 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9064 inner_depth.increment()?;
9065 }
9066 let val_ref = self.flush_timeout.get_or_insert_with(|| fidl::new_empty!(u8, D));
9067 fidl::decode!(u8, D, val_ref, decoder, inner_offset, inner_depth)?;
9068 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9069 {
9070 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9071 }
9072 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9073 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9074 }
9075 }
9076
9077 next_offset += envelope_size;
9078
9079 while next_offset < end_offset {
9081 _next_ordinal_to_read += 1;
9082 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9083 next_offset += envelope_size;
9084 }
9085
9086 Ok(())
9087 }
9088 }
9089
9090 impl CodecDelayGetCodecLocalDelayRangeRequest {
9091 #[inline(always)]
9092 fn max_ordinal_present(&self) -> u64 {
9093 if let Some(_) = self.codec_attributes {
9094 return 3;
9095 }
9096 if let Some(_) = self.data_direction {
9097 return 2;
9098 }
9099 if let Some(_) = self.logical_transport_type {
9100 return 1;
9101 }
9102 0
9103 }
9104 }
9105
9106 impl fidl::encoding::ValueTypeMarker for CodecDelayGetCodecLocalDelayRangeRequest {
9107 type Borrowed<'a> = &'a Self;
9108 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
9109 value
9110 }
9111 }
9112
9113 unsafe impl fidl::encoding::TypeMarker for CodecDelayGetCodecLocalDelayRangeRequest {
9114 type Owned = Self;
9115
9116 #[inline(always)]
9117 fn inline_align(_context: fidl::encoding::Context) -> usize {
9118 8
9119 }
9120
9121 #[inline(always)]
9122 fn inline_size(_context: fidl::encoding::Context) -> usize {
9123 16
9124 }
9125 }
9126
9127 unsafe impl<D: fidl::encoding::ResourceDialect>
9128 fidl::encoding::Encode<CodecDelayGetCodecLocalDelayRangeRequest, D>
9129 for &CodecDelayGetCodecLocalDelayRangeRequest
9130 {
9131 unsafe fn encode(
9132 self,
9133 encoder: &mut fidl::encoding::Encoder<'_, D>,
9134 offset: usize,
9135 mut depth: fidl::encoding::Depth,
9136 ) -> fidl::Result<()> {
9137 encoder.debug_check_bounds::<CodecDelayGetCodecLocalDelayRangeRequest>(offset);
9138 let max_ordinal: u64 = self.max_ordinal_present();
9140 encoder.write_num(max_ordinal, offset);
9141 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
9142 if max_ordinal == 0 {
9144 return Ok(());
9145 }
9146 depth.increment()?;
9147 let envelope_size = 8;
9148 let bytes_len = max_ordinal as usize * envelope_size;
9149 #[allow(unused_variables)]
9150 let offset = encoder.out_of_line_offset(bytes_len);
9151 let mut _prev_end_offset: usize = 0;
9152 if 1 > max_ordinal {
9153 return Ok(());
9154 }
9155
9156 let cur_offset: usize = (1 - 1) * envelope_size;
9159
9160 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9162
9163 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_bluetooth__common::LogicalTransportType, D>(
9168 self.logical_transport_type.as_ref().map(<fidl_fuchsia_bluetooth__common::LogicalTransportType as fidl::encoding::ValueTypeMarker>::borrow),
9169 encoder, offset + cur_offset, depth
9170 )?;
9171
9172 _prev_end_offset = cur_offset + envelope_size;
9173 if 2 > max_ordinal {
9174 return Ok(());
9175 }
9176
9177 let cur_offset: usize = (2 - 1) * envelope_size;
9180
9181 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9183
9184 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_bluetooth__common::DataDirection, D>(
9189 self.data_direction.as_ref().map(<fidl_fuchsia_bluetooth__common::DataDirection as fidl::encoding::ValueTypeMarker>::borrow),
9190 encoder, offset + cur_offset, depth
9191 )?;
9192
9193 _prev_end_offset = cur_offset + envelope_size;
9194 if 3 > max_ordinal {
9195 return Ok(());
9196 }
9197
9198 let cur_offset: usize = (3 - 1) * envelope_size;
9201
9202 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9204
9205 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_bluetooth__common::CodecAttributes, D>(
9210 self.codec_attributes.as_ref().map(<fidl_fuchsia_bluetooth__common::CodecAttributes as fidl::encoding::ValueTypeMarker>::borrow),
9211 encoder, offset + cur_offset, depth
9212 )?;
9213
9214 _prev_end_offset = cur_offset + envelope_size;
9215
9216 Ok(())
9217 }
9218 }
9219
9220 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
9221 for CodecDelayGetCodecLocalDelayRangeRequest
9222 {
9223 #[inline(always)]
9224 fn new_empty() -> Self {
9225 Self::default()
9226 }
9227
9228 unsafe fn decode(
9229 &mut self,
9230 decoder: &mut fidl::encoding::Decoder<'_, D>,
9231 offset: usize,
9232 mut depth: fidl::encoding::Depth,
9233 ) -> fidl::Result<()> {
9234 decoder.debug_check_bounds::<Self>(offset);
9235 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
9236 None => return Err(fidl::Error::NotNullable),
9237 Some(len) => len,
9238 };
9239 if len == 0 {
9241 return Ok(());
9242 };
9243 depth.increment()?;
9244 let envelope_size = 8;
9245 let bytes_len = len * envelope_size;
9246 let offset = decoder.out_of_line_offset(bytes_len)?;
9247 let mut _next_ordinal_to_read = 0;
9249 let mut next_offset = offset;
9250 let end_offset = offset + bytes_len;
9251 _next_ordinal_to_read += 1;
9252 if next_offset >= end_offset {
9253 return Ok(());
9254 }
9255
9256 while _next_ordinal_to_read < 1 {
9258 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9259 _next_ordinal_to_read += 1;
9260 next_offset += envelope_size;
9261 }
9262
9263 let next_out_of_line = decoder.next_out_of_line();
9264 let handles_before = decoder.remaining_handles();
9265 if let Some((inlined, num_bytes, num_handles)) =
9266 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9267 {
9268 let member_inline_size = <fidl_fuchsia_bluetooth__common::LogicalTransportType as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9269 if inlined != (member_inline_size <= 4) {
9270 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9271 }
9272 let inner_offset;
9273 let mut inner_depth = depth.clone();
9274 if inlined {
9275 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9276 inner_offset = next_offset;
9277 } else {
9278 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9279 inner_depth.increment()?;
9280 }
9281 let val_ref = self.logical_transport_type.get_or_insert_with(|| {
9282 fidl::new_empty!(fidl_fuchsia_bluetooth__common::LogicalTransportType, D)
9283 });
9284 fidl::decode!(
9285 fidl_fuchsia_bluetooth__common::LogicalTransportType,
9286 D,
9287 val_ref,
9288 decoder,
9289 inner_offset,
9290 inner_depth
9291 )?;
9292 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9293 {
9294 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9295 }
9296 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9297 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9298 }
9299 }
9300
9301 next_offset += envelope_size;
9302 _next_ordinal_to_read += 1;
9303 if next_offset >= end_offset {
9304 return Ok(());
9305 }
9306
9307 while _next_ordinal_to_read < 2 {
9309 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9310 _next_ordinal_to_read += 1;
9311 next_offset += envelope_size;
9312 }
9313
9314 let next_out_of_line = decoder.next_out_of_line();
9315 let handles_before = decoder.remaining_handles();
9316 if let Some((inlined, num_bytes, num_handles)) =
9317 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9318 {
9319 let member_inline_size = <fidl_fuchsia_bluetooth__common::DataDirection as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9320 if inlined != (member_inline_size <= 4) {
9321 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9322 }
9323 let inner_offset;
9324 let mut inner_depth = depth.clone();
9325 if inlined {
9326 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9327 inner_offset = next_offset;
9328 } else {
9329 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9330 inner_depth.increment()?;
9331 }
9332 let val_ref = self.data_direction.get_or_insert_with(|| {
9333 fidl::new_empty!(fidl_fuchsia_bluetooth__common::DataDirection, D)
9334 });
9335 fidl::decode!(
9336 fidl_fuchsia_bluetooth__common::DataDirection,
9337 D,
9338 val_ref,
9339 decoder,
9340 inner_offset,
9341 inner_depth
9342 )?;
9343 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9344 {
9345 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9346 }
9347 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9348 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9349 }
9350 }
9351
9352 next_offset += envelope_size;
9353 _next_ordinal_to_read += 1;
9354 if next_offset >= end_offset {
9355 return Ok(());
9356 }
9357
9358 while _next_ordinal_to_read < 3 {
9360 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9361 _next_ordinal_to_read += 1;
9362 next_offset += envelope_size;
9363 }
9364
9365 let next_out_of_line = decoder.next_out_of_line();
9366 let handles_before = decoder.remaining_handles();
9367 if let Some((inlined, num_bytes, num_handles)) =
9368 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9369 {
9370 let member_inline_size = <fidl_fuchsia_bluetooth__common::CodecAttributes as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9371 if inlined != (member_inline_size <= 4) {
9372 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9373 }
9374 let inner_offset;
9375 let mut inner_depth = depth.clone();
9376 if inlined {
9377 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9378 inner_offset = next_offset;
9379 } else {
9380 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9381 inner_depth.increment()?;
9382 }
9383 let val_ref = self.codec_attributes.get_or_insert_with(|| {
9384 fidl::new_empty!(fidl_fuchsia_bluetooth__common::CodecAttributes, D)
9385 });
9386 fidl::decode!(
9387 fidl_fuchsia_bluetooth__common::CodecAttributes,
9388 D,
9389 val_ref,
9390 decoder,
9391 inner_offset,
9392 inner_depth
9393 )?;
9394 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9395 {
9396 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9397 }
9398 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9399 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9400 }
9401 }
9402
9403 next_offset += envelope_size;
9404
9405 while next_offset < end_offset {
9407 _next_ordinal_to_read += 1;
9408 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9409 next_offset += envelope_size;
9410 }
9411
9412 Ok(())
9413 }
9414 }
9415
9416 impl CodecDelayGetCodecLocalDelayRangeResponse {
9417 #[inline(always)]
9418 fn max_ordinal_present(&self) -> u64 {
9419 if let Some(_) = self.max_controller_delay {
9420 return 2;
9421 }
9422 if let Some(_) = self.min_controller_delay {
9423 return 1;
9424 }
9425 0
9426 }
9427 }
9428
9429 impl fidl::encoding::ValueTypeMarker for CodecDelayGetCodecLocalDelayRangeResponse {
9430 type Borrowed<'a> = &'a Self;
9431 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
9432 value
9433 }
9434 }
9435
9436 unsafe impl fidl::encoding::TypeMarker for CodecDelayGetCodecLocalDelayRangeResponse {
9437 type Owned = Self;
9438
9439 #[inline(always)]
9440 fn inline_align(_context: fidl::encoding::Context) -> usize {
9441 8
9442 }
9443
9444 #[inline(always)]
9445 fn inline_size(_context: fidl::encoding::Context) -> usize {
9446 16
9447 }
9448 }
9449
9450 unsafe impl<D: fidl::encoding::ResourceDialect>
9451 fidl::encoding::Encode<CodecDelayGetCodecLocalDelayRangeResponse, D>
9452 for &CodecDelayGetCodecLocalDelayRangeResponse
9453 {
9454 unsafe fn encode(
9455 self,
9456 encoder: &mut fidl::encoding::Encoder<'_, D>,
9457 offset: usize,
9458 mut depth: fidl::encoding::Depth,
9459 ) -> fidl::Result<()> {
9460 encoder.debug_check_bounds::<CodecDelayGetCodecLocalDelayRangeResponse>(offset);
9461 let max_ordinal: u64 = self.max_ordinal_present();
9463 encoder.write_num(max_ordinal, offset);
9464 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
9465 if max_ordinal == 0 {
9467 return Ok(());
9468 }
9469 depth.increment()?;
9470 let envelope_size = 8;
9471 let bytes_len = max_ordinal as usize * envelope_size;
9472 #[allow(unused_variables)]
9473 let offset = encoder.out_of_line_offset(bytes_len);
9474 let mut _prev_end_offset: usize = 0;
9475 if 1 > max_ordinal {
9476 return Ok(());
9477 }
9478
9479 let cur_offset: usize = (1 - 1) * envelope_size;
9482
9483 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9485
9486 fidl::encoding::encode_in_envelope_optional::<i64, D>(
9491 self.min_controller_delay
9492 .as_ref()
9493 .map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
9494 encoder,
9495 offset + cur_offset,
9496 depth,
9497 )?;
9498
9499 _prev_end_offset = cur_offset + envelope_size;
9500 if 2 > max_ordinal {
9501 return Ok(());
9502 }
9503
9504 let cur_offset: usize = (2 - 1) * envelope_size;
9507
9508 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9510
9511 fidl::encoding::encode_in_envelope_optional::<i64, D>(
9516 self.max_controller_delay
9517 .as_ref()
9518 .map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
9519 encoder,
9520 offset + cur_offset,
9521 depth,
9522 )?;
9523
9524 _prev_end_offset = cur_offset + envelope_size;
9525
9526 Ok(())
9527 }
9528 }
9529
9530 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
9531 for CodecDelayGetCodecLocalDelayRangeResponse
9532 {
9533 #[inline(always)]
9534 fn new_empty() -> Self {
9535 Self::default()
9536 }
9537
9538 unsafe fn decode(
9539 &mut self,
9540 decoder: &mut fidl::encoding::Decoder<'_, D>,
9541 offset: usize,
9542 mut depth: fidl::encoding::Depth,
9543 ) -> fidl::Result<()> {
9544 decoder.debug_check_bounds::<Self>(offset);
9545 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
9546 None => return Err(fidl::Error::NotNullable),
9547 Some(len) => len,
9548 };
9549 if len == 0 {
9551 return Ok(());
9552 };
9553 depth.increment()?;
9554 let envelope_size = 8;
9555 let bytes_len = len * envelope_size;
9556 let offset = decoder.out_of_line_offset(bytes_len)?;
9557 let mut _next_ordinal_to_read = 0;
9559 let mut next_offset = offset;
9560 let end_offset = offset + bytes_len;
9561 _next_ordinal_to_read += 1;
9562 if next_offset >= end_offset {
9563 return Ok(());
9564 }
9565
9566 while _next_ordinal_to_read < 1 {
9568 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9569 _next_ordinal_to_read += 1;
9570 next_offset += envelope_size;
9571 }
9572
9573 let next_out_of_line = decoder.next_out_of_line();
9574 let handles_before = decoder.remaining_handles();
9575 if let Some((inlined, num_bytes, num_handles)) =
9576 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9577 {
9578 let member_inline_size =
9579 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9580 if inlined != (member_inline_size <= 4) {
9581 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9582 }
9583 let inner_offset;
9584 let mut inner_depth = depth.clone();
9585 if inlined {
9586 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9587 inner_offset = next_offset;
9588 } else {
9589 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9590 inner_depth.increment()?;
9591 }
9592 let val_ref =
9593 self.min_controller_delay.get_or_insert_with(|| fidl::new_empty!(i64, D));
9594 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
9595 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9596 {
9597 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9598 }
9599 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9600 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9601 }
9602 }
9603
9604 next_offset += envelope_size;
9605 _next_ordinal_to_read += 1;
9606 if next_offset >= end_offset {
9607 return Ok(());
9608 }
9609
9610 while _next_ordinal_to_read < 2 {
9612 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9613 _next_ordinal_to_read += 1;
9614 next_offset += envelope_size;
9615 }
9616
9617 let next_out_of_line = decoder.next_out_of_line();
9618 let handles_before = decoder.remaining_handles();
9619 if let Some((inlined, num_bytes, num_handles)) =
9620 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9621 {
9622 let member_inline_size =
9623 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9624 if inlined != (member_inline_size <= 4) {
9625 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9626 }
9627 let inner_offset;
9628 let mut inner_depth = depth.clone();
9629 if inlined {
9630 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9631 inner_offset = next_offset;
9632 } else {
9633 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9634 inner_depth.increment()?;
9635 }
9636 let val_ref =
9637 self.max_controller_delay.get_or_insert_with(|| fidl::new_empty!(i64, D));
9638 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
9639 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9640 {
9641 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9642 }
9643 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9644 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9645 }
9646 }
9647
9648 next_offset += envelope_size;
9649
9650 while next_offset < end_offset {
9652 _next_ordinal_to_read += 1;
9653 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9654 next_offset += envelope_size;
9655 }
9656
9657 Ok(())
9658 }
9659 }
9660
9661 impl ConnectedIsochronousGroupEstablishStreamsRequest {
9662 #[inline(always)]
9663 fn max_ordinal_present(&self) -> u64 {
9664 if let Some(_) = self.cis_params {
9665 return 1;
9666 }
9667 0
9668 }
9669 }
9670
9671 impl fidl::encoding::ValueTypeMarker for ConnectedIsochronousGroupEstablishStreamsRequest {
9672 type Borrowed<'a> = &'a Self;
9673 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
9674 value
9675 }
9676 }
9677
9678 unsafe impl fidl::encoding::TypeMarker for ConnectedIsochronousGroupEstablishStreamsRequest {
9679 type Owned = Self;
9680
9681 #[inline(always)]
9682 fn inline_align(_context: fidl::encoding::Context) -> usize {
9683 8
9684 }
9685
9686 #[inline(always)]
9687 fn inline_size(_context: fidl::encoding::Context) -> usize {
9688 16
9689 }
9690 }
9691
9692 unsafe impl<D: fidl::encoding::ResourceDialect>
9693 fidl::encoding::Encode<ConnectedIsochronousGroupEstablishStreamsRequest, D>
9694 for &ConnectedIsochronousGroupEstablishStreamsRequest
9695 {
9696 unsafe fn encode(
9697 self,
9698 encoder: &mut fidl::encoding::Encoder<'_, D>,
9699 offset: usize,
9700 mut depth: fidl::encoding::Depth,
9701 ) -> fidl::Result<()> {
9702 encoder.debug_check_bounds::<ConnectedIsochronousGroupEstablishStreamsRequest>(offset);
9703 let max_ordinal: u64 = self.max_ordinal_present();
9705 encoder.write_num(max_ordinal, offset);
9706 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
9707 if max_ordinal == 0 {
9709 return Ok(());
9710 }
9711 depth.increment()?;
9712 let envelope_size = 8;
9713 let bytes_len = max_ordinal as usize * envelope_size;
9714 #[allow(unused_variables)]
9715 let offset = encoder.out_of_line_offset(bytes_len);
9716 let mut _prev_end_offset: usize = 0;
9717 if 1 > max_ordinal {
9718 return Ok(());
9719 }
9720
9721 let cur_offset: usize = (1 - 1) * envelope_size;
9724
9725 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9727
9728 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<CisParameters, 31>, D>(
9733 self.cis_params.as_ref().map(<fidl::encoding::Vector<CisParameters, 31> as fidl::encoding::ValueTypeMarker>::borrow),
9734 encoder, offset + cur_offset, depth
9735 )?;
9736
9737 _prev_end_offset = cur_offset + envelope_size;
9738
9739 Ok(())
9740 }
9741 }
9742
9743 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
9744 for ConnectedIsochronousGroupEstablishStreamsRequest
9745 {
9746 #[inline(always)]
9747 fn new_empty() -> Self {
9748 Self::default()
9749 }
9750
9751 unsafe fn decode(
9752 &mut self,
9753 decoder: &mut fidl::encoding::Decoder<'_, D>,
9754 offset: usize,
9755 mut depth: fidl::encoding::Depth,
9756 ) -> fidl::Result<()> {
9757 decoder.debug_check_bounds::<Self>(offset);
9758 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
9759 None => return Err(fidl::Error::NotNullable),
9760 Some(len) => len,
9761 };
9762 if len == 0 {
9764 return Ok(());
9765 };
9766 depth.increment()?;
9767 let envelope_size = 8;
9768 let bytes_len = len * envelope_size;
9769 let offset = decoder.out_of_line_offset(bytes_len)?;
9770 let mut _next_ordinal_to_read = 0;
9772 let mut next_offset = offset;
9773 let end_offset = offset + bytes_len;
9774 _next_ordinal_to_read += 1;
9775 if next_offset >= end_offset {
9776 return Ok(());
9777 }
9778
9779 while _next_ordinal_to_read < 1 {
9781 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9782 _next_ordinal_to_read += 1;
9783 next_offset += envelope_size;
9784 }
9785
9786 let next_out_of_line = decoder.next_out_of_line();
9787 let handles_before = decoder.remaining_handles();
9788 if let Some((inlined, num_bytes, num_handles)) =
9789 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9790 {
9791 let member_inline_size = <fidl::encoding::Vector<CisParameters, 31> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9792 if inlined != (member_inline_size <= 4) {
9793 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9794 }
9795 let inner_offset;
9796 let mut inner_depth = depth.clone();
9797 if inlined {
9798 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9799 inner_offset = next_offset;
9800 } else {
9801 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9802 inner_depth.increment()?;
9803 }
9804 let val_ref = self.cis_params.get_or_insert_with(
9805 || fidl::new_empty!(fidl::encoding::Vector<CisParameters, 31>, D),
9806 );
9807 fidl::decode!(fidl::encoding::Vector<CisParameters, 31>, D, val_ref, decoder, inner_offset, inner_depth)?;
9808 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9809 {
9810 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9811 }
9812 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9813 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9814 }
9815 }
9816
9817 next_offset += envelope_size;
9818
9819 while next_offset < end_offset {
9821 _next_ordinal_to_read += 1;
9822 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9823 next_offset += envelope_size;
9824 }
9825
9826 Ok(())
9827 }
9828 }
9829
9830 impl ConnectionOptions {
9831 #[inline(always)]
9832 fn max_ordinal_present(&self) -> u64 {
9833 if let Some(_) = self.service_filter {
9834 return 2;
9835 }
9836 if let Some(_) = self.bondable_mode {
9837 return 1;
9838 }
9839 0
9840 }
9841 }
9842
9843 impl fidl::encoding::ValueTypeMarker for ConnectionOptions {
9844 type Borrowed<'a> = &'a Self;
9845 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
9846 value
9847 }
9848 }
9849
9850 unsafe impl fidl::encoding::TypeMarker for ConnectionOptions {
9851 type Owned = Self;
9852
9853 #[inline(always)]
9854 fn inline_align(_context: fidl::encoding::Context) -> usize {
9855 8
9856 }
9857
9858 #[inline(always)]
9859 fn inline_size(_context: fidl::encoding::Context) -> usize {
9860 16
9861 }
9862 }
9863
9864 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ConnectionOptions, D>
9865 for &ConnectionOptions
9866 {
9867 unsafe fn encode(
9868 self,
9869 encoder: &mut fidl::encoding::Encoder<'_, D>,
9870 offset: usize,
9871 mut depth: fidl::encoding::Depth,
9872 ) -> fidl::Result<()> {
9873 encoder.debug_check_bounds::<ConnectionOptions>(offset);
9874 let max_ordinal: u64 = self.max_ordinal_present();
9876 encoder.write_num(max_ordinal, offset);
9877 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
9878 if max_ordinal == 0 {
9880 return Ok(());
9881 }
9882 depth.increment()?;
9883 let envelope_size = 8;
9884 let bytes_len = max_ordinal as usize * envelope_size;
9885 #[allow(unused_variables)]
9886 let offset = encoder.out_of_line_offset(bytes_len);
9887 let mut _prev_end_offset: usize = 0;
9888 if 1 > max_ordinal {
9889 return Ok(());
9890 }
9891
9892 let cur_offset: usize = (1 - 1) * envelope_size;
9895
9896 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9898
9899 fidl::encoding::encode_in_envelope_optional::<bool, D>(
9904 self.bondable_mode.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
9905 encoder,
9906 offset + cur_offset,
9907 depth,
9908 )?;
9909
9910 _prev_end_offset = cur_offset + envelope_size;
9911 if 2 > max_ordinal {
9912 return Ok(());
9913 }
9914
9915 let cur_offset: usize = (2 - 1) * envelope_size;
9918
9919 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9921
9922 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_bluetooth__common::Uuid, D>(
9927 self.service_filter.as_ref().map(<fidl_fuchsia_bluetooth__common::Uuid as fidl::encoding::ValueTypeMarker>::borrow),
9928 encoder, offset + cur_offset, depth
9929 )?;
9930
9931 _prev_end_offset = cur_offset + envelope_size;
9932
9933 Ok(())
9934 }
9935 }
9936
9937 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ConnectionOptions {
9938 #[inline(always)]
9939 fn new_empty() -> Self {
9940 Self::default()
9941 }
9942
9943 unsafe fn decode(
9944 &mut self,
9945 decoder: &mut fidl::encoding::Decoder<'_, D>,
9946 offset: usize,
9947 mut depth: fidl::encoding::Depth,
9948 ) -> fidl::Result<()> {
9949 decoder.debug_check_bounds::<Self>(offset);
9950 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
9951 None => return Err(fidl::Error::NotNullable),
9952 Some(len) => len,
9953 };
9954 if len == 0 {
9956 return Ok(());
9957 };
9958 depth.increment()?;
9959 let envelope_size = 8;
9960 let bytes_len = len * envelope_size;
9961 let offset = decoder.out_of_line_offset(bytes_len)?;
9962 let mut _next_ordinal_to_read = 0;
9964 let mut next_offset = offset;
9965 let end_offset = offset + bytes_len;
9966 _next_ordinal_to_read += 1;
9967 if next_offset >= end_offset {
9968 return Ok(());
9969 }
9970
9971 while _next_ordinal_to_read < 1 {
9973 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9974 _next_ordinal_to_read += 1;
9975 next_offset += envelope_size;
9976 }
9977
9978 let next_out_of_line = decoder.next_out_of_line();
9979 let handles_before = decoder.remaining_handles();
9980 if let Some((inlined, num_bytes, num_handles)) =
9981 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9982 {
9983 let member_inline_size =
9984 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9985 if inlined != (member_inline_size <= 4) {
9986 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9987 }
9988 let inner_offset;
9989 let mut inner_depth = depth.clone();
9990 if inlined {
9991 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9992 inner_offset = next_offset;
9993 } else {
9994 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9995 inner_depth.increment()?;
9996 }
9997 let val_ref = self.bondable_mode.get_or_insert_with(|| fidl::new_empty!(bool, D));
9998 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
9999 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10000 {
10001 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10002 }
10003 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10004 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10005 }
10006 }
10007
10008 next_offset += envelope_size;
10009 _next_ordinal_to_read += 1;
10010 if next_offset >= end_offset {
10011 return Ok(());
10012 }
10013
10014 while _next_ordinal_to_read < 2 {
10016 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10017 _next_ordinal_to_read += 1;
10018 next_offset += envelope_size;
10019 }
10020
10021 let next_out_of_line = decoder.next_out_of_line();
10022 let handles_before = decoder.remaining_handles();
10023 if let Some((inlined, num_bytes, num_handles)) =
10024 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10025 {
10026 let member_inline_size = <fidl_fuchsia_bluetooth__common::Uuid as fidl::encoding::TypeMarker>::inline_size(decoder.context);
10027 if inlined != (member_inline_size <= 4) {
10028 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10029 }
10030 let inner_offset;
10031 let mut inner_depth = depth.clone();
10032 if inlined {
10033 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10034 inner_offset = next_offset;
10035 } else {
10036 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10037 inner_depth.increment()?;
10038 }
10039 let val_ref = self.service_filter.get_or_insert_with(|| {
10040 fidl::new_empty!(fidl_fuchsia_bluetooth__common::Uuid, D)
10041 });
10042 fidl::decode!(
10043 fidl_fuchsia_bluetooth__common::Uuid,
10044 D,
10045 val_ref,
10046 decoder,
10047 inner_offset,
10048 inner_depth
10049 )?;
10050 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10051 {
10052 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10053 }
10054 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10055 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10056 }
10057 }
10058
10059 next_offset += envelope_size;
10060
10061 while next_offset < end_offset {
10063 _next_ordinal_to_read += 1;
10064 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10065 next_offset += envelope_size;
10066 }
10067
10068 Ok(())
10069 }
10070 }
10071
10072 impl ConnectionTransferPeriodicAdvertisingSyncRequest {
10073 #[inline(always)]
10074 fn max_ordinal_present(&self) -> u64 {
10075 if let Some(_) = self.service_data {
10076 return 2;
10077 }
10078 if let Some(_) = self.sync_id {
10079 return 1;
10080 }
10081 0
10082 }
10083 }
10084
10085 impl fidl::encoding::ValueTypeMarker for ConnectionTransferPeriodicAdvertisingSyncRequest {
10086 type Borrowed<'a> = &'a Self;
10087 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
10088 value
10089 }
10090 }
10091
10092 unsafe impl fidl::encoding::TypeMarker for ConnectionTransferPeriodicAdvertisingSyncRequest {
10093 type Owned = Self;
10094
10095 #[inline(always)]
10096 fn inline_align(_context: fidl::encoding::Context) -> usize {
10097 8
10098 }
10099
10100 #[inline(always)]
10101 fn inline_size(_context: fidl::encoding::Context) -> usize {
10102 16
10103 }
10104 }
10105
10106 unsafe impl<D: fidl::encoding::ResourceDialect>
10107 fidl::encoding::Encode<ConnectionTransferPeriodicAdvertisingSyncRequest, D>
10108 for &ConnectionTransferPeriodicAdvertisingSyncRequest
10109 {
10110 unsafe fn encode(
10111 self,
10112 encoder: &mut fidl::encoding::Encoder<'_, D>,
10113 offset: usize,
10114 mut depth: fidl::encoding::Depth,
10115 ) -> fidl::Result<()> {
10116 encoder.debug_check_bounds::<ConnectionTransferPeriodicAdvertisingSyncRequest>(offset);
10117 let max_ordinal: u64 = self.max_ordinal_present();
10119 encoder.write_num(max_ordinal, offset);
10120 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
10121 if max_ordinal == 0 {
10123 return Ok(());
10124 }
10125 depth.increment()?;
10126 let envelope_size = 8;
10127 let bytes_len = max_ordinal as usize * envelope_size;
10128 #[allow(unused_variables)]
10129 let offset = encoder.out_of_line_offset(bytes_len);
10130 let mut _prev_end_offset: usize = 0;
10131 if 1 > max_ordinal {
10132 return Ok(());
10133 }
10134
10135 let cur_offset: usize = (1 - 1) * envelope_size;
10138
10139 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10141
10142 fidl::encoding::encode_in_envelope_optional::<PeriodicAdvertisingSyncId, D>(
10147 self.sync_id
10148 .as_ref()
10149 .map(<PeriodicAdvertisingSyncId as fidl::encoding::ValueTypeMarker>::borrow),
10150 encoder,
10151 offset + cur_offset,
10152 depth,
10153 )?;
10154
10155 _prev_end_offset = cur_offset + envelope_size;
10156 if 2 > max_ordinal {
10157 return Ok(());
10158 }
10159
10160 let cur_offset: usize = (2 - 1) * envelope_size;
10163
10164 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10166
10167 fidl::encoding::encode_in_envelope_optional::<u16, D>(
10172 self.service_data.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
10173 encoder,
10174 offset + cur_offset,
10175 depth,
10176 )?;
10177
10178 _prev_end_offset = cur_offset + envelope_size;
10179
10180 Ok(())
10181 }
10182 }
10183
10184 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
10185 for ConnectionTransferPeriodicAdvertisingSyncRequest
10186 {
10187 #[inline(always)]
10188 fn new_empty() -> Self {
10189 Self::default()
10190 }
10191
10192 unsafe fn decode(
10193 &mut self,
10194 decoder: &mut fidl::encoding::Decoder<'_, D>,
10195 offset: usize,
10196 mut depth: fidl::encoding::Depth,
10197 ) -> fidl::Result<()> {
10198 decoder.debug_check_bounds::<Self>(offset);
10199 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
10200 None => return Err(fidl::Error::NotNullable),
10201 Some(len) => len,
10202 };
10203 if len == 0 {
10205 return Ok(());
10206 };
10207 depth.increment()?;
10208 let envelope_size = 8;
10209 let bytes_len = len * envelope_size;
10210 let offset = decoder.out_of_line_offset(bytes_len)?;
10211 let mut _next_ordinal_to_read = 0;
10213 let mut next_offset = offset;
10214 let end_offset = offset + bytes_len;
10215 _next_ordinal_to_read += 1;
10216 if next_offset >= end_offset {
10217 return Ok(());
10218 }
10219
10220 while _next_ordinal_to_read < 1 {
10222 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10223 _next_ordinal_to_read += 1;
10224 next_offset += envelope_size;
10225 }
10226
10227 let next_out_of_line = decoder.next_out_of_line();
10228 let handles_before = decoder.remaining_handles();
10229 if let Some((inlined, num_bytes, num_handles)) =
10230 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10231 {
10232 let member_inline_size =
10233 <PeriodicAdvertisingSyncId as fidl::encoding::TypeMarker>::inline_size(
10234 decoder.context,
10235 );
10236 if inlined != (member_inline_size <= 4) {
10237 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10238 }
10239 let inner_offset;
10240 let mut inner_depth = depth.clone();
10241 if inlined {
10242 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10243 inner_offset = next_offset;
10244 } else {
10245 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10246 inner_depth.increment()?;
10247 }
10248 let val_ref = self
10249 .sync_id
10250 .get_or_insert_with(|| fidl::new_empty!(PeriodicAdvertisingSyncId, D));
10251 fidl::decode!(
10252 PeriodicAdvertisingSyncId,
10253 D,
10254 val_ref,
10255 decoder,
10256 inner_offset,
10257 inner_depth
10258 )?;
10259 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10260 {
10261 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10262 }
10263 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10264 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10265 }
10266 }
10267
10268 next_offset += envelope_size;
10269 _next_ordinal_to_read += 1;
10270 if next_offset >= end_offset {
10271 return Ok(());
10272 }
10273
10274 while _next_ordinal_to_read < 2 {
10276 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10277 _next_ordinal_to_read += 1;
10278 next_offset += envelope_size;
10279 }
10280
10281 let next_out_of_line = decoder.next_out_of_line();
10282 let handles_before = decoder.remaining_handles();
10283 if let Some((inlined, num_bytes, num_handles)) =
10284 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10285 {
10286 let member_inline_size =
10287 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
10288 if inlined != (member_inline_size <= 4) {
10289 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10290 }
10291 let inner_offset;
10292 let mut inner_depth = depth.clone();
10293 if inlined {
10294 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10295 inner_offset = next_offset;
10296 } else {
10297 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10298 inner_depth.increment()?;
10299 }
10300 let val_ref = self.service_data.get_or_insert_with(|| fidl::new_empty!(u16, D));
10301 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
10302 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10303 {
10304 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10305 }
10306 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10307 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10308 }
10309 }
10310
10311 next_offset += envelope_size;
10312
10313 while next_offset < end_offset {
10315 _next_ordinal_to_read += 1;
10316 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10317 next_offset += envelope_size;
10318 }
10319
10320 Ok(())
10321 }
10322 }
10323
10324 impl Extended {
10325 #[inline(always)]
10326 fn max_ordinal_present(&self) -> u64 {
10327 0
10328 }
10329 }
10330
10331 impl fidl::encoding::ValueTypeMarker for Extended {
10332 type Borrowed<'a> = &'a Self;
10333 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
10334 value
10335 }
10336 }
10337
10338 unsafe impl fidl::encoding::TypeMarker for Extended {
10339 type Owned = Self;
10340
10341 #[inline(always)]
10342 fn inline_align(_context: fidl::encoding::Context) -> usize {
10343 8
10344 }
10345
10346 #[inline(always)]
10347 fn inline_size(_context: fidl::encoding::Context) -> usize {
10348 16
10349 }
10350 }
10351
10352 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Extended, D> for &Extended {
10353 unsafe fn encode(
10354 self,
10355 encoder: &mut fidl::encoding::Encoder<'_, D>,
10356 offset: usize,
10357 mut depth: fidl::encoding::Depth,
10358 ) -> fidl::Result<()> {
10359 encoder.debug_check_bounds::<Extended>(offset);
10360 let max_ordinal: u64 = self.max_ordinal_present();
10362 encoder.write_num(max_ordinal, offset);
10363 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
10364 if max_ordinal == 0 {
10366 return Ok(());
10367 }
10368 depth.increment()?;
10369 let envelope_size = 8;
10370 let bytes_len = max_ordinal as usize * envelope_size;
10371 #[allow(unused_variables)]
10372 let offset = encoder.out_of_line_offset(bytes_len);
10373 let mut _prev_end_offset: usize = 0;
10374
10375 Ok(())
10376 }
10377 }
10378
10379 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Extended {
10380 #[inline(always)]
10381 fn new_empty() -> Self {
10382 Self::default()
10383 }
10384
10385 unsafe fn decode(
10386 &mut self,
10387 decoder: &mut fidl::encoding::Decoder<'_, D>,
10388 offset: usize,
10389 mut depth: fidl::encoding::Depth,
10390 ) -> fidl::Result<()> {
10391 decoder.debug_check_bounds::<Self>(offset);
10392 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
10393 None => return Err(fidl::Error::NotNullable),
10394 Some(len) => len,
10395 };
10396 if len == 0 {
10398 return Ok(());
10399 };
10400 depth.increment()?;
10401 let envelope_size = 8;
10402 let bytes_len = len * envelope_size;
10403 let offset = decoder.out_of_line_offset(bytes_len)?;
10404 let mut _next_ordinal_to_read = 0;
10406 let mut next_offset = offset;
10407 let end_offset = offset + bytes_len;
10408
10409 while next_offset < end_offset {
10411 _next_ordinal_to_read += 1;
10412 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10413 next_offset += envelope_size;
10414 }
10415
10416 Ok(())
10417 }
10418 }
10419
10420 impl Filter {
10421 #[inline(always)]
10422 fn max_ordinal_present(&self) -> u64 {
10423 if let Some(_) = self.solicitation_uuid {
10424 return 7;
10425 }
10426 if let Some(_) = self.max_path_loss {
10427 return 6;
10428 }
10429 if let Some(_) = self.name {
10430 return 5;
10431 }
10432 if let Some(_) = self.connectable {
10433 return 4;
10434 }
10435 if let Some(_) = self.manufacturer_id {
10436 return 3;
10437 }
10438 if let Some(_) = self.service_data_uuid {
10439 return 2;
10440 }
10441 if let Some(_) = self.service_uuid {
10442 return 1;
10443 }
10444 0
10445 }
10446 }
10447
10448 impl fidl::encoding::ValueTypeMarker for Filter {
10449 type Borrowed<'a> = &'a Self;
10450 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
10451 value
10452 }
10453 }
10454
10455 unsafe impl fidl::encoding::TypeMarker for Filter {
10456 type Owned = Self;
10457
10458 #[inline(always)]
10459 fn inline_align(_context: fidl::encoding::Context) -> usize {
10460 8
10461 }
10462
10463 #[inline(always)]
10464 fn inline_size(_context: fidl::encoding::Context) -> usize {
10465 16
10466 }
10467 }
10468
10469 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Filter, D> for &Filter {
10470 unsafe fn encode(
10471 self,
10472 encoder: &mut fidl::encoding::Encoder<'_, D>,
10473 offset: usize,
10474 mut depth: fidl::encoding::Depth,
10475 ) -> fidl::Result<()> {
10476 encoder.debug_check_bounds::<Filter>(offset);
10477 let max_ordinal: u64 = self.max_ordinal_present();
10479 encoder.write_num(max_ordinal, offset);
10480 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
10481 if max_ordinal == 0 {
10483 return Ok(());
10484 }
10485 depth.increment()?;
10486 let envelope_size = 8;
10487 let bytes_len = max_ordinal as usize * envelope_size;
10488 #[allow(unused_variables)]
10489 let offset = encoder.out_of_line_offset(bytes_len);
10490 let mut _prev_end_offset: usize = 0;
10491 if 1 > max_ordinal {
10492 return Ok(());
10493 }
10494
10495 let cur_offset: usize = (1 - 1) * envelope_size;
10498
10499 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10501
10502 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_bluetooth__common::Uuid, D>(
10507 self.service_uuid.as_ref().map(<fidl_fuchsia_bluetooth__common::Uuid as fidl::encoding::ValueTypeMarker>::borrow),
10508 encoder, offset + cur_offset, depth
10509 )?;
10510
10511 _prev_end_offset = cur_offset + envelope_size;
10512 if 2 > max_ordinal {
10513 return Ok(());
10514 }
10515
10516 let cur_offset: usize = (2 - 1) * envelope_size;
10519
10520 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10522
10523 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_bluetooth__common::Uuid, D>(
10528 self.service_data_uuid.as_ref().map(<fidl_fuchsia_bluetooth__common::Uuid as fidl::encoding::ValueTypeMarker>::borrow),
10529 encoder, offset + cur_offset, depth
10530 )?;
10531
10532 _prev_end_offset = cur_offset + envelope_size;
10533 if 3 > max_ordinal {
10534 return Ok(());
10535 }
10536
10537 let cur_offset: usize = (3 - 1) * envelope_size;
10540
10541 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10543
10544 fidl::encoding::encode_in_envelope_optional::<u16, D>(
10549 self.manufacturer_id.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
10550 encoder,
10551 offset + cur_offset,
10552 depth,
10553 )?;
10554
10555 _prev_end_offset = cur_offset + envelope_size;
10556 if 4 > max_ordinal {
10557 return Ok(());
10558 }
10559
10560 let cur_offset: usize = (4 - 1) * envelope_size;
10563
10564 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10566
10567 fidl::encoding::encode_in_envelope_optional::<bool, D>(
10572 self.connectable.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
10573 encoder,
10574 offset + cur_offset,
10575 depth,
10576 )?;
10577
10578 _prev_end_offset = cur_offset + envelope_size;
10579 if 5 > max_ordinal {
10580 return Ok(());
10581 }
10582
10583 let cur_offset: usize = (5 - 1) * envelope_size;
10586
10587 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10589
10590 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<248>, D>(
10595 self.name.as_ref().map(
10596 <fidl::encoding::BoundedString<248> as fidl::encoding::ValueTypeMarker>::borrow,
10597 ),
10598 encoder,
10599 offset + cur_offset,
10600 depth,
10601 )?;
10602
10603 _prev_end_offset = cur_offset + envelope_size;
10604 if 6 > max_ordinal {
10605 return Ok(());
10606 }
10607
10608 let cur_offset: usize = (6 - 1) * envelope_size;
10611
10612 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10614
10615 fidl::encoding::encode_in_envelope_optional::<i8, D>(
10620 self.max_path_loss.as_ref().map(<i8 as fidl::encoding::ValueTypeMarker>::borrow),
10621 encoder,
10622 offset + cur_offset,
10623 depth,
10624 )?;
10625
10626 _prev_end_offset = cur_offset + envelope_size;
10627 if 7 > max_ordinal {
10628 return Ok(());
10629 }
10630
10631 let cur_offset: usize = (7 - 1) * envelope_size;
10634
10635 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10637
10638 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_bluetooth__common::Uuid, D>(
10643 self.solicitation_uuid.as_ref().map(<fidl_fuchsia_bluetooth__common::Uuid as fidl::encoding::ValueTypeMarker>::borrow),
10644 encoder, offset + cur_offset, depth
10645 )?;
10646
10647 _prev_end_offset = cur_offset + envelope_size;
10648
10649 Ok(())
10650 }
10651 }
10652
10653 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Filter {
10654 #[inline(always)]
10655 fn new_empty() -> Self {
10656 Self::default()
10657 }
10658
10659 unsafe fn decode(
10660 &mut self,
10661 decoder: &mut fidl::encoding::Decoder<'_, D>,
10662 offset: usize,
10663 mut depth: fidl::encoding::Depth,
10664 ) -> fidl::Result<()> {
10665 decoder.debug_check_bounds::<Self>(offset);
10666 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
10667 None => return Err(fidl::Error::NotNullable),
10668 Some(len) => len,
10669 };
10670 if len == 0 {
10672 return Ok(());
10673 };
10674 depth.increment()?;
10675 let envelope_size = 8;
10676 let bytes_len = len * envelope_size;
10677 let offset = decoder.out_of_line_offset(bytes_len)?;
10678 let mut _next_ordinal_to_read = 0;
10680 let mut next_offset = offset;
10681 let end_offset = offset + bytes_len;
10682 _next_ordinal_to_read += 1;
10683 if next_offset >= end_offset {
10684 return Ok(());
10685 }
10686
10687 while _next_ordinal_to_read < 1 {
10689 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10690 _next_ordinal_to_read += 1;
10691 next_offset += envelope_size;
10692 }
10693
10694 let next_out_of_line = decoder.next_out_of_line();
10695 let handles_before = decoder.remaining_handles();
10696 if let Some((inlined, num_bytes, num_handles)) =
10697 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10698 {
10699 let member_inline_size = <fidl_fuchsia_bluetooth__common::Uuid as fidl::encoding::TypeMarker>::inline_size(decoder.context);
10700 if inlined != (member_inline_size <= 4) {
10701 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10702 }
10703 let inner_offset;
10704 let mut inner_depth = depth.clone();
10705 if inlined {
10706 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10707 inner_offset = next_offset;
10708 } else {
10709 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10710 inner_depth.increment()?;
10711 }
10712 let val_ref = self.service_uuid.get_or_insert_with(|| {
10713 fidl::new_empty!(fidl_fuchsia_bluetooth__common::Uuid, D)
10714 });
10715 fidl::decode!(
10716 fidl_fuchsia_bluetooth__common::Uuid,
10717 D,
10718 val_ref,
10719 decoder,
10720 inner_offset,
10721 inner_depth
10722 )?;
10723 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10724 {
10725 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10726 }
10727 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10728 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10729 }
10730 }
10731
10732 next_offset += envelope_size;
10733 _next_ordinal_to_read += 1;
10734 if next_offset >= end_offset {
10735 return Ok(());
10736 }
10737
10738 while _next_ordinal_to_read < 2 {
10740 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10741 _next_ordinal_to_read += 1;
10742 next_offset += envelope_size;
10743 }
10744
10745 let next_out_of_line = decoder.next_out_of_line();
10746 let handles_before = decoder.remaining_handles();
10747 if let Some((inlined, num_bytes, num_handles)) =
10748 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10749 {
10750 let member_inline_size = <fidl_fuchsia_bluetooth__common::Uuid as fidl::encoding::TypeMarker>::inline_size(decoder.context);
10751 if inlined != (member_inline_size <= 4) {
10752 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10753 }
10754 let inner_offset;
10755 let mut inner_depth = depth.clone();
10756 if inlined {
10757 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10758 inner_offset = next_offset;
10759 } else {
10760 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10761 inner_depth.increment()?;
10762 }
10763 let val_ref = self.service_data_uuid.get_or_insert_with(|| {
10764 fidl::new_empty!(fidl_fuchsia_bluetooth__common::Uuid, D)
10765 });
10766 fidl::decode!(
10767 fidl_fuchsia_bluetooth__common::Uuid,
10768 D,
10769 val_ref,
10770 decoder,
10771 inner_offset,
10772 inner_depth
10773 )?;
10774 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10775 {
10776 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10777 }
10778 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10779 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10780 }
10781 }
10782
10783 next_offset += envelope_size;
10784 _next_ordinal_to_read += 1;
10785 if next_offset >= end_offset {
10786 return Ok(());
10787 }
10788
10789 while _next_ordinal_to_read < 3 {
10791 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10792 _next_ordinal_to_read += 1;
10793 next_offset += envelope_size;
10794 }
10795
10796 let next_out_of_line = decoder.next_out_of_line();
10797 let handles_before = decoder.remaining_handles();
10798 if let Some((inlined, num_bytes, num_handles)) =
10799 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10800 {
10801 let member_inline_size =
10802 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
10803 if inlined != (member_inline_size <= 4) {
10804 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10805 }
10806 let inner_offset;
10807 let mut inner_depth = depth.clone();
10808 if inlined {
10809 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10810 inner_offset = next_offset;
10811 } else {
10812 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10813 inner_depth.increment()?;
10814 }
10815 let val_ref = self.manufacturer_id.get_or_insert_with(|| fidl::new_empty!(u16, D));
10816 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
10817 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10818 {
10819 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10820 }
10821 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10822 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10823 }
10824 }
10825
10826 next_offset += envelope_size;
10827 _next_ordinal_to_read += 1;
10828 if next_offset >= end_offset {
10829 return Ok(());
10830 }
10831
10832 while _next_ordinal_to_read < 4 {
10834 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10835 _next_ordinal_to_read += 1;
10836 next_offset += envelope_size;
10837 }
10838
10839 let next_out_of_line = decoder.next_out_of_line();
10840 let handles_before = decoder.remaining_handles();
10841 if let Some((inlined, num_bytes, num_handles)) =
10842 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10843 {
10844 let member_inline_size =
10845 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
10846 if inlined != (member_inline_size <= 4) {
10847 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10848 }
10849 let inner_offset;
10850 let mut inner_depth = depth.clone();
10851 if inlined {
10852 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10853 inner_offset = next_offset;
10854 } else {
10855 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10856 inner_depth.increment()?;
10857 }
10858 let val_ref = self.connectable.get_or_insert_with(|| fidl::new_empty!(bool, D));
10859 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
10860 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10861 {
10862 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10863 }
10864 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10865 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10866 }
10867 }
10868
10869 next_offset += envelope_size;
10870 _next_ordinal_to_read += 1;
10871 if next_offset >= end_offset {
10872 return Ok(());
10873 }
10874
10875 while _next_ordinal_to_read < 5 {
10877 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10878 _next_ordinal_to_read += 1;
10879 next_offset += envelope_size;
10880 }
10881
10882 let next_out_of_line = decoder.next_out_of_line();
10883 let handles_before = decoder.remaining_handles();
10884 if let Some((inlined, num_bytes, num_handles)) =
10885 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10886 {
10887 let member_inline_size =
10888 <fidl::encoding::BoundedString<248> as fidl::encoding::TypeMarker>::inline_size(
10889 decoder.context,
10890 );
10891 if inlined != (member_inline_size <= 4) {
10892 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10893 }
10894 let inner_offset;
10895 let mut inner_depth = depth.clone();
10896 if inlined {
10897 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10898 inner_offset = next_offset;
10899 } else {
10900 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10901 inner_depth.increment()?;
10902 }
10903 let val_ref = self
10904 .name
10905 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<248>, D));
10906 fidl::decode!(
10907 fidl::encoding::BoundedString<248>,
10908 D,
10909 val_ref,
10910 decoder,
10911 inner_offset,
10912 inner_depth
10913 )?;
10914 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10915 {
10916 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10917 }
10918 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10919 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10920 }
10921 }
10922
10923 next_offset += envelope_size;
10924 _next_ordinal_to_read += 1;
10925 if next_offset >= end_offset {
10926 return Ok(());
10927 }
10928
10929 while _next_ordinal_to_read < 6 {
10931 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10932 _next_ordinal_to_read += 1;
10933 next_offset += envelope_size;
10934 }
10935
10936 let next_out_of_line = decoder.next_out_of_line();
10937 let handles_before = decoder.remaining_handles();
10938 if let Some((inlined, num_bytes, num_handles)) =
10939 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10940 {
10941 let member_inline_size =
10942 <i8 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
10943 if inlined != (member_inline_size <= 4) {
10944 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10945 }
10946 let inner_offset;
10947 let mut inner_depth = depth.clone();
10948 if inlined {
10949 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10950 inner_offset = next_offset;
10951 } else {
10952 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10953 inner_depth.increment()?;
10954 }
10955 let val_ref = self.max_path_loss.get_or_insert_with(|| fidl::new_empty!(i8, D));
10956 fidl::decode!(i8, D, val_ref, decoder, inner_offset, inner_depth)?;
10957 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10958 {
10959 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10960 }
10961 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10962 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10963 }
10964 }
10965
10966 next_offset += envelope_size;
10967 _next_ordinal_to_read += 1;
10968 if next_offset >= end_offset {
10969 return Ok(());
10970 }
10971
10972 while _next_ordinal_to_read < 7 {
10974 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10975 _next_ordinal_to_read += 1;
10976 next_offset += envelope_size;
10977 }
10978
10979 let next_out_of_line = decoder.next_out_of_line();
10980 let handles_before = decoder.remaining_handles();
10981 if let Some((inlined, num_bytes, num_handles)) =
10982 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10983 {
10984 let member_inline_size = <fidl_fuchsia_bluetooth__common::Uuid as fidl::encoding::TypeMarker>::inline_size(decoder.context);
10985 if inlined != (member_inline_size <= 4) {
10986 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10987 }
10988 let inner_offset;
10989 let mut inner_depth = depth.clone();
10990 if inlined {
10991 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10992 inner_offset = next_offset;
10993 } else {
10994 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10995 inner_depth.increment()?;
10996 }
10997 let val_ref = self.solicitation_uuid.get_or_insert_with(|| {
10998 fidl::new_empty!(fidl_fuchsia_bluetooth__common::Uuid, D)
10999 });
11000 fidl::decode!(
11001 fidl_fuchsia_bluetooth__common::Uuid,
11002 D,
11003 val_ref,
11004 decoder,
11005 inner_offset,
11006 inner_depth
11007 )?;
11008 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11009 {
11010 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11011 }
11012 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11013 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11014 }
11015 }
11016
11017 next_offset += envelope_size;
11018
11019 while next_offset < end_offset {
11021 _next_ordinal_to_read += 1;
11022 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11023 next_offset += envelope_size;
11024 }
11025
11026 Ok(())
11027 }
11028 }
11029
11030 impl IsochronousStreamOnEstablishedRequest {
11031 #[inline(always)]
11032 fn max_ordinal_present(&self) -> u64 {
11033 if let Some(_) = self.established_params {
11034 return 2;
11035 }
11036 if let Some(_) = self.result {
11037 return 1;
11038 }
11039 0
11040 }
11041 }
11042
11043 impl fidl::encoding::ValueTypeMarker for IsochronousStreamOnEstablishedRequest {
11044 type Borrowed<'a> = &'a Self;
11045 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
11046 value
11047 }
11048 }
11049
11050 unsafe impl fidl::encoding::TypeMarker for IsochronousStreamOnEstablishedRequest {
11051 type Owned = Self;
11052
11053 #[inline(always)]
11054 fn inline_align(_context: fidl::encoding::Context) -> usize {
11055 8
11056 }
11057
11058 #[inline(always)]
11059 fn inline_size(_context: fidl::encoding::Context) -> usize {
11060 16
11061 }
11062 }
11063
11064 unsafe impl<D: fidl::encoding::ResourceDialect>
11065 fidl::encoding::Encode<IsochronousStreamOnEstablishedRequest, D>
11066 for &IsochronousStreamOnEstablishedRequest
11067 {
11068 unsafe fn encode(
11069 self,
11070 encoder: &mut fidl::encoding::Encoder<'_, D>,
11071 offset: usize,
11072 mut depth: fidl::encoding::Depth,
11073 ) -> fidl::Result<()> {
11074 encoder.debug_check_bounds::<IsochronousStreamOnEstablishedRequest>(offset);
11075 let max_ordinal: u64 = self.max_ordinal_present();
11077 encoder.write_num(max_ordinal, offset);
11078 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
11079 if max_ordinal == 0 {
11081 return Ok(());
11082 }
11083 depth.increment()?;
11084 let envelope_size = 8;
11085 let bytes_len = max_ordinal as usize * envelope_size;
11086 #[allow(unused_variables)]
11087 let offset = encoder.out_of_line_offset(bytes_len);
11088 let mut _prev_end_offset: usize = 0;
11089 if 1 > max_ordinal {
11090 return Ok(());
11091 }
11092
11093 let cur_offset: usize = (1 - 1) * envelope_size;
11096
11097 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11099
11100 fidl::encoding::encode_in_envelope_optional::<i32, D>(
11105 self.result.as_ref().map(<i32 as fidl::encoding::ValueTypeMarker>::borrow),
11106 encoder,
11107 offset + cur_offset,
11108 depth,
11109 )?;
11110
11111 _prev_end_offset = cur_offset + envelope_size;
11112 if 2 > max_ordinal {
11113 return Ok(());
11114 }
11115
11116 let cur_offset: usize = (2 - 1) * envelope_size;
11119
11120 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11122
11123 fidl::encoding::encode_in_envelope_optional::<CisEstablishedParameters, D>(
11128 self.established_params
11129 .as_ref()
11130 .map(<CisEstablishedParameters as fidl::encoding::ValueTypeMarker>::borrow),
11131 encoder,
11132 offset + cur_offset,
11133 depth,
11134 )?;
11135
11136 _prev_end_offset = cur_offset + envelope_size;
11137
11138 Ok(())
11139 }
11140 }
11141
11142 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
11143 for IsochronousStreamOnEstablishedRequest
11144 {
11145 #[inline(always)]
11146 fn new_empty() -> Self {
11147 Self::default()
11148 }
11149
11150 unsafe fn decode(
11151 &mut self,
11152 decoder: &mut fidl::encoding::Decoder<'_, D>,
11153 offset: usize,
11154 mut depth: fidl::encoding::Depth,
11155 ) -> fidl::Result<()> {
11156 decoder.debug_check_bounds::<Self>(offset);
11157 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
11158 None => return Err(fidl::Error::NotNullable),
11159 Some(len) => len,
11160 };
11161 if len == 0 {
11163 return Ok(());
11164 };
11165 depth.increment()?;
11166 let envelope_size = 8;
11167 let bytes_len = len * envelope_size;
11168 let offset = decoder.out_of_line_offset(bytes_len)?;
11169 let mut _next_ordinal_to_read = 0;
11171 let mut next_offset = offset;
11172 let end_offset = offset + bytes_len;
11173 _next_ordinal_to_read += 1;
11174 if next_offset >= end_offset {
11175 return Ok(());
11176 }
11177
11178 while _next_ordinal_to_read < 1 {
11180 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11181 _next_ordinal_to_read += 1;
11182 next_offset += envelope_size;
11183 }
11184
11185 let next_out_of_line = decoder.next_out_of_line();
11186 let handles_before = decoder.remaining_handles();
11187 if let Some((inlined, num_bytes, num_handles)) =
11188 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11189 {
11190 let member_inline_size =
11191 <i32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
11192 if inlined != (member_inline_size <= 4) {
11193 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11194 }
11195 let inner_offset;
11196 let mut inner_depth = depth.clone();
11197 if inlined {
11198 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11199 inner_offset = next_offset;
11200 } else {
11201 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11202 inner_depth.increment()?;
11203 }
11204 let val_ref = self.result.get_or_insert_with(|| fidl::new_empty!(i32, D));
11205 fidl::decode!(i32, D, val_ref, decoder, inner_offset, inner_depth)?;
11206 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11207 {
11208 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11209 }
11210 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11211 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11212 }
11213 }
11214
11215 next_offset += envelope_size;
11216 _next_ordinal_to_read += 1;
11217 if next_offset >= end_offset {
11218 return Ok(());
11219 }
11220
11221 while _next_ordinal_to_read < 2 {
11223 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11224 _next_ordinal_to_read += 1;
11225 next_offset += envelope_size;
11226 }
11227
11228 let next_out_of_line = decoder.next_out_of_line();
11229 let handles_before = decoder.remaining_handles();
11230 if let Some((inlined, num_bytes, num_handles)) =
11231 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11232 {
11233 let member_inline_size =
11234 <CisEstablishedParameters as fidl::encoding::TypeMarker>::inline_size(
11235 decoder.context,
11236 );
11237 if inlined != (member_inline_size <= 4) {
11238 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11239 }
11240 let inner_offset;
11241 let mut inner_depth = depth.clone();
11242 if inlined {
11243 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11244 inner_offset = next_offset;
11245 } else {
11246 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11247 inner_depth.increment()?;
11248 }
11249 let val_ref = self
11250 .established_params
11251 .get_or_insert_with(|| fidl::new_empty!(CisEstablishedParameters, D));
11252 fidl::decode!(
11253 CisEstablishedParameters,
11254 D,
11255 val_ref,
11256 decoder,
11257 inner_offset,
11258 inner_depth
11259 )?;
11260 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11261 {
11262 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11263 }
11264 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11265 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11266 }
11267 }
11268
11269 next_offset += envelope_size;
11270
11271 while next_offset < end_offset {
11273 _next_ordinal_to_read += 1;
11274 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11275 next_offset += envelope_size;
11276 }
11277
11278 Ok(())
11279 }
11280 }
11281
11282 impl IsochronousStreamSetupDataPathRequest {
11283 #[inline(always)]
11284 fn max_ordinal_present(&self) -> u64 {
11285 if let Some(_) = self.controller_delay {
11286 return 3;
11287 }
11288 if let Some(_) = self.codec_attributes {
11289 return 2;
11290 }
11291 if let Some(_) = self.data_direction {
11292 return 1;
11293 }
11294 0
11295 }
11296 }
11297
11298 impl fidl::encoding::ValueTypeMarker for IsochronousStreamSetupDataPathRequest {
11299 type Borrowed<'a> = &'a Self;
11300 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
11301 value
11302 }
11303 }
11304
11305 unsafe impl fidl::encoding::TypeMarker for IsochronousStreamSetupDataPathRequest {
11306 type Owned = Self;
11307
11308 #[inline(always)]
11309 fn inline_align(_context: fidl::encoding::Context) -> usize {
11310 8
11311 }
11312
11313 #[inline(always)]
11314 fn inline_size(_context: fidl::encoding::Context) -> usize {
11315 16
11316 }
11317 }
11318
11319 unsafe impl<D: fidl::encoding::ResourceDialect>
11320 fidl::encoding::Encode<IsochronousStreamSetupDataPathRequest, D>
11321 for &IsochronousStreamSetupDataPathRequest
11322 {
11323 unsafe fn encode(
11324 self,
11325 encoder: &mut fidl::encoding::Encoder<'_, D>,
11326 offset: usize,
11327 mut depth: fidl::encoding::Depth,
11328 ) -> fidl::Result<()> {
11329 encoder.debug_check_bounds::<IsochronousStreamSetupDataPathRequest>(offset);
11330 let max_ordinal: u64 = self.max_ordinal_present();
11332 encoder.write_num(max_ordinal, offset);
11333 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
11334 if max_ordinal == 0 {
11336 return Ok(());
11337 }
11338 depth.increment()?;
11339 let envelope_size = 8;
11340 let bytes_len = max_ordinal as usize * envelope_size;
11341 #[allow(unused_variables)]
11342 let offset = encoder.out_of_line_offset(bytes_len);
11343 let mut _prev_end_offset: usize = 0;
11344 if 1 > max_ordinal {
11345 return Ok(());
11346 }
11347
11348 let cur_offset: usize = (1 - 1) * envelope_size;
11351
11352 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11354
11355 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_bluetooth__common::DataDirection, D>(
11360 self.data_direction.as_ref().map(<fidl_fuchsia_bluetooth__common::DataDirection as fidl::encoding::ValueTypeMarker>::borrow),
11361 encoder, offset + cur_offset, depth
11362 )?;
11363
11364 _prev_end_offset = cur_offset + envelope_size;
11365 if 2 > max_ordinal {
11366 return Ok(());
11367 }
11368
11369 let cur_offset: usize = (2 - 1) * envelope_size;
11372
11373 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11375
11376 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_bluetooth__common::CodecAttributes, D>(
11381 self.codec_attributes.as_ref().map(<fidl_fuchsia_bluetooth__common::CodecAttributes as fidl::encoding::ValueTypeMarker>::borrow),
11382 encoder, offset + cur_offset, depth
11383 )?;
11384
11385 _prev_end_offset = cur_offset + envelope_size;
11386 if 3 > max_ordinal {
11387 return Ok(());
11388 }
11389
11390 let cur_offset: usize = (3 - 1) * envelope_size;
11393
11394 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11396
11397 fidl::encoding::encode_in_envelope_optional::<i64, D>(
11402 self.controller_delay
11403 .as_ref()
11404 .map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
11405 encoder,
11406 offset + cur_offset,
11407 depth,
11408 )?;
11409
11410 _prev_end_offset = cur_offset + envelope_size;
11411
11412 Ok(())
11413 }
11414 }
11415
11416 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
11417 for IsochronousStreamSetupDataPathRequest
11418 {
11419 #[inline(always)]
11420 fn new_empty() -> Self {
11421 Self::default()
11422 }
11423
11424 unsafe fn decode(
11425 &mut self,
11426 decoder: &mut fidl::encoding::Decoder<'_, D>,
11427 offset: usize,
11428 mut depth: fidl::encoding::Depth,
11429 ) -> fidl::Result<()> {
11430 decoder.debug_check_bounds::<Self>(offset);
11431 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
11432 None => return Err(fidl::Error::NotNullable),
11433 Some(len) => len,
11434 };
11435 if len == 0 {
11437 return Ok(());
11438 };
11439 depth.increment()?;
11440 let envelope_size = 8;
11441 let bytes_len = len * envelope_size;
11442 let offset = decoder.out_of_line_offset(bytes_len)?;
11443 let mut _next_ordinal_to_read = 0;
11445 let mut next_offset = offset;
11446 let end_offset = offset + bytes_len;
11447 _next_ordinal_to_read += 1;
11448 if next_offset >= end_offset {
11449 return Ok(());
11450 }
11451
11452 while _next_ordinal_to_read < 1 {
11454 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11455 _next_ordinal_to_read += 1;
11456 next_offset += envelope_size;
11457 }
11458
11459 let next_out_of_line = decoder.next_out_of_line();
11460 let handles_before = decoder.remaining_handles();
11461 if let Some((inlined, num_bytes, num_handles)) =
11462 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11463 {
11464 let member_inline_size = <fidl_fuchsia_bluetooth__common::DataDirection as fidl::encoding::TypeMarker>::inline_size(decoder.context);
11465 if inlined != (member_inline_size <= 4) {
11466 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11467 }
11468 let inner_offset;
11469 let mut inner_depth = depth.clone();
11470 if inlined {
11471 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11472 inner_offset = next_offset;
11473 } else {
11474 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11475 inner_depth.increment()?;
11476 }
11477 let val_ref = self.data_direction.get_or_insert_with(|| {
11478 fidl::new_empty!(fidl_fuchsia_bluetooth__common::DataDirection, D)
11479 });
11480 fidl::decode!(
11481 fidl_fuchsia_bluetooth__common::DataDirection,
11482 D,
11483 val_ref,
11484 decoder,
11485 inner_offset,
11486 inner_depth
11487 )?;
11488 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11489 {
11490 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11491 }
11492 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11493 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11494 }
11495 }
11496
11497 next_offset += envelope_size;
11498 _next_ordinal_to_read += 1;
11499 if next_offset >= end_offset {
11500 return Ok(());
11501 }
11502
11503 while _next_ordinal_to_read < 2 {
11505 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11506 _next_ordinal_to_read += 1;
11507 next_offset += envelope_size;
11508 }
11509
11510 let next_out_of_line = decoder.next_out_of_line();
11511 let handles_before = decoder.remaining_handles();
11512 if let Some((inlined, num_bytes, num_handles)) =
11513 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11514 {
11515 let member_inline_size = <fidl_fuchsia_bluetooth__common::CodecAttributes as fidl::encoding::TypeMarker>::inline_size(decoder.context);
11516 if inlined != (member_inline_size <= 4) {
11517 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11518 }
11519 let inner_offset;
11520 let mut inner_depth = depth.clone();
11521 if inlined {
11522 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11523 inner_offset = next_offset;
11524 } else {
11525 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11526 inner_depth.increment()?;
11527 }
11528 let val_ref = self.codec_attributes.get_or_insert_with(|| {
11529 fidl::new_empty!(fidl_fuchsia_bluetooth__common::CodecAttributes, D)
11530 });
11531 fidl::decode!(
11532 fidl_fuchsia_bluetooth__common::CodecAttributes,
11533 D,
11534 val_ref,
11535 decoder,
11536 inner_offset,
11537 inner_depth
11538 )?;
11539 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11540 {
11541 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11542 }
11543 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11544 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11545 }
11546 }
11547
11548 next_offset += envelope_size;
11549 _next_ordinal_to_read += 1;
11550 if next_offset >= end_offset {
11551 return Ok(());
11552 }
11553
11554 while _next_ordinal_to_read < 3 {
11556 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11557 _next_ordinal_to_read += 1;
11558 next_offset += envelope_size;
11559 }
11560
11561 let next_out_of_line = decoder.next_out_of_line();
11562 let handles_before = decoder.remaining_handles();
11563 if let Some((inlined, num_bytes, num_handles)) =
11564 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11565 {
11566 let member_inline_size =
11567 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
11568 if inlined != (member_inline_size <= 4) {
11569 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11570 }
11571 let inner_offset;
11572 let mut inner_depth = depth.clone();
11573 if inlined {
11574 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11575 inner_offset = next_offset;
11576 } else {
11577 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11578 inner_depth.increment()?;
11579 }
11580 let val_ref = self.controller_delay.get_or_insert_with(|| fidl::new_empty!(i64, D));
11581 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
11582 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11583 {
11584 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11585 }
11586 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11587 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11588 }
11589 }
11590
11591 next_offset += envelope_size;
11592
11593 while next_offset < end_offset {
11595 _next_ordinal_to_read += 1;
11596 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11597 next_offset += envelope_size;
11598 }
11599
11600 Ok(())
11601 }
11602 }
11603
11604 impl IsochronousStreamWriteRequest {
11605 #[inline(always)]
11606 fn max_ordinal_present(&self) -> u64 {
11607 if let Some(_) = self.data {
11608 return 1;
11609 }
11610 0
11611 }
11612 }
11613
11614 impl fidl::encoding::ValueTypeMarker for IsochronousStreamWriteRequest {
11615 type Borrowed<'a> = &'a Self;
11616 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
11617 value
11618 }
11619 }
11620
11621 unsafe impl fidl::encoding::TypeMarker for IsochronousStreamWriteRequest {
11622 type Owned = Self;
11623
11624 #[inline(always)]
11625 fn inline_align(_context: fidl::encoding::Context) -> usize {
11626 8
11627 }
11628
11629 #[inline(always)]
11630 fn inline_size(_context: fidl::encoding::Context) -> usize {
11631 16
11632 }
11633 }
11634
11635 unsafe impl<D: fidl::encoding::ResourceDialect>
11636 fidl::encoding::Encode<IsochronousStreamWriteRequest, D>
11637 for &IsochronousStreamWriteRequest
11638 {
11639 unsafe fn encode(
11640 self,
11641 encoder: &mut fidl::encoding::Encoder<'_, D>,
11642 offset: usize,
11643 mut depth: fidl::encoding::Depth,
11644 ) -> fidl::Result<()> {
11645 encoder.debug_check_bounds::<IsochronousStreamWriteRequest>(offset);
11646 let max_ordinal: u64 = self.max_ordinal_present();
11648 encoder.write_num(max_ordinal, offset);
11649 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
11650 if max_ordinal == 0 {
11652 return Ok(());
11653 }
11654 depth.increment()?;
11655 let envelope_size = 8;
11656 let bytes_len = max_ordinal as usize * envelope_size;
11657 #[allow(unused_variables)]
11658 let offset = encoder.out_of_line_offset(bytes_len);
11659 let mut _prev_end_offset: usize = 0;
11660 if 1 > max_ordinal {
11661 return Ok(());
11662 }
11663
11664 let cur_offset: usize = (1 - 1) * envelope_size;
11667
11668 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11670
11671 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u8, 4095>, D>(
11676 self.data.as_ref().map(
11677 <fidl::encoding::Vector<u8, 4095> as fidl::encoding::ValueTypeMarker>::borrow,
11678 ),
11679 encoder,
11680 offset + cur_offset,
11681 depth,
11682 )?;
11683
11684 _prev_end_offset = cur_offset + envelope_size;
11685
11686 Ok(())
11687 }
11688 }
11689
11690 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
11691 for IsochronousStreamWriteRequest
11692 {
11693 #[inline(always)]
11694 fn new_empty() -> Self {
11695 Self::default()
11696 }
11697
11698 unsafe fn decode(
11699 &mut self,
11700 decoder: &mut fidl::encoding::Decoder<'_, D>,
11701 offset: usize,
11702 mut depth: fidl::encoding::Depth,
11703 ) -> fidl::Result<()> {
11704 decoder.debug_check_bounds::<Self>(offset);
11705 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
11706 None => return Err(fidl::Error::NotNullable),
11707 Some(len) => len,
11708 };
11709 if len == 0 {
11711 return Ok(());
11712 };
11713 depth.increment()?;
11714 let envelope_size = 8;
11715 let bytes_len = len * envelope_size;
11716 let offset = decoder.out_of_line_offset(bytes_len)?;
11717 let mut _next_ordinal_to_read = 0;
11719 let mut next_offset = offset;
11720 let end_offset = offset + bytes_len;
11721 _next_ordinal_to_read += 1;
11722 if next_offset >= end_offset {
11723 return Ok(());
11724 }
11725
11726 while _next_ordinal_to_read < 1 {
11728 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11729 _next_ordinal_to_read += 1;
11730 next_offset += envelope_size;
11731 }
11732
11733 let next_out_of_line = decoder.next_out_of_line();
11734 let handles_before = decoder.remaining_handles();
11735 if let Some((inlined, num_bytes, num_handles)) =
11736 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11737 {
11738 let member_inline_size =
11739 <fidl::encoding::Vector<u8, 4095> as fidl::encoding::TypeMarker>::inline_size(
11740 decoder.context,
11741 );
11742 if inlined != (member_inline_size <= 4) {
11743 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11744 }
11745 let inner_offset;
11746 let mut inner_depth = depth.clone();
11747 if inlined {
11748 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11749 inner_offset = next_offset;
11750 } else {
11751 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11752 inner_depth.increment()?;
11753 }
11754 let val_ref = self
11755 .data
11756 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u8, 4095>, D));
11757 fidl::decode!(fidl::encoding::Vector<u8, 4095>, D, val_ref, decoder, inner_offset, inner_depth)?;
11758 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11759 {
11760 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11761 }
11762 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11763 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11764 }
11765 }
11766
11767 next_offset += envelope_size;
11768
11769 while next_offset < end_offset {
11771 _next_ordinal_to_read += 1;
11772 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11773 next_offset += envelope_size;
11774 }
11775
11776 Ok(())
11777 }
11778 }
11779
11780 impl IsochronousStreamReadResponse {
11781 #[inline(always)]
11782 fn max_ordinal_present(&self) -> u64 {
11783 if let Some(_) = self.timestamp {
11784 return 4;
11785 }
11786 if let Some(_) = self.status_flag {
11787 return 3;
11788 }
11789 if let Some(_) = self.sequence_number {
11790 return 2;
11791 }
11792 if let Some(_) = self.data {
11793 return 1;
11794 }
11795 0
11796 }
11797 }
11798
11799 impl fidl::encoding::ValueTypeMarker for IsochronousStreamReadResponse {
11800 type Borrowed<'a> = &'a Self;
11801 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
11802 value
11803 }
11804 }
11805
11806 unsafe impl fidl::encoding::TypeMarker for IsochronousStreamReadResponse {
11807 type Owned = Self;
11808
11809 #[inline(always)]
11810 fn inline_align(_context: fidl::encoding::Context) -> usize {
11811 8
11812 }
11813
11814 #[inline(always)]
11815 fn inline_size(_context: fidl::encoding::Context) -> usize {
11816 16
11817 }
11818 }
11819
11820 unsafe impl<D: fidl::encoding::ResourceDialect>
11821 fidl::encoding::Encode<IsochronousStreamReadResponse, D>
11822 for &IsochronousStreamReadResponse
11823 {
11824 unsafe fn encode(
11825 self,
11826 encoder: &mut fidl::encoding::Encoder<'_, D>,
11827 offset: usize,
11828 mut depth: fidl::encoding::Depth,
11829 ) -> fidl::Result<()> {
11830 encoder.debug_check_bounds::<IsochronousStreamReadResponse>(offset);
11831 let max_ordinal: u64 = self.max_ordinal_present();
11833 encoder.write_num(max_ordinal, offset);
11834 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
11835 if max_ordinal == 0 {
11837 return Ok(());
11838 }
11839 depth.increment()?;
11840 let envelope_size = 8;
11841 let bytes_len = max_ordinal as usize * envelope_size;
11842 #[allow(unused_variables)]
11843 let offset = encoder.out_of_line_offset(bytes_len);
11844 let mut _prev_end_offset: usize = 0;
11845 if 1 > max_ordinal {
11846 return Ok(());
11847 }
11848
11849 let cur_offset: usize = (1 - 1) * envelope_size;
11852
11853 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11855
11856 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u8>, D>(
11861 self.data.as_ref().map(<fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow),
11862 encoder, offset + cur_offset, depth
11863 )?;
11864
11865 _prev_end_offset = cur_offset + envelope_size;
11866 if 2 > max_ordinal {
11867 return Ok(());
11868 }
11869
11870 let cur_offset: usize = (2 - 1) * envelope_size;
11873
11874 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11876
11877 fidl::encoding::encode_in_envelope_optional::<u16, D>(
11882 self.sequence_number.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
11883 encoder,
11884 offset + cur_offset,
11885 depth,
11886 )?;
11887
11888 _prev_end_offset = cur_offset + envelope_size;
11889 if 3 > max_ordinal {
11890 return Ok(());
11891 }
11892
11893 let cur_offset: usize = (3 - 1) * envelope_size;
11896
11897 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11899
11900 fidl::encoding::encode_in_envelope_optional::<IsoPacketStatusFlag, D>(
11905 self.status_flag
11906 .as_ref()
11907 .map(<IsoPacketStatusFlag as fidl::encoding::ValueTypeMarker>::borrow),
11908 encoder,
11909 offset + cur_offset,
11910 depth,
11911 )?;
11912
11913 _prev_end_offset = cur_offset + envelope_size;
11914 if 4 > max_ordinal {
11915 return Ok(());
11916 }
11917
11918 let cur_offset: usize = (4 - 1) * envelope_size;
11921
11922 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11924
11925 fidl::encoding::encode_in_envelope_optional::<i64, D>(
11930 self.timestamp.as_ref().map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
11931 encoder,
11932 offset + cur_offset,
11933 depth,
11934 )?;
11935
11936 _prev_end_offset = cur_offset + envelope_size;
11937
11938 Ok(())
11939 }
11940 }
11941
11942 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
11943 for IsochronousStreamReadResponse
11944 {
11945 #[inline(always)]
11946 fn new_empty() -> Self {
11947 Self::default()
11948 }
11949
11950 unsafe fn decode(
11951 &mut self,
11952 decoder: &mut fidl::encoding::Decoder<'_, D>,
11953 offset: usize,
11954 mut depth: fidl::encoding::Depth,
11955 ) -> fidl::Result<()> {
11956 decoder.debug_check_bounds::<Self>(offset);
11957 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
11958 None => return Err(fidl::Error::NotNullable),
11959 Some(len) => len,
11960 };
11961 if len == 0 {
11963 return Ok(());
11964 };
11965 depth.increment()?;
11966 let envelope_size = 8;
11967 let bytes_len = len * envelope_size;
11968 let offset = decoder.out_of_line_offset(bytes_len)?;
11969 let mut _next_ordinal_to_read = 0;
11971 let mut next_offset = offset;
11972 let end_offset = offset + bytes_len;
11973 _next_ordinal_to_read += 1;
11974 if next_offset >= end_offset {
11975 return Ok(());
11976 }
11977
11978 while _next_ordinal_to_read < 1 {
11980 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11981 _next_ordinal_to_read += 1;
11982 next_offset += envelope_size;
11983 }
11984
11985 let next_out_of_line = decoder.next_out_of_line();
11986 let handles_before = decoder.remaining_handles();
11987 if let Some((inlined, num_bytes, num_handles)) =
11988 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11989 {
11990 let member_inline_size = <fidl::encoding::UnboundedVector<u8> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
11991 if inlined != (member_inline_size <= 4) {
11992 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11993 }
11994 let inner_offset;
11995 let mut inner_depth = depth.clone();
11996 if inlined {
11997 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11998 inner_offset = next_offset;
11999 } else {
12000 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12001 inner_depth.increment()?;
12002 }
12003 let val_ref = self.data.get_or_insert_with(|| {
12004 fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D)
12005 });
12006 fidl::decode!(
12007 fidl::encoding::UnboundedVector<u8>,
12008 D,
12009 val_ref,
12010 decoder,
12011 inner_offset,
12012 inner_depth
12013 )?;
12014 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12015 {
12016 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12017 }
12018 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12019 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12020 }
12021 }
12022
12023 next_offset += envelope_size;
12024 _next_ordinal_to_read += 1;
12025 if next_offset >= end_offset {
12026 return Ok(());
12027 }
12028
12029 while _next_ordinal_to_read < 2 {
12031 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12032 _next_ordinal_to_read += 1;
12033 next_offset += envelope_size;
12034 }
12035
12036 let next_out_of_line = decoder.next_out_of_line();
12037 let handles_before = decoder.remaining_handles();
12038 if let Some((inlined, num_bytes, num_handles)) =
12039 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12040 {
12041 let member_inline_size =
12042 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
12043 if inlined != (member_inline_size <= 4) {
12044 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12045 }
12046 let inner_offset;
12047 let mut inner_depth = depth.clone();
12048 if inlined {
12049 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12050 inner_offset = next_offset;
12051 } else {
12052 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12053 inner_depth.increment()?;
12054 }
12055 let val_ref = self.sequence_number.get_or_insert_with(|| fidl::new_empty!(u16, D));
12056 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
12057 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12058 {
12059 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12060 }
12061 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12062 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12063 }
12064 }
12065
12066 next_offset += envelope_size;
12067 _next_ordinal_to_read += 1;
12068 if next_offset >= end_offset {
12069 return Ok(());
12070 }
12071
12072 while _next_ordinal_to_read < 3 {
12074 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12075 _next_ordinal_to_read += 1;
12076 next_offset += envelope_size;
12077 }
12078
12079 let next_out_of_line = decoder.next_out_of_line();
12080 let handles_before = decoder.remaining_handles();
12081 if let Some((inlined, num_bytes, num_handles)) =
12082 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12083 {
12084 let member_inline_size =
12085 <IsoPacketStatusFlag as fidl::encoding::TypeMarker>::inline_size(
12086 decoder.context,
12087 );
12088 if inlined != (member_inline_size <= 4) {
12089 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12090 }
12091 let inner_offset;
12092 let mut inner_depth = depth.clone();
12093 if inlined {
12094 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12095 inner_offset = next_offset;
12096 } else {
12097 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12098 inner_depth.increment()?;
12099 }
12100 let val_ref = self
12101 .status_flag
12102 .get_or_insert_with(|| fidl::new_empty!(IsoPacketStatusFlag, D));
12103 fidl::decode!(IsoPacketStatusFlag, D, val_ref, decoder, inner_offset, inner_depth)?;
12104 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12105 {
12106 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12107 }
12108 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12109 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12110 }
12111 }
12112
12113 next_offset += envelope_size;
12114 _next_ordinal_to_read += 1;
12115 if next_offset >= end_offset {
12116 return Ok(());
12117 }
12118
12119 while _next_ordinal_to_read < 4 {
12121 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12122 _next_ordinal_to_read += 1;
12123 next_offset += envelope_size;
12124 }
12125
12126 let next_out_of_line = decoder.next_out_of_line();
12127 let handles_before = decoder.remaining_handles();
12128 if let Some((inlined, num_bytes, num_handles)) =
12129 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12130 {
12131 let member_inline_size =
12132 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
12133 if inlined != (member_inline_size <= 4) {
12134 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12135 }
12136 let inner_offset;
12137 let mut inner_depth = depth.clone();
12138 if inlined {
12139 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12140 inner_offset = next_offset;
12141 } else {
12142 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12143 inner_depth.increment()?;
12144 }
12145 let val_ref = self.timestamp.get_or_insert_with(|| fidl::new_empty!(i64, D));
12146 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
12147 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12148 {
12149 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12150 }
12151 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12152 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12153 }
12154 }
12155
12156 next_offset += envelope_size;
12157
12158 while next_offset < end_offset {
12160 _next_ordinal_to_read += 1;
12161 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12162 next_offset += envelope_size;
12163 }
12164
12165 Ok(())
12166 }
12167 }
12168
12169 impl Legacy {
12170 #[inline(always)]
12171 fn max_ordinal_present(&self) -> u64 {
12172 0
12173 }
12174 }
12175
12176 impl fidl::encoding::ValueTypeMarker for Legacy {
12177 type Borrowed<'a> = &'a Self;
12178 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
12179 value
12180 }
12181 }
12182
12183 unsafe impl fidl::encoding::TypeMarker for Legacy {
12184 type Owned = Self;
12185
12186 #[inline(always)]
12187 fn inline_align(_context: fidl::encoding::Context) -> usize {
12188 8
12189 }
12190
12191 #[inline(always)]
12192 fn inline_size(_context: fidl::encoding::Context) -> usize {
12193 16
12194 }
12195 }
12196
12197 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Legacy, D> for &Legacy {
12198 unsafe fn encode(
12199 self,
12200 encoder: &mut fidl::encoding::Encoder<'_, D>,
12201 offset: usize,
12202 mut depth: fidl::encoding::Depth,
12203 ) -> fidl::Result<()> {
12204 encoder.debug_check_bounds::<Legacy>(offset);
12205 let max_ordinal: u64 = self.max_ordinal_present();
12207 encoder.write_num(max_ordinal, offset);
12208 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
12209 if max_ordinal == 0 {
12211 return Ok(());
12212 }
12213 depth.increment()?;
12214 let envelope_size = 8;
12215 let bytes_len = max_ordinal as usize * envelope_size;
12216 #[allow(unused_variables)]
12217 let offset = encoder.out_of_line_offset(bytes_len);
12218 let mut _prev_end_offset: usize = 0;
12219
12220 Ok(())
12221 }
12222 }
12223
12224 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Legacy {
12225 #[inline(always)]
12226 fn new_empty() -> Self {
12227 Self::default()
12228 }
12229
12230 unsafe fn decode(
12231 &mut self,
12232 decoder: &mut fidl::encoding::Decoder<'_, D>,
12233 offset: usize,
12234 mut depth: fidl::encoding::Depth,
12235 ) -> fidl::Result<()> {
12236 decoder.debug_check_bounds::<Self>(offset);
12237 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
12238 None => return Err(fidl::Error::NotNullable),
12239 Some(len) => len,
12240 };
12241 if len == 0 {
12243 return Ok(());
12244 };
12245 depth.increment()?;
12246 let envelope_size = 8;
12247 let bytes_len = len * envelope_size;
12248 let offset = decoder.out_of_line_offset(bytes_len)?;
12249 let mut _next_ordinal_to_read = 0;
12251 let mut next_offset = offset;
12252 let end_offset = offset + bytes_len;
12253
12254 while next_offset < end_offset {
12256 _next_ordinal_to_read += 1;
12257 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12258 next_offset += envelope_size;
12259 }
12260
12261 Ok(())
12262 }
12263 }
12264
12265 impl Peer {
12266 #[inline(always)]
12267 fn max_ordinal_present(&self) -> u64 {
12268 if let Some(_) = self.periodic_advertising_interval {
12269 return 10;
12270 }
12271 if let Some(_) = self.advertising_sid {
12272 return 9;
12273 }
12274 if let Some(_) = self.last_updated {
12275 return 8;
12276 }
12277 if let Some(_) = self.bonded {
12278 return 7;
12279 }
12280 if let Some(_) = self.data {
12281 return 6;
12282 }
12283 if let Some(_) = self.name {
12284 return 5;
12285 }
12286 if let Some(_) = self.advertising_data {
12287 return 4;
12288 }
12289 if let Some(_) = self.rssi {
12290 return 3;
12291 }
12292 if let Some(_) = self.connectable {
12293 return 2;
12294 }
12295 if let Some(_) = self.id {
12296 return 1;
12297 }
12298 0
12299 }
12300 }
12301
12302 impl fidl::encoding::ValueTypeMarker for Peer {
12303 type Borrowed<'a> = &'a Self;
12304 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
12305 value
12306 }
12307 }
12308
12309 unsafe impl fidl::encoding::TypeMarker for Peer {
12310 type Owned = Self;
12311
12312 #[inline(always)]
12313 fn inline_align(_context: fidl::encoding::Context) -> usize {
12314 8
12315 }
12316
12317 #[inline(always)]
12318 fn inline_size(_context: fidl::encoding::Context) -> usize {
12319 16
12320 }
12321 }
12322
12323 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Peer, D> for &Peer {
12324 unsafe fn encode(
12325 self,
12326 encoder: &mut fidl::encoding::Encoder<'_, D>,
12327 offset: usize,
12328 mut depth: fidl::encoding::Depth,
12329 ) -> fidl::Result<()> {
12330 encoder.debug_check_bounds::<Peer>(offset);
12331 let max_ordinal: u64 = self.max_ordinal_present();
12333 encoder.write_num(max_ordinal, offset);
12334 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
12335 if max_ordinal == 0 {
12337 return Ok(());
12338 }
12339 depth.increment()?;
12340 let envelope_size = 8;
12341 let bytes_len = max_ordinal as usize * envelope_size;
12342 #[allow(unused_variables)]
12343 let offset = encoder.out_of_line_offset(bytes_len);
12344 let mut _prev_end_offset: usize = 0;
12345 if 1 > max_ordinal {
12346 return Ok(());
12347 }
12348
12349 let cur_offset: usize = (1 - 1) * envelope_size;
12352
12353 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12355
12356 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_bluetooth__common::PeerId, D>(
12361 self.id.as_ref().map(<fidl_fuchsia_bluetooth__common::PeerId as fidl::encoding::ValueTypeMarker>::borrow),
12362 encoder, offset + cur_offset, depth
12363 )?;
12364
12365 _prev_end_offset = cur_offset + envelope_size;
12366 if 2 > max_ordinal {
12367 return Ok(());
12368 }
12369
12370 let cur_offset: usize = (2 - 1) * envelope_size;
12373
12374 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12376
12377 fidl::encoding::encode_in_envelope_optional::<bool, D>(
12382 self.connectable.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
12383 encoder,
12384 offset + cur_offset,
12385 depth,
12386 )?;
12387
12388 _prev_end_offset = cur_offset + envelope_size;
12389 if 3 > max_ordinal {
12390 return Ok(());
12391 }
12392
12393 let cur_offset: usize = (3 - 1) * envelope_size;
12396
12397 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12399
12400 fidl::encoding::encode_in_envelope_optional::<i8, D>(
12405 self.rssi.as_ref().map(<i8 as fidl::encoding::ValueTypeMarker>::borrow),
12406 encoder,
12407 offset + cur_offset,
12408 depth,
12409 )?;
12410
12411 _prev_end_offset = cur_offset + envelope_size;
12412 if 4 > max_ordinal {
12413 return Ok(());
12414 }
12415
12416 let cur_offset: usize = (4 - 1) * envelope_size;
12419
12420 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12422
12423 fidl::encoding::encode_in_envelope_optional::<AdvertisingData, D>(
12428 self.advertising_data
12429 .as_ref()
12430 .map(<AdvertisingData as fidl::encoding::ValueTypeMarker>::borrow),
12431 encoder,
12432 offset + cur_offset,
12433 depth,
12434 )?;
12435
12436 _prev_end_offset = cur_offset + envelope_size;
12437 if 5 > max_ordinal {
12438 return Ok(());
12439 }
12440
12441 let cur_offset: usize = (5 - 1) * envelope_size;
12444
12445 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12447
12448 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<248>, D>(
12453 self.name.as_ref().map(
12454 <fidl::encoding::BoundedString<248> as fidl::encoding::ValueTypeMarker>::borrow,
12455 ),
12456 encoder,
12457 offset + cur_offset,
12458 depth,
12459 )?;
12460
12461 _prev_end_offset = cur_offset + envelope_size;
12462 if 6 > max_ordinal {
12463 return Ok(());
12464 }
12465
12466 let cur_offset: usize = (6 - 1) * envelope_size;
12469
12470 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12472
12473 fidl::encoding::encode_in_envelope_optional::<ScanData, D>(
12478 self.data.as_ref().map(<ScanData as fidl::encoding::ValueTypeMarker>::borrow),
12479 encoder,
12480 offset + cur_offset,
12481 depth,
12482 )?;
12483
12484 _prev_end_offset = cur_offset + envelope_size;
12485 if 7 > max_ordinal {
12486 return Ok(());
12487 }
12488
12489 let cur_offset: usize = (7 - 1) * envelope_size;
12492
12493 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12495
12496 fidl::encoding::encode_in_envelope_optional::<bool, D>(
12501 self.bonded.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
12502 encoder,
12503 offset + cur_offset,
12504 depth,
12505 )?;
12506
12507 _prev_end_offset = cur_offset + envelope_size;
12508 if 8 > max_ordinal {
12509 return Ok(());
12510 }
12511
12512 let cur_offset: usize = (8 - 1) * envelope_size;
12515
12516 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12518
12519 fidl::encoding::encode_in_envelope_optional::<i64, D>(
12524 self.last_updated.as_ref().map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
12525 encoder,
12526 offset + cur_offset,
12527 depth,
12528 )?;
12529
12530 _prev_end_offset = cur_offset + envelope_size;
12531 if 9 > max_ordinal {
12532 return Ok(());
12533 }
12534
12535 let cur_offset: usize = (9 - 1) * envelope_size;
12538
12539 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12541
12542 fidl::encoding::encode_in_envelope_optional::<u8, D>(
12547 self.advertising_sid.as_ref().map(<u8 as fidl::encoding::ValueTypeMarker>::borrow),
12548 encoder,
12549 offset + cur_offset,
12550 depth,
12551 )?;
12552
12553 _prev_end_offset = cur_offset + envelope_size;
12554 if 10 > max_ordinal {
12555 return Ok(());
12556 }
12557
12558 let cur_offset: usize = (10 - 1) * envelope_size;
12561
12562 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12564
12565 fidl::encoding::encode_in_envelope_optional::<u16, D>(
12570 self.periodic_advertising_interval
12571 .as_ref()
12572 .map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
12573 encoder,
12574 offset + cur_offset,
12575 depth,
12576 )?;
12577
12578 _prev_end_offset = cur_offset + envelope_size;
12579
12580 Ok(())
12581 }
12582 }
12583
12584 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Peer {
12585 #[inline(always)]
12586 fn new_empty() -> Self {
12587 Self::default()
12588 }
12589
12590 unsafe fn decode(
12591 &mut self,
12592 decoder: &mut fidl::encoding::Decoder<'_, D>,
12593 offset: usize,
12594 mut depth: fidl::encoding::Depth,
12595 ) -> fidl::Result<()> {
12596 decoder.debug_check_bounds::<Self>(offset);
12597 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
12598 None => return Err(fidl::Error::NotNullable),
12599 Some(len) => len,
12600 };
12601 if len == 0 {
12603 return Ok(());
12604 };
12605 depth.increment()?;
12606 let envelope_size = 8;
12607 let bytes_len = len * envelope_size;
12608 let offset = decoder.out_of_line_offset(bytes_len)?;
12609 let mut _next_ordinal_to_read = 0;
12611 let mut next_offset = offset;
12612 let end_offset = offset + bytes_len;
12613 _next_ordinal_to_read += 1;
12614 if next_offset >= end_offset {
12615 return Ok(());
12616 }
12617
12618 while _next_ordinal_to_read < 1 {
12620 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12621 _next_ordinal_to_read += 1;
12622 next_offset += envelope_size;
12623 }
12624
12625 let next_out_of_line = decoder.next_out_of_line();
12626 let handles_before = decoder.remaining_handles();
12627 if let Some((inlined, num_bytes, num_handles)) =
12628 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12629 {
12630 let member_inline_size = <fidl_fuchsia_bluetooth__common::PeerId as fidl::encoding::TypeMarker>::inline_size(decoder.context);
12631 if inlined != (member_inline_size <= 4) {
12632 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12633 }
12634 let inner_offset;
12635 let mut inner_depth = depth.clone();
12636 if inlined {
12637 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12638 inner_offset = next_offset;
12639 } else {
12640 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12641 inner_depth.increment()?;
12642 }
12643 let val_ref = self.id.get_or_insert_with(|| {
12644 fidl::new_empty!(fidl_fuchsia_bluetooth__common::PeerId, D)
12645 });
12646 fidl::decode!(
12647 fidl_fuchsia_bluetooth__common::PeerId,
12648 D,
12649 val_ref,
12650 decoder,
12651 inner_offset,
12652 inner_depth
12653 )?;
12654 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12655 {
12656 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12657 }
12658 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12659 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12660 }
12661 }
12662
12663 next_offset += envelope_size;
12664 _next_ordinal_to_read += 1;
12665 if next_offset >= end_offset {
12666 return Ok(());
12667 }
12668
12669 while _next_ordinal_to_read < 2 {
12671 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12672 _next_ordinal_to_read += 1;
12673 next_offset += envelope_size;
12674 }
12675
12676 let next_out_of_line = decoder.next_out_of_line();
12677 let handles_before = decoder.remaining_handles();
12678 if let Some((inlined, num_bytes, num_handles)) =
12679 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12680 {
12681 let member_inline_size =
12682 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
12683 if inlined != (member_inline_size <= 4) {
12684 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12685 }
12686 let inner_offset;
12687 let mut inner_depth = depth.clone();
12688 if inlined {
12689 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12690 inner_offset = next_offset;
12691 } else {
12692 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12693 inner_depth.increment()?;
12694 }
12695 let val_ref = self.connectable.get_or_insert_with(|| fidl::new_empty!(bool, D));
12696 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
12697 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12698 {
12699 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12700 }
12701 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12702 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12703 }
12704 }
12705
12706 next_offset += envelope_size;
12707 _next_ordinal_to_read += 1;
12708 if next_offset >= end_offset {
12709 return Ok(());
12710 }
12711
12712 while _next_ordinal_to_read < 3 {
12714 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12715 _next_ordinal_to_read += 1;
12716 next_offset += envelope_size;
12717 }
12718
12719 let next_out_of_line = decoder.next_out_of_line();
12720 let handles_before = decoder.remaining_handles();
12721 if let Some((inlined, num_bytes, num_handles)) =
12722 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12723 {
12724 let member_inline_size =
12725 <i8 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
12726 if inlined != (member_inline_size <= 4) {
12727 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12728 }
12729 let inner_offset;
12730 let mut inner_depth = depth.clone();
12731 if inlined {
12732 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12733 inner_offset = next_offset;
12734 } else {
12735 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12736 inner_depth.increment()?;
12737 }
12738 let val_ref = self.rssi.get_or_insert_with(|| fidl::new_empty!(i8, D));
12739 fidl::decode!(i8, D, val_ref, decoder, inner_offset, inner_depth)?;
12740 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12741 {
12742 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12743 }
12744 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12745 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12746 }
12747 }
12748
12749 next_offset += envelope_size;
12750 _next_ordinal_to_read += 1;
12751 if next_offset >= end_offset {
12752 return Ok(());
12753 }
12754
12755 while _next_ordinal_to_read < 4 {
12757 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12758 _next_ordinal_to_read += 1;
12759 next_offset += envelope_size;
12760 }
12761
12762 let next_out_of_line = decoder.next_out_of_line();
12763 let handles_before = decoder.remaining_handles();
12764 if let Some((inlined, num_bytes, num_handles)) =
12765 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12766 {
12767 let member_inline_size =
12768 <AdvertisingData as fidl::encoding::TypeMarker>::inline_size(decoder.context);
12769 if inlined != (member_inline_size <= 4) {
12770 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12771 }
12772 let inner_offset;
12773 let mut inner_depth = depth.clone();
12774 if inlined {
12775 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12776 inner_offset = next_offset;
12777 } else {
12778 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12779 inner_depth.increment()?;
12780 }
12781 let val_ref = self
12782 .advertising_data
12783 .get_or_insert_with(|| fidl::new_empty!(AdvertisingData, D));
12784 fidl::decode!(AdvertisingData, D, val_ref, decoder, inner_offset, inner_depth)?;
12785 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12786 {
12787 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12788 }
12789 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12790 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12791 }
12792 }
12793
12794 next_offset += envelope_size;
12795 _next_ordinal_to_read += 1;
12796 if next_offset >= end_offset {
12797 return Ok(());
12798 }
12799
12800 while _next_ordinal_to_read < 5 {
12802 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12803 _next_ordinal_to_read += 1;
12804 next_offset += envelope_size;
12805 }
12806
12807 let next_out_of_line = decoder.next_out_of_line();
12808 let handles_before = decoder.remaining_handles();
12809 if let Some((inlined, num_bytes, num_handles)) =
12810 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12811 {
12812 let member_inline_size =
12813 <fidl::encoding::BoundedString<248> as fidl::encoding::TypeMarker>::inline_size(
12814 decoder.context,
12815 );
12816 if inlined != (member_inline_size <= 4) {
12817 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12818 }
12819 let inner_offset;
12820 let mut inner_depth = depth.clone();
12821 if inlined {
12822 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12823 inner_offset = next_offset;
12824 } else {
12825 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12826 inner_depth.increment()?;
12827 }
12828 let val_ref = self
12829 .name
12830 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<248>, D));
12831 fidl::decode!(
12832 fidl::encoding::BoundedString<248>,
12833 D,
12834 val_ref,
12835 decoder,
12836 inner_offset,
12837 inner_depth
12838 )?;
12839 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12840 {
12841 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12842 }
12843 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12844 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12845 }
12846 }
12847
12848 next_offset += envelope_size;
12849 _next_ordinal_to_read += 1;
12850 if next_offset >= end_offset {
12851 return Ok(());
12852 }
12853
12854 while _next_ordinal_to_read < 6 {
12856 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12857 _next_ordinal_to_read += 1;
12858 next_offset += envelope_size;
12859 }
12860
12861 let next_out_of_line = decoder.next_out_of_line();
12862 let handles_before = decoder.remaining_handles();
12863 if let Some((inlined, num_bytes, num_handles)) =
12864 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12865 {
12866 let member_inline_size =
12867 <ScanData as fidl::encoding::TypeMarker>::inline_size(decoder.context);
12868 if inlined != (member_inline_size <= 4) {
12869 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12870 }
12871 let inner_offset;
12872 let mut inner_depth = depth.clone();
12873 if inlined {
12874 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12875 inner_offset = next_offset;
12876 } else {
12877 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12878 inner_depth.increment()?;
12879 }
12880 let val_ref = self.data.get_or_insert_with(|| fidl::new_empty!(ScanData, D));
12881 fidl::decode!(ScanData, D, val_ref, decoder, inner_offset, inner_depth)?;
12882 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12883 {
12884 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12885 }
12886 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12887 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12888 }
12889 }
12890
12891 next_offset += envelope_size;
12892 _next_ordinal_to_read += 1;
12893 if next_offset >= end_offset {
12894 return Ok(());
12895 }
12896
12897 while _next_ordinal_to_read < 7 {
12899 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12900 _next_ordinal_to_read += 1;
12901 next_offset += envelope_size;
12902 }
12903
12904 let next_out_of_line = decoder.next_out_of_line();
12905 let handles_before = decoder.remaining_handles();
12906 if let Some((inlined, num_bytes, num_handles)) =
12907 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12908 {
12909 let member_inline_size =
12910 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
12911 if inlined != (member_inline_size <= 4) {
12912 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12913 }
12914 let inner_offset;
12915 let mut inner_depth = depth.clone();
12916 if inlined {
12917 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12918 inner_offset = next_offset;
12919 } else {
12920 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12921 inner_depth.increment()?;
12922 }
12923 let val_ref = self.bonded.get_or_insert_with(|| fidl::new_empty!(bool, D));
12924 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
12925 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12926 {
12927 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12928 }
12929 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12930 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12931 }
12932 }
12933
12934 next_offset += envelope_size;
12935 _next_ordinal_to_read += 1;
12936 if next_offset >= end_offset {
12937 return Ok(());
12938 }
12939
12940 while _next_ordinal_to_read < 8 {
12942 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12943 _next_ordinal_to_read += 1;
12944 next_offset += envelope_size;
12945 }
12946
12947 let next_out_of_line = decoder.next_out_of_line();
12948 let handles_before = decoder.remaining_handles();
12949 if let Some((inlined, num_bytes, num_handles)) =
12950 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12951 {
12952 let member_inline_size =
12953 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
12954 if inlined != (member_inline_size <= 4) {
12955 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12956 }
12957 let inner_offset;
12958 let mut inner_depth = depth.clone();
12959 if inlined {
12960 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12961 inner_offset = next_offset;
12962 } else {
12963 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12964 inner_depth.increment()?;
12965 }
12966 let val_ref = self.last_updated.get_or_insert_with(|| fidl::new_empty!(i64, D));
12967 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
12968 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12969 {
12970 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12971 }
12972 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12973 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12974 }
12975 }
12976
12977 next_offset += envelope_size;
12978 _next_ordinal_to_read += 1;
12979 if next_offset >= end_offset {
12980 return Ok(());
12981 }
12982
12983 while _next_ordinal_to_read < 9 {
12985 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12986 _next_ordinal_to_read += 1;
12987 next_offset += envelope_size;
12988 }
12989
12990 let next_out_of_line = decoder.next_out_of_line();
12991 let handles_before = decoder.remaining_handles();
12992 if let Some((inlined, num_bytes, num_handles)) =
12993 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12994 {
12995 let member_inline_size =
12996 <u8 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
12997 if inlined != (member_inline_size <= 4) {
12998 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12999 }
13000 let inner_offset;
13001 let mut inner_depth = depth.clone();
13002 if inlined {
13003 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13004 inner_offset = next_offset;
13005 } else {
13006 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13007 inner_depth.increment()?;
13008 }
13009 let val_ref = self.advertising_sid.get_or_insert_with(|| fidl::new_empty!(u8, D));
13010 fidl::decode!(u8, D, val_ref, decoder, inner_offset, inner_depth)?;
13011 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13012 {
13013 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13014 }
13015 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13016 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13017 }
13018 }
13019
13020 next_offset += envelope_size;
13021 _next_ordinal_to_read += 1;
13022 if next_offset >= end_offset {
13023 return Ok(());
13024 }
13025
13026 while _next_ordinal_to_read < 10 {
13028 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13029 _next_ordinal_to_read += 1;
13030 next_offset += envelope_size;
13031 }
13032
13033 let next_out_of_line = decoder.next_out_of_line();
13034 let handles_before = decoder.remaining_handles();
13035 if let Some((inlined, num_bytes, num_handles)) =
13036 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13037 {
13038 let member_inline_size =
13039 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
13040 if inlined != (member_inline_size <= 4) {
13041 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13042 }
13043 let inner_offset;
13044 let mut inner_depth = depth.clone();
13045 if inlined {
13046 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13047 inner_offset = next_offset;
13048 } else {
13049 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13050 inner_depth.increment()?;
13051 }
13052 let val_ref = self
13053 .periodic_advertising_interval
13054 .get_or_insert_with(|| fidl::new_empty!(u16, D));
13055 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
13056 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13057 {
13058 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13059 }
13060 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13061 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13062 }
13063 }
13064
13065 next_offset += envelope_size;
13066
13067 while next_offset < end_offset {
13069 _next_ordinal_to_read += 1;
13070 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13071 next_offset += envelope_size;
13072 }
13073
13074 Ok(())
13075 }
13076 }
13077
13078 impl PeriodicAdvertisingReport {
13079 #[inline(always)]
13080 fn max_ordinal_present(&self) -> u64 {
13081 if let Some(_) = self.timestamp {
13082 return 5;
13083 }
13084 if let Some(_) = self.subevent {
13085 return 4;
13086 }
13087 if let Some(_) = self.event_counter {
13088 return 3;
13089 }
13090 if let Some(_) = self.data {
13091 return 2;
13092 }
13093 if let Some(_) = self.rssi {
13094 return 1;
13095 }
13096 0
13097 }
13098 }
13099
13100 impl fidl::encoding::ValueTypeMarker for PeriodicAdvertisingReport {
13101 type Borrowed<'a> = &'a Self;
13102 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
13103 value
13104 }
13105 }
13106
13107 unsafe impl fidl::encoding::TypeMarker for PeriodicAdvertisingReport {
13108 type Owned = Self;
13109
13110 #[inline(always)]
13111 fn inline_align(_context: fidl::encoding::Context) -> usize {
13112 8
13113 }
13114
13115 #[inline(always)]
13116 fn inline_size(_context: fidl::encoding::Context) -> usize {
13117 16
13118 }
13119 }
13120
13121 unsafe impl<D: fidl::encoding::ResourceDialect>
13122 fidl::encoding::Encode<PeriodicAdvertisingReport, D> for &PeriodicAdvertisingReport
13123 {
13124 unsafe fn encode(
13125 self,
13126 encoder: &mut fidl::encoding::Encoder<'_, D>,
13127 offset: usize,
13128 mut depth: fidl::encoding::Depth,
13129 ) -> fidl::Result<()> {
13130 encoder.debug_check_bounds::<PeriodicAdvertisingReport>(offset);
13131 let max_ordinal: u64 = self.max_ordinal_present();
13133 encoder.write_num(max_ordinal, offset);
13134 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
13135 if max_ordinal == 0 {
13137 return Ok(());
13138 }
13139 depth.increment()?;
13140 let envelope_size = 8;
13141 let bytes_len = max_ordinal as usize * envelope_size;
13142 #[allow(unused_variables)]
13143 let offset = encoder.out_of_line_offset(bytes_len);
13144 let mut _prev_end_offset: usize = 0;
13145 if 1 > max_ordinal {
13146 return Ok(());
13147 }
13148
13149 let cur_offset: usize = (1 - 1) * envelope_size;
13152
13153 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13155
13156 fidl::encoding::encode_in_envelope_optional::<i8, D>(
13161 self.rssi.as_ref().map(<i8 as fidl::encoding::ValueTypeMarker>::borrow),
13162 encoder,
13163 offset + cur_offset,
13164 depth,
13165 )?;
13166
13167 _prev_end_offset = cur_offset + envelope_size;
13168 if 2 > max_ordinal {
13169 return Ok(());
13170 }
13171
13172 let cur_offset: usize = (2 - 1) * envelope_size;
13175
13176 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13178
13179 fidl::encoding::encode_in_envelope_optional::<ScanData, D>(
13184 self.data.as_ref().map(<ScanData as fidl::encoding::ValueTypeMarker>::borrow),
13185 encoder,
13186 offset + cur_offset,
13187 depth,
13188 )?;
13189
13190 _prev_end_offset = cur_offset + envelope_size;
13191 if 3 > max_ordinal {
13192 return Ok(());
13193 }
13194
13195 let cur_offset: usize = (3 - 1) * envelope_size;
13198
13199 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13201
13202 fidl::encoding::encode_in_envelope_optional::<u16, D>(
13207 self.event_counter.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
13208 encoder,
13209 offset + cur_offset,
13210 depth,
13211 )?;
13212
13213 _prev_end_offset = cur_offset + envelope_size;
13214 if 4 > max_ordinal {
13215 return Ok(());
13216 }
13217
13218 let cur_offset: usize = (4 - 1) * envelope_size;
13221
13222 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13224
13225 fidl::encoding::encode_in_envelope_optional::<u8, D>(
13230 self.subevent.as_ref().map(<u8 as fidl::encoding::ValueTypeMarker>::borrow),
13231 encoder,
13232 offset + cur_offset,
13233 depth,
13234 )?;
13235
13236 _prev_end_offset = cur_offset + envelope_size;
13237 if 5 > max_ordinal {
13238 return Ok(());
13239 }
13240
13241 let cur_offset: usize = (5 - 1) * envelope_size;
13244
13245 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13247
13248 fidl::encoding::encode_in_envelope_optional::<i64, D>(
13253 self.timestamp.as_ref().map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
13254 encoder,
13255 offset + cur_offset,
13256 depth,
13257 )?;
13258
13259 _prev_end_offset = cur_offset + envelope_size;
13260
13261 Ok(())
13262 }
13263 }
13264
13265 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
13266 for PeriodicAdvertisingReport
13267 {
13268 #[inline(always)]
13269 fn new_empty() -> Self {
13270 Self::default()
13271 }
13272
13273 unsafe fn decode(
13274 &mut self,
13275 decoder: &mut fidl::encoding::Decoder<'_, D>,
13276 offset: usize,
13277 mut depth: fidl::encoding::Depth,
13278 ) -> fidl::Result<()> {
13279 decoder.debug_check_bounds::<Self>(offset);
13280 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
13281 None => return Err(fidl::Error::NotNullable),
13282 Some(len) => len,
13283 };
13284 if len == 0 {
13286 return Ok(());
13287 };
13288 depth.increment()?;
13289 let envelope_size = 8;
13290 let bytes_len = len * envelope_size;
13291 let offset = decoder.out_of_line_offset(bytes_len)?;
13292 let mut _next_ordinal_to_read = 0;
13294 let mut next_offset = offset;
13295 let end_offset = offset + bytes_len;
13296 _next_ordinal_to_read += 1;
13297 if next_offset >= end_offset {
13298 return Ok(());
13299 }
13300
13301 while _next_ordinal_to_read < 1 {
13303 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13304 _next_ordinal_to_read += 1;
13305 next_offset += envelope_size;
13306 }
13307
13308 let next_out_of_line = decoder.next_out_of_line();
13309 let handles_before = decoder.remaining_handles();
13310 if let Some((inlined, num_bytes, num_handles)) =
13311 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13312 {
13313 let member_inline_size =
13314 <i8 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
13315 if inlined != (member_inline_size <= 4) {
13316 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13317 }
13318 let inner_offset;
13319 let mut inner_depth = depth.clone();
13320 if inlined {
13321 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13322 inner_offset = next_offset;
13323 } else {
13324 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13325 inner_depth.increment()?;
13326 }
13327 let val_ref = self.rssi.get_or_insert_with(|| fidl::new_empty!(i8, D));
13328 fidl::decode!(i8, D, val_ref, decoder, inner_offset, inner_depth)?;
13329 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13330 {
13331 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13332 }
13333 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13334 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13335 }
13336 }
13337
13338 next_offset += envelope_size;
13339 _next_ordinal_to_read += 1;
13340 if next_offset >= end_offset {
13341 return Ok(());
13342 }
13343
13344 while _next_ordinal_to_read < 2 {
13346 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13347 _next_ordinal_to_read += 1;
13348 next_offset += envelope_size;
13349 }
13350
13351 let next_out_of_line = decoder.next_out_of_line();
13352 let handles_before = decoder.remaining_handles();
13353 if let Some((inlined, num_bytes, num_handles)) =
13354 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13355 {
13356 let member_inline_size =
13357 <ScanData as fidl::encoding::TypeMarker>::inline_size(decoder.context);
13358 if inlined != (member_inline_size <= 4) {
13359 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13360 }
13361 let inner_offset;
13362 let mut inner_depth = depth.clone();
13363 if inlined {
13364 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13365 inner_offset = next_offset;
13366 } else {
13367 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13368 inner_depth.increment()?;
13369 }
13370 let val_ref = self.data.get_or_insert_with(|| fidl::new_empty!(ScanData, D));
13371 fidl::decode!(ScanData, D, val_ref, decoder, inner_offset, inner_depth)?;
13372 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13373 {
13374 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13375 }
13376 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13377 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13378 }
13379 }
13380
13381 next_offset += envelope_size;
13382 _next_ordinal_to_read += 1;
13383 if next_offset >= end_offset {
13384 return Ok(());
13385 }
13386
13387 while _next_ordinal_to_read < 3 {
13389 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13390 _next_ordinal_to_read += 1;
13391 next_offset += envelope_size;
13392 }
13393
13394 let next_out_of_line = decoder.next_out_of_line();
13395 let handles_before = decoder.remaining_handles();
13396 if let Some((inlined, num_bytes, num_handles)) =
13397 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13398 {
13399 let member_inline_size =
13400 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
13401 if inlined != (member_inline_size <= 4) {
13402 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13403 }
13404 let inner_offset;
13405 let mut inner_depth = depth.clone();
13406 if inlined {
13407 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13408 inner_offset = next_offset;
13409 } else {
13410 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13411 inner_depth.increment()?;
13412 }
13413 let val_ref = self.event_counter.get_or_insert_with(|| fidl::new_empty!(u16, D));
13414 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
13415 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13416 {
13417 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13418 }
13419 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13420 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13421 }
13422 }
13423
13424 next_offset += envelope_size;
13425 _next_ordinal_to_read += 1;
13426 if next_offset >= end_offset {
13427 return Ok(());
13428 }
13429
13430 while _next_ordinal_to_read < 4 {
13432 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13433 _next_ordinal_to_read += 1;
13434 next_offset += envelope_size;
13435 }
13436
13437 let next_out_of_line = decoder.next_out_of_line();
13438 let handles_before = decoder.remaining_handles();
13439 if let Some((inlined, num_bytes, num_handles)) =
13440 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13441 {
13442 let member_inline_size =
13443 <u8 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
13444 if inlined != (member_inline_size <= 4) {
13445 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13446 }
13447 let inner_offset;
13448 let mut inner_depth = depth.clone();
13449 if inlined {
13450 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13451 inner_offset = next_offset;
13452 } else {
13453 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13454 inner_depth.increment()?;
13455 }
13456 let val_ref = self.subevent.get_or_insert_with(|| fidl::new_empty!(u8, D));
13457 fidl::decode!(u8, D, val_ref, decoder, inner_offset, inner_depth)?;
13458 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13459 {
13460 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13461 }
13462 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13463 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13464 }
13465 }
13466
13467 next_offset += envelope_size;
13468 _next_ordinal_to_read += 1;
13469 if next_offset >= end_offset {
13470 return Ok(());
13471 }
13472
13473 while _next_ordinal_to_read < 5 {
13475 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13476 _next_ordinal_to_read += 1;
13477 next_offset += envelope_size;
13478 }
13479
13480 let next_out_of_line = decoder.next_out_of_line();
13481 let handles_before = decoder.remaining_handles();
13482 if let Some((inlined, num_bytes, num_handles)) =
13483 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13484 {
13485 let member_inline_size =
13486 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
13487 if inlined != (member_inline_size <= 4) {
13488 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13489 }
13490 let inner_offset;
13491 let mut inner_depth = depth.clone();
13492 if inlined {
13493 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13494 inner_offset = next_offset;
13495 } else {
13496 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13497 inner_depth.increment()?;
13498 }
13499 let val_ref = self.timestamp.get_or_insert_with(|| fidl::new_empty!(i64, D));
13500 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
13501 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13502 {
13503 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13504 }
13505 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13506 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13507 }
13508 }
13509
13510 next_offset += envelope_size;
13511
13512 while next_offset < end_offset {
13514 _next_ordinal_to_read += 1;
13515 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13516 next_offset += envelope_size;
13517 }
13518
13519 Ok(())
13520 }
13521 }
13522
13523 impl PeriodicAdvertisingSyncConfiguration {
13524 #[inline(always)]
13525 fn max_ordinal_present(&self) -> u64 {
13526 if let Some(_) = self.filter_duplicates {
13527 return 1;
13528 }
13529 0
13530 }
13531 }
13532
13533 impl fidl::encoding::ValueTypeMarker for PeriodicAdvertisingSyncConfiguration {
13534 type Borrowed<'a> = &'a Self;
13535 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
13536 value
13537 }
13538 }
13539
13540 unsafe impl fidl::encoding::TypeMarker for PeriodicAdvertisingSyncConfiguration {
13541 type Owned = Self;
13542
13543 #[inline(always)]
13544 fn inline_align(_context: fidl::encoding::Context) -> usize {
13545 8
13546 }
13547
13548 #[inline(always)]
13549 fn inline_size(_context: fidl::encoding::Context) -> usize {
13550 16
13551 }
13552 }
13553
13554 unsafe impl<D: fidl::encoding::ResourceDialect>
13555 fidl::encoding::Encode<PeriodicAdvertisingSyncConfiguration, D>
13556 for &PeriodicAdvertisingSyncConfiguration
13557 {
13558 unsafe fn encode(
13559 self,
13560 encoder: &mut fidl::encoding::Encoder<'_, D>,
13561 offset: usize,
13562 mut depth: fidl::encoding::Depth,
13563 ) -> fidl::Result<()> {
13564 encoder.debug_check_bounds::<PeriodicAdvertisingSyncConfiguration>(offset);
13565 let max_ordinal: u64 = self.max_ordinal_present();
13567 encoder.write_num(max_ordinal, offset);
13568 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
13569 if max_ordinal == 0 {
13571 return Ok(());
13572 }
13573 depth.increment()?;
13574 let envelope_size = 8;
13575 let bytes_len = max_ordinal as usize * envelope_size;
13576 #[allow(unused_variables)]
13577 let offset = encoder.out_of_line_offset(bytes_len);
13578 let mut _prev_end_offset: usize = 0;
13579 if 1 > max_ordinal {
13580 return Ok(());
13581 }
13582
13583 let cur_offset: usize = (1 - 1) * envelope_size;
13586
13587 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13589
13590 fidl::encoding::encode_in_envelope_optional::<bool, D>(
13595 self.filter_duplicates
13596 .as_ref()
13597 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
13598 encoder,
13599 offset + cur_offset,
13600 depth,
13601 )?;
13602
13603 _prev_end_offset = cur_offset + envelope_size;
13604
13605 Ok(())
13606 }
13607 }
13608
13609 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
13610 for PeriodicAdvertisingSyncConfiguration
13611 {
13612 #[inline(always)]
13613 fn new_empty() -> Self {
13614 Self::default()
13615 }
13616
13617 unsafe fn decode(
13618 &mut self,
13619 decoder: &mut fidl::encoding::Decoder<'_, D>,
13620 offset: usize,
13621 mut depth: fidl::encoding::Depth,
13622 ) -> fidl::Result<()> {
13623 decoder.debug_check_bounds::<Self>(offset);
13624 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
13625 None => return Err(fidl::Error::NotNullable),
13626 Some(len) => len,
13627 };
13628 if len == 0 {
13630 return Ok(());
13631 };
13632 depth.increment()?;
13633 let envelope_size = 8;
13634 let bytes_len = len * envelope_size;
13635 let offset = decoder.out_of_line_offset(bytes_len)?;
13636 let mut _next_ordinal_to_read = 0;
13638 let mut next_offset = offset;
13639 let end_offset = offset + bytes_len;
13640 _next_ordinal_to_read += 1;
13641 if next_offset >= end_offset {
13642 return Ok(());
13643 }
13644
13645 while _next_ordinal_to_read < 1 {
13647 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13648 _next_ordinal_to_read += 1;
13649 next_offset += envelope_size;
13650 }
13651
13652 let next_out_of_line = decoder.next_out_of_line();
13653 let handles_before = decoder.remaining_handles();
13654 if let Some((inlined, num_bytes, num_handles)) =
13655 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13656 {
13657 let member_inline_size =
13658 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
13659 if inlined != (member_inline_size <= 4) {
13660 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13661 }
13662 let inner_offset;
13663 let mut inner_depth = depth.clone();
13664 if inlined {
13665 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13666 inner_offset = next_offset;
13667 } else {
13668 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13669 inner_depth.increment()?;
13670 }
13671 let val_ref =
13672 self.filter_duplicates.get_or_insert_with(|| fidl::new_empty!(bool, D));
13673 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
13674 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13675 {
13676 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13677 }
13678 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13679 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13680 }
13681 }
13682
13683 next_offset += envelope_size;
13684
13685 while next_offset < end_offset {
13687 _next_ordinal_to_read += 1;
13688 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13689 next_offset += envelope_size;
13690 }
13691
13692 Ok(())
13693 }
13694 }
13695
13696 impl PeriodicAdvertisingSyncOnEstablishedRequest {
13697 #[inline(always)]
13698 fn max_ordinal_present(&self) -> u64 {
13699 if let Some(_) = self.periodic_advertising_interval {
13700 return 7;
13701 }
13702 if let Some(_) = self.phy {
13703 return 6;
13704 }
13705 if let Some(_) = self.advertising_sid {
13706 return 5;
13707 }
13708 if let Some(_) = self.service_data {
13709 return 4;
13710 }
13711 if let Some(_) = self.peer_id {
13712 return 3;
13713 }
13714 if let Some(_) = self.subevents_count {
13715 return 2;
13716 }
13717 if let Some(_) = self.id {
13718 return 1;
13719 }
13720 0
13721 }
13722 }
13723
13724 impl fidl::encoding::ValueTypeMarker for PeriodicAdvertisingSyncOnEstablishedRequest {
13725 type Borrowed<'a> = &'a Self;
13726 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
13727 value
13728 }
13729 }
13730
13731 unsafe impl fidl::encoding::TypeMarker for PeriodicAdvertisingSyncOnEstablishedRequest {
13732 type Owned = Self;
13733
13734 #[inline(always)]
13735 fn inline_align(_context: fidl::encoding::Context) -> usize {
13736 8
13737 }
13738
13739 #[inline(always)]
13740 fn inline_size(_context: fidl::encoding::Context) -> usize {
13741 16
13742 }
13743 }
13744
13745 unsafe impl<D: fidl::encoding::ResourceDialect>
13746 fidl::encoding::Encode<PeriodicAdvertisingSyncOnEstablishedRequest, D>
13747 for &PeriodicAdvertisingSyncOnEstablishedRequest
13748 {
13749 unsafe fn encode(
13750 self,
13751 encoder: &mut fidl::encoding::Encoder<'_, D>,
13752 offset: usize,
13753 mut depth: fidl::encoding::Depth,
13754 ) -> fidl::Result<()> {
13755 encoder.debug_check_bounds::<PeriodicAdvertisingSyncOnEstablishedRequest>(offset);
13756 let max_ordinal: u64 = self.max_ordinal_present();
13758 encoder.write_num(max_ordinal, offset);
13759 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
13760 if max_ordinal == 0 {
13762 return Ok(());
13763 }
13764 depth.increment()?;
13765 let envelope_size = 8;
13766 let bytes_len = max_ordinal as usize * envelope_size;
13767 #[allow(unused_variables)]
13768 let offset = encoder.out_of_line_offset(bytes_len);
13769 let mut _prev_end_offset: usize = 0;
13770 if 1 > max_ordinal {
13771 return Ok(());
13772 }
13773
13774 let cur_offset: usize = (1 - 1) * envelope_size;
13777
13778 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13780
13781 fidl::encoding::encode_in_envelope_optional::<PeriodicAdvertisingSyncId, D>(
13786 self.id
13787 .as_ref()
13788 .map(<PeriodicAdvertisingSyncId as fidl::encoding::ValueTypeMarker>::borrow),
13789 encoder,
13790 offset + cur_offset,
13791 depth,
13792 )?;
13793
13794 _prev_end_offset = cur_offset + envelope_size;
13795 if 2 > max_ordinal {
13796 return Ok(());
13797 }
13798
13799 let cur_offset: usize = (2 - 1) * envelope_size;
13802
13803 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13805
13806 fidl::encoding::encode_in_envelope_optional::<u8, D>(
13811 self.subevents_count.as_ref().map(<u8 as fidl::encoding::ValueTypeMarker>::borrow),
13812 encoder,
13813 offset + cur_offset,
13814 depth,
13815 )?;
13816
13817 _prev_end_offset = cur_offset + envelope_size;
13818 if 3 > max_ordinal {
13819 return Ok(());
13820 }
13821
13822 let cur_offset: usize = (3 - 1) * envelope_size;
13825
13826 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13828
13829 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_bluetooth__common::PeerId, D>(
13834 self.peer_id.as_ref().map(<fidl_fuchsia_bluetooth__common::PeerId as fidl::encoding::ValueTypeMarker>::borrow),
13835 encoder, offset + cur_offset, depth
13836 )?;
13837
13838 _prev_end_offset = cur_offset + envelope_size;
13839 if 4 > max_ordinal {
13840 return Ok(());
13841 }
13842
13843 let cur_offset: usize = (4 - 1) * envelope_size;
13846
13847 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13849
13850 fidl::encoding::encode_in_envelope_optional::<u16, D>(
13855 self.service_data.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
13856 encoder,
13857 offset + cur_offset,
13858 depth,
13859 )?;
13860
13861 _prev_end_offset = cur_offset + envelope_size;
13862 if 5 > max_ordinal {
13863 return Ok(());
13864 }
13865
13866 let cur_offset: usize = (5 - 1) * envelope_size;
13869
13870 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13872
13873 fidl::encoding::encode_in_envelope_optional::<u8, D>(
13878 self.advertising_sid.as_ref().map(<u8 as fidl::encoding::ValueTypeMarker>::borrow),
13879 encoder,
13880 offset + cur_offset,
13881 depth,
13882 )?;
13883
13884 _prev_end_offset = cur_offset + envelope_size;
13885 if 6 > max_ordinal {
13886 return Ok(());
13887 }
13888
13889 let cur_offset: usize = (6 - 1) * envelope_size;
13892
13893 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13895
13896 fidl::encoding::encode_in_envelope_optional::<PhysicalLayer, D>(
13901 self.phy.as_ref().map(<PhysicalLayer as fidl::encoding::ValueTypeMarker>::borrow),
13902 encoder,
13903 offset + cur_offset,
13904 depth,
13905 )?;
13906
13907 _prev_end_offset = cur_offset + envelope_size;
13908 if 7 > max_ordinal {
13909 return Ok(());
13910 }
13911
13912 let cur_offset: usize = (7 - 1) * envelope_size;
13915
13916 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13918
13919 fidl::encoding::encode_in_envelope_optional::<u16, D>(
13924 self.periodic_advertising_interval
13925 .as_ref()
13926 .map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
13927 encoder,
13928 offset + cur_offset,
13929 depth,
13930 )?;
13931
13932 _prev_end_offset = cur_offset + envelope_size;
13933
13934 Ok(())
13935 }
13936 }
13937
13938 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
13939 for PeriodicAdvertisingSyncOnEstablishedRequest
13940 {
13941 #[inline(always)]
13942 fn new_empty() -> Self {
13943 Self::default()
13944 }
13945
13946 unsafe fn decode(
13947 &mut self,
13948 decoder: &mut fidl::encoding::Decoder<'_, D>,
13949 offset: usize,
13950 mut depth: fidl::encoding::Depth,
13951 ) -> fidl::Result<()> {
13952 decoder.debug_check_bounds::<Self>(offset);
13953 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
13954 None => return Err(fidl::Error::NotNullable),
13955 Some(len) => len,
13956 };
13957 if len == 0 {
13959 return Ok(());
13960 };
13961 depth.increment()?;
13962 let envelope_size = 8;
13963 let bytes_len = len * envelope_size;
13964 let offset = decoder.out_of_line_offset(bytes_len)?;
13965 let mut _next_ordinal_to_read = 0;
13967 let mut next_offset = offset;
13968 let end_offset = offset + bytes_len;
13969 _next_ordinal_to_read += 1;
13970 if next_offset >= end_offset {
13971 return Ok(());
13972 }
13973
13974 while _next_ordinal_to_read < 1 {
13976 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13977 _next_ordinal_to_read += 1;
13978 next_offset += envelope_size;
13979 }
13980
13981 let next_out_of_line = decoder.next_out_of_line();
13982 let handles_before = decoder.remaining_handles();
13983 if let Some((inlined, num_bytes, num_handles)) =
13984 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13985 {
13986 let member_inline_size =
13987 <PeriodicAdvertisingSyncId as fidl::encoding::TypeMarker>::inline_size(
13988 decoder.context,
13989 );
13990 if inlined != (member_inline_size <= 4) {
13991 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13992 }
13993 let inner_offset;
13994 let mut inner_depth = depth.clone();
13995 if inlined {
13996 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13997 inner_offset = next_offset;
13998 } else {
13999 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14000 inner_depth.increment()?;
14001 }
14002 let val_ref =
14003 self.id.get_or_insert_with(|| fidl::new_empty!(PeriodicAdvertisingSyncId, D));
14004 fidl::decode!(
14005 PeriodicAdvertisingSyncId,
14006 D,
14007 val_ref,
14008 decoder,
14009 inner_offset,
14010 inner_depth
14011 )?;
14012 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14013 {
14014 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14015 }
14016 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14017 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14018 }
14019 }
14020
14021 next_offset += envelope_size;
14022 _next_ordinal_to_read += 1;
14023 if next_offset >= end_offset {
14024 return Ok(());
14025 }
14026
14027 while _next_ordinal_to_read < 2 {
14029 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14030 _next_ordinal_to_read += 1;
14031 next_offset += envelope_size;
14032 }
14033
14034 let next_out_of_line = decoder.next_out_of_line();
14035 let handles_before = decoder.remaining_handles();
14036 if let Some((inlined, num_bytes, num_handles)) =
14037 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14038 {
14039 let member_inline_size =
14040 <u8 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
14041 if inlined != (member_inline_size <= 4) {
14042 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14043 }
14044 let inner_offset;
14045 let mut inner_depth = depth.clone();
14046 if inlined {
14047 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14048 inner_offset = next_offset;
14049 } else {
14050 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14051 inner_depth.increment()?;
14052 }
14053 let val_ref = self.subevents_count.get_or_insert_with(|| fidl::new_empty!(u8, D));
14054 fidl::decode!(u8, D, val_ref, decoder, inner_offset, inner_depth)?;
14055 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14056 {
14057 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14058 }
14059 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14060 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14061 }
14062 }
14063
14064 next_offset += envelope_size;
14065 _next_ordinal_to_read += 1;
14066 if next_offset >= end_offset {
14067 return Ok(());
14068 }
14069
14070 while _next_ordinal_to_read < 3 {
14072 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14073 _next_ordinal_to_read += 1;
14074 next_offset += envelope_size;
14075 }
14076
14077 let next_out_of_line = decoder.next_out_of_line();
14078 let handles_before = decoder.remaining_handles();
14079 if let Some((inlined, num_bytes, num_handles)) =
14080 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14081 {
14082 let member_inline_size = <fidl_fuchsia_bluetooth__common::PeerId as fidl::encoding::TypeMarker>::inline_size(decoder.context);
14083 if inlined != (member_inline_size <= 4) {
14084 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14085 }
14086 let inner_offset;
14087 let mut inner_depth = depth.clone();
14088 if inlined {
14089 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14090 inner_offset = next_offset;
14091 } else {
14092 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14093 inner_depth.increment()?;
14094 }
14095 let val_ref = self.peer_id.get_or_insert_with(|| {
14096 fidl::new_empty!(fidl_fuchsia_bluetooth__common::PeerId, D)
14097 });
14098 fidl::decode!(
14099 fidl_fuchsia_bluetooth__common::PeerId,
14100 D,
14101 val_ref,
14102 decoder,
14103 inner_offset,
14104 inner_depth
14105 )?;
14106 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14107 {
14108 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14109 }
14110 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14111 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14112 }
14113 }
14114
14115 next_offset += envelope_size;
14116 _next_ordinal_to_read += 1;
14117 if next_offset >= end_offset {
14118 return Ok(());
14119 }
14120
14121 while _next_ordinal_to_read < 4 {
14123 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14124 _next_ordinal_to_read += 1;
14125 next_offset += envelope_size;
14126 }
14127
14128 let next_out_of_line = decoder.next_out_of_line();
14129 let handles_before = decoder.remaining_handles();
14130 if let Some((inlined, num_bytes, num_handles)) =
14131 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14132 {
14133 let member_inline_size =
14134 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
14135 if inlined != (member_inline_size <= 4) {
14136 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14137 }
14138 let inner_offset;
14139 let mut inner_depth = depth.clone();
14140 if inlined {
14141 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14142 inner_offset = next_offset;
14143 } else {
14144 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14145 inner_depth.increment()?;
14146 }
14147 let val_ref = self.service_data.get_or_insert_with(|| fidl::new_empty!(u16, D));
14148 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
14149 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14150 {
14151 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14152 }
14153 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14154 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14155 }
14156 }
14157
14158 next_offset += envelope_size;
14159 _next_ordinal_to_read += 1;
14160 if next_offset >= end_offset {
14161 return Ok(());
14162 }
14163
14164 while _next_ordinal_to_read < 5 {
14166 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14167 _next_ordinal_to_read += 1;
14168 next_offset += envelope_size;
14169 }
14170
14171 let next_out_of_line = decoder.next_out_of_line();
14172 let handles_before = decoder.remaining_handles();
14173 if let Some((inlined, num_bytes, num_handles)) =
14174 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14175 {
14176 let member_inline_size =
14177 <u8 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
14178 if inlined != (member_inline_size <= 4) {
14179 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14180 }
14181 let inner_offset;
14182 let mut inner_depth = depth.clone();
14183 if inlined {
14184 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14185 inner_offset = next_offset;
14186 } else {
14187 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14188 inner_depth.increment()?;
14189 }
14190 let val_ref = self.advertising_sid.get_or_insert_with(|| fidl::new_empty!(u8, D));
14191 fidl::decode!(u8, D, val_ref, decoder, inner_offset, inner_depth)?;
14192 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14193 {
14194 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14195 }
14196 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14197 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14198 }
14199 }
14200
14201 next_offset += envelope_size;
14202 _next_ordinal_to_read += 1;
14203 if next_offset >= end_offset {
14204 return Ok(());
14205 }
14206
14207 while _next_ordinal_to_read < 6 {
14209 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14210 _next_ordinal_to_read += 1;
14211 next_offset += envelope_size;
14212 }
14213
14214 let next_out_of_line = decoder.next_out_of_line();
14215 let handles_before = decoder.remaining_handles();
14216 if let Some((inlined, num_bytes, num_handles)) =
14217 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14218 {
14219 let member_inline_size =
14220 <PhysicalLayer as fidl::encoding::TypeMarker>::inline_size(decoder.context);
14221 if inlined != (member_inline_size <= 4) {
14222 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14223 }
14224 let inner_offset;
14225 let mut inner_depth = depth.clone();
14226 if inlined {
14227 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14228 inner_offset = next_offset;
14229 } else {
14230 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14231 inner_depth.increment()?;
14232 }
14233 let val_ref = self.phy.get_or_insert_with(|| fidl::new_empty!(PhysicalLayer, D));
14234 fidl::decode!(PhysicalLayer, D, val_ref, decoder, inner_offset, inner_depth)?;
14235 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14236 {
14237 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14238 }
14239 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14240 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14241 }
14242 }
14243
14244 next_offset += envelope_size;
14245 _next_ordinal_to_read += 1;
14246 if next_offset >= end_offset {
14247 return Ok(());
14248 }
14249
14250 while _next_ordinal_to_read < 7 {
14252 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14253 _next_ordinal_to_read += 1;
14254 next_offset += envelope_size;
14255 }
14256
14257 let next_out_of_line = decoder.next_out_of_line();
14258 let handles_before = decoder.remaining_handles();
14259 if let Some((inlined, num_bytes, num_handles)) =
14260 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14261 {
14262 let member_inline_size =
14263 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
14264 if inlined != (member_inline_size <= 4) {
14265 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14266 }
14267 let inner_offset;
14268 let mut inner_depth = depth.clone();
14269 if inlined {
14270 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14271 inner_offset = next_offset;
14272 } else {
14273 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14274 inner_depth.increment()?;
14275 }
14276 let val_ref = self
14277 .periodic_advertising_interval
14278 .get_or_insert_with(|| fidl::new_empty!(u16, D));
14279 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
14280 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14281 {
14282 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14283 }
14284 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14285 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14286 }
14287 }
14288
14289 next_offset += envelope_size;
14290
14291 while next_offset < end_offset {
14293 _next_ordinal_to_read += 1;
14294 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14295 next_offset += envelope_size;
14296 }
14297
14298 Ok(())
14299 }
14300 }
14301
14302 impl PeriodicAdvertisingSyncSyncToSubeventsRequest {
14303 #[inline(always)]
14304 fn max_ordinal_present(&self) -> u64 {
14305 if let Some(_) = self.subevents {
14306 return 1;
14307 }
14308 0
14309 }
14310 }
14311
14312 impl fidl::encoding::ValueTypeMarker for PeriodicAdvertisingSyncSyncToSubeventsRequest {
14313 type Borrowed<'a> = &'a Self;
14314 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
14315 value
14316 }
14317 }
14318
14319 unsafe impl fidl::encoding::TypeMarker for PeriodicAdvertisingSyncSyncToSubeventsRequest {
14320 type Owned = Self;
14321
14322 #[inline(always)]
14323 fn inline_align(_context: fidl::encoding::Context) -> usize {
14324 8
14325 }
14326
14327 #[inline(always)]
14328 fn inline_size(_context: fidl::encoding::Context) -> usize {
14329 16
14330 }
14331 }
14332
14333 unsafe impl<D: fidl::encoding::ResourceDialect>
14334 fidl::encoding::Encode<PeriodicAdvertisingSyncSyncToSubeventsRequest, D>
14335 for &PeriodicAdvertisingSyncSyncToSubeventsRequest
14336 {
14337 unsafe fn encode(
14338 self,
14339 encoder: &mut fidl::encoding::Encoder<'_, D>,
14340 offset: usize,
14341 mut depth: fidl::encoding::Depth,
14342 ) -> fidl::Result<()> {
14343 encoder.debug_check_bounds::<PeriodicAdvertisingSyncSyncToSubeventsRequest>(offset);
14344 let max_ordinal: u64 = self.max_ordinal_present();
14346 encoder.write_num(max_ordinal, offset);
14347 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
14348 if max_ordinal == 0 {
14350 return Ok(());
14351 }
14352 depth.increment()?;
14353 let envelope_size = 8;
14354 let bytes_len = max_ordinal as usize * envelope_size;
14355 #[allow(unused_variables)]
14356 let offset = encoder.out_of_line_offset(bytes_len);
14357 let mut _prev_end_offset: usize = 0;
14358 if 1 > max_ordinal {
14359 return Ok(());
14360 }
14361
14362 let cur_offset: usize = (1 - 1) * envelope_size;
14365
14366 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14368
14369 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u8, 128>, D>(
14374 self.subevents.as_ref().map(
14375 <fidl::encoding::Vector<u8, 128> as fidl::encoding::ValueTypeMarker>::borrow,
14376 ),
14377 encoder,
14378 offset + cur_offset,
14379 depth,
14380 )?;
14381
14382 _prev_end_offset = cur_offset + envelope_size;
14383
14384 Ok(())
14385 }
14386 }
14387
14388 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
14389 for PeriodicAdvertisingSyncSyncToSubeventsRequest
14390 {
14391 #[inline(always)]
14392 fn new_empty() -> Self {
14393 Self::default()
14394 }
14395
14396 unsafe fn decode(
14397 &mut self,
14398 decoder: &mut fidl::encoding::Decoder<'_, D>,
14399 offset: usize,
14400 mut depth: fidl::encoding::Depth,
14401 ) -> fidl::Result<()> {
14402 decoder.debug_check_bounds::<Self>(offset);
14403 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
14404 None => return Err(fidl::Error::NotNullable),
14405 Some(len) => len,
14406 };
14407 if len == 0 {
14409 return Ok(());
14410 };
14411 depth.increment()?;
14412 let envelope_size = 8;
14413 let bytes_len = len * envelope_size;
14414 let offset = decoder.out_of_line_offset(bytes_len)?;
14415 let mut _next_ordinal_to_read = 0;
14417 let mut next_offset = offset;
14418 let end_offset = offset + bytes_len;
14419 _next_ordinal_to_read += 1;
14420 if next_offset >= end_offset {
14421 return Ok(());
14422 }
14423
14424 while _next_ordinal_to_read < 1 {
14426 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14427 _next_ordinal_to_read += 1;
14428 next_offset += envelope_size;
14429 }
14430
14431 let next_out_of_line = decoder.next_out_of_line();
14432 let handles_before = decoder.remaining_handles();
14433 if let Some((inlined, num_bytes, num_handles)) =
14434 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14435 {
14436 let member_inline_size =
14437 <fidl::encoding::Vector<u8, 128> as fidl::encoding::TypeMarker>::inline_size(
14438 decoder.context,
14439 );
14440 if inlined != (member_inline_size <= 4) {
14441 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14442 }
14443 let inner_offset;
14444 let mut inner_depth = depth.clone();
14445 if inlined {
14446 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14447 inner_offset = next_offset;
14448 } else {
14449 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14450 inner_depth.increment()?;
14451 }
14452 let val_ref = self
14453 .subevents
14454 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u8, 128>, D));
14455 fidl::decode!(fidl::encoding::Vector<u8, 128>, D, val_ref, decoder, inner_offset, inner_depth)?;
14456 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14457 {
14458 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14459 }
14460 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14461 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14462 }
14463 }
14464
14465 next_offset += envelope_size;
14466
14467 while next_offset < end_offset {
14469 _next_ordinal_to_read += 1;
14470 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14471 next_offset += envelope_size;
14472 }
14473
14474 Ok(())
14475 }
14476 }
14477
14478 impl PeriodicAdvertisingSyncWatchAdvertisingReportResponse {
14479 #[inline(always)]
14480 fn max_ordinal_present(&self) -> u64 {
14481 if let Some(_) = self.reports {
14482 return 1;
14483 }
14484 0
14485 }
14486 }
14487
14488 impl fidl::encoding::ValueTypeMarker for PeriodicAdvertisingSyncWatchAdvertisingReportResponse {
14489 type Borrowed<'a> = &'a Self;
14490 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
14491 value
14492 }
14493 }
14494
14495 unsafe impl fidl::encoding::TypeMarker for PeriodicAdvertisingSyncWatchAdvertisingReportResponse {
14496 type Owned = Self;
14497
14498 #[inline(always)]
14499 fn inline_align(_context: fidl::encoding::Context) -> usize {
14500 8
14501 }
14502
14503 #[inline(always)]
14504 fn inline_size(_context: fidl::encoding::Context) -> usize {
14505 16
14506 }
14507 }
14508
14509 unsafe impl<D: fidl::encoding::ResourceDialect>
14510 fidl::encoding::Encode<PeriodicAdvertisingSyncWatchAdvertisingReportResponse, D>
14511 for &PeriodicAdvertisingSyncWatchAdvertisingReportResponse
14512 {
14513 unsafe fn encode(
14514 self,
14515 encoder: &mut fidl::encoding::Encoder<'_, D>,
14516 offset: usize,
14517 mut depth: fidl::encoding::Depth,
14518 ) -> fidl::Result<()> {
14519 encoder.debug_check_bounds::<PeriodicAdvertisingSyncWatchAdvertisingReportResponse>(
14520 offset,
14521 );
14522 let max_ordinal: u64 = self.max_ordinal_present();
14524 encoder.write_num(max_ordinal, offset);
14525 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
14526 if max_ordinal == 0 {
14528 return Ok(());
14529 }
14530 depth.increment()?;
14531 let envelope_size = 8;
14532 let bytes_len = max_ordinal as usize * envelope_size;
14533 #[allow(unused_variables)]
14534 let offset = encoder.out_of_line_offset(bytes_len);
14535 let mut _prev_end_offset: usize = 0;
14536 if 1 > max_ordinal {
14537 return Ok(());
14538 }
14539
14540 let cur_offset: usize = (1 - 1) * envelope_size;
14543
14544 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14546
14547 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<SyncReport>, D>(
14552 self.reports.as_ref().map(<fidl::encoding::UnboundedVector<SyncReport> as fidl::encoding::ValueTypeMarker>::borrow),
14553 encoder, offset + cur_offset, depth
14554 )?;
14555
14556 _prev_end_offset = cur_offset + envelope_size;
14557
14558 Ok(())
14559 }
14560 }
14561
14562 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
14563 for PeriodicAdvertisingSyncWatchAdvertisingReportResponse
14564 {
14565 #[inline(always)]
14566 fn new_empty() -> Self {
14567 Self::default()
14568 }
14569
14570 unsafe fn decode(
14571 &mut self,
14572 decoder: &mut fidl::encoding::Decoder<'_, D>,
14573 offset: usize,
14574 mut depth: fidl::encoding::Depth,
14575 ) -> fidl::Result<()> {
14576 decoder.debug_check_bounds::<Self>(offset);
14577 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
14578 None => return Err(fidl::Error::NotNullable),
14579 Some(len) => len,
14580 };
14581 if len == 0 {
14583 return Ok(());
14584 };
14585 depth.increment()?;
14586 let envelope_size = 8;
14587 let bytes_len = len * envelope_size;
14588 let offset = decoder.out_of_line_offset(bytes_len)?;
14589 let mut _next_ordinal_to_read = 0;
14591 let mut next_offset = offset;
14592 let end_offset = offset + bytes_len;
14593 _next_ordinal_to_read += 1;
14594 if next_offset >= end_offset {
14595 return Ok(());
14596 }
14597
14598 while _next_ordinal_to_read < 1 {
14600 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14601 _next_ordinal_to_read += 1;
14602 next_offset += envelope_size;
14603 }
14604
14605 let next_out_of_line = decoder.next_out_of_line();
14606 let handles_before = decoder.remaining_handles();
14607 if let Some((inlined, num_bytes, num_handles)) =
14608 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14609 {
14610 let member_inline_size = <fidl::encoding::UnboundedVector<SyncReport> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
14611 if inlined != (member_inline_size <= 4) {
14612 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14613 }
14614 let inner_offset;
14615 let mut inner_depth = depth.clone();
14616 if inlined {
14617 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14618 inner_offset = next_offset;
14619 } else {
14620 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14621 inner_depth.increment()?;
14622 }
14623 let val_ref = self.reports.get_or_insert_with(|| {
14624 fidl::new_empty!(fidl::encoding::UnboundedVector<SyncReport>, D)
14625 });
14626 fidl::decode!(
14627 fidl::encoding::UnboundedVector<SyncReport>,
14628 D,
14629 val_ref,
14630 decoder,
14631 inner_offset,
14632 inner_depth
14633 )?;
14634 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14635 {
14636 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14637 }
14638 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14639 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14640 }
14641 }
14642
14643 next_offset += envelope_size;
14644
14645 while next_offset < end_offset {
14647 _next_ordinal_to_read += 1;
14648 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14649 next_offset += envelope_size;
14650 }
14651
14652 Ok(())
14653 }
14654 }
14655
14656 impl ScanData {
14657 #[inline(always)]
14658 fn max_ordinal_present(&self) -> u64 {
14659 if let Some(_) = self.timestamp {
14660 return 7;
14661 }
14662 if let Some(_) = self.uris {
14663 return 6;
14664 }
14665 if let Some(_) = self.manufacturer_data {
14666 return 5;
14667 }
14668 if let Some(_) = self.service_data {
14669 return 4;
14670 }
14671 if let Some(_) = self.service_uuids {
14672 return 3;
14673 }
14674 if let Some(_) = self.appearance {
14675 return 2;
14676 }
14677 if let Some(_) = self.tx_power {
14678 return 1;
14679 }
14680 0
14681 }
14682 }
14683
14684 impl fidl::encoding::ValueTypeMarker for ScanData {
14685 type Borrowed<'a> = &'a Self;
14686 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
14687 value
14688 }
14689 }
14690
14691 unsafe impl fidl::encoding::TypeMarker for ScanData {
14692 type Owned = Self;
14693
14694 #[inline(always)]
14695 fn inline_align(_context: fidl::encoding::Context) -> usize {
14696 8
14697 }
14698
14699 #[inline(always)]
14700 fn inline_size(_context: fidl::encoding::Context) -> usize {
14701 16
14702 }
14703 }
14704
14705 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ScanData, D> for &ScanData {
14706 unsafe fn encode(
14707 self,
14708 encoder: &mut fidl::encoding::Encoder<'_, D>,
14709 offset: usize,
14710 mut depth: fidl::encoding::Depth,
14711 ) -> fidl::Result<()> {
14712 encoder.debug_check_bounds::<ScanData>(offset);
14713 let max_ordinal: u64 = self.max_ordinal_present();
14715 encoder.write_num(max_ordinal, offset);
14716 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
14717 if max_ordinal == 0 {
14719 return Ok(());
14720 }
14721 depth.increment()?;
14722 let envelope_size = 8;
14723 let bytes_len = max_ordinal as usize * envelope_size;
14724 #[allow(unused_variables)]
14725 let offset = encoder.out_of_line_offset(bytes_len);
14726 let mut _prev_end_offset: usize = 0;
14727 if 1 > max_ordinal {
14728 return Ok(());
14729 }
14730
14731 let cur_offset: usize = (1 - 1) * envelope_size;
14734
14735 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14737
14738 fidl::encoding::encode_in_envelope_optional::<i8, D>(
14743 self.tx_power.as_ref().map(<i8 as fidl::encoding::ValueTypeMarker>::borrow),
14744 encoder,
14745 offset + cur_offset,
14746 depth,
14747 )?;
14748
14749 _prev_end_offset = cur_offset + envelope_size;
14750 if 2 > max_ordinal {
14751 return Ok(());
14752 }
14753
14754 let cur_offset: usize = (2 - 1) * envelope_size;
14757
14758 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14760
14761 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_bluetooth__common::Appearance, D>(
14766 self.appearance.as_ref().map(<fidl_fuchsia_bluetooth__common::Appearance as fidl::encoding::ValueTypeMarker>::borrow),
14767 encoder, offset + cur_offset, depth
14768 )?;
14769
14770 _prev_end_offset = cur_offset + envelope_size;
14771 if 3 > max_ordinal {
14772 return Ok(());
14773 }
14774
14775 let cur_offset: usize = (3 - 1) * envelope_size;
14778
14779 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14781
14782 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<fidl_fuchsia_bluetooth__common::Uuid>, D>(
14787 self.service_uuids.as_ref().map(<fidl::encoding::UnboundedVector<fidl_fuchsia_bluetooth__common::Uuid> as fidl::encoding::ValueTypeMarker>::borrow),
14788 encoder, offset + cur_offset, depth
14789 )?;
14790
14791 _prev_end_offset = cur_offset + envelope_size;
14792 if 4 > max_ordinal {
14793 return Ok(());
14794 }
14795
14796 let cur_offset: usize = (4 - 1) * envelope_size;
14799
14800 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14802
14803 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<ServiceData>, D>(
14808 self.service_data.as_ref().map(<fidl::encoding::UnboundedVector<ServiceData> as fidl::encoding::ValueTypeMarker>::borrow),
14809 encoder, offset + cur_offset, depth
14810 )?;
14811
14812 _prev_end_offset = cur_offset + envelope_size;
14813 if 5 > max_ordinal {
14814 return Ok(());
14815 }
14816
14817 let cur_offset: usize = (5 - 1) * envelope_size;
14820
14821 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14823
14824 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<ManufacturerData>, D>(
14829 self.manufacturer_data.as_ref().map(<fidl::encoding::UnboundedVector<ManufacturerData> as fidl::encoding::ValueTypeMarker>::borrow),
14830 encoder, offset + cur_offset, depth
14831 )?;
14832
14833 _prev_end_offset = cur_offset + envelope_size;
14834 if 6 > max_ordinal {
14835 return Ok(());
14836 }
14837
14838 let cur_offset: usize = (6 - 1) * envelope_size;
14841
14842 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14844
14845 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<278>>, D>(
14850 self.uris.as_ref().map(<fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<278>> as fidl::encoding::ValueTypeMarker>::borrow),
14851 encoder, offset + cur_offset, depth
14852 )?;
14853
14854 _prev_end_offset = cur_offset + envelope_size;
14855 if 7 > max_ordinal {
14856 return Ok(());
14857 }
14858
14859 let cur_offset: usize = (7 - 1) * envelope_size;
14862
14863 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14865
14866 fidl::encoding::encode_in_envelope_optional::<i64, D>(
14871 self.timestamp.as_ref().map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
14872 encoder,
14873 offset + cur_offset,
14874 depth,
14875 )?;
14876
14877 _prev_end_offset = cur_offset + envelope_size;
14878
14879 Ok(())
14880 }
14881 }
14882
14883 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ScanData {
14884 #[inline(always)]
14885 fn new_empty() -> Self {
14886 Self::default()
14887 }
14888
14889 unsafe fn decode(
14890 &mut self,
14891 decoder: &mut fidl::encoding::Decoder<'_, D>,
14892 offset: usize,
14893 mut depth: fidl::encoding::Depth,
14894 ) -> fidl::Result<()> {
14895 decoder.debug_check_bounds::<Self>(offset);
14896 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
14897 None => return Err(fidl::Error::NotNullable),
14898 Some(len) => len,
14899 };
14900 if len == 0 {
14902 return Ok(());
14903 };
14904 depth.increment()?;
14905 let envelope_size = 8;
14906 let bytes_len = len * envelope_size;
14907 let offset = decoder.out_of_line_offset(bytes_len)?;
14908 let mut _next_ordinal_to_read = 0;
14910 let mut next_offset = offset;
14911 let end_offset = offset + bytes_len;
14912 _next_ordinal_to_read += 1;
14913 if next_offset >= end_offset {
14914 return Ok(());
14915 }
14916
14917 while _next_ordinal_to_read < 1 {
14919 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14920 _next_ordinal_to_read += 1;
14921 next_offset += envelope_size;
14922 }
14923
14924 let next_out_of_line = decoder.next_out_of_line();
14925 let handles_before = decoder.remaining_handles();
14926 if let Some((inlined, num_bytes, num_handles)) =
14927 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14928 {
14929 let member_inline_size =
14930 <i8 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
14931 if inlined != (member_inline_size <= 4) {
14932 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14933 }
14934 let inner_offset;
14935 let mut inner_depth = depth.clone();
14936 if inlined {
14937 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14938 inner_offset = next_offset;
14939 } else {
14940 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14941 inner_depth.increment()?;
14942 }
14943 let val_ref = self.tx_power.get_or_insert_with(|| fidl::new_empty!(i8, D));
14944 fidl::decode!(i8, D, val_ref, decoder, inner_offset, inner_depth)?;
14945 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14946 {
14947 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14948 }
14949 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14950 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14951 }
14952 }
14953
14954 next_offset += envelope_size;
14955 _next_ordinal_to_read += 1;
14956 if next_offset >= end_offset {
14957 return Ok(());
14958 }
14959
14960 while _next_ordinal_to_read < 2 {
14962 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14963 _next_ordinal_to_read += 1;
14964 next_offset += envelope_size;
14965 }
14966
14967 let next_out_of_line = decoder.next_out_of_line();
14968 let handles_before = decoder.remaining_handles();
14969 if let Some((inlined, num_bytes, num_handles)) =
14970 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14971 {
14972 let member_inline_size = <fidl_fuchsia_bluetooth__common::Appearance as fidl::encoding::TypeMarker>::inline_size(decoder.context);
14973 if inlined != (member_inline_size <= 4) {
14974 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14975 }
14976 let inner_offset;
14977 let mut inner_depth = depth.clone();
14978 if inlined {
14979 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14980 inner_offset = next_offset;
14981 } else {
14982 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14983 inner_depth.increment()?;
14984 }
14985 let val_ref = self.appearance.get_or_insert_with(|| {
14986 fidl::new_empty!(fidl_fuchsia_bluetooth__common::Appearance, D)
14987 });
14988 fidl::decode!(
14989 fidl_fuchsia_bluetooth__common::Appearance,
14990 D,
14991 val_ref,
14992 decoder,
14993 inner_offset,
14994 inner_depth
14995 )?;
14996 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14997 {
14998 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14999 }
15000 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15001 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15002 }
15003 }
15004
15005 next_offset += envelope_size;
15006 _next_ordinal_to_read += 1;
15007 if next_offset >= end_offset {
15008 return Ok(());
15009 }
15010
15011 while _next_ordinal_to_read < 3 {
15013 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15014 _next_ordinal_to_read += 1;
15015 next_offset += envelope_size;
15016 }
15017
15018 let next_out_of_line = decoder.next_out_of_line();
15019 let handles_before = decoder.remaining_handles();
15020 if let Some((inlined, num_bytes, num_handles)) =
15021 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15022 {
15023 let member_inline_size = <fidl::encoding::UnboundedVector<
15024 fidl_fuchsia_bluetooth__common::Uuid,
15025 > as fidl::encoding::TypeMarker>::inline_size(
15026 decoder.context
15027 );
15028 if inlined != (member_inline_size <= 4) {
15029 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15030 }
15031 let inner_offset;
15032 let mut inner_depth = depth.clone();
15033 if inlined {
15034 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15035 inner_offset = next_offset;
15036 } else {
15037 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15038 inner_depth.increment()?;
15039 }
15040 let val_ref = self.service_uuids.get_or_insert_with(|| {
15041 fidl::new_empty!(
15042 fidl::encoding::UnboundedVector<fidl_fuchsia_bluetooth__common::Uuid>,
15043 D
15044 )
15045 });
15046 fidl::decode!(
15047 fidl::encoding::UnboundedVector<fidl_fuchsia_bluetooth__common::Uuid>,
15048 D,
15049 val_ref,
15050 decoder,
15051 inner_offset,
15052 inner_depth
15053 )?;
15054 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15055 {
15056 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15057 }
15058 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15059 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15060 }
15061 }
15062
15063 next_offset += envelope_size;
15064 _next_ordinal_to_read += 1;
15065 if next_offset >= end_offset {
15066 return Ok(());
15067 }
15068
15069 while _next_ordinal_to_read < 4 {
15071 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15072 _next_ordinal_to_read += 1;
15073 next_offset += envelope_size;
15074 }
15075
15076 let next_out_of_line = decoder.next_out_of_line();
15077 let handles_before = decoder.remaining_handles();
15078 if let Some((inlined, num_bytes, num_handles)) =
15079 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15080 {
15081 let member_inline_size = <fidl::encoding::UnboundedVector<ServiceData> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
15082 if inlined != (member_inline_size <= 4) {
15083 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15084 }
15085 let inner_offset;
15086 let mut inner_depth = depth.clone();
15087 if inlined {
15088 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15089 inner_offset = next_offset;
15090 } else {
15091 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15092 inner_depth.increment()?;
15093 }
15094 let val_ref = self.service_data.get_or_insert_with(|| {
15095 fidl::new_empty!(fidl::encoding::UnboundedVector<ServiceData>, D)
15096 });
15097 fidl::decode!(
15098 fidl::encoding::UnboundedVector<ServiceData>,
15099 D,
15100 val_ref,
15101 decoder,
15102 inner_offset,
15103 inner_depth
15104 )?;
15105 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15106 {
15107 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15108 }
15109 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15110 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15111 }
15112 }
15113
15114 next_offset += envelope_size;
15115 _next_ordinal_to_read += 1;
15116 if next_offset >= end_offset {
15117 return Ok(());
15118 }
15119
15120 while _next_ordinal_to_read < 5 {
15122 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15123 _next_ordinal_to_read += 1;
15124 next_offset += envelope_size;
15125 }
15126
15127 let next_out_of_line = decoder.next_out_of_line();
15128 let handles_before = decoder.remaining_handles();
15129 if let Some((inlined, num_bytes, num_handles)) =
15130 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15131 {
15132 let member_inline_size = <fidl::encoding::UnboundedVector<ManufacturerData> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
15133 if inlined != (member_inline_size <= 4) {
15134 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15135 }
15136 let inner_offset;
15137 let mut inner_depth = depth.clone();
15138 if inlined {
15139 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15140 inner_offset = next_offset;
15141 } else {
15142 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15143 inner_depth.increment()?;
15144 }
15145 let val_ref = self.manufacturer_data.get_or_insert_with(|| {
15146 fidl::new_empty!(fidl::encoding::UnboundedVector<ManufacturerData>, D)
15147 });
15148 fidl::decode!(
15149 fidl::encoding::UnboundedVector<ManufacturerData>,
15150 D,
15151 val_ref,
15152 decoder,
15153 inner_offset,
15154 inner_depth
15155 )?;
15156 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15157 {
15158 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15159 }
15160 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15161 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15162 }
15163 }
15164
15165 next_offset += envelope_size;
15166 _next_ordinal_to_read += 1;
15167 if next_offset >= end_offset {
15168 return Ok(());
15169 }
15170
15171 while _next_ordinal_to_read < 6 {
15173 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15174 _next_ordinal_to_read += 1;
15175 next_offset += envelope_size;
15176 }
15177
15178 let next_out_of_line = decoder.next_out_of_line();
15179 let handles_before = decoder.remaining_handles();
15180 if let Some((inlined, num_bytes, num_handles)) =
15181 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15182 {
15183 let member_inline_size = <fidl::encoding::UnboundedVector<
15184 fidl::encoding::BoundedString<278>,
15185 > as fidl::encoding::TypeMarker>::inline_size(
15186 decoder.context
15187 );
15188 if inlined != (member_inline_size <= 4) {
15189 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15190 }
15191 let inner_offset;
15192 let mut inner_depth = depth.clone();
15193 if inlined {
15194 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15195 inner_offset = next_offset;
15196 } else {
15197 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15198 inner_depth.increment()?;
15199 }
15200 let val_ref = self.uris.get_or_insert_with(|| {
15201 fidl::new_empty!(
15202 fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<278>>,
15203 D
15204 )
15205 });
15206 fidl::decode!(
15207 fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<278>>,
15208 D,
15209 val_ref,
15210 decoder,
15211 inner_offset,
15212 inner_depth
15213 )?;
15214 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15215 {
15216 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15217 }
15218 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15219 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15220 }
15221 }
15222
15223 next_offset += envelope_size;
15224 _next_ordinal_to_read += 1;
15225 if next_offset >= end_offset {
15226 return Ok(());
15227 }
15228
15229 while _next_ordinal_to_read < 7 {
15231 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15232 _next_ordinal_to_read += 1;
15233 next_offset += envelope_size;
15234 }
15235
15236 let next_out_of_line = decoder.next_out_of_line();
15237 let handles_before = decoder.remaining_handles();
15238 if let Some((inlined, num_bytes, num_handles)) =
15239 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15240 {
15241 let member_inline_size =
15242 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
15243 if inlined != (member_inline_size <= 4) {
15244 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15245 }
15246 let inner_offset;
15247 let mut inner_depth = depth.clone();
15248 if inlined {
15249 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15250 inner_offset = next_offset;
15251 } else {
15252 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15253 inner_depth.increment()?;
15254 }
15255 let val_ref = self.timestamp.get_or_insert_with(|| fidl::new_empty!(i64, D));
15256 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
15257 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15258 {
15259 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15260 }
15261 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15262 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15263 }
15264 }
15265
15266 next_offset += envelope_size;
15267
15268 while next_offset < end_offset {
15270 _next_ordinal_to_read += 1;
15271 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15272 next_offset += envelope_size;
15273 }
15274
15275 Ok(())
15276 }
15277 }
15278
15279 impl ScanOptions {
15280 #[inline(always)]
15281 fn max_ordinal_present(&self) -> u64 {
15282 if let Some(_) = self.filters {
15283 return 1;
15284 }
15285 0
15286 }
15287 }
15288
15289 impl fidl::encoding::ValueTypeMarker for ScanOptions {
15290 type Borrowed<'a> = &'a Self;
15291 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
15292 value
15293 }
15294 }
15295
15296 unsafe impl fidl::encoding::TypeMarker for ScanOptions {
15297 type Owned = Self;
15298
15299 #[inline(always)]
15300 fn inline_align(_context: fidl::encoding::Context) -> usize {
15301 8
15302 }
15303
15304 #[inline(always)]
15305 fn inline_size(_context: fidl::encoding::Context) -> usize {
15306 16
15307 }
15308 }
15309
15310 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ScanOptions, D>
15311 for &ScanOptions
15312 {
15313 unsafe fn encode(
15314 self,
15315 encoder: &mut fidl::encoding::Encoder<'_, D>,
15316 offset: usize,
15317 mut depth: fidl::encoding::Depth,
15318 ) -> fidl::Result<()> {
15319 encoder.debug_check_bounds::<ScanOptions>(offset);
15320 let max_ordinal: u64 = self.max_ordinal_present();
15322 encoder.write_num(max_ordinal, offset);
15323 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
15324 if max_ordinal == 0 {
15326 return Ok(());
15327 }
15328 depth.increment()?;
15329 let envelope_size = 8;
15330 let bytes_len = max_ordinal as usize * envelope_size;
15331 #[allow(unused_variables)]
15332 let offset = encoder.out_of_line_offset(bytes_len);
15333 let mut _prev_end_offset: usize = 0;
15334 if 1 > max_ordinal {
15335 return Ok(());
15336 }
15337
15338 let cur_offset: usize = (1 - 1) * envelope_size;
15341
15342 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
15344
15345 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<Filter>, D>(
15350 self.filters.as_ref().map(<fidl::encoding::UnboundedVector<Filter> as fidl::encoding::ValueTypeMarker>::borrow),
15351 encoder, offset + cur_offset, depth
15352 )?;
15353
15354 _prev_end_offset = cur_offset + envelope_size;
15355
15356 Ok(())
15357 }
15358 }
15359
15360 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ScanOptions {
15361 #[inline(always)]
15362 fn new_empty() -> Self {
15363 Self::default()
15364 }
15365
15366 unsafe fn decode(
15367 &mut self,
15368 decoder: &mut fidl::encoding::Decoder<'_, D>,
15369 offset: usize,
15370 mut depth: fidl::encoding::Depth,
15371 ) -> fidl::Result<()> {
15372 decoder.debug_check_bounds::<Self>(offset);
15373 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
15374 None => return Err(fidl::Error::NotNullable),
15375 Some(len) => len,
15376 };
15377 if len == 0 {
15379 return Ok(());
15380 };
15381 depth.increment()?;
15382 let envelope_size = 8;
15383 let bytes_len = len * envelope_size;
15384 let offset = decoder.out_of_line_offset(bytes_len)?;
15385 let mut _next_ordinal_to_read = 0;
15387 let mut next_offset = offset;
15388 let end_offset = offset + bytes_len;
15389 _next_ordinal_to_read += 1;
15390 if next_offset >= end_offset {
15391 return Ok(());
15392 }
15393
15394 while _next_ordinal_to_read < 1 {
15396 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15397 _next_ordinal_to_read += 1;
15398 next_offset += envelope_size;
15399 }
15400
15401 let next_out_of_line = decoder.next_out_of_line();
15402 let handles_before = decoder.remaining_handles();
15403 if let Some((inlined, num_bytes, num_handles)) =
15404 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15405 {
15406 let member_inline_size = <fidl::encoding::UnboundedVector<Filter> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
15407 if inlined != (member_inline_size <= 4) {
15408 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15409 }
15410 let inner_offset;
15411 let mut inner_depth = depth.clone();
15412 if inlined {
15413 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15414 inner_offset = next_offset;
15415 } else {
15416 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15417 inner_depth.increment()?;
15418 }
15419 let val_ref = self.filters.get_or_insert_with(|| {
15420 fidl::new_empty!(fidl::encoding::UnboundedVector<Filter>, D)
15421 });
15422 fidl::decode!(
15423 fidl::encoding::UnboundedVector<Filter>,
15424 D,
15425 val_ref,
15426 decoder,
15427 inner_offset,
15428 inner_depth
15429 )?;
15430 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15431 {
15432 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15433 }
15434 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15435 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15436 }
15437 }
15438
15439 next_offset += envelope_size;
15440
15441 while next_offset < end_offset {
15443 _next_ordinal_to_read += 1;
15444 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15445 next_offset += envelope_size;
15446 }
15447
15448 Ok(())
15449 }
15450 }
15451
15452 impl fidl::encoding::ValueTypeMarker for AdvertisingProcedure {
15453 type Borrowed<'a> = &'a Self;
15454 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
15455 value
15456 }
15457 }
15458
15459 unsafe impl fidl::encoding::TypeMarker for AdvertisingProcedure {
15460 type Owned = Self;
15461
15462 #[inline(always)]
15463 fn inline_align(_context: fidl::encoding::Context) -> usize {
15464 8
15465 }
15466
15467 #[inline(always)]
15468 fn inline_size(_context: fidl::encoding::Context) -> usize {
15469 16
15470 }
15471 }
15472
15473 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<AdvertisingProcedure, D>
15474 for &AdvertisingProcedure
15475 {
15476 #[inline]
15477 unsafe fn encode(
15478 self,
15479 encoder: &mut fidl::encoding::Encoder<'_, D>,
15480 offset: usize,
15481 _depth: fidl::encoding::Depth,
15482 ) -> fidl::Result<()> {
15483 encoder.debug_check_bounds::<AdvertisingProcedure>(offset);
15484 encoder.write_num::<u64>(self.ordinal(), offset);
15485 match self {
15486 AdvertisingProcedure::Legacy(ref val) => {
15487 fidl::encoding::encode_in_envelope::<Legacy, D>(
15488 <Legacy as fidl::encoding::ValueTypeMarker>::borrow(val),
15489 encoder,
15490 offset + 8,
15491 _depth,
15492 )
15493 }
15494 AdvertisingProcedure::Extended(ref val) => {
15495 fidl::encoding::encode_in_envelope::<Extended, D>(
15496 <Extended as fidl::encoding::ValueTypeMarker>::borrow(val),
15497 encoder,
15498 offset + 8,
15499 _depth,
15500 )
15501 }
15502 AdvertisingProcedure::__SourceBreaking { .. } => Err(fidl::Error::UnknownUnionTag),
15503 }
15504 }
15505 }
15506
15507 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for AdvertisingProcedure {
15508 #[inline(always)]
15509 fn new_empty() -> Self {
15510 Self::__SourceBreaking { unknown_ordinal: 0 }
15511 }
15512
15513 #[inline]
15514 unsafe fn decode(
15515 &mut self,
15516 decoder: &mut fidl::encoding::Decoder<'_, D>,
15517 offset: usize,
15518 mut depth: fidl::encoding::Depth,
15519 ) -> fidl::Result<()> {
15520 decoder.debug_check_bounds::<Self>(offset);
15521 #[allow(unused_variables)]
15522 let next_out_of_line = decoder.next_out_of_line();
15523 let handles_before = decoder.remaining_handles();
15524 let (ordinal, inlined, num_bytes, num_handles) =
15525 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
15526
15527 let member_inline_size = match ordinal {
15528 1 => <Legacy as fidl::encoding::TypeMarker>::inline_size(decoder.context),
15529 2 => <Extended as fidl::encoding::TypeMarker>::inline_size(decoder.context),
15530 0 => return Err(fidl::Error::UnknownUnionTag),
15531 _ => num_bytes as usize,
15532 };
15533
15534 if inlined != (member_inline_size <= 4) {
15535 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15536 }
15537 let _inner_offset;
15538 if inlined {
15539 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
15540 _inner_offset = offset + 8;
15541 } else {
15542 depth.increment()?;
15543 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15544 }
15545 match ordinal {
15546 1 => {
15547 #[allow(irrefutable_let_patterns)]
15548 if let AdvertisingProcedure::Legacy(_) = self {
15549 } else {
15551 *self = AdvertisingProcedure::Legacy(fidl::new_empty!(Legacy, D));
15553 }
15554 #[allow(irrefutable_let_patterns)]
15555 if let AdvertisingProcedure::Legacy(ref mut val) = self {
15556 fidl::decode!(Legacy, D, val, decoder, _inner_offset, depth)?;
15557 } else {
15558 unreachable!()
15559 }
15560 }
15561 2 => {
15562 #[allow(irrefutable_let_patterns)]
15563 if let AdvertisingProcedure::Extended(_) = self {
15564 } else {
15566 *self = AdvertisingProcedure::Extended(fidl::new_empty!(Extended, D));
15568 }
15569 #[allow(irrefutable_let_patterns)]
15570 if let AdvertisingProcedure::Extended(ref mut val) = self {
15571 fidl::decode!(Extended, D, val, decoder, _inner_offset, depth)?;
15572 } else {
15573 unreachable!()
15574 }
15575 }
15576 #[allow(deprecated)]
15577 ordinal => {
15578 for _ in 0..num_handles {
15579 decoder.drop_next_handle()?;
15580 }
15581 *self = AdvertisingProcedure::__SourceBreaking { unknown_ordinal: ordinal };
15582 }
15583 }
15584 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
15585 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15586 }
15587 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15588 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15589 }
15590 Ok(())
15591 }
15592 }
15593
15594 impl fidl::encoding::ValueTypeMarker for SyncReport {
15595 type Borrowed<'a> = &'a Self;
15596 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
15597 value
15598 }
15599 }
15600
15601 unsafe impl fidl::encoding::TypeMarker for SyncReport {
15602 type Owned = Self;
15603
15604 #[inline(always)]
15605 fn inline_align(_context: fidl::encoding::Context) -> usize {
15606 8
15607 }
15608
15609 #[inline(always)]
15610 fn inline_size(_context: fidl::encoding::Context) -> usize {
15611 16
15612 }
15613 }
15614
15615 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<SyncReport, D>
15616 for &SyncReport
15617 {
15618 #[inline]
15619 unsafe fn encode(
15620 self,
15621 encoder: &mut fidl::encoding::Encoder<'_, D>,
15622 offset: usize,
15623 _depth: fidl::encoding::Depth,
15624 ) -> fidl::Result<()> {
15625 encoder.debug_check_bounds::<SyncReport>(offset);
15626 encoder.write_num::<u64>(self.ordinal(), offset);
15627 match self {
15628 SyncReport::PeriodicAdvertisingReport(ref val) => {
15629 fidl::encoding::encode_in_envelope::<PeriodicAdvertisingReport, D>(
15630 <PeriodicAdvertisingReport as fidl::encoding::ValueTypeMarker>::borrow(val),
15631 encoder, offset + 8, _depth
15632 )
15633 }
15634 SyncReport::BroadcastIsochronousGroupInfoReport(ref val) => {
15635 fidl::encoding::encode_in_envelope::<BroadcastIsochronousGroupInfoReport, D>(
15636 <BroadcastIsochronousGroupInfoReport as fidl::encoding::ValueTypeMarker>::borrow(val),
15637 encoder, offset + 8, _depth
15638 )
15639 }
15640 SyncReport::__SourceBreaking { .. } => Err(fidl::Error::UnknownUnionTag),
15641 }
15642 }
15643 }
15644
15645 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for SyncReport {
15646 #[inline(always)]
15647 fn new_empty() -> Self {
15648 Self::__SourceBreaking { unknown_ordinal: 0 }
15649 }
15650
15651 #[inline]
15652 unsafe fn decode(
15653 &mut self,
15654 decoder: &mut fidl::encoding::Decoder<'_, D>,
15655 offset: usize,
15656 mut depth: fidl::encoding::Depth,
15657 ) -> fidl::Result<()> {
15658 decoder.debug_check_bounds::<Self>(offset);
15659 #[allow(unused_variables)]
15660 let next_out_of_line = decoder.next_out_of_line();
15661 let handles_before = decoder.remaining_handles();
15662 let (ordinal, inlined, num_bytes, num_handles) =
15663 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
15664
15665 let member_inline_size = match ordinal {
15666 1 => <PeriodicAdvertisingReport as fidl::encoding::TypeMarker>::inline_size(
15667 decoder.context,
15668 ),
15669 2 => {
15670 <BroadcastIsochronousGroupInfoReport as fidl::encoding::TypeMarker>::inline_size(
15671 decoder.context,
15672 )
15673 }
15674 0 => return Err(fidl::Error::UnknownUnionTag),
15675 _ => num_bytes as usize,
15676 };
15677
15678 if inlined != (member_inline_size <= 4) {
15679 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15680 }
15681 let _inner_offset;
15682 if inlined {
15683 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
15684 _inner_offset = offset + 8;
15685 } else {
15686 depth.increment()?;
15687 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15688 }
15689 match ordinal {
15690 1 => {
15691 #[allow(irrefutable_let_patterns)]
15692 if let SyncReport::PeriodicAdvertisingReport(_) = self {
15693 } else {
15695 *self = SyncReport::PeriodicAdvertisingReport(fidl::new_empty!(
15697 PeriodicAdvertisingReport,
15698 D
15699 ));
15700 }
15701 #[allow(irrefutable_let_patterns)]
15702 if let SyncReport::PeriodicAdvertisingReport(ref mut val) = self {
15703 fidl::decode!(
15704 PeriodicAdvertisingReport,
15705 D,
15706 val,
15707 decoder,
15708 _inner_offset,
15709 depth
15710 )?;
15711 } else {
15712 unreachable!()
15713 }
15714 }
15715 2 => {
15716 #[allow(irrefutable_let_patterns)]
15717 if let SyncReport::BroadcastIsochronousGroupInfoReport(_) = self {
15718 } else {
15720 *self = SyncReport::BroadcastIsochronousGroupInfoReport(fidl::new_empty!(
15722 BroadcastIsochronousGroupInfoReport,
15723 D
15724 ));
15725 }
15726 #[allow(irrefutable_let_patterns)]
15727 if let SyncReport::BroadcastIsochronousGroupInfoReport(ref mut val) = self {
15728 fidl::decode!(
15729 BroadcastIsochronousGroupInfoReport,
15730 D,
15731 val,
15732 decoder,
15733 _inner_offset,
15734 depth
15735 )?;
15736 } else {
15737 unreachable!()
15738 }
15739 }
15740 #[allow(deprecated)]
15741 ordinal => {
15742 for _ in 0..num_handles {
15743 decoder.drop_next_handle()?;
15744 }
15745 *self = SyncReport::__SourceBreaking { unknown_ordinal: ordinal };
15746 }
15747 }
15748 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
15749 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15750 }
15751 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15752 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15753 }
15754 Ok(())
15755 }
15756 }
15757}