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 PeerParametersOutOfRange,
268 #[doc(hidden)]
269 __SourceBreaking { unknown_ordinal: u32 },
270}
271
272#[macro_export]
274macro_rules! EstablishStreamsErrorUnknown {
275 () => {
276 _
277 };
278}
279
280impl EstablishStreamsError {
281 #[inline]
282 pub fn from_primitive(prim: u32) -> Option<Self> {
283 match prim {
284 1 => Some(Self::NotSupported),
285 2 => Some(Self::DuplicateCis),
286 3 => Some(Self::CisAlreadyEstablished),
287 4 => Some(Self::PeerNotConnected),
288 5 => Some(Self::PeerParametersOutOfRange),
289 _ => None,
290 }
291 }
292
293 #[inline]
294 pub fn from_primitive_allow_unknown(prim: u32) -> Self {
295 match prim {
296 1 => Self::NotSupported,
297 2 => Self::DuplicateCis,
298 3 => Self::CisAlreadyEstablished,
299 4 => Self::PeerNotConnected,
300 5 => Self::PeerParametersOutOfRange,
301 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
302 }
303 }
304
305 #[inline]
306 pub fn unknown() -> Self {
307 Self::__SourceBreaking { unknown_ordinal: 0xffffffff }
308 }
309
310 #[inline]
311 pub const fn into_primitive(self) -> u32 {
312 match self {
313 Self::NotSupported => 1,
314 Self::DuplicateCis => 2,
315 Self::CisAlreadyEstablished => 3,
316 Self::PeerNotConnected => 4,
317 Self::PeerParametersOutOfRange => 5,
318 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
319 }
320 }
321
322 #[inline]
323 pub fn is_unknown(&self) -> bool {
324 match self {
325 Self::__SourceBreaking { unknown_ordinal: _ } => true,
326 _ => false,
327 }
328 }
329}
330
331#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
333#[repr(u8)]
334pub enum IsoPacketStatusFlag {
335 ValidData = 0,
337 DataWithPossibleErrors = 1,
340 LostData = 2,
342}
343
344impl IsoPacketStatusFlag {
345 #[inline]
346 pub fn from_primitive(prim: u8) -> Option<Self> {
347 match prim {
348 0 => Some(Self::ValidData),
349 1 => Some(Self::DataWithPossibleErrors),
350 2 => Some(Self::LostData),
351 _ => None,
352 }
353 }
354
355 #[inline]
356 pub const fn into_primitive(self) -> u8 {
357 self as u8
358 }
359}
360
361#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
362pub enum PeriodicAdvertisingSyncError {
363 InitialSynchronizationFailed,
364 SynchronizationLost,
365 NotSupportedLocal,
366 NotSupportedRemote,
367 #[doc(hidden)]
368 __SourceBreaking {
369 unknown_ordinal: u32,
370 },
371}
372
373#[macro_export]
375macro_rules! PeriodicAdvertisingSyncErrorUnknown {
376 () => {
377 _
378 };
379}
380
381impl PeriodicAdvertisingSyncError {
382 #[inline]
383 pub fn from_primitive(prim: u32) -> Option<Self> {
384 match prim {
385 0 => Some(Self::InitialSynchronizationFailed),
386 1 => Some(Self::SynchronizationLost),
387 2 => Some(Self::NotSupportedLocal),
388 3 => Some(Self::NotSupportedRemote),
389 _ => None,
390 }
391 }
392
393 #[inline]
394 pub fn from_primitive_allow_unknown(prim: u32) -> Self {
395 match prim {
396 0 => Self::InitialSynchronizationFailed,
397 1 => Self::SynchronizationLost,
398 2 => Self::NotSupportedLocal,
399 3 => Self::NotSupportedRemote,
400 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
401 }
402 }
403
404 #[inline]
405 pub fn unknown() -> Self {
406 Self::__SourceBreaking { unknown_ordinal: 0xffffffff }
407 }
408
409 #[inline]
410 pub const fn into_primitive(self) -> u32 {
411 match self {
412 Self::InitialSynchronizationFailed => 0,
413 Self::SynchronizationLost => 1,
414 Self::NotSupportedLocal => 2,
415 Self::NotSupportedRemote => 3,
416 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
417 }
418 }
419
420 #[inline]
421 pub fn is_unknown(&self) -> bool {
422 match self {
423 Self::__SourceBreaking { unknown_ordinal: _ } => true,
424 _ => false,
425 }
426 }
427}
428
429#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
430pub enum PeriodicAdvertisingSyncTransferError {
431 Failed,
432 InvalidSyncId,
434 TransferAlreadyPending,
435 NotSupportedLocal,
436 NotSupportedRemote,
437 #[doc(hidden)]
438 __SourceBreaking {
439 unknown_ordinal: u32,
440 },
441}
442
443#[macro_export]
445macro_rules! PeriodicAdvertisingSyncTransferErrorUnknown {
446 () => {
447 _
448 };
449}
450
451impl PeriodicAdvertisingSyncTransferError {
452 #[inline]
453 pub fn from_primitive(prim: u32) -> Option<Self> {
454 match prim {
455 0 => Some(Self::Failed),
456 1 => Some(Self::InvalidSyncId),
457 2 => Some(Self::TransferAlreadyPending),
458 3 => Some(Self::NotSupportedLocal),
459 4 => Some(Self::NotSupportedRemote),
460 _ => None,
461 }
462 }
463
464 #[inline]
465 pub fn from_primitive_allow_unknown(prim: u32) -> Self {
466 match prim {
467 0 => Self::Failed,
468 1 => Self::InvalidSyncId,
469 2 => Self::TransferAlreadyPending,
470 3 => Self::NotSupportedLocal,
471 4 => Self::NotSupportedRemote,
472 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
473 }
474 }
475
476 #[inline]
477 pub fn unknown() -> Self {
478 Self::__SourceBreaking { unknown_ordinal: 0xffffffff }
479 }
480
481 #[inline]
482 pub const fn into_primitive(self) -> u32 {
483 match self {
484 Self::Failed => 0,
485 Self::InvalidSyncId => 1,
486 Self::TransferAlreadyPending => 2,
487 Self::NotSupportedLocal => 3,
488 Self::NotSupportedRemote => 4,
489 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
490 }
491 }
492
493 #[inline]
494 pub fn is_unknown(&self) -> bool {
495 match self {
496 Self::__SourceBreaking { unknown_ordinal: _ } => true,
497 _ => false,
498 }
499 }
500}
501
502#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
503#[repr(u32)]
504pub enum PeripheralError {
505 NotSupported = 1,
507 AdvertisingDataTooLong = 2,
509 ScanResponseDataTooLong = 3,
511 InvalidParameters = 4,
513 Aborted = 5,
516 Failed = 6,
518}
519
520impl PeripheralError {
521 #[inline]
522 pub fn from_primitive(prim: u32) -> Option<Self> {
523 match prim {
524 1 => Some(Self::NotSupported),
525 2 => Some(Self::AdvertisingDataTooLong),
526 3 => Some(Self::ScanResponseDataTooLong),
527 4 => Some(Self::InvalidParameters),
528 5 => Some(Self::Aborted),
529 6 => Some(Self::Failed),
530 _ => None,
531 }
532 }
533
534 #[inline]
535 pub const fn into_primitive(self) -> u32 {
536 self as u32
537 }
538}
539
540#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
542pub enum PhysicalLayer {
543 Le1M,
545 Le2M,
548 LeCoded,
551 #[doc(hidden)]
552 __SourceBreaking { unknown_ordinal: u8 },
553}
554
555#[macro_export]
557macro_rules! PhysicalLayerUnknown {
558 () => {
559 _
560 };
561}
562
563impl PhysicalLayer {
564 #[inline]
565 pub fn from_primitive(prim: u8) -> Option<Self> {
566 match prim {
567 1 => Some(Self::Le1M),
568 2 => Some(Self::Le2M),
569 3 => Some(Self::LeCoded),
570 _ => None,
571 }
572 }
573
574 #[inline]
575 pub fn from_primitive_allow_unknown(prim: u8) -> Self {
576 match prim {
577 1 => Self::Le1M,
578 2 => Self::Le2M,
579 3 => Self::LeCoded,
580 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
581 }
582 }
583
584 #[inline]
585 pub fn unknown() -> Self {
586 Self::__SourceBreaking { unknown_ordinal: 0xff }
587 }
588
589 #[inline]
590 pub const fn into_primitive(self) -> u8 {
591 match self {
592 Self::Le1M => 1,
593 Self::Le2M => 2,
594 Self::LeCoded => 3,
595 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
596 }
597 }
598
599 #[inline]
600 pub fn is_unknown(&self) -> bool {
601 match self {
602 Self::__SourceBreaking { unknown_ordinal: _ } => true,
603 _ => false,
604 }
605 }
606}
607
608#[derive(Clone, Debug, PartialEq)]
610pub struct AdvertisingDataDeprecated {
611 pub name: Option<String>,
613 pub tx_power_level: Option<Box<fidl_fuchsia_bluetooth_common::Int8>>,
615 pub appearance: Option<Box<fidl_fuchsia_bluetooth_common::UInt16>>,
617 pub service_uuids: Option<Vec<String>>,
619 pub service_data: Option<Vec<ServiceDataEntry>>,
621 pub manufacturer_specific_data: Option<Vec<ManufacturerSpecificDataEntry>>,
623 pub solicited_service_uuids: Option<Vec<String>>,
626 pub uris: Option<Vec<String>>,
629}
630
631impl fidl::Persistable for AdvertisingDataDeprecated {}
632
633#[derive(Clone, Debug, PartialEq)]
634pub struct CentralConnectPeripheralResponse {
635 pub status: fidl_fuchsia_bluetooth_common::Status,
636}
637
638impl fidl::Persistable for CentralConnectPeripheralResponse {}
639
640#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
641pub struct CentralDisconnectPeripheralRequest {
642 pub identifier: String,
643}
644
645impl fidl::Persistable for CentralDisconnectPeripheralRequest {}
646
647#[derive(Clone, Debug, PartialEq)]
648pub struct CentralDisconnectPeripheralResponse {
649 pub status: fidl_fuchsia_bluetooth_common::Status,
650}
651
652impl fidl::Persistable for CentralDisconnectPeripheralResponse {}
653
654#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
655pub struct CentralGetPeripheralRequest {
656 pub identifier: String,
657}
658
659impl fidl::Persistable for CentralGetPeripheralRequest {}
660
661#[derive(Clone, Debug, PartialEq)]
662pub struct CentralGetPeripheralResponse {
663 pub peripheral: Option<Box<RemoteDevice>>,
664}
665
666impl fidl::Persistable for CentralGetPeripheralResponse {}
667
668#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
669pub struct CentralGetPeripheralsRequest {
670 pub service_uuids: Option<Vec<String>>,
671}
672
673impl fidl::Persistable for CentralGetPeripheralsRequest {}
674
675#[derive(Clone, Debug, PartialEq)]
676pub struct CentralGetPeripheralsResponse {
677 pub peripherals: Vec<RemoteDevice>,
678}
679
680impl fidl::Persistable for CentralGetPeripheralsResponse {}
681
682#[derive(Clone, Debug, PartialEq)]
683pub struct CentralOnDeviceDiscoveredRequest {
684 pub device: RemoteDevice,
685}
686
687impl fidl::Persistable for CentralOnDeviceDiscoveredRequest {}
688
689#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
690pub struct CentralOnPeripheralDisconnectedRequest {
691 pub identifier: String,
692}
693
694impl fidl::Persistable for CentralOnPeripheralDisconnectedRequest {}
695
696#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
697pub struct CentralOnScanStateChangedRequest {
698 pub scanning: bool,
699}
700
701impl fidl::Persistable for CentralOnScanStateChangedRequest {}
702
703#[derive(Clone, Debug, PartialEq)]
704pub struct CentralStartScanRequest {
705 pub filter: Option<Box<ScanFilter>>,
706}
707
708impl fidl::Persistable for CentralStartScanRequest {}
709
710#[derive(Clone, Debug, PartialEq)]
711pub struct CentralStartScanResponse {
712 pub status: fidl_fuchsia_bluetooth_common::Status,
713}
714
715impl fidl::Persistable for CentralStartScanResponse {}
716
717#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
719pub struct ManufacturerData {
720 pub company_id: u16,
721 pub data: Vec<u8>,
722}
723
724impl fidl::Persistable for ManufacturerData {}
725
726#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
727pub struct ManufacturerSpecificDataEntry {
728 pub company_id: u16,
729 pub data: Vec<u8>,
730}
731
732impl fidl::Persistable for ManufacturerSpecificDataEntry {}
733
734#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
736#[repr(C)]
737pub struct PeriodicAdvertisingSyncId {
738 pub value: u64,
739}
740
741impl fidl::Persistable for PeriodicAdvertisingSyncId {}
742
743#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
744pub struct PeriodicAdvertisingSyncOnErrorRequest {
745 pub error: PeriodicAdvertisingSyncError,
746}
747
748impl fidl::Persistable for PeriodicAdvertisingSyncOnErrorRequest {}
749
750#[derive(Clone, Debug, PartialEq)]
753pub struct RemoteDevice {
754 pub identifier: String,
756 pub connectable: bool,
759 pub rssi: Option<Box<fidl_fuchsia_bluetooth_common::Int8>>,
761 pub advertising_data: Option<Box<AdvertisingDataDeprecated>>,
763}
764
765impl fidl::Persistable for RemoteDevice {}
766
767#[derive(Clone, Debug, PartialEq)]
771pub struct ScanFilter {
772 pub service_uuids: Option<Vec<String>>,
775 pub service_data_uuids: Option<Vec<String>>,
777 pub manufacturer_identifier: Option<Box<fidl_fuchsia_bluetooth_common::UInt16>>,
781 pub connectable: Option<Box<fidl_fuchsia_bluetooth_common::Bool>>,
785 pub name_substring: Option<String>,
787 pub max_path_loss: Option<Box<fidl_fuchsia_bluetooth_common::Int8>>,
793}
794
795impl fidl::Persistable for ScanFilter {}
796
797#[derive(Clone, Debug, PartialEq)]
798pub struct ScanResultWatcherWatchResponse {
799 pub updated: Vec<Peer>,
800}
801
802impl fidl::Persistable for ScanResultWatcherWatchResponse {}
803
804#[derive(Clone, Debug, PartialEq)]
806pub struct ServiceData {
807 pub uuid: fidl_fuchsia_bluetooth_common::Uuid,
808 pub data: Vec<u8>,
809}
810
811impl fidl::Persistable for ServiceData {}
812
813#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
814pub struct ServiceDataEntry {
815 pub uuid: String,
816 pub data: Vec<u8>,
817}
818
819impl fidl::Persistable for ServiceDataEntry {}
820
821#[derive(Clone, Debug, Default, PartialEq)]
826pub struct AcceptedChannelParameters {
827 pub accepted_channel_modes: Option<Vec<fidl_fuchsia_bluetooth_common::ChannelMode>>,
832 pub max_packet_size: Option<u16>,
836 #[doc(hidden)]
837 pub __source_breaking: fidl::marker::SourceBreaking,
838}
839
840impl fidl::Persistable for AcceptedChannelParameters {}
841
842#[derive(Clone, Debug, Default, PartialEq)]
845pub struct AdvertisingData {
846 pub name: Option<String>,
848 pub appearance: Option<fidl_fuchsia_bluetooth_common::Appearance>,
850 pub tx_power_level: Option<i8>,
851 pub service_uuids: Option<Vec<fidl_fuchsia_bluetooth_common::Uuid>>,
853 pub service_data: Option<Vec<ServiceData>>,
855 pub manufacturer_data: Option<Vec<ManufacturerData>>,
857 pub uris: Option<Vec<String>>,
863 pub include_tx_power_level: Option<bool>,
865 pub resolvable_set_identifier: Option<[u8; 6]>,
869 pub broadcast_name: Option<String>,
878 #[doc(hidden)]
879 pub __source_breaking: fidl::marker::SourceBreaking,
880}
881
882impl fidl::Persistable for AdvertisingData {}
883
884#[derive(Clone, Debug, Default, PartialEq)]
886pub struct AdvertisingParameters {
887 pub data: Option<AdvertisingData>,
891 pub scan_response: Option<AdvertisingData>,
897 pub mode_hint: Option<AdvertisingModeHint>,
900 pub connectable: Option<bool>,
904 pub connection_options: Option<ConnectionOptions>,
909 pub advertising_procedure: Option<AdvertisingProcedure>,
915 pub address_type: Option<fidl_fuchsia_bluetooth_common::AddressType>,
927 #[doc(hidden)]
928 pub __source_breaking: fidl::marker::SourceBreaking,
929}
930
931impl fidl::Persistable for AdvertisingParameters {}
932
933#[derive(Clone, Debug, Default, PartialEq)]
936pub struct BroadcastIsochronousGroupInfo {
937 pub streams_count: Option<u8>,
939 pub max_sdu_size: Option<u16>,
941 pub phy: Option<PhysicalLayer>,
943 pub encryption: Option<bool>,
945 #[doc(hidden)]
946 pub __source_breaking: fidl::marker::SourceBreaking,
947}
948
949impl fidl::Persistable for BroadcastIsochronousGroupInfo {}
950
951#[derive(Clone, Debug, Default, PartialEq)]
953pub struct BroadcastIsochronousGroupInfoReport {
954 pub info: Option<BroadcastIsochronousGroupInfo>,
955 pub timestamp: Option<i64>,
957 #[doc(hidden)]
958 pub __source_breaking: fidl::marker::SourceBreaking,
959}
960
961impl fidl::Persistable for BroadcastIsochronousGroupInfoReport {}
962
963#[derive(Clone, Debug, Default, PartialEq)]
964pub struct CentralCreateConnectedIsochronousGroupResponse {
965 pub cig_id: Option<u8>,
967 #[doc(hidden)]
968 pub __source_breaking: fidl::marker::SourceBreaking,
969}
970
971impl fidl::Persistable for CentralCreateConnectedIsochronousGroupResponse {}
972
973#[derive(Clone, Debug, Default, PartialEq)]
974pub struct ChannelListenerRegistryListenL2capResponse {
975 pub psm: Option<u16>,
978 #[doc(hidden)]
979 pub __source_breaking: fidl::marker::SourceBreaking,
980}
981
982impl fidl::Persistable for ChannelListenerRegistryListenL2capResponse {}
983
984#[derive(Clone, Debug, Default, PartialEq)]
985pub struct ChannelOffloadExtStartOffloadRequest {
986 #[doc(hidden)]
987 pub __source_breaking: fidl::marker::SourceBreaking,
988}
989
990impl fidl::Persistable for ChannelOffloadExtStartOffloadRequest {}
991
992#[derive(Clone, Debug, Default, PartialEq)]
993pub struct ChannelOffloadExtStartOffloadResponse {
994 pub offload_parameters: Option<fidl_fuchsia_bluetooth_common::L2capChannelOffloadParameters>,
995 #[doc(hidden)]
996 pub __source_breaking: fidl::marker::SourceBreaking,
997}
998
999impl fidl::Persistable for ChannelOffloadExtStartOffloadResponse {}
1000
1001#[derive(Clone, Debug, Default, PartialEq)]
1002pub struct CigParameters {
1003 pub sdu_interval_c_to_p: Option<u32>,
1007 pub sdu_interval_p_to_c: Option<u32>,
1011 pub packing: Option<CigPacking>,
1015 pub framing: Option<CigFramingOptions>,
1018 pub max_transport_latency_c_to_p: Option<u16>,
1022 pub max_transport_latency_p_to_c: Option<u16>,
1026 pub expected_peers: Option<Vec<fidl_fuchsia_bluetooth_common::PeerId>>,
1031 #[doc(hidden)]
1032 pub __source_breaking: fidl::marker::SourceBreaking,
1033}
1034
1035impl fidl::Persistable for CigParameters {}
1036
1037#[derive(Clone, Debug, Default, PartialEq)]
1039pub struct CisEstablishedParameters {
1040 pub cig_sync_delay: Option<i64>,
1045 pub cis_sync_delay: Option<i64>,
1050 pub max_subevents: Option<u8>,
1054 pub iso_interval: Option<i64>,
1058 pub central_to_peripheral_params: Option<CisUnidirectionalParams>,
1063 pub peripheral_to_central_params: Option<CisUnidirectionalParams>,
1068 #[doc(hidden)]
1069 pub __source_breaking: fidl::marker::SourceBreaking,
1070}
1071
1072impl fidl::Persistable for CisEstablishedParameters {}
1073
1074#[derive(Clone, Debug, Default, PartialEq)]
1075pub struct CisParameters {
1076 pub cis_id: Option<u8>,
1079 pub id: Option<fidl_fuchsia_bluetooth_common::PeerId>,
1082 #[doc(hidden)]
1083 pub __source_breaking: fidl::marker::SourceBreaking,
1084}
1085
1086impl fidl::Persistable for CisParameters {}
1087
1088#[derive(Clone, Debug, Default, PartialEq)]
1090pub struct CisUnidirectionalParams {
1091 pub transport_latency: Option<i64>,
1095 pub burst_number: Option<u8>,
1099 pub flush_timeout: Option<u8>,
1103 #[doc(hidden)]
1104 pub __source_breaking: fidl::marker::SourceBreaking,
1105}
1106
1107impl fidl::Persistable for CisUnidirectionalParams {}
1108
1109#[derive(Clone, Debug, Default, PartialEq)]
1110pub struct CodecDelayGetCodecLocalDelayRangeRequest {
1111 pub logical_transport_type: Option<fidl_fuchsia_bluetooth_common::LogicalTransportType>,
1114 pub data_direction: Option<fidl_fuchsia_bluetooth_common::DataDirection>,
1116 pub codec_attributes: Option<fidl_fuchsia_bluetooth_common::CodecAttributes>,
1118 #[doc(hidden)]
1119 pub __source_breaking: fidl::marker::SourceBreaking,
1120}
1121
1122impl fidl::Persistable for CodecDelayGetCodecLocalDelayRangeRequest {}
1123
1124#[derive(Clone, Debug, Default, PartialEq)]
1125pub struct CodecDelayGetCodecLocalDelayRangeResponse {
1126 pub min_controller_delay: Option<i64>,
1129 pub max_controller_delay: Option<i64>,
1132 #[doc(hidden)]
1133 pub __source_breaking: fidl::marker::SourceBreaking,
1134}
1135
1136impl fidl::Persistable for CodecDelayGetCodecLocalDelayRangeResponse {}
1137
1138#[derive(Clone, Debug, Default, PartialEq)]
1139pub struct ConnectedIsochronousGroupEstablishStreamsRequest {
1140 pub cis_params: Option<Vec<CisParameters>>,
1142 #[doc(hidden)]
1143 pub __source_breaking: fidl::marker::SourceBreaking,
1144}
1145
1146impl fidl::Persistable for ConnectedIsochronousGroupEstablishStreamsRequest {}
1147
1148#[derive(Clone, Debug, Default, PartialEq)]
1151pub struct ConnectionOptions {
1152 pub bondable_mode: Option<bool>,
1157 pub service_filter: Option<fidl_fuchsia_bluetooth_common::Uuid>,
1160 #[doc(hidden)]
1161 pub __source_breaking: fidl::marker::SourceBreaking,
1162}
1163
1164impl fidl::Persistable for ConnectionOptions {}
1165
1166#[derive(Clone, Debug, Default, PartialEq)]
1167pub struct ConnectionTransferPeriodicAdvertisingSyncRequest {
1168 pub sync_id: Option<PeriodicAdvertisingSyncId>,
1170 pub service_data: Option<u16>,
1174 #[doc(hidden)]
1175 pub __source_breaking: fidl::marker::SourceBreaking,
1176}
1177
1178impl fidl::Persistable for ConnectionTransferPeriodicAdvertisingSyncRequest {}
1179
1180#[derive(Clone, Debug, Default, PartialEq)]
1181pub struct Extended {
1182 #[doc(hidden)]
1183 pub __source_breaking: fidl::marker::SourceBreaking,
1184}
1185
1186impl fidl::Persistable for Extended {}
1187
1188#[derive(Clone, Debug, Default, PartialEq)]
1191pub struct Filter {
1192 pub service_uuid: Option<fidl_fuchsia_bluetooth_common::Uuid>,
1194 pub service_data_uuid: Option<fidl_fuchsia_bluetooth_common::Uuid>,
1196 pub manufacturer_id: Option<u16>,
1202 pub connectable: Option<bool>,
1207 pub name: Option<String>,
1210 pub max_path_loss: Option<i8>,
1222 pub solicitation_uuid: Option<fidl_fuchsia_bluetooth_common::Uuid>,
1226 #[doc(hidden)]
1227 pub __source_breaking: fidl::marker::SourceBreaking,
1228}
1229
1230impl fidl::Persistable for Filter {}
1231
1232#[derive(Clone, Debug, Default, PartialEq)]
1233pub struct IsochronousStreamOnEstablishedRequest {
1234 pub result: Option<i32>,
1237 pub established_params: Option<CisEstablishedParameters>,
1239 #[doc(hidden)]
1240 pub __source_breaking: fidl::marker::SourceBreaking,
1241}
1242
1243impl fidl::Persistable for IsochronousStreamOnEstablishedRequest {}
1244
1245#[derive(Clone, Debug, Default, PartialEq)]
1246pub struct IsochronousStreamSetupDataPathRequest {
1247 pub data_direction: Option<fidl_fuchsia_bluetooth_common::DataDirection>,
1250 pub codec_attributes: Option<fidl_fuchsia_bluetooth_common::CodecAttributes>,
1253 pub controller_delay: Option<i64>,
1257 #[doc(hidden)]
1258 pub __source_breaking: fidl::marker::SourceBreaking,
1259}
1260
1261impl fidl::Persistable for IsochronousStreamSetupDataPathRequest {}
1262
1263#[derive(Clone, Debug, Default, PartialEq)]
1264pub struct IsochronousStreamWriteRequest {
1265 pub data: Option<Vec<u8>>,
1267 #[doc(hidden)]
1268 pub __source_breaking: fidl::marker::SourceBreaking,
1269}
1270
1271impl fidl::Persistable for IsochronousStreamWriteRequest {}
1272
1273#[derive(Clone, Debug, Default, PartialEq)]
1274pub struct IsochronousStreamReadResponse {
1275 pub data: Option<Vec<u8>>,
1278 pub sequence_number: Option<u16>,
1281 pub status_flag: Option<IsoPacketStatusFlag>,
1284 pub timestamp: Option<i64>,
1287 #[doc(hidden)]
1288 pub __source_breaking: fidl::marker::SourceBreaking,
1289}
1290
1291impl fidl::Persistable for IsochronousStreamReadResponse {}
1292
1293#[derive(Clone, Debug, Default, PartialEq)]
1294pub struct Legacy {
1295 #[doc(hidden)]
1296 pub __source_breaking: fidl::marker::SourceBreaking,
1297}
1298
1299impl fidl::Persistable for Legacy {}
1300
1301#[derive(Clone, Debug, Default, PartialEq)]
1304pub struct Peer {
1305 pub id: Option<fidl_fuchsia_bluetooth_common::PeerId>,
1309 pub connectable: Option<bool>,
1314 pub rssi: Option<i8>,
1320 pub advertising_data: Option<AdvertisingData>,
1321 pub name: Option<String>,
1326 pub data: Option<ScanData>,
1329 pub bonded: Option<bool>,
1333 pub last_updated: Option<i64>,
1338 pub advertising_sid: Option<u8>,
1342 pub periodic_advertising_interval: Option<u16>,
1349 #[doc(hidden)]
1350 pub __source_breaking: fidl::marker::SourceBreaking,
1351}
1352
1353impl fidl::Persistable for Peer {}
1354
1355#[derive(Clone, Debug, Default, PartialEq)]
1356pub struct PeriodicAdvertisingReport {
1357 pub rssi: Option<i8>,
1359 pub data: Option<ScanData>,
1361 pub event_counter: Option<u16>,
1364 pub subevent: Option<u8>,
1366 pub timestamp: Option<i64>,
1368 #[doc(hidden)]
1369 pub __source_breaking: fidl::marker::SourceBreaking,
1370}
1371
1372impl fidl::Persistable for PeriodicAdvertisingReport {}
1373
1374#[derive(Clone, Debug, Default, PartialEq)]
1375pub struct PeriodicAdvertisingSyncConfiguration {
1376 pub filter_duplicates: Option<bool>,
1380 #[doc(hidden)]
1381 pub __source_breaking: fidl::marker::SourceBreaking,
1382}
1383
1384impl fidl::Persistable for PeriodicAdvertisingSyncConfiguration {}
1385
1386#[derive(Clone, Debug, Default, PartialEq)]
1387pub struct PeriodicAdvertisingSyncOnEstablishedRequest {
1388 pub id: Option<PeriodicAdvertisingSyncId>,
1390 pub subevents_count: Option<u8>,
1392 pub peer_id: Option<fidl_fuchsia_bluetooth_common::PeerId>,
1393 pub service_data: Option<u16>,
1396 pub advertising_sid: Option<u8>,
1397 pub phy: Option<PhysicalLayer>,
1398 pub periodic_advertising_interval: Option<u16>,
1402 #[doc(hidden)]
1403 pub __source_breaking: fidl::marker::SourceBreaking,
1404}
1405
1406impl fidl::Persistable for PeriodicAdvertisingSyncOnEstablishedRequest {}
1407
1408#[derive(Clone, Debug, Default, PartialEq)]
1409pub struct PeriodicAdvertisingSyncSyncToSubeventsRequest {
1410 pub subevents: Option<Vec<u8>>,
1412 #[doc(hidden)]
1413 pub __source_breaking: fidl::marker::SourceBreaking,
1414}
1415
1416impl fidl::Persistable for PeriodicAdvertisingSyncSyncToSubeventsRequest {}
1417
1418#[derive(Clone, Debug, Default, PartialEq)]
1419pub struct PeriodicAdvertisingSyncWatchAdvertisingReportResponse {
1420 pub reports: Option<Vec<SyncReport>>,
1421 #[doc(hidden)]
1422 pub __source_breaking: fidl::marker::SourceBreaking,
1423}
1424
1425impl fidl::Persistable for PeriodicAdvertisingSyncWatchAdvertisingReportResponse {}
1426
1427#[derive(Clone, Debug, Default, PartialEq)]
1429pub struct ScanData {
1430 pub tx_power: Option<i8>,
1435 pub appearance: Option<fidl_fuchsia_bluetooth_common::Appearance>,
1437 pub service_uuids: Option<Vec<fidl_fuchsia_bluetooth_common::Uuid>>,
1439 pub service_data: Option<Vec<ServiceData>>,
1441 pub manufacturer_data: Option<Vec<ManufacturerData>>,
1443 pub uris: Option<Vec<String>>,
1449 pub timestamp: Option<i64>,
1451 pub resolvable_set_identifier: Option<[u8; 6]>,
1455 pub broadcast_name: Option<String>,
1464 #[doc(hidden)]
1465 pub __source_breaking: fidl::marker::SourceBreaking,
1466}
1467
1468impl fidl::Persistable for ScanData {}
1469
1470#[derive(Clone, Debug, Default, PartialEq)]
1472pub struct ScanOptions {
1473 pub filters: Option<Vec<Filter>>,
1478 #[doc(hidden)]
1479 pub __source_breaking: fidl::marker::SourceBreaking,
1480}
1481
1482impl fidl::Persistable for ScanOptions {}
1483
1484#[derive(Clone, Debug)]
1485pub enum AdvertisingProcedure {
1486 Legacy(Legacy),
1489 Extended(Extended),
1499 #[doc(hidden)]
1500 __SourceBreaking { unknown_ordinal: u64 },
1501}
1502
1503#[macro_export]
1505macro_rules! AdvertisingProcedureUnknown {
1506 () => {
1507 _
1508 };
1509}
1510
1511impl PartialEq for AdvertisingProcedure {
1513 fn eq(&self, other: &Self) -> bool {
1514 match (self, other) {
1515 (Self::Legacy(x), Self::Legacy(y)) => *x == *y,
1516 (Self::Extended(x), Self::Extended(y)) => *x == *y,
1517 _ => false,
1518 }
1519 }
1520}
1521
1522impl AdvertisingProcedure {
1523 #[inline]
1524 pub fn ordinal(&self) -> u64 {
1525 match *self {
1526 Self::Legacy(_) => 1,
1527 Self::Extended(_) => 2,
1528 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
1529 }
1530 }
1531
1532 #[inline]
1533 pub fn unknown_variant_for_testing() -> Self {
1534 Self::__SourceBreaking { unknown_ordinal: 0 }
1535 }
1536
1537 #[inline]
1538 pub fn is_unknown(&self) -> bool {
1539 match self {
1540 Self::__SourceBreaking { .. } => true,
1541 _ => false,
1542 }
1543 }
1544}
1545
1546impl fidl::Persistable for AdvertisingProcedure {}
1547
1548#[derive(Clone, Debug)]
1549pub enum SyncReport {
1550 PeriodicAdvertisingReport(PeriodicAdvertisingReport),
1551 BroadcastIsochronousGroupInfoReport(BroadcastIsochronousGroupInfoReport),
1552 #[doc(hidden)]
1553 __SourceBreaking {
1554 unknown_ordinal: u64,
1555 },
1556}
1557
1558#[macro_export]
1560macro_rules! SyncReportUnknown {
1561 () => {
1562 _
1563 };
1564}
1565
1566impl PartialEq for SyncReport {
1568 fn eq(&self, other: &Self) -> bool {
1569 match (self, other) {
1570 (Self::PeriodicAdvertisingReport(x), Self::PeriodicAdvertisingReport(y)) => *x == *y,
1571 (
1572 Self::BroadcastIsochronousGroupInfoReport(x),
1573 Self::BroadcastIsochronousGroupInfoReport(y),
1574 ) => *x == *y,
1575 _ => false,
1576 }
1577 }
1578}
1579
1580impl SyncReport {
1581 #[inline]
1582 pub fn ordinal(&self) -> u64 {
1583 match *self {
1584 Self::PeriodicAdvertisingReport(_) => 1,
1585 Self::BroadcastIsochronousGroupInfoReport(_) => 2,
1586 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
1587 }
1588 }
1589
1590 #[inline]
1591 pub fn unknown_variant_for_testing() -> Self {
1592 Self::__SourceBreaking { unknown_ordinal: 0 }
1593 }
1594
1595 #[inline]
1596 pub fn is_unknown(&self) -> bool {
1597 match self {
1598 Self::__SourceBreaking { .. } => true,
1599 _ => false,
1600 }
1601 }
1602}
1603
1604impl fidl::Persistable for SyncReport {}
1605
1606pub mod advertised_peripheral_ordinals {
1607 pub const ON_CONNECTED: u64 = 0x607b7716457eb178;
1608}
1609
1610pub mod advertising_handle_ordinals {}
1611
1612pub mod central_ordinals {
1613 pub const LISTEN_L2CAP: u64 = 0x39c6e9001d102338;
1614 pub const SCAN: u64 = 0x41f7121798dfe15f;
1615 pub const CONNECT: u64 = 0x31a3065f2a6913c4;
1616 pub const SYNC_TO_PERIODIC_ADVERTISING: u64 = 0x1db6df126a00c5b9;
1617 pub const CREATE_CONNECTED_ISOCHRONOUS_GROUP: u64 = 0x60323e70ae22e13;
1618 pub const GET_PERIPHERALS: u64 = 0x37ba777499c683a8;
1619 pub const GET_PERIPHERAL: u64 = 0x97f5a2f2d9c13da;
1620 pub const START_SCAN: u64 = 0xeb4cf0cd0e1132b;
1621 pub const STOP_SCAN: u64 = 0x5f79ee6a0bb037a0;
1622 pub const CONNECT_PERIPHERAL: u64 = 0x714d6c32d066d75a;
1623 pub const DISCONNECT_PERIPHERAL: u64 = 0xa9430da197362fd;
1624 pub const ON_SCAN_STATE_CHANGED: u64 = 0x5f8edc23cad04d3f;
1625 pub const ON_DEVICE_DISCOVERED: u64 = 0x708dadf20d66db6;
1626 pub const ON_PERIPHERAL_DISCONNECTED: u64 = 0x4e4c6b979b2126df;
1627}
1628
1629pub mod channel_listener_ordinals {
1630 pub const ACCEPT: u64 = 0x6f535bd36b20fc7b;
1631 pub const CONNECTED: u64 = 0xf40756858f21866;
1632}
1633
1634pub mod channel_listener_registry_ordinals {
1635 pub const LISTEN_L2CAP: u64 = 0x39c6e9001d102338;
1636}
1637
1638pub mod channel_offload_ext_ordinals {
1639 pub const START_OFFLOAD: u64 = 0x2dd620feea793fe8;
1640}
1641
1642pub mod codec_delay_ordinals {
1643 pub const GET_CODEC_LOCAL_DELAY_RANGE: u64 = 0x1cf34fdeed80b4d;
1644}
1645
1646pub mod connected_isochronous_group_ordinals {
1647 pub const ESTABLISH_STREAMS: u64 = 0xc7296c5edb4dacc;
1648 pub const REMOVE: u64 = 0xbed433babd20503;
1649}
1650
1651pub mod connection_ordinals {
1652 pub const GET_CODEC_LOCAL_DELAY_RANGE: u64 = 0x1cf34fdeed80b4d;
1653 pub const REQUEST_GATT_CLIENT: u64 = 0x2a670e0fec6ccc6b;
1654 pub const ACCEPT_CIS: u64 = 0x7e6338c237088144;
1655 pub const CONNECT_L2CAP: u64 = 0x12351316feaebce9;
1656 pub const TRANSFER_PERIODIC_ADVERTISING_SYNC: u64 = 0x1117a10b5ba1e219;
1657 pub const ACCEPT_PERIODIC_ADVERTISING_SYNC_TRANSFER: u64 = 0x441a31a7effa7e2b;
1658}
1659
1660pub mod isochronous_stream_ordinals {
1661 pub const ON_ESTABLISHED: u64 = 0x341c50e9d10f3421;
1662 pub const SETUP_DATA_PATH: u64 = 0x7ec1e2b9cc6d2fbe;
1663 pub const READ: u64 = 0x6d7d8b4950ed3a32;
1664 pub const WRITE: u64 = 0x5282e90b667d0d43;
1665}
1666
1667pub mod periodic_advertising_sync_ordinals {
1668 pub const ON_ESTABLISHED: u64 = 0x4a5c307761c40fdc;
1669 pub const ON_ERROR: u64 = 0x1c051673126ce4a;
1670 pub const WATCH_ADVERTISING_REPORT: u64 = 0x2ea610fea0e7d337;
1671 pub const SYNC_TO_SUBEVENTS: u64 = 0x653c5dab1f1d80ed;
1672 pub const CANCEL: u64 = 0xd617c037eaf5d92;
1673}
1674
1675pub mod peripheral_ordinals {
1676 pub const LISTEN_L2CAP: u64 = 0x39c6e9001d102338;
1677 pub const ADVERTISE: u64 = 0x2d9ec9260c32c17f;
1678 pub const START_ADVERTISING: u64 = 0x5875c1c575f00f7d;
1679 pub const ON_PEER_CONNECTED: u64 = 0x16135d464299e356;
1680}
1681
1682pub mod privileged_central_ordinals {
1683 pub const LISTEN_L2CAP: u64 = 0x39c6e9001d102338;
1684 pub const SCAN: u64 = 0x41f7121798dfe15f;
1685 pub const CONNECT: u64 = 0x31a3065f2a6913c4;
1686 pub const SYNC_TO_PERIODIC_ADVERTISING: u64 = 0x1db6df126a00c5b9;
1687 pub const CREATE_CONNECTED_ISOCHRONOUS_GROUP: u64 = 0x60323e70ae22e13;
1688 pub const GET_PERIPHERALS: u64 = 0x37ba777499c683a8;
1689 pub const GET_PERIPHERAL: u64 = 0x97f5a2f2d9c13da;
1690 pub const START_SCAN: u64 = 0xeb4cf0cd0e1132b;
1691 pub const STOP_SCAN: u64 = 0x5f79ee6a0bb037a0;
1692 pub const CONNECT_PERIPHERAL: u64 = 0x714d6c32d066d75a;
1693 pub const DISCONNECT_PERIPHERAL: u64 = 0xa9430da197362fd;
1694 pub const ON_SCAN_STATE_CHANGED: u64 = 0x5f8edc23cad04d3f;
1695 pub const ON_DEVICE_DISCOVERED: u64 = 0x708dadf20d66db6;
1696 pub const ON_PERIPHERAL_DISCONNECTED: u64 = 0x4e4c6b979b2126df;
1697}
1698
1699pub mod privileged_peripheral_ordinals {
1700 pub const LISTEN_L2CAP: u64 = 0x39c6e9001d102338;
1701 pub const ADVERTISE: u64 = 0x2d9ec9260c32c17f;
1702 pub const START_ADVERTISING: u64 = 0x5875c1c575f00f7d;
1703 pub const ON_PEER_CONNECTED: u64 = 0x16135d464299e356;
1704}
1705
1706pub mod scan_result_watcher_ordinals {
1707 pub const WATCH: u64 = 0x713a122e949f301a;
1708}
1709
1710mod internal {
1711 use super::*;
1712 unsafe impl fidl::encoding::TypeMarker for AdvertisingModeHint {
1713 type Owned = Self;
1714
1715 #[inline(always)]
1716 fn inline_align(_context: fidl::encoding::Context) -> usize {
1717 std::mem::align_of::<u8>()
1718 }
1719
1720 #[inline(always)]
1721 fn inline_size(_context: fidl::encoding::Context) -> usize {
1722 std::mem::size_of::<u8>()
1723 }
1724
1725 #[inline(always)]
1726 fn encode_is_copy() -> bool {
1727 true
1728 }
1729
1730 #[inline(always)]
1731 fn decode_is_copy() -> bool {
1732 false
1733 }
1734 }
1735
1736 impl fidl::encoding::ValueTypeMarker for AdvertisingModeHint {
1737 type Borrowed<'a> = Self;
1738 #[inline(always)]
1739 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1740 *value
1741 }
1742 }
1743
1744 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
1745 for AdvertisingModeHint
1746 {
1747 #[inline]
1748 unsafe fn encode(
1749 self,
1750 encoder: &mut fidl::encoding::Encoder<'_, D>,
1751 offset: usize,
1752 _depth: fidl::encoding::Depth,
1753 ) -> fidl::Result<()> {
1754 encoder.debug_check_bounds::<Self>(offset);
1755 encoder.write_num(self.into_primitive(), offset);
1756 Ok(())
1757 }
1758 }
1759
1760 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for AdvertisingModeHint {
1761 #[inline(always)]
1762 fn new_empty() -> Self {
1763 Self::VeryFast
1764 }
1765
1766 #[inline]
1767 unsafe fn decode(
1768 &mut self,
1769 decoder: &mut fidl::encoding::Decoder<'_, D>,
1770 offset: usize,
1771 _depth: fidl::encoding::Depth,
1772 ) -> fidl::Result<()> {
1773 decoder.debug_check_bounds::<Self>(offset);
1774 let prim = decoder.read_num::<u8>(offset);
1775
1776 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
1777 Ok(())
1778 }
1779 }
1780 unsafe impl fidl::encoding::TypeMarker for CentralError {
1781 type Owned = Self;
1782
1783 #[inline(always)]
1784 fn inline_align(_context: fidl::encoding::Context) -> usize {
1785 std::mem::align_of::<u32>()
1786 }
1787
1788 #[inline(always)]
1789 fn inline_size(_context: fidl::encoding::Context) -> usize {
1790 std::mem::size_of::<u32>()
1791 }
1792
1793 #[inline(always)]
1794 fn encode_is_copy() -> bool {
1795 true
1796 }
1797
1798 #[inline(always)]
1799 fn decode_is_copy() -> bool {
1800 false
1801 }
1802 }
1803
1804 impl fidl::encoding::ValueTypeMarker for CentralError {
1805 type Borrowed<'a> = Self;
1806 #[inline(always)]
1807 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1808 *value
1809 }
1810 }
1811
1812 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for CentralError {
1813 #[inline]
1814 unsafe fn encode(
1815 self,
1816 encoder: &mut fidl::encoding::Encoder<'_, D>,
1817 offset: usize,
1818 _depth: fidl::encoding::Depth,
1819 ) -> fidl::Result<()> {
1820 encoder.debug_check_bounds::<Self>(offset);
1821 encoder.write_num(self.into_primitive(), offset);
1822 Ok(())
1823 }
1824 }
1825
1826 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for CentralError {
1827 #[inline(always)]
1828 fn new_empty() -> Self {
1829 Self::Aborted
1830 }
1831
1832 #[inline]
1833 unsafe fn decode(
1834 &mut self,
1835 decoder: &mut fidl::encoding::Decoder<'_, D>,
1836 offset: usize,
1837 _depth: fidl::encoding::Depth,
1838 ) -> fidl::Result<()> {
1839 decoder.debug_check_bounds::<Self>(offset);
1840 let prim = decoder.read_num::<u32>(offset);
1841
1842 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
1843 Ok(())
1844 }
1845 }
1846 unsafe impl fidl::encoding::TypeMarker for CigFramingOptions {
1847 type Owned = Self;
1848
1849 #[inline(always)]
1850 fn inline_align(_context: fidl::encoding::Context) -> usize {
1851 std::mem::align_of::<u32>()
1852 }
1853
1854 #[inline(always)]
1855 fn inline_size(_context: fidl::encoding::Context) -> usize {
1856 std::mem::size_of::<u32>()
1857 }
1858
1859 #[inline(always)]
1860 fn encode_is_copy() -> bool {
1861 true
1862 }
1863
1864 #[inline(always)]
1865 fn decode_is_copy() -> bool {
1866 false
1867 }
1868 }
1869
1870 impl fidl::encoding::ValueTypeMarker for CigFramingOptions {
1871 type Borrowed<'a> = Self;
1872 #[inline(always)]
1873 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1874 *value
1875 }
1876 }
1877
1878 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
1879 for CigFramingOptions
1880 {
1881 #[inline]
1882 unsafe fn encode(
1883 self,
1884 encoder: &mut fidl::encoding::Encoder<'_, D>,
1885 offset: usize,
1886 _depth: fidl::encoding::Depth,
1887 ) -> fidl::Result<()> {
1888 encoder.debug_check_bounds::<Self>(offset);
1889 encoder.write_num(self.into_primitive(), offset);
1890 Ok(())
1891 }
1892 }
1893
1894 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for CigFramingOptions {
1895 #[inline(always)]
1896 fn new_empty() -> Self {
1897 Self::Unframed
1898 }
1899
1900 #[inline]
1901 unsafe fn decode(
1902 &mut self,
1903 decoder: &mut fidl::encoding::Decoder<'_, D>,
1904 offset: usize,
1905 _depth: fidl::encoding::Depth,
1906 ) -> fidl::Result<()> {
1907 decoder.debug_check_bounds::<Self>(offset);
1908 let prim = decoder.read_num::<u32>(offset);
1909
1910 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
1911 Ok(())
1912 }
1913 }
1914 unsafe impl fidl::encoding::TypeMarker for CigPacking {
1915 type Owned = Self;
1916
1917 #[inline(always)]
1918 fn inline_align(_context: fidl::encoding::Context) -> usize {
1919 std::mem::align_of::<u32>()
1920 }
1921
1922 #[inline(always)]
1923 fn inline_size(_context: fidl::encoding::Context) -> usize {
1924 std::mem::size_of::<u32>()
1925 }
1926
1927 #[inline(always)]
1928 fn encode_is_copy() -> bool {
1929 false
1930 }
1931
1932 #[inline(always)]
1933 fn decode_is_copy() -> bool {
1934 false
1935 }
1936 }
1937
1938 impl fidl::encoding::ValueTypeMarker for CigPacking {
1939 type Borrowed<'a> = Self;
1940 #[inline(always)]
1941 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1942 *value
1943 }
1944 }
1945
1946 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for CigPacking {
1947 #[inline]
1948 unsafe fn encode(
1949 self,
1950 encoder: &mut fidl::encoding::Encoder<'_, D>,
1951 offset: usize,
1952 _depth: fidl::encoding::Depth,
1953 ) -> fidl::Result<()> {
1954 encoder.debug_check_bounds::<Self>(offset);
1955 encoder.write_num(self.into_primitive(), offset);
1956 Ok(())
1957 }
1958 }
1959
1960 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for CigPacking {
1961 #[inline(always)]
1962 fn new_empty() -> Self {
1963 Self::unknown()
1964 }
1965
1966 #[inline]
1967 unsafe fn decode(
1968 &mut self,
1969 decoder: &mut fidl::encoding::Decoder<'_, D>,
1970 offset: usize,
1971 _depth: fidl::encoding::Depth,
1972 ) -> fidl::Result<()> {
1973 decoder.debug_check_bounds::<Self>(offset);
1974 let prim = decoder.read_num::<u32>(offset);
1975
1976 *self = Self::from_primitive_allow_unknown(prim);
1977 Ok(())
1978 }
1979 }
1980 unsafe impl fidl::encoding::TypeMarker for CreateCigError {
1981 type Owned = Self;
1982
1983 #[inline(always)]
1984 fn inline_align(_context: fidl::encoding::Context) -> usize {
1985 std::mem::align_of::<u32>()
1986 }
1987
1988 #[inline(always)]
1989 fn inline_size(_context: fidl::encoding::Context) -> usize {
1990 std::mem::size_of::<u32>()
1991 }
1992
1993 #[inline(always)]
1994 fn encode_is_copy() -> bool {
1995 false
1996 }
1997
1998 #[inline(always)]
1999 fn decode_is_copy() -> bool {
2000 false
2001 }
2002 }
2003
2004 impl fidl::encoding::ValueTypeMarker for CreateCigError {
2005 type Borrowed<'a> = Self;
2006 #[inline(always)]
2007 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2008 *value
2009 }
2010 }
2011
2012 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for CreateCigError {
2013 #[inline]
2014 unsafe fn encode(
2015 self,
2016 encoder: &mut fidl::encoding::Encoder<'_, D>,
2017 offset: usize,
2018 _depth: fidl::encoding::Depth,
2019 ) -> fidl::Result<()> {
2020 encoder.debug_check_bounds::<Self>(offset);
2021 encoder.write_num(self.into_primitive(), offset);
2022 Ok(())
2023 }
2024 }
2025
2026 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for CreateCigError {
2027 #[inline(always)]
2028 fn new_empty() -> Self {
2029 Self::unknown()
2030 }
2031
2032 #[inline]
2033 unsafe fn decode(
2034 &mut self,
2035 decoder: &mut fidl::encoding::Decoder<'_, D>,
2036 offset: usize,
2037 _depth: fidl::encoding::Depth,
2038 ) -> fidl::Result<()> {
2039 decoder.debug_check_bounds::<Self>(offset);
2040 let prim = decoder.read_num::<u32>(offset);
2041
2042 *self = Self::from_primitive_allow_unknown(prim);
2043 Ok(())
2044 }
2045 }
2046 unsafe impl fidl::encoding::TypeMarker for EstablishStreamsError {
2047 type Owned = Self;
2048
2049 #[inline(always)]
2050 fn inline_align(_context: fidl::encoding::Context) -> usize {
2051 std::mem::align_of::<u32>()
2052 }
2053
2054 #[inline(always)]
2055 fn inline_size(_context: fidl::encoding::Context) -> usize {
2056 std::mem::size_of::<u32>()
2057 }
2058
2059 #[inline(always)]
2060 fn encode_is_copy() -> bool {
2061 false
2062 }
2063
2064 #[inline(always)]
2065 fn decode_is_copy() -> bool {
2066 false
2067 }
2068 }
2069
2070 impl fidl::encoding::ValueTypeMarker for EstablishStreamsError {
2071 type Borrowed<'a> = Self;
2072 #[inline(always)]
2073 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2074 *value
2075 }
2076 }
2077
2078 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
2079 for EstablishStreamsError
2080 {
2081 #[inline]
2082 unsafe fn encode(
2083 self,
2084 encoder: &mut fidl::encoding::Encoder<'_, D>,
2085 offset: usize,
2086 _depth: fidl::encoding::Depth,
2087 ) -> fidl::Result<()> {
2088 encoder.debug_check_bounds::<Self>(offset);
2089 encoder.write_num(self.into_primitive(), offset);
2090 Ok(())
2091 }
2092 }
2093
2094 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for EstablishStreamsError {
2095 #[inline(always)]
2096 fn new_empty() -> Self {
2097 Self::unknown()
2098 }
2099
2100 #[inline]
2101 unsafe fn decode(
2102 &mut self,
2103 decoder: &mut fidl::encoding::Decoder<'_, D>,
2104 offset: usize,
2105 _depth: fidl::encoding::Depth,
2106 ) -> fidl::Result<()> {
2107 decoder.debug_check_bounds::<Self>(offset);
2108 let prim = decoder.read_num::<u32>(offset);
2109
2110 *self = Self::from_primitive_allow_unknown(prim);
2111 Ok(())
2112 }
2113 }
2114 unsafe impl fidl::encoding::TypeMarker for IsoPacketStatusFlag {
2115 type Owned = Self;
2116
2117 #[inline(always)]
2118 fn inline_align(_context: fidl::encoding::Context) -> usize {
2119 std::mem::align_of::<u8>()
2120 }
2121
2122 #[inline(always)]
2123 fn inline_size(_context: fidl::encoding::Context) -> usize {
2124 std::mem::size_of::<u8>()
2125 }
2126
2127 #[inline(always)]
2128 fn encode_is_copy() -> bool {
2129 true
2130 }
2131
2132 #[inline(always)]
2133 fn decode_is_copy() -> bool {
2134 false
2135 }
2136 }
2137
2138 impl fidl::encoding::ValueTypeMarker for IsoPacketStatusFlag {
2139 type Borrowed<'a> = Self;
2140 #[inline(always)]
2141 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2142 *value
2143 }
2144 }
2145
2146 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
2147 for IsoPacketStatusFlag
2148 {
2149 #[inline]
2150 unsafe fn encode(
2151 self,
2152 encoder: &mut fidl::encoding::Encoder<'_, D>,
2153 offset: usize,
2154 _depth: fidl::encoding::Depth,
2155 ) -> fidl::Result<()> {
2156 encoder.debug_check_bounds::<Self>(offset);
2157 encoder.write_num(self.into_primitive(), offset);
2158 Ok(())
2159 }
2160 }
2161
2162 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for IsoPacketStatusFlag {
2163 #[inline(always)]
2164 fn new_empty() -> Self {
2165 Self::ValidData
2166 }
2167
2168 #[inline]
2169 unsafe fn decode(
2170 &mut self,
2171 decoder: &mut fidl::encoding::Decoder<'_, D>,
2172 offset: usize,
2173 _depth: fidl::encoding::Depth,
2174 ) -> fidl::Result<()> {
2175 decoder.debug_check_bounds::<Self>(offset);
2176 let prim = decoder.read_num::<u8>(offset);
2177
2178 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
2179 Ok(())
2180 }
2181 }
2182 unsafe impl fidl::encoding::TypeMarker for PeriodicAdvertisingSyncError {
2183 type Owned = Self;
2184
2185 #[inline(always)]
2186 fn inline_align(_context: fidl::encoding::Context) -> usize {
2187 std::mem::align_of::<u32>()
2188 }
2189
2190 #[inline(always)]
2191 fn inline_size(_context: fidl::encoding::Context) -> usize {
2192 std::mem::size_of::<u32>()
2193 }
2194
2195 #[inline(always)]
2196 fn encode_is_copy() -> bool {
2197 false
2198 }
2199
2200 #[inline(always)]
2201 fn decode_is_copy() -> bool {
2202 false
2203 }
2204 }
2205
2206 impl fidl::encoding::ValueTypeMarker for PeriodicAdvertisingSyncError {
2207 type Borrowed<'a> = Self;
2208 #[inline(always)]
2209 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2210 *value
2211 }
2212 }
2213
2214 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
2215 for PeriodicAdvertisingSyncError
2216 {
2217 #[inline]
2218 unsafe fn encode(
2219 self,
2220 encoder: &mut fidl::encoding::Encoder<'_, D>,
2221 offset: usize,
2222 _depth: fidl::encoding::Depth,
2223 ) -> fidl::Result<()> {
2224 encoder.debug_check_bounds::<Self>(offset);
2225 encoder.write_num(self.into_primitive(), offset);
2226 Ok(())
2227 }
2228 }
2229
2230 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2231 for PeriodicAdvertisingSyncError
2232 {
2233 #[inline(always)]
2234 fn new_empty() -> Self {
2235 Self::unknown()
2236 }
2237
2238 #[inline]
2239 unsafe fn decode(
2240 &mut self,
2241 decoder: &mut fidl::encoding::Decoder<'_, D>,
2242 offset: usize,
2243 _depth: fidl::encoding::Depth,
2244 ) -> fidl::Result<()> {
2245 decoder.debug_check_bounds::<Self>(offset);
2246 let prim = decoder.read_num::<u32>(offset);
2247
2248 *self = Self::from_primitive_allow_unknown(prim);
2249 Ok(())
2250 }
2251 }
2252 unsafe impl fidl::encoding::TypeMarker for PeriodicAdvertisingSyncTransferError {
2253 type Owned = Self;
2254
2255 #[inline(always)]
2256 fn inline_align(_context: fidl::encoding::Context) -> usize {
2257 std::mem::align_of::<u32>()
2258 }
2259
2260 #[inline(always)]
2261 fn inline_size(_context: fidl::encoding::Context) -> usize {
2262 std::mem::size_of::<u32>()
2263 }
2264
2265 #[inline(always)]
2266 fn encode_is_copy() -> bool {
2267 false
2268 }
2269
2270 #[inline(always)]
2271 fn decode_is_copy() -> bool {
2272 false
2273 }
2274 }
2275
2276 impl fidl::encoding::ValueTypeMarker for PeriodicAdvertisingSyncTransferError {
2277 type Borrowed<'a> = Self;
2278 #[inline(always)]
2279 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2280 *value
2281 }
2282 }
2283
2284 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
2285 for PeriodicAdvertisingSyncTransferError
2286 {
2287 #[inline]
2288 unsafe fn encode(
2289 self,
2290 encoder: &mut fidl::encoding::Encoder<'_, D>,
2291 offset: usize,
2292 _depth: fidl::encoding::Depth,
2293 ) -> fidl::Result<()> {
2294 encoder.debug_check_bounds::<Self>(offset);
2295 encoder.write_num(self.into_primitive(), offset);
2296 Ok(())
2297 }
2298 }
2299
2300 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2301 for PeriodicAdvertisingSyncTransferError
2302 {
2303 #[inline(always)]
2304 fn new_empty() -> Self {
2305 Self::unknown()
2306 }
2307
2308 #[inline]
2309 unsafe fn decode(
2310 &mut self,
2311 decoder: &mut fidl::encoding::Decoder<'_, D>,
2312 offset: usize,
2313 _depth: fidl::encoding::Depth,
2314 ) -> fidl::Result<()> {
2315 decoder.debug_check_bounds::<Self>(offset);
2316 let prim = decoder.read_num::<u32>(offset);
2317
2318 *self = Self::from_primitive_allow_unknown(prim);
2319 Ok(())
2320 }
2321 }
2322 unsafe impl fidl::encoding::TypeMarker for PeripheralError {
2323 type Owned = Self;
2324
2325 #[inline(always)]
2326 fn inline_align(_context: fidl::encoding::Context) -> usize {
2327 std::mem::align_of::<u32>()
2328 }
2329
2330 #[inline(always)]
2331 fn inline_size(_context: fidl::encoding::Context) -> usize {
2332 std::mem::size_of::<u32>()
2333 }
2334
2335 #[inline(always)]
2336 fn encode_is_copy() -> bool {
2337 true
2338 }
2339
2340 #[inline(always)]
2341 fn decode_is_copy() -> bool {
2342 false
2343 }
2344 }
2345
2346 impl fidl::encoding::ValueTypeMarker for PeripheralError {
2347 type Borrowed<'a> = Self;
2348 #[inline(always)]
2349 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2350 *value
2351 }
2352 }
2353
2354 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
2355 for PeripheralError
2356 {
2357 #[inline]
2358 unsafe fn encode(
2359 self,
2360 encoder: &mut fidl::encoding::Encoder<'_, D>,
2361 offset: usize,
2362 _depth: fidl::encoding::Depth,
2363 ) -> fidl::Result<()> {
2364 encoder.debug_check_bounds::<Self>(offset);
2365 encoder.write_num(self.into_primitive(), offset);
2366 Ok(())
2367 }
2368 }
2369
2370 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for PeripheralError {
2371 #[inline(always)]
2372 fn new_empty() -> Self {
2373 Self::NotSupported
2374 }
2375
2376 #[inline]
2377 unsafe fn decode(
2378 &mut self,
2379 decoder: &mut fidl::encoding::Decoder<'_, D>,
2380 offset: usize,
2381 _depth: fidl::encoding::Depth,
2382 ) -> fidl::Result<()> {
2383 decoder.debug_check_bounds::<Self>(offset);
2384 let prim = decoder.read_num::<u32>(offset);
2385
2386 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
2387 Ok(())
2388 }
2389 }
2390 unsafe impl fidl::encoding::TypeMarker for PhysicalLayer {
2391 type Owned = Self;
2392
2393 #[inline(always)]
2394 fn inline_align(_context: fidl::encoding::Context) -> usize {
2395 std::mem::align_of::<u8>()
2396 }
2397
2398 #[inline(always)]
2399 fn inline_size(_context: fidl::encoding::Context) -> usize {
2400 std::mem::size_of::<u8>()
2401 }
2402
2403 #[inline(always)]
2404 fn encode_is_copy() -> bool {
2405 false
2406 }
2407
2408 #[inline(always)]
2409 fn decode_is_copy() -> bool {
2410 false
2411 }
2412 }
2413
2414 impl fidl::encoding::ValueTypeMarker for PhysicalLayer {
2415 type Borrowed<'a> = Self;
2416 #[inline(always)]
2417 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2418 *value
2419 }
2420 }
2421
2422 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for PhysicalLayer {
2423 #[inline]
2424 unsafe fn encode(
2425 self,
2426 encoder: &mut fidl::encoding::Encoder<'_, D>,
2427 offset: usize,
2428 _depth: fidl::encoding::Depth,
2429 ) -> fidl::Result<()> {
2430 encoder.debug_check_bounds::<Self>(offset);
2431 encoder.write_num(self.into_primitive(), offset);
2432 Ok(())
2433 }
2434 }
2435
2436 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for PhysicalLayer {
2437 #[inline(always)]
2438 fn new_empty() -> Self {
2439 Self::unknown()
2440 }
2441
2442 #[inline]
2443 unsafe fn decode(
2444 &mut self,
2445 decoder: &mut fidl::encoding::Decoder<'_, D>,
2446 offset: usize,
2447 _depth: fidl::encoding::Depth,
2448 ) -> fidl::Result<()> {
2449 decoder.debug_check_bounds::<Self>(offset);
2450 let prim = decoder.read_num::<u8>(offset);
2451
2452 *self = Self::from_primitive_allow_unknown(prim);
2453 Ok(())
2454 }
2455 }
2456
2457 impl fidl::encoding::ValueTypeMarker for AdvertisingDataDeprecated {
2458 type Borrowed<'a> = &'a Self;
2459 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2460 value
2461 }
2462 }
2463
2464 unsafe impl fidl::encoding::TypeMarker for AdvertisingDataDeprecated {
2465 type Owned = Self;
2466
2467 #[inline(always)]
2468 fn inline_align(_context: fidl::encoding::Context) -> usize {
2469 8
2470 }
2471
2472 #[inline(always)]
2473 fn inline_size(_context: fidl::encoding::Context) -> usize {
2474 112
2475 }
2476 }
2477
2478 unsafe impl<D: fidl::encoding::ResourceDialect>
2479 fidl::encoding::Encode<AdvertisingDataDeprecated, D> for &AdvertisingDataDeprecated
2480 {
2481 #[inline]
2482 unsafe fn encode(
2483 self,
2484 encoder: &mut fidl::encoding::Encoder<'_, D>,
2485 offset: usize,
2486 _depth: fidl::encoding::Depth,
2487 ) -> fidl::Result<()> {
2488 encoder.debug_check_bounds::<AdvertisingDataDeprecated>(offset);
2489 fidl::encoding::Encode::<AdvertisingDataDeprecated, D>::encode(
2491 (
2492 <fidl::encoding::Optional<fidl::encoding::BoundedString<248>> as fidl::encoding::ValueTypeMarker>::borrow(&self.name),
2493 <fidl::encoding::Boxed<fidl_fuchsia_bluetooth_common::Int8> as fidl::encoding::ValueTypeMarker>::borrow(&self.tx_power_level),
2494 <fidl::encoding::Boxed<fidl_fuchsia_bluetooth_common::UInt16> as fidl::encoding::ValueTypeMarker>::borrow(&self.appearance),
2495 <fidl::encoding::Optional<fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<36>>> as fidl::encoding::ValueTypeMarker>::borrow(&self.service_uuids),
2496 <fidl::encoding::Optional<fidl::encoding::UnboundedVector<ServiceDataEntry>> as fidl::encoding::ValueTypeMarker>::borrow(&self.service_data),
2497 <fidl::encoding::Optional<fidl::encoding::UnboundedVector<ManufacturerSpecificDataEntry>> as fidl::encoding::ValueTypeMarker>::borrow(&self.manufacturer_specific_data),
2498 <fidl::encoding::Optional<fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<36>>> as fidl::encoding::ValueTypeMarker>::borrow(&self.solicited_service_uuids),
2499 <fidl::encoding::Optional<fidl::encoding::UnboundedVector<fidl::encoding::UnboundedString>> as fidl::encoding::ValueTypeMarker>::borrow(&self.uris),
2500 ),
2501 encoder, offset, _depth
2502 )
2503 }
2504 }
2505 unsafe impl<
2506 D: fidl::encoding::ResourceDialect,
2507 T0: fidl::encoding::Encode<fidl::encoding::Optional<fidl::encoding::BoundedString<248>>, D>,
2508 T1: fidl::encoding::Encode<fidl::encoding::Boxed<fidl_fuchsia_bluetooth_common::Int8>, D>,
2509 T2: fidl::encoding::Encode<fidl::encoding::Boxed<fidl_fuchsia_bluetooth_common::UInt16>, D>,
2510 T3: fidl::encoding::Encode<
2511 fidl::encoding::Optional<
2512 fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<36>>,
2513 >,
2514 D,
2515 >,
2516 T4: fidl::encoding::Encode<
2517 fidl::encoding::Optional<fidl::encoding::UnboundedVector<ServiceDataEntry>>,
2518 D,
2519 >,
2520 T5: fidl::encoding::Encode<
2521 fidl::encoding::Optional<
2522 fidl::encoding::UnboundedVector<ManufacturerSpecificDataEntry>,
2523 >,
2524 D,
2525 >,
2526 T6: fidl::encoding::Encode<
2527 fidl::encoding::Optional<
2528 fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<36>>,
2529 >,
2530 D,
2531 >,
2532 T7: fidl::encoding::Encode<
2533 fidl::encoding::Optional<
2534 fidl::encoding::UnboundedVector<fidl::encoding::UnboundedString>,
2535 >,
2536 D,
2537 >,
2538 > fidl::encoding::Encode<AdvertisingDataDeprecated, D> for (T0, T1, T2, T3, T4, T5, T6, T7)
2539 {
2540 #[inline]
2541 unsafe fn encode(
2542 self,
2543 encoder: &mut fidl::encoding::Encoder<'_, D>,
2544 offset: usize,
2545 depth: fidl::encoding::Depth,
2546 ) -> fidl::Result<()> {
2547 encoder.debug_check_bounds::<AdvertisingDataDeprecated>(offset);
2548 self.0.encode(encoder, offset + 0, depth)?;
2552 self.1.encode(encoder, offset + 16, depth)?;
2553 self.2.encode(encoder, offset + 24, depth)?;
2554 self.3.encode(encoder, offset + 32, depth)?;
2555 self.4.encode(encoder, offset + 48, depth)?;
2556 self.5.encode(encoder, offset + 64, depth)?;
2557 self.6.encode(encoder, offset + 80, depth)?;
2558 self.7.encode(encoder, offset + 96, depth)?;
2559 Ok(())
2560 }
2561 }
2562
2563 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2564 for AdvertisingDataDeprecated
2565 {
2566 #[inline(always)]
2567 fn new_empty() -> Self {
2568 Self {
2569 name: fidl::new_empty!(
2570 fidl::encoding::Optional<fidl::encoding::BoundedString<248>>,
2571 D
2572 ),
2573 tx_power_level: fidl::new_empty!(
2574 fidl::encoding::Boxed<fidl_fuchsia_bluetooth_common::Int8>,
2575 D
2576 ),
2577 appearance: fidl::new_empty!(
2578 fidl::encoding::Boxed<fidl_fuchsia_bluetooth_common::UInt16>,
2579 D
2580 ),
2581 service_uuids: fidl::new_empty!(
2582 fidl::encoding::Optional<
2583 fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<36>>,
2584 >,
2585 D
2586 ),
2587 service_data: fidl::new_empty!(
2588 fidl::encoding::Optional<fidl::encoding::UnboundedVector<ServiceDataEntry>>,
2589 D
2590 ),
2591 manufacturer_specific_data: fidl::new_empty!(
2592 fidl::encoding::Optional<
2593 fidl::encoding::UnboundedVector<ManufacturerSpecificDataEntry>,
2594 >,
2595 D
2596 ),
2597 solicited_service_uuids: fidl::new_empty!(
2598 fidl::encoding::Optional<
2599 fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<36>>,
2600 >,
2601 D
2602 ),
2603 uris: fidl::new_empty!(
2604 fidl::encoding::Optional<
2605 fidl::encoding::UnboundedVector<fidl::encoding::UnboundedString>,
2606 >,
2607 D
2608 ),
2609 }
2610 }
2611
2612 #[inline]
2613 unsafe fn decode(
2614 &mut self,
2615 decoder: &mut fidl::encoding::Decoder<'_, D>,
2616 offset: usize,
2617 _depth: fidl::encoding::Depth,
2618 ) -> fidl::Result<()> {
2619 decoder.debug_check_bounds::<Self>(offset);
2620 fidl::decode!(
2622 fidl::encoding::Optional<fidl::encoding::BoundedString<248>>,
2623 D,
2624 &mut self.name,
2625 decoder,
2626 offset + 0,
2627 _depth
2628 )?;
2629 fidl::decode!(
2630 fidl::encoding::Boxed<fidl_fuchsia_bluetooth_common::Int8>,
2631 D,
2632 &mut self.tx_power_level,
2633 decoder,
2634 offset + 16,
2635 _depth
2636 )?;
2637 fidl::decode!(
2638 fidl::encoding::Boxed<fidl_fuchsia_bluetooth_common::UInt16>,
2639 D,
2640 &mut self.appearance,
2641 decoder,
2642 offset + 24,
2643 _depth
2644 )?;
2645 fidl::decode!(
2646 fidl::encoding::Optional<
2647 fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<36>>,
2648 >,
2649 D,
2650 &mut self.service_uuids,
2651 decoder,
2652 offset + 32,
2653 _depth
2654 )?;
2655 fidl::decode!(
2656 fidl::encoding::Optional<fidl::encoding::UnboundedVector<ServiceDataEntry>>,
2657 D,
2658 &mut self.service_data,
2659 decoder,
2660 offset + 48,
2661 _depth
2662 )?;
2663 fidl::decode!(
2664 fidl::encoding::Optional<
2665 fidl::encoding::UnboundedVector<ManufacturerSpecificDataEntry>,
2666 >,
2667 D,
2668 &mut self.manufacturer_specific_data,
2669 decoder,
2670 offset + 64,
2671 _depth
2672 )?;
2673 fidl::decode!(
2674 fidl::encoding::Optional<
2675 fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<36>>,
2676 >,
2677 D,
2678 &mut self.solicited_service_uuids,
2679 decoder,
2680 offset + 80,
2681 _depth
2682 )?;
2683 fidl::decode!(
2684 fidl::encoding::Optional<
2685 fidl::encoding::UnboundedVector<fidl::encoding::UnboundedString>,
2686 >,
2687 D,
2688 &mut self.uris,
2689 decoder,
2690 offset + 96,
2691 _depth
2692 )?;
2693 Ok(())
2694 }
2695 }
2696
2697 impl fidl::encoding::ValueTypeMarker for CentralConnectPeripheralResponse {
2698 type Borrowed<'a> = &'a Self;
2699 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2700 value
2701 }
2702 }
2703
2704 unsafe impl fidl::encoding::TypeMarker for CentralConnectPeripheralResponse {
2705 type Owned = Self;
2706
2707 #[inline(always)]
2708 fn inline_align(_context: fidl::encoding::Context) -> usize {
2709 8
2710 }
2711
2712 #[inline(always)]
2713 fn inline_size(_context: fidl::encoding::Context) -> usize {
2714 8
2715 }
2716 }
2717
2718 unsafe impl<D: fidl::encoding::ResourceDialect>
2719 fidl::encoding::Encode<CentralConnectPeripheralResponse, D>
2720 for &CentralConnectPeripheralResponse
2721 {
2722 #[inline]
2723 unsafe fn encode(
2724 self,
2725 encoder: &mut fidl::encoding::Encoder<'_, D>,
2726 offset: usize,
2727 _depth: fidl::encoding::Depth,
2728 ) -> fidl::Result<()> {
2729 encoder.debug_check_bounds::<CentralConnectPeripheralResponse>(offset);
2730 fidl::encoding::Encode::<CentralConnectPeripheralResponse, D>::encode(
2732 (
2733 <fidl_fuchsia_bluetooth_common::Status as fidl::encoding::ValueTypeMarker>::borrow(&self.status),
2734 ),
2735 encoder, offset, _depth
2736 )
2737 }
2738 }
2739 unsafe impl<
2740 D: fidl::encoding::ResourceDialect,
2741 T0: fidl::encoding::Encode<fidl_fuchsia_bluetooth_common::Status, D>,
2742 > fidl::encoding::Encode<CentralConnectPeripheralResponse, D> for (T0,)
2743 {
2744 #[inline]
2745 unsafe fn encode(
2746 self,
2747 encoder: &mut fidl::encoding::Encoder<'_, D>,
2748 offset: usize,
2749 depth: fidl::encoding::Depth,
2750 ) -> fidl::Result<()> {
2751 encoder.debug_check_bounds::<CentralConnectPeripheralResponse>(offset);
2752 self.0.encode(encoder, offset + 0, depth)?;
2756 Ok(())
2757 }
2758 }
2759
2760 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2761 for CentralConnectPeripheralResponse
2762 {
2763 #[inline(always)]
2764 fn new_empty() -> Self {
2765 Self { status: fidl::new_empty!(fidl_fuchsia_bluetooth_common::Status, D) }
2766 }
2767
2768 #[inline]
2769 unsafe fn decode(
2770 &mut self,
2771 decoder: &mut fidl::encoding::Decoder<'_, D>,
2772 offset: usize,
2773 _depth: fidl::encoding::Depth,
2774 ) -> fidl::Result<()> {
2775 decoder.debug_check_bounds::<Self>(offset);
2776 fidl::decode!(
2778 fidl_fuchsia_bluetooth_common::Status,
2779 D,
2780 &mut self.status,
2781 decoder,
2782 offset + 0,
2783 _depth
2784 )?;
2785 Ok(())
2786 }
2787 }
2788
2789 impl fidl::encoding::ValueTypeMarker for CentralDisconnectPeripheralRequest {
2790 type Borrowed<'a> = &'a Self;
2791 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2792 value
2793 }
2794 }
2795
2796 unsafe impl fidl::encoding::TypeMarker for CentralDisconnectPeripheralRequest {
2797 type Owned = Self;
2798
2799 #[inline(always)]
2800 fn inline_align(_context: fidl::encoding::Context) -> usize {
2801 8
2802 }
2803
2804 #[inline(always)]
2805 fn inline_size(_context: fidl::encoding::Context) -> usize {
2806 16
2807 }
2808 }
2809
2810 unsafe impl<D: fidl::encoding::ResourceDialect>
2811 fidl::encoding::Encode<CentralDisconnectPeripheralRequest, D>
2812 for &CentralDisconnectPeripheralRequest
2813 {
2814 #[inline]
2815 unsafe fn encode(
2816 self,
2817 encoder: &mut fidl::encoding::Encoder<'_, D>,
2818 offset: usize,
2819 _depth: fidl::encoding::Depth,
2820 ) -> fidl::Result<()> {
2821 encoder.debug_check_bounds::<CentralDisconnectPeripheralRequest>(offset);
2822 fidl::encoding::Encode::<CentralDisconnectPeripheralRequest, D>::encode(
2824 (<fidl::encoding::BoundedString<16> as fidl::encoding::ValueTypeMarker>::borrow(
2825 &self.identifier,
2826 ),),
2827 encoder,
2828 offset,
2829 _depth,
2830 )
2831 }
2832 }
2833 unsafe impl<
2834 D: fidl::encoding::ResourceDialect,
2835 T0: fidl::encoding::Encode<fidl::encoding::BoundedString<16>, D>,
2836 > fidl::encoding::Encode<CentralDisconnectPeripheralRequest, D> for (T0,)
2837 {
2838 #[inline]
2839 unsafe fn encode(
2840 self,
2841 encoder: &mut fidl::encoding::Encoder<'_, D>,
2842 offset: usize,
2843 depth: fidl::encoding::Depth,
2844 ) -> fidl::Result<()> {
2845 encoder.debug_check_bounds::<CentralDisconnectPeripheralRequest>(offset);
2846 self.0.encode(encoder, offset + 0, depth)?;
2850 Ok(())
2851 }
2852 }
2853
2854 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2855 for CentralDisconnectPeripheralRequest
2856 {
2857 #[inline(always)]
2858 fn new_empty() -> Self {
2859 Self { identifier: fidl::new_empty!(fidl::encoding::BoundedString<16>, D) }
2860 }
2861
2862 #[inline]
2863 unsafe fn decode(
2864 &mut self,
2865 decoder: &mut fidl::encoding::Decoder<'_, D>,
2866 offset: usize,
2867 _depth: fidl::encoding::Depth,
2868 ) -> fidl::Result<()> {
2869 decoder.debug_check_bounds::<Self>(offset);
2870 fidl::decode!(
2872 fidl::encoding::BoundedString<16>,
2873 D,
2874 &mut self.identifier,
2875 decoder,
2876 offset + 0,
2877 _depth
2878 )?;
2879 Ok(())
2880 }
2881 }
2882
2883 impl fidl::encoding::ValueTypeMarker for CentralDisconnectPeripheralResponse {
2884 type Borrowed<'a> = &'a Self;
2885 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2886 value
2887 }
2888 }
2889
2890 unsafe impl fidl::encoding::TypeMarker for CentralDisconnectPeripheralResponse {
2891 type Owned = Self;
2892
2893 #[inline(always)]
2894 fn inline_align(_context: fidl::encoding::Context) -> usize {
2895 8
2896 }
2897
2898 #[inline(always)]
2899 fn inline_size(_context: fidl::encoding::Context) -> usize {
2900 8
2901 }
2902 }
2903
2904 unsafe impl<D: fidl::encoding::ResourceDialect>
2905 fidl::encoding::Encode<CentralDisconnectPeripheralResponse, D>
2906 for &CentralDisconnectPeripheralResponse
2907 {
2908 #[inline]
2909 unsafe fn encode(
2910 self,
2911 encoder: &mut fidl::encoding::Encoder<'_, D>,
2912 offset: usize,
2913 _depth: fidl::encoding::Depth,
2914 ) -> fidl::Result<()> {
2915 encoder.debug_check_bounds::<CentralDisconnectPeripheralResponse>(offset);
2916 fidl::encoding::Encode::<CentralDisconnectPeripheralResponse, D>::encode(
2918 (
2919 <fidl_fuchsia_bluetooth_common::Status as fidl::encoding::ValueTypeMarker>::borrow(&self.status),
2920 ),
2921 encoder, offset, _depth
2922 )
2923 }
2924 }
2925 unsafe impl<
2926 D: fidl::encoding::ResourceDialect,
2927 T0: fidl::encoding::Encode<fidl_fuchsia_bluetooth_common::Status, D>,
2928 > fidl::encoding::Encode<CentralDisconnectPeripheralResponse, D> for (T0,)
2929 {
2930 #[inline]
2931 unsafe fn encode(
2932 self,
2933 encoder: &mut fidl::encoding::Encoder<'_, D>,
2934 offset: usize,
2935 depth: fidl::encoding::Depth,
2936 ) -> fidl::Result<()> {
2937 encoder.debug_check_bounds::<CentralDisconnectPeripheralResponse>(offset);
2938 self.0.encode(encoder, offset + 0, depth)?;
2942 Ok(())
2943 }
2944 }
2945
2946 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2947 for CentralDisconnectPeripheralResponse
2948 {
2949 #[inline(always)]
2950 fn new_empty() -> Self {
2951 Self { status: fidl::new_empty!(fidl_fuchsia_bluetooth_common::Status, D) }
2952 }
2953
2954 #[inline]
2955 unsafe fn decode(
2956 &mut self,
2957 decoder: &mut fidl::encoding::Decoder<'_, D>,
2958 offset: usize,
2959 _depth: fidl::encoding::Depth,
2960 ) -> fidl::Result<()> {
2961 decoder.debug_check_bounds::<Self>(offset);
2962 fidl::decode!(
2964 fidl_fuchsia_bluetooth_common::Status,
2965 D,
2966 &mut self.status,
2967 decoder,
2968 offset + 0,
2969 _depth
2970 )?;
2971 Ok(())
2972 }
2973 }
2974
2975 impl fidl::encoding::ValueTypeMarker for CentralGetPeripheralRequest {
2976 type Borrowed<'a> = &'a Self;
2977 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2978 value
2979 }
2980 }
2981
2982 unsafe impl fidl::encoding::TypeMarker for CentralGetPeripheralRequest {
2983 type Owned = Self;
2984
2985 #[inline(always)]
2986 fn inline_align(_context: fidl::encoding::Context) -> usize {
2987 8
2988 }
2989
2990 #[inline(always)]
2991 fn inline_size(_context: fidl::encoding::Context) -> usize {
2992 16
2993 }
2994 }
2995
2996 unsafe impl<D: fidl::encoding::ResourceDialect>
2997 fidl::encoding::Encode<CentralGetPeripheralRequest, D> for &CentralGetPeripheralRequest
2998 {
2999 #[inline]
3000 unsafe fn encode(
3001 self,
3002 encoder: &mut fidl::encoding::Encoder<'_, D>,
3003 offset: usize,
3004 _depth: fidl::encoding::Depth,
3005 ) -> fidl::Result<()> {
3006 encoder.debug_check_bounds::<CentralGetPeripheralRequest>(offset);
3007 fidl::encoding::Encode::<CentralGetPeripheralRequest, D>::encode(
3009 (<fidl::encoding::BoundedString<16> as fidl::encoding::ValueTypeMarker>::borrow(
3010 &self.identifier,
3011 ),),
3012 encoder,
3013 offset,
3014 _depth,
3015 )
3016 }
3017 }
3018 unsafe impl<
3019 D: fidl::encoding::ResourceDialect,
3020 T0: fidl::encoding::Encode<fidl::encoding::BoundedString<16>, D>,
3021 > fidl::encoding::Encode<CentralGetPeripheralRequest, D> for (T0,)
3022 {
3023 #[inline]
3024 unsafe fn encode(
3025 self,
3026 encoder: &mut fidl::encoding::Encoder<'_, D>,
3027 offset: usize,
3028 depth: fidl::encoding::Depth,
3029 ) -> fidl::Result<()> {
3030 encoder.debug_check_bounds::<CentralGetPeripheralRequest>(offset);
3031 self.0.encode(encoder, offset + 0, depth)?;
3035 Ok(())
3036 }
3037 }
3038
3039 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3040 for CentralGetPeripheralRequest
3041 {
3042 #[inline(always)]
3043 fn new_empty() -> Self {
3044 Self { identifier: fidl::new_empty!(fidl::encoding::BoundedString<16>, D) }
3045 }
3046
3047 #[inline]
3048 unsafe fn decode(
3049 &mut self,
3050 decoder: &mut fidl::encoding::Decoder<'_, D>,
3051 offset: usize,
3052 _depth: fidl::encoding::Depth,
3053 ) -> fidl::Result<()> {
3054 decoder.debug_check_bounds::<Self>(offset);
3055 fidl::decode!(
3057 fidl::encoding::BoundedString<16>,
3058 D,
3059 &mut self.identifier,
3060 decoder,
3061 offset + 0,
3062 _depth
3063 )?;
3064 Ok(())
3065 }
3066 }
3067
3068 impl fidl::encoding::ValueTypeMarker for CentralGetPeripheralResponse {
3069 type Borrowed<'a> = &'a Self;
3070 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3071 value
3072 }
3073 }
3074
3075 unsafe impl fidl::encoding::TypeMarker for CentralGetPeripheralResponse {
3076 type Owned = Self;
3077
3078 #[inline(always)]
3079 fn inline_align(_context: fidl::encoding::Context) -> usize {
3080 8
3081 }
3082
3083 #[inline(always)]
3084 fn inline_size(_context: fidl::encoding::Context) -> usize {
3085 8
3086 }
3087 }
3088
3089 unsafe impl<D: fidl::encoding::ResourceDialect>
3090 fidl::encoding::Encode<CentralGetPeripheralResponse, D> for &CentralGetPeripheralResponse
3091 {
3092 #[inline]
3093 unsafe fn encode(
3094 self,
3095 encoder: &mut fidl::encoding::Encoder<'_, D>,
3096 offset: usize,
3097 _depth: fidl::encoding::Depth,
3098 ) -> fidl::Result<()> {
3099 encoder.debug_check_bounds::<CentralGetPeripheralResponse>(offset);
3100 fidl::encoding::Encode::<CentralGetPeripheralResponse, D>::encode(
3102 (<fidl::encoding::Boxed<RemoteDevice> as fidl::encoding::ValueTypeMarker>::borrow(
3103 &self.peripheral,
3104 ),),
3105 encoder,
3106 offset,
3107 _depth,
3108 )
3109 }
3110 }
3111 unsafe impl<
3112 D: fidl::encoding::ResourceDialect,
3113 T0: fidl::encoding::Encode<fidl::encoding::Boxed<RemoteDevice>, D>,
3114 > fidl::encoding::Encode<CentralGetPeripheralResponse, D> for (T0,)
3115 {
3116 #[inline]
3117 unsafe fn encode(
3118 self,
3119 encoder: &mut fidl::encoding::Encoder<'_, D>,
3120 offset: usize,
3121 depth: fidl::encoding::Depth,
3122 ) -> fidl::Result<()> {
3123 encoder.debug_check_bounds::<CentralGetPeripheralResponse>(offset);
3124 self.0.encode(encoder, offset + 0, depth)?;
3128 Ok(())
3129 }
3130 }
3131
3132 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3133 for CentralGetPeripheralResponse
3134 {
3135 #[inline(always)]
3136 fn new_empty() -> Self {
3137 Self { peripheral: fidl::new_empty!(fidl::encoding::Boxed<RemoteDevice>, D) }
3138 }
3139
3140 #[inline]
3141 unsafe fn decode(
3142 &mut self,
3143 decoder: &mut fidl::encoding::Decoder<'_, D>,
3144 offset: usize,
3145 _depth: fidl::encoding::Depth,
3146 ) -> fidl::Result<()> {
3147 decoder.debug_check_bounds::<Self>(offset);
3148 fidl::decode!(
3150 fidl::encoding::Boxed<RemoteDevice>,
3151 D,
3152 &mut self.peripheral,
3153 decoder,
3154 offset + 0,
3155 _depth
3156 )?;
3157 Ok(())
3158 }
3159 }
3160
3161 impl fidl::encoding::ValueTypeMarker for CentralGetPeripheralsRequest {
3162 type Borrowed<'a> = &'a Self;
3163 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3164 value
3165 }
3166 }
3167
3168 unsafe impl fidl::encoding::TypeMarker for CentralGetPeripheralsRequest {
3169 type Owned = Self;
3170
3171 #[inline(always)]
3172 fn inline_align(_context: fidl::encoding::Context) -> usize {
3173 8
3174 }
3175
3176 #[inline(always)]
3177 fn inline_size(_context: fidl::encoding::Context) -> usize {
3178 16
3179 }
3180 }
3181
3182 unsafe impl<D: fidl::encoding::ResourceDialect>
3183 fidl::encoding::Encode<CentralGetPeripheralsRequest, D> for &CentralGetPeripheralsRequest
3184 {
3185 #[inline]
3186 unsafe fn encode(
3187 self,
3188 encoder: &mut fidl::encoding::Encoder<'_, D>,
3189 offset: usize,
3190 _depth: fidl::encoding::Depth,
3191 ) -> fidl::Result<()> {
3192 encoder.debug_check_bounds::<CentralGetPeripheralsRequest>(offset);
3193 fidl::encoding::Encode::<CentralGetPeripheralsRequest, D>::encode(
3195 (<fidl::encoding::Optional<
3196 fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<36>>,
3197 > as fidl::encoding::ValueTypeMarker>::borrow(&self.service_uuids),),
3198 encoder,
3199 offset,
3200 _depth,
3201 )
3202 }
3203 }
3204 unsafe impl<
3205 D: fidl::encoding::ResourceDialect,
3206 T0: fidl::encoding::Encode<
3207 fidl::encoding::Optional<
3208 fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<36>>,
3209 >,
3210 D,
3211 >,
3212 > fidl::encoding::Encode<CentralGetPeripheralsRequest, D> for (T0,)
3213 {
3214 #[inline]
3215 unsafe fn encode(
3216 self,
3217 encoder: &mut fidl::encoding::Encoder<'_, D>,
3218 offset: usize,
3219 depth: fidl::encoding::Depth,
3220 ) -> fidl::Result<()> {
3221 encoder.debug_check_bounds::<CentralGetPeripheralsRequest>(offset);
3222 self.0.encode(encoder, offset + 0, depth)?;
3226 Ok(())
3227 }
3228 }
3229
3230 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3231 for CentralGetPeripheralsRequest
3232 {
3233 #[inline(always)]
3234 fn new_empty() -> Self {
3235 Self {
3236 service_uuids: fidl::new_empty!(
3237 fidl::encoding::Optional<
3238 fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<36>>,
3239 >,
3240 D
3241 ),
3242 }
3243 }
3244
3245 #[inline]
3246 unsafe fn decode(
3247 &mut self,
3248 decoder: &mut fidl::encoding::Decoder<'_, D>,
3249 offset: usize,
3250 _depth: fidl::encoding::Depth,
3251 ) -> fidl::Result<()> {
3252 decoder.debug_check_bounds::<Self>(offset);
3253 fidl::decode!(
3255 fidl::encoding::Optional<
3256 fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<36>>,
3257 >,
3258 D,
3259 &mut self.service_uuids,
3260 decoder,
3261 offset + 0,
3262 _depth
3263 )?;
3264 Ok(())
3265 }
3266 }
3267
3268 impl fidl::encoding::ValueTypeMarker for CentralGetPeripheralsResponse {
3269 type Borrowed<'a> = &'a Self;
3270 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3271 value
3272 }
3273 }
3274
3275 unsafe impl fidl::encoding::TypeMarker for CentralGetPeripheralsResponse {
3276 type Owned = Self;
3277
3278 #[inline(always)]
3279 fn inline_align(_context: fidl::encoding::Context) -> usize {
3280 8
3281 }
3282
3283 #[inline(always)]
3284 fn inline_size(_context: fidl::encoding::Context) -> usize {
3285 16
3286 }
3287 }
3288
3289 unsafe impl<D: fidl::encoding::ResourceDialect>
3290 fidl::encoding::Encode<CentralGetPeripheralsResponse, D>
3291 for &CentralGetPeripheralsResponse
3292 {
3293 #[inline]
3294 unsafe fn encode(
3295 self,
3296 encoder: &mut fidl::encoding::Encoder<'_, D>,
3297 offset: usize,
3298 _depth: fidl::encoding::Depth,
3299 ) -> fidl::Result<()> {
3300 encoder.debug_check_bounds::<CentralGetPeripheralsResponse>(offset);
3301 fidl::encoding::Encode::<CentralGetPeripheralsResponse, D>::encode(
3303 (
3304 <fidl::encoding::UnboundedVector<RemoteDevice> as fidl::encoding::ValueTypeMarker>::borrow(&self.peripherals),
3305 ),
3306 encoder, offset, _depth
3307 )
3308 }
3309 }
3310 unsafe impl<
3311 D: fidl::encoding::ResourceDialect,
3312 T0: fidl::encoding::Encode<fidl::encoding::UnboundedVector<RemoteDevice>, D>,
3313 > fidl::encoding::Encode<CentralGetPeripheralsResponse, D> for (T0,)
3314 {
3315 #[inline]
3316 unsafe fn encode(
3317 self,
3318 encoder: &mut fidl::encoding::Encoder<'_, D>,
3319 offset: usize,
3320 depth: fidl::encoding::Depth,
3321 ) -> fidl::Result<()> {
3322 encoder.debug_check_bounds::<CentralGetPeripheralsResponse>(offset);
3323 self.0.encode(encoder, offset + 0, depth)?;
3327 Ok(())
3328 }
3329 }
3330
3331 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3332 for CentralGetPeripheralsResponse
3333 {
3334 #[inline(always)]
3335 fn new_empty() -> Self {
3336 Self { peripherals: fidl::new_empty!(fidl::encoding::UnboundedVector<RemoteDevice>, D) }
3337 }
3338
3339 #[inline]
3340 unsafe fn decode(
3341 &mut self,
3342 decoder: &mut fidl::encoding::Decoder<'_, D>,
3343 offset: usize,
3344 _depth: fidl::encoding::Depth,
3345 ) -> fidl::Result<()> {
3346 decoder.debug_check_bounds::<Self>(offset);
3347 fidl::decode!(
3349 fidl::encoding::UnboundedVector<RemoteDevice>,
3350 D,
3351 &mut self.peripherals,
3352 decoder,
3353 offset + 0,
3354 _depth
3355 )?;
3356 Ok(())
3357 }
3358 }
3359
3360 impl fidl::encoding::ValueTypeMarker for CentralOnDeviceDiscoveredRequest {
3361 type Borrowed<'a> = &'a Self;
3362 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3363 value
3364 }
3365 }
3366
3367 unsafe impl fidl::encoding::TypeMarker for CentralOnDeviceDiscoveredRequest {
3368 type Owned = Self;
3369
3370 #[inline(always)]
3371 fn inline_align(_context: fidl::encoding::Context) -> usize {
3372 8
3373 }
3374
3375 #[inline(always)]
3376 fn inline_size(_context: fidl::encoding::Context) -> usize {
3377 40
3378 }
3379 }
3380
3381 unsafe impl<D: fidl::encoding::ResourceDialect>
3382 fidl::encoding::Encode<CentralOnDeviceDiscoveredRequest, D>
3383 for &CentralOnDeviceDiscoveredRequest
3384 {
3385 #[inline]
3386 unsafe fn encode(
3387 self,
3388 encoder: &mut fidl::encoding::Encoder<'_, D>,
3389 offset: usize,
3390 _depth: fidl::encoding::Depth,
3391 ) -> fidl::Result<()> {
3392 encoder.debug_check_bounds::<CentralOnDeviceDiscoveredRequest>(offset);
3393 fidl::encoding::Encode::<CentralOnDeviceDiscoveredRequest, D>::encode(
3395 (<RemoteDevice as fidl::encoding::ValueTypeMarker>::borrow(&self.device),),
3396 encoder,
3397 offset,
3398 _depth,
3399 )
3400 }
3401 }
3402 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<RemoteDevice, D>>
3403 fidl::encoding::Encode<CentralOnDeviceDiscoveredRequest, D> for (T0,)
3404 {
3405 #[inline]
3406 unsafe fn encode(
3407 self,
3408 encoder: &mut fidl::encoding::Encoder<'_, D>,
3409 offset: usize,
3410 depth: fidl::encoding::Depth,
3411 ) -> fidl::Result<()> {
3412 encoder.debug_check_bounds::<CentralOnDeviceDiscoveredRequest>(offset);
3413 self.0.encode(encoder, offset + 0, depth)?;
3417 Ok(())
3418 }
3419 }
3420
3421 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3422 for CentralOnDeviceDiscoveredRequest
3423 {
3424 #[inline(always)]
3425 fn new_empty() -> Self {
3426 Self { device: fidl::new_empty!(RemoteDevice, D) }
3427 }
3428
3429 #[inline]
3430 unsafe fn decode(
3431 &mut self,
3432 decoder: &mut fidl::encoding::Decoder<'_, D>,
3433 offset: usize,
3434 _depth: fidl::encoding::Depth,
3435 ) -> fidl::Result<()> {
3436 decoder.debug_check_bounds::<Self>(offset);
3437 fidl::decode!(RemoteDevice, D, &mut self.device, decoder, offset + 0, _depth)?;
3439 Ok(())
3440 }
3441 }
3442
3443 impl fidl::encoding::ValueTypeMarker for CentralOnPeripheralDisconnectedRequest {
3444 type Borrowed<'a> = &'a Self;
3445 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3446 value
3447 }
3448 }
3449
3450 unsafe impl fidl::encoding::TypeMarker for CentralOnPeripheralDisconnectedRequest {
3451 type Owned = Self;
3452
3453 #[inline(always)]
3454 fn inline_align(_context: fidl::encoding::Context) -> usize {
3455 8
3456 }
3457
3458 #[inline(always)]
3459 fn inline_size(_context: fidl::encoding::Context) -> usize {
3460 16
3461 }
3462 }
3463
3464 unsafe impl<D: fidl::encoding::ResourceDialect>
3465 fidl::encoding::Encode<CentralOnPeripheralDisconnectedRequest, D>
3466 for &CentralOnPeripheralDisconnectedRequest
3467 {
3468 #[inline]
3469 unsafe fn encode(
3470 self,
3471 encoder: &mut fidl::encoding::Encoder<'_, D>,
3472 offset: usize,
3473 _depth: fidl::encoding::Depth,
3474 ) -> fidl::Result<()> {
3475 encoder.debug_check_bounds::<CentralOnPeripheralDisconnectedRequest>(offset);
3476 fidl::encoding::Encode::<CentralOnPeripheralDisconnectedRequest, D>::encode(
3478 (<fidl::encoding::BoundedString<16> as fidl::encoding::ValueTypeMarker>::borrow(
3479 &self.identifier,
3480 ),),
3481 encoder,
3482 offset,
3483 _depth,
3484 )
3485 }
3486 }
3487 unsafe impl<
3488 D: fidl::encoding::ResourceDialect,
3489 T0: fidl::encoding::Encode<fidl::encoding::BoundedString<16>, D>,
3490 > fidl::encoding::Encode<CentralOnPeripheralDisconnectedRequest, D> for (T0,)
3491 {
3492 #[inline]
3493 unsafe fn encode(
3494 self,
3495 encoder: &mut fidl::encoding::Encoder<'_, D>,
3496 offset: usize,
3497 depth: fidl::encoding::Depth,
3498 ) -> fidl::Result<()> {
3499 encoder.debug_check_bounds::<CentralOnPeripheralDisconnectedRequest>(offset);
3500 self.0.encode(encoder, offset + 0, depth)?;
3504 Ok(())
3505 }
3506 }
3507
3508 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3509 for CentralOnPeripheralDisconnectedRequest
3510 {
3511 #[inline(always)]
3512 fn new_empty() -> Self {
3513 Self { identifier: fidl::new_empty!(fidl::encoding::BoundedString<16>, D) }
3514 }
3515
3516 #[inline]
3517 unsafe fn decode(
3518 &mut self,
3519 decoder: &mut fidl::encoding::Decoder<'_, D>,
3520 offset: usize,
3521 _depth: fidl::encoding::Depth,
3522 ) -> fidl::Result<()> {
3523 decoder.debug_check_bounds::<Self>(offset);
3524 fidl::decode!(
3526 fidl::encoding::BoundedString<16>,
3527 D,
3528 &mut self.identifier,
3529 decoder,
3530 offset + 0,
3531 _depth
3532 )?;
3533 Ok(())
3534 }
3535 }
3536
3537 impl fidl::encoding::ValueTypeMarker for CentralOnScanStateChangedRequest {
3538 type Borrowed<'a> = &'a Self;
3539 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3540 value
3541 }
3542 }
3543
3544 unsafe impl fidl::encoding::TypeMarker for CentralOnScanStateChangedRequest {
3545 type Owned = Self;
3546
3547 #[inline(always)]
3548 fn inline_align(_context: fidl::encoding::Context) -> usize {
3549 1
3550 }
3551
3552 #[inline(always)]
3553 fn inline_size(_context: fidl::encoding::Context) -> usize {
3554 1
3555 }
3556 }
3557
3558 unsafe impl<D: fidl::encoding::ResourceDialect>
3559 fidl::encoding::Encode<CentralOnScanStateChangedRequest, D>
3560 for &CentralOnScanStateChangedRequest
3561 {
3562 #[inline]
3563 unsafe fn encode(
3564 self,
3565 encoder: &mut fidl::encoding::Encoder<'_, D>,
3566 offset: usize,
3567 _depth: fidl::encoding::Depth,
3568 ) -> fidl::Result<()> {
3569 encoder.debug_check_bounds::<CentralOnScanStateChangedRequest>(offset);
3570 fidl::encoding::Encode::<CentralOnScanStateChangedRequest, D>::encode(
3572 (<bool as fidl::encoding::ValueTypeMarker>::borrow(&self.scanning),),
3573 encoder,
3574 offset,
3575 _depth,
3576 )
3577 }
3578 }
3579 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<bool, D>>
3580 fidl::encoding::Encode<CentralOnScanStateChangedRequest, D> for (T0,)
3581 {
3582 #[inline]
3583 unsafe fn encode(
3584 self,
3585 encoder: &mut fidl::encoding::Encoder<'_, D>,
3586 offset: usize,
3587 depth: fidl::encoding::Depth,
3588 ) -> fidl::Result<()> {
3589 encoder.debug_check_bounds::<CentralOnScanStateChangedRequest>(offset);
3590 self.0.encode(encoder, offset + 0, depth)?;
3594 Ok(())
3595 }
3596 }
3597
3598 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3599 for CentralOnScanStateChangedRequest
3600 {
3601 #[inline(always)]
3602 fn new_empty() -> Self {
3603 Self { scanning: fidl::new_empty!(bool, D) }
3604 }
3605
3606 #[inline]
3607 unsafe fn decode(
3608 &mut self,
3609 decoder: &mut fidl::encoding::Decoder<'_, D>,
3610 offset: usize,
3611 _depth: fidl::encoding::Depth,
3612 ) -> fidl::Result<()> {
3613 decoder.debug_check_bounds::<Self>(offset);
3614 fidl::decode!(bool, D, &mut self.scanning, decoder, offset + 0, _depth)?;
3616 Ok(())
3617 }
3618 }
3619
3620 impl fidl::encoding::ValueTypeMarker for CentralStartScanRequest {
3621 type Borrowed<'a> = &'a Self;
3622 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3623 value
3624 }
3625 }
3626
3627 unsafe impl fidl::encoding::TypeMarker for CentralStartScanRequest {
3628 type Owned = Self;
3629
3630 #[inline(always)]
3631 fn inline_align(_context: fidl::encoding::Context) -> usize {
3632 8
3633 }
3634
3635 #[inline(always)]
3636 fn inline_size(_context: fidl::encoding::Context) -> usize {
3637 8
3638 }
3639 }
3640
3641 unsafe impl<D: fidl::encoding::ResourceDialect>
3642 fidl::encoding::Encode<CentralStartScanRequest, D> for &CentralStartScanRequest
3643 {
3644 #[inline]
3645 unsafe fn encode(
3646 self,
3647 encoder: &mut fidl::encoding::Encoder<'_, D>,
3648 offset: usize,
3649 _depth: fidl::encoding::Depth,
3650 ) -> fidl::Result<()> {
3651 encoder.debug_check_bounds::<CentralStartScanRequest>(offset);
3652 fidl::encoding::Encode::<CentralStartScanRequest, D>::encode(
3654 (<fidl::encoding::Boxed<ScanFilter> as fidl::encoding::ValueTypeMarker>::borrow(
3655 &self.filter,
3656 ),),
3657 encoder,
3658 offset,
3659 _depth,
3660 )
3661 }
3662 }
3663 unsafe impl<
3664 D: fidl::encoding::ResourceDialect,
3665 T0: fidl::encoding::Encode<fidl::encoding::Boxed<ScanFilter>, D>,
3666 > fidl::encoding::Encode<CentralStartScanRequest, D> for (T0,)
3667 {
3668 #[inline]
3669 unsafe fn encode(
3670 self,
3671 encoder: &mut fidl::encoding::Encoder<'_, D>,
3672 offset: usize,
3673 depth: fidl::encoding::Depth,
3674 ) -> fidl::Result<()> {
3675 encoder.debug_check_bounds::<CentralStartScanRequest>(offset);
3676 self.0.encode(encoder, offset + 0, depth)?;
3680 Ok(())
3681 }
3682 }
3683
3684 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3685 for CentralStartScanRequest
3686 {
3687 #[inline(always)]
3688 fn new_empty() -> Self {
3689 Self { filter: fidl::new_empty!(fidl::encoding::Boxed<ScanFilter>, D) }
3690 }
3691
3692 #[inline]
3693 unsafe fn decode(
3694 &mut self,
3695 decoder: &mut fidl::encoding::Decoder<'_, D>,
3696 offset: usize,
3697 _depth: fidl::encoding::Depth,
3698 ) -> fidl::Result<()> {
3699 decoder.debug_check_bounds::<Self>(offset);
3700 fidl::decode!(
3702 fidl::encoding::Boxed<ScanFilter>,
3703 D,
3704 &mut self.filter,
3705 decoder,
3706 offset + 0,
3707 _depth
3708 )?;
3709 Ok(())
3710 }
3711 }
3712
3713 impl fidl::encoding::ValueTypeMarker for CentralStartScanResponse {
3714 type Borrowed<'a> = &'a Self;
3715 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3716 value
3717 }
3718 }
3719
3720 unsafe impl fidl::encoding::TypeMarker for CentralStartScanResponse {
3721 type Owned = Self;
3722
3723 #[inline(always)]
3724 fn inline_align(_context: fidl::encoding::Context) -> usize {
3725 8
3726 }
3727
3728 #[inline(always)]
3729 fn inline_size(_context: fidl::encoding::Context) -> usize {
3730 8
3731 }
3732 }
3733
3734 unsafe impl<D: fidl::encoding::ResourceDialect>
3735 fidl::encoding::Encode<CentralStartScanResponse, D> for &CentralStartScanResponse
3736 {
3737 #[inline]
3738 unsafe fn encode(
3739 self,
3740 encoder: &mut fidl::encoding::Encoder<'_, D>,
3741 offset: usize,
3742 _depth: fidl::encoding::Depth,
3743 ) -> fidl::Result<()> {
3744 encoder.debug_check_bounds::<CentralStartScanResponse>(offset);
3745 fidl::encoding::Encode::<CentralStartScanResponse, D>::encode(
3747 (
3748 <fidl_fuchsia_bluetooth_common::Status as fidl::encoding::ValueTypeMarker>::borrow(&self.status),
3749 ),
3750 encoder, offset, _depth
3751 )
3752 }
3753 }
3754 unsafe impl<
3755 D: fidl::encoding::ResourceDialect,
3756 T0: fidl::encoding::Encode<fidl_fuchsia_bluetooth_common::Status, D>,
3757 > fidl::encoding::Encode<CentralStartScanResponse, D> for (T0,)
3758 {
3759 #[inline]
3760 unsafe fn encode(
3761 self,
3762 encoder: &mut fidl::encoding::Encoder<'_, D>,
3763 offset: usize,
3764 depth: fidl::encoding::Depth,
3765 ) -> fidl::Result<()> {
3766 encoder.debug_check_bounds::<CentralStartScanResponse>(offset);
3767 self.0.encode(encoder, offset + 0, depth)?;
3771 Ok(())
3772 }
3773 }
3774
3775 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3776 for CentralStartScanResponse
3777 {
3778 #[inline(always)]
3779 fn new_empty() -> Self {
3780 Self { status: fidl::new_empty!(fidl_fuchsia_bluetooth_common::Status, D) }
3781 }
3782
3783 #[inline]
3784 unsafe fn decode(
3785 &mut self,
3786 decoder: &mut fidl::encoding::Decoder<'_, D>,
3787 offset: usize,
3788 _depth: fidl::encoding::Depth,
3789 ) -> fidl::Result<()> {
3790 decoder.debug_check_bounds::<Self>(offset);
3791 fidl::decode!(
3793 fidl_fuchsia_bluetooth_common::Status,
3794 D,
3795 &mut self.status,
3796 decoder,
3797 offset + 0,
3798 _depth
3799 )?;
3800 Ok(())
3801 }
3802 }
3803
3804 impl fidl::encoding::ValueTypeMarker for ManufacturerData {
3805 type Borrowed<'a> = &'a Self;
3806 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3807 value
3808 }
3809 }
3810
3811 unsafe impl fidl::encoding::TypeMarker for ManufacturerData {
3812 type Owned = Self;
3813
3814 #[inline(always)]
3815 fn inline_align(_context: fidl::encoding::Context) -> usize {
3816 8
3817 }
3818
3819 #[inline(always)]
3820 fn inline_size(_context: fidl::encoding::Context) -> usize {
3821 24
3822 }
3823 }
3824
3825 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ManufacturerData, D>
3826 for &ManufacturerData
3827 {
3828 #[inline]
3829 unsafe fn encode(
3830 self,
3831 encoder: &mut fidl::encoding::Encoder<'_, D>,
3832 offset: usize,
3833 _depth: fidl::encoding::Depth,
3834 ) -> fidl::Result<()> {
3835 encoder.debug_check_bounds::<ManufacturerData>(offset);
3836 fidl::encoding::Encode::<ManufacturerData, D>::encode(
3838 (
3839 <u16 as fidl::encoding::ValueTypeMarker>::borrow(&self.company_id),
3840 <fidl::encoding::Vector<u8, 252> as fidl::encoding::ValueTypeMarker>::borrow(
3841 &self.data,
3842 ),
3843 ),
3844 encoder,
3845 offset,
3846 _depth,
3847 )
3848 }
3849 }
3850 unsafe impl<
3851 D: fidl::encoding::ResourceDialect,
3852 T0: fidl::encoding::Encode<u16, D>,
3853 T1: fidl::encoding::Encode<fidl::encoding::Vector<u8, 252>, D>,
3854 > fidl::encoding::Encode<ManufacturerData, D> for (T0, T1)
3855 {
3856 #[inline]
3857 unsafe fn encode(
3858 self,
3859 encoder: &mut fidl::encoding::Encoder<'_, D>,
3860 offset: usize,
3861 depth: fidl::encoding::Depth,
3862 ) -> fidl::Result<()> {
3863 encoder.debug_check_bounds::<ManufacturerData>(offset);
3864 unsafe {
3867 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(0);
3868 (ptr as *mut u64).write_unaligned(0);
3869 }
3870 self.0.encode(encoder, offset + 0, depth)?;
3872 self.1.encode(encoder, offset + 8, depth)?;
3873 Ok(())
3874 }
3875 }
3876
3877 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ManufacturerData {
3878 #[inline(always)]
3879 fn new_empty() -> Self {
3880 Self {
3881 company_id: fidl::new_empty!(u16, D),
3882 data: fidl::new_empty!(fidl::encoding::Vector<u8, 252>, D),
3883 }
3884 }
3885
3886 #[inline]
3887 unsafe fn decode(
3888 &mut self,
3889 decoder: &mut fidl::encoding::Decoder<'_, D>,
3890 offset: usize,
3891 _depth: fidl::encoding::Depth,
3892 ) -> fidl::Result<()> {
3893 decoder.debug_check_bounds::<Self>(offset);
3894 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(0) };
3896 let padval = unsafe { (ptr as *const u64).read_unaligned() };
3897 let mask = 0xffffffffffff0000u64;
3898 let maskedval = padval & mask;
3899 if maskedval != 0 {
3900 return Err(fidl::Error::NonZeroPadding {
3901 padding_start: offset + 0 + ((mask as u64).trailing_zeros() / 8) as usize,
3902 });
3903 }
3904 fidl::decode!(u16, D, &mut self.company_id, decoder, offset + 0, _depth)?;
3905 fidl::decode!(fidl::encoding::Vector<u8, 252>, D, &mut self.data, decoder, offset + 8, _depth)?;
3906 Ok(())
3907 }
3908 }
3909
3910 impl fidl::encoding::ValueTypeMarker for ManufacturerSpecificDataEntry {
3911 type Borrowed<'a> = &'a Self;
3912 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3913 value
3914 }
3915 }
3916
3917 unsafe impl fidl::encoding::TypeMarker for ManufacturerSpecificDataEntry {
3918 type Owned = Self;
3919
3920 #[inline(always)]
3921 fn inline_align(_context: fidl::encoding::Context) -> usize {
3922 8
3923 }
3924
3925 #[inline(always)]
3926 fn inline_size(_context: fidl::encoding::Context) -> usize {
3927 24
3928 }
3929 }
3930
3931 unsafe impl<D: fidl::encoding::ResourceDialect>
3932 fidl::encoding::Encode<ManufacturerSpecificDataEntry, D>
3933 for &ManufacturerSpecificDataEntry
3934 {
3935 #[inline]
3936 unsafe fn encode(
3937 self,
3938 encoder: &mut fidl::encoding::Encoder<'_, D>,
3939 offset: usize,
3940 _depth: fidl::encoding::Depth,
3941 ) -> fidl::Result<()> {
3942 encoder.debug_check_bounds::<ManufacturerSpecificDataEntry>(offset);
3943 fidl::encoding::Encode::<ManufacturerSpecificDataEntry, D>::encode(
3945 (
3946 <u16 as fidl::encoding::ValueTypeMarker>::borrow(&self.company_id),
3947 <fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow(&self.data),
3948 ),
3949 encoder, offset, _depth
3950 )
3951 }
3952 }
3953 unsafe impl<
3954 D: fidl::encoding::ResourceDialect,
3955 T0: fidl::encoding::Encode<u16, D>,
3956 T1: fidl::encoding::Encode<fidl::encoding::UnboundedVector<u8>, D>,
3957 > fidl::encoding::Encode<ManufacturerSpecificDataEntry, D> for (T0, T1)
3958 {
3959 #[inline]
3960 unsafe fn encode(
3961 self,
3962 encoder: &mut fidl::encoding::Encoder<'_, D>,
3963 offset: usize,
3964 depth: fidl::encoding::Depth,
3965 ) -> fidl::Result<()> {
3966 encoder.debug_check_bounds::<ManufacturerSpecificDataEntry>(offset);
3967 unsafe {
3970 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(0);
3971 (ptr as *mut u64).write_unaligned(0);
3972 }
3973 self.0.encode(encoder, offset + 0, depth)?;
3975 self.1.encode(encoder, offset + 8, depth)?;
3976 Ok(())
3977 }
3978 }
3979
3980 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3981 for ManufacturerSpecificDataEntry
3982 {
3983 #[inline(always)]
3984 fn new_empty() -> Self {
3985 Self {
3986 company_id: fidl::new_empty!(u16, D),
3987 data: fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D),
3988 }
3989 }
3990
3991 #[inline]
3992 unsafe fn decode(
3993 &mut self,
3994 decoder: &mut fidl::encoding::Decoder<'_, D>,
3995 offset: usize,
3996 _depth: fidl::encoding::Depth,
3997 ) -> fidl::Result<()> {
3998 decoder.debug_check_bounds::<Self>(offset);
3999 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(0) };
4001 let padval = unsafe { (ptr as *const u64).read_unaligned() };
4002 let mask = 0xffffffffffff0000u64;
4003 let maskedval = padval & mask;
4004 if maskedval != 0 {
4005 return Err(fidl::Error::NonZeroPadding {
4006 padding_start: offset + 0 + ((mask as u64).trailing_zeros() / 8) as usize,
4007 });
4008 }
4009 fidl::decode!(u16, D, &mut self.company_id, decoder, offset + 0, _depth)?;
4010 fidl::decode!(
4011 fidl::encoding::UnboundedVector<u8>,
4012 D,
4013 &mut self.data,
4014 decoder,
4015 offset + 8,
4016 _depth
4017 )?;
4018 Ok(())
4019 }
4020 }
4021
4022 impl fidl::encoding::ValueTypeMarker for PeriodicAdvertisingSyncId {
4023 type Borrowed<'a> = &'a Self;
4024 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4025 value
4026 }
4027 }
4028
4029 unsafe impl fidl::encoding::TypeMarker for PeriodicAdvertisingSyncId {
4030 type Owned = Self;
4031
4032 #[inline(always)]
4033 fn inline_align(_context: fidl::encoding::Context) -> usize {
4034 8
4035 }
4036
4037 #[inline(always)]
4038 fn inline_size(_context: fidl::encoding::Context) -> usize {
4039 8
4040 }
4041 #[inline(always)]
4042 fn encode_is_copy() -> bool {
4043 true
4044 }
4045
4046 #[inline(always)]
4047 fn decode_is_copy() -> bool {
4048 true
4049 }
4050 }
4051
4052 unsafe impl<D: fidl::encoding::ResourceDialect>
4053 fidl::encoding::Encode<PeriodicAdvertisingSyncId, D> for &PeriodicAdvertisingSyncId
4054 {
4055 #[inline]
4056 unsafe fn encode(
4057 self,
4058 encoder: &mut fidl::encoding::Encoder<'_, D>,
4059 offset: usize,
4060 _depth: fidl::encoding::Depth,
4061 ) -> fidl::Result<()> {
4062 encoder.debug_check_bounds::<PeriodicAdvertisingSyncId>(offset);
4063 unsafe {
4064 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
4066 (buf_ptr as *mut PeriodicAdvertisingSyncId)
4067 .write_unaligned((self as *const PeriodicAdvertisingSyncId).read());
4068 }
4071 Ok(())
4072 }
4073 }
4074 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<u64, D>>
4075 fidl::encoding::Encode<PeriodicAdvertisingSyncId, D> for (T0,)
4076 {
4077 #[inline]
4078 unsafe fn encode(
4079 self,
4080 encoder: &mut fidl::encoding::Encoder<'_, D>,
4081 offset: usize,
4082 depth: fidl::encoding::Depth,
4083 ) -> fidl::Result<()> {
4084 encoder.debug_check_bounds::<PeriodicAdvertisingSyncId>(offset);
4085 self.0.encode(encoder, offset + 0, depth)?;
4089 Ok(())
4090 }
4091 }
4092
4093 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
4094 for PeriodicAdvertisingSyncId
4095 {
4096 #[inline(always)]
4097 fn new_empty() -> Self {
4098 Self { value: fidl::new_empty!(u64, D) }
4099 }
4100
4101 #[inline]
4102 unsafe fn decode(
4103 &mut self,
4104 decoder: &mut fidl::encoding::Decoder<'_, D>,
4105 offset: usize,
4106 _depth: fidl::encoding::Depth,
4107 ) -> fidl::Result<()> {
4108 decoder.debug_check_bounds::<Self>(offset);
4109 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
4110 unsafe {
4113 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 8);
4114 }
4115 Ok(())
4116 }
4117 }
4118
4119 impl fidl::encoding::ValueTypeMarker for PeriodicAdvertisingSyncOnErrorRequest {
4120 type Borrowed<'a> = &'a Self;
4121 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4122 value
4123 }
4124 }
4125
4126 unsafe impl fidl::encoding::TypeMarker for PeriodicAdvertisingSyncOnErrorRequest {
4127 type Owned = Self;
4128
4129 #[inline(always)]
4130 fn inline_align(_context: fidl::encoding::Context) -> usize {
4131 4
4132 }
4133
4134 #[inline(always)]
4135 fn inline_size(_context: fidl::encoding::Context) -> usize {
4136 4
4137 }
4138 }
4139
4140 unsafe impl<D: fidl::encoding::ResourceDialect>
4141 fidl::encoding::Encode<PeriodicAdvertisingSyncOnErrorRequest, D>
4142 for &PeriodicAdvertisingSyncOnErrorRequest
4143 {
4144 #[inline]
4145 unsafe fn encode(
4146 self,
4147 encoder: &mut fidl::encoding::Encoder<'_, D>,
4148 offset: usize,
4149 _depth: fidl::encoding::Depth,
4150 ) -> fidl::Result<()> {
4151 encoder.debug_check_bounds::<PeriodicAdvertisingSyncOnErrorRequest>(offset);
4152 fidl::encoding::Encode::<PeriodicAdvertisingSyncOnErrorRequest, D>::encode(
4154 (<PeriodicAdvertisingSyncError as fidl::encoding::ValueTypeMarker>::borrow(
4155 &self.error,
4156 ),),
4157 encoder,
4158 offset,
4159 _depth,
4160 )
4161 }
4162 }
4163 unsafe impl<
4164 D: fidl::encoding::ResourceDialect,
4165 T0: fidl::encoding::Encode<PeriodicAdvertisingSyncError, D>,
4166 > fidl::encoding::Encode<PeriodicAdvertisingSyncOnErrorRequest, D> for (T0,)
4167 {
4168 #[inline]
4169 unsafe fn encode(
4170 self,
4171 encoder: &mut fidl::encoding::Encoder<'_, D>,
4172 offset: usize,
4173 depth: fidl::encoding::Depth,
4174 ) -> fidl::Result<()> {
4175 encoder.debug_check_bounds::<PeriodicAdvertisingSyncOnErrorRequest>(offset);
4176 self.0.encode(encoder, offset + 0, depth)?;
4180 Ok(())
4181 }
4182 }
4183
4184 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
4185 for PeriodicAdvertisingSyncOnErrorRequest
4186 {
4187 #[inline(always)]
4188 fn new_empty() -> Self {
4189 Self { error: fidl::new_empty!(PeriodicAdvertisingSyncError, D) }
4190 }
4191
4192 #[inline]
4193 unsafe fn decode(
4194 &mut self,
4195 decoder: &mut fidl::encoding::Decoder<'_, D>,
4196 offset: usize,
4197 _depth: fidl::encoding::Depth,
4198 ) -> fidl::Result<()> {
4199 decoder.debug_check_bounds::<Self>(offset);
4200 fidl::decode!(
4202 PeriodicAdvertisingSyncError,
4203 D,
4204 &mut self.error,
4205 decoder,
4206 offset + 0,
4207 _depth
4208 )?;
4209 Ok(())
4210 }
4211 }
4212
4213 impl fidl::encoding::ValueTypeMarker for RemoteDevice {
4214 type Borrowed<'a> = &'a Self;
4215 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4216 value
4217 }
4218 }
4219
4220 unsafe impl fidl::encoding::TypeMarker for RemoteDevice {
4221 type Owned = Self;
4222
4223 #[inline(always)]
4224 fn inline_align(_context: fidl::encoding::Context) -> usize {
4225 8
4226 }
4227
4228 #[inline(always)]
4229 fn inline_size(_context: fidl::encoding::Context) -> usize {
4230 40
4231 }
4232 }
4233
4234 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<RemoteDevice, D>
4235 for &RemoteDevice
4236 {
4237 #[inline]
4238 unsafe fn encode(
4239 self,
4240 encoder: &mut fidl::encoding::Encoder<'_, D>,
4241 offset: usize,
4242 _depth: fidl::encoding::Depth,
4243 ) -> fidl::Result<()> {
4244 encoder.debug_check_bounds::<RemoteDevice>(offset);
4245 fidl::encoding::Encode::<RemoteDevice, D>::encode(
4247 (
4248 <fidl::encoding::BoundedString<16> as fidl::encoding::ValueTypeMarker>::borrow(&self.identifier),
4249 <bool as fidl::encoding::ValueTypeMarker>::borrow(&self.connectable),
4250 <fidl::encoding::Boxed<fidl_fuchsia_bluetooth_common::Int8> as fidl::encoding::ValueTypeMarker>::borrow(&self.rssi),
4251 <fidl::encoding::Boxed<AdvertisingDataDeprecated> as fidl::encoding::ValueTypeMarker>::borrow(&self.advertising_data),
4252 ),
4253 encoder, offset, _depth
4254 )
4255 }
4256 }
4257 unsafe impl<
4258 D: fidl::encoding::ResourceDialect,
4259 T0: fidl::encoding::Encode<fidl::encoding::BoundedString<16>, D>,
4260 T1: fidl::encoding::Encode<bool, D>,
4261 T2: fidl::encoding::Encode<fidl::encoding::Boxed<fidl_fuchsia_bluetooth_common::Int8>, D>,
4262 T3: fidl::encoding::Encode<fidl::encoding::Boxed<AdvertisingDataDeprecated>, D>,
4263 > fidl::encoding::Encode<RemoteDevice, D> for (T0, T1, T2, T3)
4264 {
4265 #[inline]
4266 unsafe fn encode(
4267 self,
4268 encoder: &mut fidl::encoding::Encoder<'_, D>,
4269 offset: usize,
4270 depth: fidl::encoding::Depth,
4271 ) -> fidl::Result<()> {
4272 encoder.debug_check_bounds::<RemoteDevice>(offset);
4273 unsafe {
4276 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(16);
4277 (ptr as *mut u64).write_unaligned(0);
4278 }
4279 self.0.encode(encoder, offset + 0, depth)?;
4281 self.1.encode(encoder, offset + 16, depth)?;
4282 self.2.encode(encoder, offset + 24, depth)?;
4283 self.3.encode(encoder, offset + 32, depth)?;
4284 Ok(())
4285 }
4286 }
4287
4288 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for RemoteDevice {
4289 #[inline(always)]
4290 fn new_empty() -> Self {
4291 Self {
4292 identifier: fidl::new_empty!(fidl::encoding::BoundedString<16>, D),
4293 connectable: fidl::new_empty!(bool, D),
4294 rssi: fidl::new_empty!(
4295 fidl::encoding::Boxed<fidl_fuchsia_bluetooth_common::Int8>,
4296 D
4297 ),
4298 advertising_data: fidl::new_empty!(
4299 fidl::encoding::Boxed<AdvertisingDataDeprecated>,
4300 D
4301 ),
4302 }
4303 }
4304
4305 #[inline]
4306 unsafe fn decode(
4307 &mut self,
4308 decoder: &mut fidl::encoding::Decoder<'_, D>,
4309 offset: usize,
4310 _depth: fidl::encoding::Depth,
4311 ) -> fidl::Result<()> {
4312 decoder.debug_check_bounds::<Self>(offset);
4313 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(16) };
4315 let padval = unsafe { (ptr as *const u64).read_unaligned() };
4316 let mask = 0xffffffffffffff00u64;
4317 let maskedval = padval & mask;
4318 if maskedval != 0 {
4319 return Err(fidl::Error::NonZeroPadding {
4320 padding_start: offset + 16 + ((mask as u64).trailing_zeros() / 8) as usize,
4321 });
4322 }
4323 fidl::decode!(
4324 fidl::encoding::BoundedString<16>,
4325 D,
4326 &mut self.identifier,
4327 decoder,
4328 offset + 0,
4329 _depth
4330 )?;
4331 fidl::decode!(bool, D, &mut self.connectable, decoder, offset + 16, _depth)?;
4332 fidl::decode!(
4333 fidl::encoding::Boxed<fidl_fuchsia_bluetooth_common::Int8>,
4334 D,
4335 &mut self.rssi,
4336 decoder,
4337 offset + 24,
4338 _depth
4339 )?;
4340 fidl::decode!(
4341 fidl::encoding::Boxed<AdvertisingDataDeprecated>,
4342 D,
4343 &mut self.advertising_data,
4344 decoder,
4345 offset + 32,
4346 _depth
4347 )?;
4348 Ok(())
4349 }
4350 }
4351
4352 impl fidl::encoding::ValueTypeMarker for ScanFilter {
4353 type Borrowed<'a> = &'a Self;
4354 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4355 value
4356 }
4357 }
4358
4359 unsafe impl fidl::encoding::TypeMarker for ScanFilter {
4360 type Owned = Self;
4361
4362 #[inline(always)]
4363 fn inline_align(_context: fidl::encoding::Context) -> usize {
4364 8
4365 }
4366
4367 #[inline(always)]
4368 fn inline_size(_context: fidl::encoding::Context) -> usize {
4369 72
4370 }
4371 }
4372
4373 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ScanFilter, D>
4374 for &ScanFilter
4375 {
4376 #[inline]
4377 unsafe fn encode(
4378 self,
4379 encoder: &mut fidl::encoding::Encoder<'_, D>,
4380 offset: usize,
4381 _depth: fidl::encoding::Depth,
4382 ) -> fidl::Result<()> {
4383 encoder.debug_check_bounds::<ScanFilter>(offset);
4384 fidl::encoding::Encode::<ScanFilter, D>::encode(
4386 (
4387 <fidl::encoding::Optional<fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<36>>> as fidl::encoding::ValueTypeMarker>::borrow(&self.service_uuids),
4388 <fidl::encoding::Optional<fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<36>>> as fidl::encoding::ValueTypeMarker>::borrow(&self.service_data_uuids),
4389 <fidl::encoding::Boxed<fidl_fuchsia_bluetooth_common::UInt16> as fidl::encoding::ValueTypeMarker>::borrow(&self.manufacturer_identifier),
4390 <fidl::encoding::Boxed<fidl_fuchsia_bluetooth_common::Bool> as fidl::encoding::ValueTypeMarker>::borrow(&self.connectable),
4391 <fidl::encoding::Optional<fidl::encoding::BoundedString<248>> as fidl::encoding::ValueTypeMarker>::borrow(&self.name_substring),
4392 <fidl::encoding::Boxed<fidl_fuchsia_bluetooth_common::Int8> as fidl::encoding::ValueTypeMarker>::borrow(&self.max_path_loss),
4393 ),
4394 encoder, offset, _depth
4395 )
4396 }
4397 }
4398 unsafe impl<
4399 D: fidl::encoding::ResourceDialect,
4400 T0: fidl::encoding::Encode<
4401 fidl::encoding::Optional<
4402 fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<36>>,
4403 >,
4404 D,
4405 >,
4406 T1: fidl::encoding::Encode<
4407 fidl::encoding::Optional<
4408 fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<36>>,
4409 >,
4410 D,
4411 >,
4412 T2: fidl::encoding::Encode<fidl::encoding::Boxed<fidl_fuchsia_bluetooth_common::UInt16>, D>,
4413 T3: fidl::encoding::Encode<fidl::encoding::Boxed<fidl_fuchsia_bluetooth_common::Bool>, D>,
4414 T4: fidl::encoding::Encode<fidl::encoding::Optional<fidl::encoding::BoundedString<248>>, D>,
4415 T5: fidl::encoding::Encode<fidl::encoding::Boxed<fidl_fuchsia_bluetooth_common::Int8>, D>,
4416 > fidl::encoding::Encode<ScanFilter, D> for (T0, T1, T2, T3, T4, T5)
4417 {
4418 #[inline]
4419 unsafe fn encode(
4420 self,
4421 encoder: &mut fidl::encoding::Encoder<'_, D>,
4422 offset: usize,
4423 depth: fidl::encoding::Depth,
4424 ) -> fidl::Result<()> {
4425 encoder.debug_check_bounds::<ScanFilter>(offset);
4426 self.0.encode(encoder, offset + 0, depth)?;
4430 self.1.encode(encoder, offset + 16, depth)?;
4431 self.2.encode(encoder, offset + 32, depth)?;
4432 self.3.encode(encoder, offset + 40, depth)?;
4433 self.4.encode(encoder, offset + 48, depth)?;
4434 self.5.encode(encoder, offset + 64, depth)?;
4435 Ok(())
4436 }
4437 }
4438
4439 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ScanFilter {
4440 #[inline(always)]
4441 fn new_empty() -> Self {
4442 Self {
4443 service_uuids: fidl::new_empty!(
4444 fidl::encoding::Optional<
4445 fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<36>>,
4446 >,
4447 D
4448 ),
4449 service_data_uuids: fidl::new_empty!(
4450 fidl::encoding::Optional<
4451 fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<36>>,
4452 >,
4453 D
4454 ),
4455 manufacturer_identifier: fidl::new_empty!(
4456 fidl::encoding::Boxed<fidl_fuchsia_bluetooth_common::UInt16>,
4457 D
4458 ),
4459 connectable: fidl::new_empty!(
4460 fidl::encoding::Boxed<fidl_fuchsia_bluetooth_common::Bool>,
4461 D
4462 ),
4463 name_substring: fidl::new_empty!(
4464 fidl::encoding::Optional<fidl::encoding::BoundedString<248>>,
4465 D
4466 ),
4467 max_path_loss: fidl::new_empty!(
4468 fidl::encoding::Boxed<fidl_fuchsia_bluetooth_common::Int8>,
4469 D
4470 ),
4471 }
4472 }
4473
4474 #[inline]
4475 unsafe fn decode(
4476 &mut self,
4477 decoder: &mut fidl::encoding::Decoder<'_, D>,
4478 offset: usize,
4479 _depth: fidl::encoding::Depth,
4480 ) -> fidl::Result<()> {
4481 decoder.debug_check_bounds::<Self>(offset);
4482 fidl::decode!(
4484 fidl::encoding::Optional<
4485 fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<36>>,
4486 >,
4487 D,
4488 &mut self.service_uuids,
4489 decoder,
4490 offset + 0,
4491 _depth
4492 )?;
4493 fidl::decode!(
4494 fidl::encoding::Optional<
4495 fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<36>>,
4496 >,
4497 D,
4498 &mut self.service_data_uuids,
4499 decoder,
4500 offset + 16,
4501 _depth
4502 )?;
4503 fidl::decode!(
4504 fidl::encoding::Boxed<fidl_fuchsia_bluetooth_common::UInt16>,
4505 D,
4506 &mut self.manufacturer_identifier,
4507 decoder,
4508 offset + 32,
4509 _depth
4510 )?;
4511 fidl::decode!(
4512 fidl::encoding::Boxed<fidl_fuchsia_bluetooth_common::Bool>,
4513 D,
4514 &mut self.connectable,
4515 decoder,
4516 offset + 40,
4517 _depth
4518 )?;
4519 fidl::decode!(
4520 fidl::encoding::Optional<fidl::encoding::BoundedString<248>>,
4521 D,
4522 &mut self.name_substring,
4523 decoder,
4524 offset + 48,
4525 _depth
4526 )?;
4527 fidl::decode!(
4528 fidl::encoding::Boxed<fidl_fuchsia_bluetooth_common::Int8>,
4529 D,
4530 &mut self.max_path_loss,
4531 decoder,
4532 offset + 64,
4533 _depth
4534 )?;
4535 Ok(())
4536 }
4537 }
4538
4539 impl fidl::encoding::ValueTypeMarker for ScanResultWatcherWatchResponse {
4540 type Borrowed<'a> = &'a Self;
4541 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4542 value
4543 }
4544 }
4545
4546 unsafe impl fidl::encoding::TypeMarker for ScanResultWatcherWatchResponse {
4547 type Owned = Self;
4548
4549 #[inline(always)]
4550 fn inline_align(_context: fidl::encoding::Context) -> usize {
4551 8
4552 }
4553
4554 #[inline(always)]
4555 fn inline_size(_context: fidl::encoding::Context) -> usize {
4556 16
4557 }
4558 }
4559
4560 unsafe impl<D: fidl::encoding::ResourceDialect>
4561 fidl::encoding::Encode<ScanResultWatcherWatchResponse, D>
4562 for &ScanResultWatcherWatchResponse
4563 {
4564 #[inline]
4565 unsafe fn encode(
4566 self,
4567 encoder: &mut fidl::encoding::Encoder<'_, D>,
4568 offset: usize,
4569 _depth: fidl::encoding::Depth,
4570 ) -> fidl::Result<()> {
4571 encoder.debug_check_bounds::<ScanResultWatcherWatchResponse>(offset);
4572 fidl::encoding::Encode::<ScanResultWatcherWatchResponse, D>::encode(
4574 (
4575 <fidl::encoding::UnboundedVector<Peer> as fidl::encoding::ValueTypeMarker>::borrow(&self.updated),
4576 ),
4577 encoder, offset, _depth
4578 )
4579 }
4580 }
4581 unsafe impl<
4582 D: fidl::encoding::ResourceDialect,
4583 T0: fidl::encoding::Encode<fidl::encoding::UnboundedVector<Peer>, D>,
4584 > fidl::encoding::Encode<ScanResultWatcherWatchResponse, D> for (T0,)
4585 {
4586 #[inline]
4587 unsafe fn encode(
4588 self,
4589 encoder: &mut fidl::encoding::Encoder<'_, D>,
4590 offset: usize,
4591 depth: fidl::encoding::Depth,
4592 ) -> fidl::Result<()> {
4593 encoder.debug_check_bounds::<ScanResultWatcherWatchResponse>(offset);
4594 self.0.encode(encoder, offset + 0, depth)?;
4598 Ok(())
4599 }
4600 }
4601
4602 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
4603 for ScanResultWatcherWatchResponse
4604 {
4605 #[inline(always)]
4606 fn new_empty() -> Self {
4607 Self { updated: fidl::new_empty!(fidl::encoding::UnboundedVector<Peer>, D) }
4608 }
4609
4610 #[inline]
4611 unsafe fn decode(
4612 &mut self,
4613 decoder: &mut fidl::encoding::Decoder<'_, D>,
4614 offset: usize,
4615 _depth: fidl::encoding::Depth,
4616 ) -> fidl::Result<()> {
4617 decoder.debug_check_bounds::<Self>(offset);
4618 fidl::decode!(
4620 fidl::encoding::UnboundedVector<Peer>,
4621 D,
4622 &mut self.updated,
4623 decoder,
4624 offset + 0,
4625 _depth
4626 )?;
4627 Ok(())
4628 }
4629 }
4630
4631 impl fidl::encoding::ValueTypeMarker for ServiceData {
4632 type Borrowed<'a> = &'a Self;
4633 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4634 value
4635 }
4636 }
4637
4638 unsafe impl fidl::encoding::TypeMarker for ServiceData {
4639 type Owned = Self;
4640
4641 #[inline(always)]
4642 fn inline_align(_context: fidl::encoding::Context) -> usize {
4643 8
4644 }
4645
4646 #[inline(always)]
4647 fn inline_size(_context: fidl::encoding::Context) -> usize {
4648 32
4649 }
4650 }
4651
4652 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ServiceData, D>
4653 for &ServiceData
4654 {
4655 #[inline]
4656 unsafe fn encode(
4657 self,
4658 encoder: &mut fidl::encoding::Encoder<'_, D>,
4659 offset: usize,
4660 _depth: fidl::encoding::Depth,
4661 ) -> fidl::Result<()> {
4662 encoder.debug_check_bounds::<ServiceData>(offset);
4663 fidl::encoding::Encode::<ServiceData, D>::encode(
4665 (
4666 <fidl_fuchsia_bluetooth_common::Uuid as fidl::encoding::ValueTypeMarker>::borrow(&self.uuid),
4667 <fidl::encoding::Vector<u8, 252> as fidl::encoding::ValueTypeMarker>::borrow(&self.data),
4668 ),
4669 encoder, offset, _depth
4670 )
4671 }
4672 }
4673 unsafe impl<
4674 D: fidl::encoding::ResourceDialect,
4675 T0: fidl::encoding::Encode<fidl_fuchsia_bluetooth_common::Uuid, D>,
4676 T1: fidl::encoding::Encode<fidl::encoding::Vector<u8, 252>, D>,
4677 > fidl::encoding::Encode<ServiceData, D> for (T0, T1)
4678 {
4679 #[inline]
4680 unsafe fn encode(
4681 self,
4682 encoder: &mut fidl::encoding::Encoder<'_, D>,
4683 offset: usize,
4684 depth: fidl::encoding::Depth,
4685 ) -> fidl::Result<()> {
4686 encoder.debug_check_bounds::<ServiceData>(offset);
4687 self.0.encode(encoder, offset + 0, depth)?;
4691 self.1.encode(encoder, offset + 16, depth)?;
4692 Ok(())
4693 }
4694 }
4695
4696 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ServiceData {
4697 #[inline(always)]
4698 fn new_empty() -> Self {
4699 Self {
4700 uuid: fidl::new_empty!(fidl_fuchsia_bluetooth_common::Uuid, D),
4701 data: fidl::new_empty!(fidl::encoding::Vector<u8, 252>, D),
4702 }
4703 }
4704
4705 #[inline]
4706 unsafe fn decode(
4707 &mut self,
4708 decoder: &mut fidl::encoding::Decoder<'_, D>,
4709 offset: usize,
4710 _depth: fidl::encoding::Depth,
4711 ) -> fidl::Result<()> {
4712 decoder.debug_check_bounds::<Self>(offset);
4713 fidl::decode!(
4715 fidl_fuchsia_bluetooth_common::Uuid,
4716 D,
4717 &mut self.uuid,
4718 decoder,
4719 offset + 0,
4720 _depth
4721 )?;
4722 fidl::decode!(fidl::encoding::Vector<u8, 252>, D, &mut self.data, decoder, offset + 16, _depth)?;
4723 Ok(())
4724 }
4725 }
4726
4727 impl fidl::encoding::ValueTypeMarker for ServiceDataEntry {
4728 type Borrowed<'a> = &'a Self;
4729 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4730 value
4731 }
4732 }
4733
4734 unsafe impl fidl::encoding::TypeMarker for ServiceDataEntry {
4735 type Owned = Self;
4736
4737 #[inline(always)]
4738 fn inline_align(_context: fidl::encoding::Context) -> usize {
4739 8
4740 }
4741
4742 #[inline(always)]
4743 fn inline_size(_context: fidl::encoding::Context) -> usize {
4744 32
4745 }
4746 }
4747
4748 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ServiceDataEntry, D>
4749 for &ServiceDataEntry
4750 {
4751 #[inline]
4752 unsafe fn encode(
4753 self,
4754 encoder: &mut fidl::encoding::Encoder<'_, D>,
4755 offset: usize,
4756 _depth: fidl::encoding::Depth,
4757 ) -> fidl::Result<()> {
4758 encoder.debug_check_bounds::<ServiceDataEntry>(offset);
4759 fidl::encoding::Encode::<ServiceDataEntry, D>::encode(
4761 (
4762 <fidl::encoding::BoundedString<36> as fidl::encoding::ValueTypeMarker>::borrow(&self.uuid),
4763 <fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow(&self.data),
4764 ),
4765 encoder, offset, _depth
4766 )
4767 }
4768 }
4769 unsafe impl<
4770 D: fidl::encoding::ResourceDialect,
4771 T0: fidl::encoding::Encode<fidl::encoding::BoundedString<36>, D>,
4772 T1: fidl::encoding::Encode<fidl::encoding::UnboundedVector<u8>, D>,
4773 > fidl::encoding::Encode<ServiceDataEntry, D> for (T0, T1)
4774 {
4775 #[inline]
4776 unsafe fn encode(
4777 self,
4778 encoder: &mut fidl::encoding::Encoder<'_, D>,
4779 offset: usize,
4780 depth: fidl::encoding::Depth,
4781 ) -> fidl::Result<()> {
4782 encoder.debug_check_bounds::<ServiceDataEntry>(offset);
4783 self.0.encode(encoder, offset + 0, depth)?;
4787 self.1.encode(encoder, offset + 16, depth)?;
4788 Ok(())
4789 }
4790 }
4791
4792 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ServiceDataEntry {
4793 #[inline(always)]
4794 fn new_empty() -> Self {
4795 Self {
4796 uuid: fidl::new_empty!(fidl::encoding::BoundedString<36>, D),
4797 data: fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D),
4798 }
4799 }
4800
4801 #[inline]
4802 unsafe fn decode(
4803 &mut self,
4804 decoder: &mut fidl::encoding::Decoder<'_, D>,
4805 offset: usize,
4806 _depth: fidl::encoding::Depth,
4807 ) -> fidl::Result<()> {
4808 decoder.debug_check_bounds::<Self>(offset);
4809 fidl::decode!(
4811 fidl::encoding::BoundedString<36>,
4812 D,
4813 &mut self.uuid,
4814 decoder,
4815 offset + 0,
4816 _depth
4817 )?;
4818 fidl::decode!(
4819 fidl::encoding::UnboundedVector<u8>,
4820 D,
4821 &mut self.data,
4822 decoder,
4823 offset + 16,
4824 _depth
4825 )?;
4826 Ok(())
4827 }
4828 }
4829
4830 impl AcceptedChannelParameters {
4831 #[inline(always)]
4832 fn max_ordinal_present(&self) -> u64 {
4833 if let Some(_) = self.max_packet_size {
4834 return 2;
4835 }
4836 if let Some(_) = self.accepted_channel_modes {
4837 return 1;
4838 }
4839 0
4840 }
4841 }
4842
4843 impl fidl::encoding::ValueTypeMarker for AcceptedChannelParameters {
4844 type Borrowed<'a> = &'a Self;
4845 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4846 value
4847 }
4848 }
4849
4850 unsafe impl fidl::encoding::TypeMarker for AcceptedChannelParameters {
4851 type Owned = Self;
4852
4853 #[inline(always)]
4854 fn inline_align(_context: fidl::encoding::Context) -> usize {
4855 8
4856 }
4857
4858 #[inline(always)]
4859 fn inline_size(_context: fidl::encoding::Context) -> usize {
4860 16
4861 }
4862 }
4863
4864 unsafe impl<D: fidl::encoding::ResourceDialect>
4865 fidl::encoding::Encode<AcceptedChannelParameters, D> for &AcceptedChannelParameters
4866 {
4867 unsafe fn encode(
4868 self,
4869 encoder: &mut fidl::encoding::Encoder<'_, D>,
4870 offset: usize,
4871 mut depth: fidl::encoding::Depth,
4872 ) -> fidl::Result<()> {
4873 encoder.debug_check_bounds::<AcceptedChannelParameters>(offset);
4874 let max_ordinal: u64 = self.max_ordinal_present();
4876 encoder.write_num(max_ordinal, offset);
4877 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
4878 if max_ordinal == 0 {
4880 return Ok(());
4881 }
4882 depth.increment()?;
4883 let envelope_size = 8;
4884 let bytes_len = max_ordinal as usize * envelope_size;
4885 #[allow(unused_variables)]
4886 let offset = encoder.out_of_line_offset(bytes_len);
4887 let mut _prev_end_offset: usize = 0;
4888 if 1 > max_ordinal {
4889 return Ok(());
4890 }
4891
4892 let cur_offset: usize = (1 - 1) * envelope_size;
4895
4896 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4898
4899 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<fidl_fuchsia_bluetooth_common::ChannelMode>, D>(
4904 self.accepted_channel_modes.as_ref().map(<fidl::encoding::UnboundedVector<fidl_fuchsia_bluetooth_common::ChannelMode> as fidl::encoding::ValueTypeMarker>::borrow),
4905 encoder, offset + cur_offset, depth
4906 )?;
4907
4908 _prev_end_offset = cur_offset + envelope_size;
4909 if 2 > max_ordinal {
4910 return Ok(());
4911 }
4912
4913 let cur_offset: usize = (2 - 1) * envelope_size;
4916
4917 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4919
4920 fidl::encoding::encode_in_envelope_optional::<u16, D>(
4925 self.max_packet_size.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
4926 encoder,
4927 offset + cur_offset,
4928 depth,
4929 )?;
4930
4931 _prev_end_offset = cur_offset + envelope_size;
4932
4933 Ok(())
4934 }
4935 }
4936
4937 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
4938 for AcceptedChannelParameters
4939 {
4940 #[inline(always)]
4941 fn new_empty() -> Self {
4942 Self::default()
4943 }
4944
4945 unsafe fn decode(
4946 &mut self,
4947 decoder: &mut fidl::encoding::Decoder<'_, D>,
4948 offset: usize,
4949 mut depth: fidl::encoding::Depth,
4950 ) -> fidl::Result<()> {
4951 decoder.debug_check_bounds::<Self>(offset);
4952 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
4953 None => return Err(fidl::Error::NotNullable),
4954 Some(len) => len,
4955 };
4956 if len == 0 {
4958 return Ok(());
4959 };
4960 depth.increment()?;
4961 let envelope_size = 8;
4962 let bytes_len = len * envelope_size;
4963 let offset = decoder.out_of_line_offset(bytes_len)?;
4964 let mut _next_ordinal_to_read = 0;
4966 let mut next_offset = offset;
4967 let end_offset = offset + bytes_len;
4968 _next_ordinal_to_read += 1;
4969 if next_offset >= end_offset {
4970 return Ok(());
4971 }
4972
4973 while _next_ordinal_to_read < 1 {
4975 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4976 _next_ordinal_to_read += 1;
4977 next_offset += envelope_size;
4978 }
4979
4980 let next_out_of_line = decoder.next_out_of_line();
4981 let handles_before = decoder.remaining_handles();
4982 if let Some((inlined, num_bytes, num_handles)) =
4983 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4984 {
4985 let member_inline_size = <fidl::encoding::UnboundedVector<
4986 fidl_fuchsia_bluetooth_common::ChannelMode,
4987 > as fidl::encoding::TypeMarker>::inline_size(
4988 decoder.context
4989 );
4990 if inlined != (member_inline_size <= 4) {
4991 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4992 }
4993 let inner_offset;
4994 let mut inner_depth = depth.clone();
4995 if inlined {
4996 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4997 inner_offset = next_offset;
4998 } else {
4999 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5000 inner_depth.increment()?;
5001 }
5002 let val_ref = self.accepted_channel_modes.get_or_insert_with(|| {
5003 fidl::new_empty!(
5004 fidl::encoding::UnboundedVector<fidl_fuchsia_bluetooth_common::ChannelMode>,
5005 D
5006 )
5007 });
5008 fidl::decode!(
5009 fidl::encoding::UnboundedVector<fidl_fuchsia_bluetooth_common::ChannelMode>,
5010 D,
5011 val_ref,
5012 decoder,
5013 inner_offset,
5014 inner_depth
5015 )?;
5016 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5017 {
5018 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5019 }
5020 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5021 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5022 }
5023 }
5024
5025 next_offset += envelope_size;
5026 _next_ordinal_to_read += 1;
5027 if next_offset >= end_offset {
5028 return Ok(());
5029 }
5030
5031 while _next_ordinal_to_read < 2 {
5033 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5034 _next_ordinal_to_read += 1;
5035 next_offset += envelope_size;
5036 }
5037
5038 let next_out_of_line = decoder.next_out_of_line();
5039 let handles_before = decoder.remaining_handles();
5040 if let Some((inlined, num_bytes, num_handles)) =
5041 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5042 {
5043 let member_inline_size =
5044 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5045 if inlined != (member_inline_size <= 4) {
5046 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5047 }
5048 let inner_offset;
5049 let mut inner_depth = depth.clone();
5050 if inlined {
5051 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5052 inner_offset = next_offset;
5053 } else {
5054 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5055 inner_depth.increment()?;
5056 }
5057 let val_ref = self.max_packet_size.get_or_insert_with(|| fidl::new_empty!(u16, D));
5058 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
5059 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5060 {
5061 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5062 }
5063 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5064 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5065 }
5066 }
5067
5068 next_offset += envelope_size;
5069
5070 while next_offset < end_offset {
5072 _next_ordinal_to_read += 1;
5073 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5074 next_offset += envelope_size;
5075 }
5076
5077 Ok(())
5078 }
5079 }
5080
5081 impl AdvertisingData {
5082 #[inline(always)]
5083 fn max_ordinal_present(&self) -> u64 {
5084 if let Some(_) = self.broadcast_name {
5085 return 10;
5086 }
5087 if let Some(_) = self.resolvable_set_identifier {
5088 return 9;
5089 }
5090 if let Some(_) = self.include_tx_power_level {
5091 return 8;
5092 }
5093 if let Some(_) = self.uris {
5094 return 7;
5095 }
5096 if let Some(_) = self.manufacturer_data {
5097 return 6;
5098 }
5099 if let Some(_) = self.service_data {
5100 return 5;
5101 }
5102 if let Some(_) = self.service_uuids {
5103 return 4;
5104 }
5105 if let Some(_) = self.tx_power_level {
5106 return 3;
5107 }
5108 if let Some(_) = self.appearance {
5109 return 2;
5110 }
5111 if let Some(_) = self.name {
5112 return 1;
5113 }
5114 0
5115 }
5116 }
5117
5118 impl fidl::encoding::ValueTypeMarker for AdvertisingData {
5119 type Borrowed<'a> = &'a Self;
5120 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5121 value
5122 }
5123 }
5124
5125 unsafe impl fidl::encoding::TypeMarker for AdvertisingData {
5126 type Owned = Self;
5127
5128 #[inline(always)]
5129 fn inline_align(_context: fidl::encoding::Context) -> usize {
5130 8
5131 }
5132
5133 #[inline(always)]
5134 fn inline_size(_context: fidl::encoding::Context) -> usize {
5135 16
5136 }
5137 }
5138
5139 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<AdvertisingData, D>
5140 for &AdvertisingData
5141 {
5142 unsafe fn encode(
5143 self,
5144 encoder: &mut fidl::encoding::Encoder<'_, D>,
5145 offset: usize,
5146 mut depth: fidl::encoding::Depth,
5147 ) -> fidl::Result<()> {
5148 encoder.debug_check_bounds::<AdvertisingData>(offset);
5149 let max_ordinal: u64 = self.max_ordinal_present();
5151 encoder.write_num(max_ordinal, offset);
5152 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
5153 if max_ordinal == 0 {
5155 return Ok(());
5156 }
5157 depth.increment()?;
5158 let envelope_size = 8;
5159 let bytes_len = max_ordinal as usize * envelope_size;
5160 #[allow(unused_variables)]
5161 let offset = encoder.out_of_line_offset(bytes_len);
5162 let mut _prev_end_offset: usize = 0;
5163 if 1 > max_ordinal {
5164 return Ok(());
5165 }
5166
5167 let cur_offset: usize = (1 - 1) * envelope_size;
5170
5171 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5173
5174 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<248>, D>(
5179 self.name.as_ref().map(
5180 <fidl::encoding::BoundedString<248> as fidl::encoding::ValueTypeMarker>::borrow,
5181 ),
5182 encoder,
5183 offset + cur_offset,
5184 depth,
5185 )?;
5186
5187 _prev_end_offset = cur_offset + envelope_size;
5188 if 2 > max_ordinal {
5189 return Ok(());
5190 }
5191
5192 let cur_offset: usize = (2 - 1) * envelope_size;
5195
5196 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5198
5199 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_bluetooth_common::Appearance, D>(
5204 self.appearance.as_ref().map(<fidl_fuchsia_bluetooth_common::Appearance as fidl::encoding::ValueTypeMarker>::borrow),
5205 encoder, offset + cur_offset, depth
5206 )?;
5207
5208 _prev_end_offset = cur_offset + envelope_size;
5209 if 3 > max_ordinal {
5210 return Ok(());
5211 }
5212
5213 let cur_offset: usize = (3 - 1) * envelope_size;
5216
5217 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5219
5220 fidl::encoding::encode_in_envelope_optional::<i8, D>(
5225 self.tx_power_level.as_ref().map(<i8 as fidl::encoding::ValueTypeMarker>::borrow),
5226 encoder,
5227 offset + cur_offset,
5228 depth,
5229 )?;
5230
5231 _prev_end_offset = cur_offset + envelope_size;
5232 if 4 > max_ordinal {
5233 return Ok(());
5234 }
5235
5236 let cur_offset: usize = (4 - 1) * envelope_size;
5239
5240 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5242
5243 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<fidl_fuchsia_bluetooth_common::Uuid>, D>(
5248 self.service_uuids.as_ref().map(<fidl::encoding::UnboundedVector<fidl_fuchsia_bluetooth_common::Uuid> as fidl::encoding::ValueTypeMarker>::borrow),
5249 encoder, offset + cur_offset, depth
5250 )?;
5251
5252 _prev_end_offset = cur_offset + envelope_size;
5253 if 5 > max_ordinal {
5254 return Ok(());
5255 }
5256
5257 let cur_offset: usize = (5 - 1) * envelope_size;
5260
5261 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5263
5264 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<ServiceData>, D>(
5269 self.service_data.as_ref().map(<fidl::encoding::UnboundedVector<ServiceData> as fidl::encoding::ValueTypeMarker>::borrow),
5270 encoder, offset + cur_offset, depth
5271 )?;
5272
5273 _prev_end_offset = cur_offset + envelope_size;
5274 if 6 > max_ordinal {
5275 return Ok(());
5276 }
5277
5278 let cur_offset: usize = (6 - 1) * envelope_size;
5281
5282 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5284
5285 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<ManufacturerData>, D>(
5290 self.manufacturer_data.as_ref().map(<fidl::encoding::UnboundedVector<ManufacturerData> as fidl::encoding::ValueTypeMarker>::borrow),
5291 encoder, offset + cur_offset, depth
5292 )?;
5293
5294 _prev_end_offset = cur_offset + envelope_size;
5295 if 7 > max_ordinal {
5296 return Ok(());
5297 }
5298
5299 let cur_offset: usize = (7 - 1) * envelope_size;
5302
5303 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5305
5306 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<278>>, D>(
5311 self.uris.as_ref().map(<fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<278>> as fidl::encoding::ValueTypeMarker>::borrow),
5312 encoder, offset + cur_offset, depth
5313 )?;
5314
5315 _prev_end_offset = cur_offset + envelope_size;
5316 if 8 > max_ordinal {
5317 return Ok(());
5318 }
5319
5320 let cur_offset: usize = (8 - 1) * envelope_size;
5323
5324 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5326
5327 fidl::encoding::encode_in_envelope_optional::<bool, D>(
5332 self.include_tx_power_level
5333 .as_ref()
5334 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
5335 encoder,
5336 offset + cur_offset,
5337 depth,
5338 )?;
5339
5340 _prev_end_offset = cur_offset + envelope_size;
5341 if 9 > max_ordinal {
5342 return Ok(());
5343 }
5344
5345 let cur_offset: usize = (9 - 1) * envelope_size;
5348
5349 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5351
5352 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
5357 self.resolvable_set_identifier
5358 .as_ref()
5359 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
5360 encoder,
5361 offset + cur_offset,
5362 depth,
5363 )?;
5364
5365 _prev_end_offset = cur_offset + envelope_size;
5366 if 10 > max_ordinal {
5367 return Ok(());
5368 }
5369
5370 let cur_offset: usize = (10 - 1) * envelope_size;
5373
5374 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5376
5377 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<128>, D>(
5382 self.broadcast_name.as_ref().map(
5383 <fidl::encoding::BoundedString<128> as fidl::encoding::ValueTypeMarker>::borrow,
5384 ),
5385 encoder,
5386 offset + cur_offset,
5387 depth,
5388 )?;
5389
5390 _prev_end_offset = cur_offset + envelope_size;
5391
5392 Ok(())
5393 }
5394 }
5395
5396 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for AdvertisingData {
5397 #[inline(always)]
5398 fn new_empty() -> Self {
5399 Self::default()
5400 }
5401
5402 unsafe fn decode(
5403 &mut self,
5404 decoder: &mut fidl::encoding::Decoder<'_, D>,
5405 offset: usize,
5406 mut depth: fidl::encoding::Depth,
5407 ) -> fidl::Result<()> {
5408 decoder.debug_check_bounds::<Self>(offset);
5409 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
5410 None => return Err(fidl::Error::NotNullable),
5411 Some(len) => len,
5412 };
5413 if len == 0 {
5415 return Ok(());
5416 };
5417 depth.increment()?;
5418 let envelope_size = 8;
5419 let bytes_len = len * envelope_size;
5420 let offset = decoder.out_of_line_offset(bytes_len)?;
5421 let mut _next_ordinal_to_read = 0;
5423 let mut next_offset = offset;
5424 let end_offset = offset + bytes_len;
5425 _next_ordinal_to_read += 1;
5426 if next_offset >= end_offset {
5427 return Ok(());
5428 }
5429
5430 while _next_ordinal_to_read < 1 {
5432 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5433 _next_ordinal_to_read += 1;
5434 next_offset += envelope_size;
5435 }
5436
5437 let next_out_of_line = decoder.next_out_of_line();
5438 let handles_before = decoder.remaining_handles();
5439 if let Some((inlined, num_bytes, num_handles)) =
5440 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5441 {
5442 let member_inline_size =
5443 <fidl::encoding::BoundedString<248> as fidl::encoding::TypeMarker>::inline_size(
5444 decoder.context,
5445 );
5446 if inlined != (member_inline_size <= 4) {
5447 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5448 }
5449 let inner_offset;
5450 let mut inner_depth = depth.clone();
5451 if inlined {
5452 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5453 inner_offset = next_offset;
5454 } else {
5455 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5456 inner_depth.increment()?;
5457 }
5458 let val_ref = self
5459 .name
5460 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<248>, D));
5461 fidl::decode!(
5462 fidl::encoding::BoundedString<248>,
5463 D,
5464 val_ref,
5465 decoder,
5466 inner_offset,
5467 inner_depth
5468 )?;
5469 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5470 {
5471 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5472 }
5473 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5474 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5475 }
5476 }
5477
5478 next_offset += envelope_size;
5479 _next_ordinal_to_read += 1;
5480 if next_offset >= end_offset {
5481 return Ok(());
5482 }
5483
5484 while _next_ordinal_to_read < 2 {
5486 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5487 _next_ordinal_to_read += 1;
5488 next_offset += envelope_size;
5489 }
5490
5491 let next_out_of_line = decoder.next_out_of_line();
5492 let handles_before = decoder.remaining_handles();
5493 if let Some((inlined, num_bytes, num_handles)) =
5494 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5495 {
5496 let member_inline_size = <fidl_fuchsia_bluetooth_common::Appearance as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5497 if inlined != (member_inline_size <= 4) {
5498 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5499 }
5500 let inner_offset;
5501 let mut inner_depth = depth.clone();
5502 if inlined {
5503 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5504 inner_offset = next_offset;
5505 } else {
5506 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5507 inner_depth.increment()?;
5508 }
5509 let val_ref = self.appearance.get_or_insert_with(|| {
5510 fidl::new_empty!(fidl_fuchsia_bluetooth_common::Appearance, D)
5511 });
5512 fidl::decode!(
5513 fidl_fuchsia_bluetooth_common::Appearance,
5514 D,
5515 val_ref,
5516 decoder,
5517 inner_offset,
5518 inner_depth
5519 )?;
5520 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5521 {
5522 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5523 }
5524 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5525 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5526 }
5527 }
5528
5529 next_offset += envelope_size;
5530 _next_ordinal_to_read += 1;
5531 if next_offset >= end_offset {
5532 return Ok(());
5533 }
5534
5535 while _next_ordinal_to_read < 3 {
5537 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5538 _next_ordinal_to_read += 1;
5539 next_offset += envelope_size;
5540 }
5541
5542 let next_out_of_line = decoder.next_out_of_line();
5543 let handles_before = decoder.remaining_handles();
5544 if let Some((inlined, num_bytes, num_handles)) =
5545 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5546 {
5547 let member_inline_size =
5548 <i8 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5549 if inlined != (member_inline_size <= 4) {
5550 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5551 }
5552 let inner_offset;
5553 let mut inner_depth = depth.clone();
5554 if inlined {
5555 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5556 inner_offset = next_offset;
5557 } else {
5558 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5559 inner_depth.increment()?;
5560 }
5561 let val_ref = self.tx_power_level.get_or_insert_with(|| fidl::new_empty!(i8, D));
5562 fidl::decode!(i8, D, val_ref, decoder, inner_offset, inner_depth)?;
5563 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5564 {
5565 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5566 }
5567 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5568 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5569 }
5570 }
5571
5572 next_offset += envelope_size;
5573 _next_ordinal_to_read += 1;
5574 if next_offset >= end_offset {
5575 return Ok(());
5576 }
5577
5578 while _next_ordinal_to_read < 4 {
5580 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5581 _next_ordinal_to_read += 1;
5582 next_offset += envelope_size;
5583 }
5584
5585 let next_out_of_line = decoder.next_out_of_line();
5586 let handles_before = decoder.remaining_handles();
5587 if let Some((inlined, num_bytes, num_handles)) =
5588 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5589 {
5590 let member_inline_size = <fidl::encoding::UnboundedVector<
5591 fidl_fuchsia_bluetooth_common::Uuid,
5592 > as fidl::encoding::TypeMarker>::inline_size(
5593 decoder.context
5594 );
5595 if inlined != (member_inline_size <= 4) {
5596 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5597 }
5598 let inner_offset;
5599 let mut inner_depth = depth.clone();
5600 if inlined {
5601 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5602 inner_offset = next_offset;
5603 } else {
5604 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5605 inner_depth.increment()?;
5606 }
5607 let val_ref = self.service_uuids.get_or_insert_with(|| {
5608 fidl::new_empty!(
5609 fidl::encoding::UnboundedVector<fidl_fuchsia_bluetooth_common::Uuid>,
5610 D
5611 )
5612 });
5613 fidl::decode!(
5614 fidl::encoding::UnboundedVector<fidl_fuchsia_bluetooth_common::Uuid>,
5615 D,
5616 val_ref,
5617 decoder,
5618 inner_offset,
5619 inner_depth
5620 )?;
5621 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5622 {
5623 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5624 }
5625 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5626 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5627 }
5628 }
5629
5630 next_offset += envelope_size;
5631 _next_ordinal_to_read += 1;
5632 if next_offset >= end_offset {
5633 return Ok(());
5634 }
5635
5636 while _next_ordinal_to_read < 5 {
5638 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5639 _next_ordinal_to_read += 1;
5640 next_offset += envelope_size;
5641 }
5642
5643 let next_out_of_line = decoder.next_out_of_line();
5644 let handles_before = decoder.remaining_handles();
5645 if let Some((inlined, num_bytes, num_handles)) =
5646 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5647 {
5648 let member_inline_size = <fidl::encoding::UnboundedVector<ServiceData> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5649 if inlined != (member_inline_size <= 4) {
5650 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5651 }
5652 let inner_offset;
5653 let mut inner_depth = depth.clone();
5654 if inlined {
5655 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5656 inner_offset = next_offset;
5657 } else {
5658 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5659 inner_depth.increment()?;
5660 }
5661 let val_ref = self.service_data.get_or_insert_with(|| {
5662 fidl::new_empty!(fidl::encoding::UnboundedVector<ServiceData>, D)
5663 });
5664 fidl::decode!(
5665 fidl::encoding::UnboundedVector<ServiceData>,
5666 D,
5667 val_ref,
5668 decoder,
5669 inner_offset,
5670 inner_depth
5671 )?;
5672 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5673 {
5674 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5675 }
5676 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5677 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5678 }
5679 }
5680
5681 next_offset += envelope_size;
5682 _next_ordinal_to_read += 1;
5683 if next_offset >= end_offset {
5684 return Ok(());
5685 }
5686
5687 while _next_ordinal_to_read < 6 {
5689 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5690 _next_ordinal_to_read += 1;
5691 next_offset += envelope_size;
5692 }
5693
5694 let next_out_of_line = decoder.next_out_of_line();
5695 let handles_before = decoder.remaining_handles();
5696 if let Some((inlined, num_bytes, num_handles)) =
5697 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5698 {
5699 let member_inline_size = <fidl::encoding::UnboundedVector<ManufacturerData> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5700 if inlined != (member_inline_size <= 4) {
5701 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5702 }
5703 let inner_offset;
5704 let mut inner_depth = depth.clone();
5705 if inlined {
5706 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5707 inner_offset = next_offset;
5708 } else {
5709 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5710 inner_depth.increment()?;
5711 }
5712 let val_ref = self.manufacturer_data.get_or_insert_with(|| {
5713 fidl::new_empty!(fidl::encoding::UnboundedVector<ManufacturerData>, D)
5714 });
5715 fidl::decode!(
5716 fidl::encoding::UnboundedVector<ManufacturerData>,
5717 D,
5718 val_ref,
5719 decoder,
5720 inner_offset,
5721 inner_depth
5722 )?;
5723 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5724 {
5725 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5726 }
5727 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5728 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5729 }
5730 }
5731
5732 next_offset += envelope_size;
5733 _next_ordinal_to_read += 1;
5734 if next_offset >= end_offset {
5735 return Ok(());
5736 }
5737
5738 while _next_ordinal_to_read < 7 {
5740 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5741 _next_ordinal_to_read += 1;
5742 next_offset += envelope_size;
5743 }
5744
5745 let next_out_of_line = decoder.next_out_of_line();
5746 let handles_before = decoder.remaining_handles();
5747 if let Some((inlined, num_bytes, num_handles)) =
5748 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5749 {
5750 let member_inline_size = <fidl::encoding::UnboundedVector<
5751 fidl::encoding::BoundedString<278>,
5752 > as fidl::encoding::TypeMarker>::inline_size(
5753 decoder.context
5754 );
5755 if inlined != (member_inline_size <= 4) {
5756 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5757 }
5758 let inner_offset;
5759 let mut inner_depth = depth.clone();
5760 if inlined {
5761 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5762 inner_offset = next_offset;
5763 } else {
5764 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5765 inner_depth.increment()?;
5766 }
5767 let val_ref = self.uris.get_or_insert_with(|| {
5768 fidl::new_empty!(
5769 fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<278>>,
5770 D
5771 )
5772 });
5773 fidl::decode!(
5774 fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<278>>,
5775 D,
5776 val_ref,
5777 decoder,
5778 inner_offset,
5779 inner_depth
5780 )?;
5781 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5782 {
5783 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5784 }
5785 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5786 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5787 }
5788 }
5789
5790 next_offset += envelope_size;
5791 _next_ordinal_to_read += 1;
5792 if next_offset >= end_offset {
5793 return Ok(());
5794 }
5795
5796 while _next_ordinal_to_read < 8 {
5798 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5799 _next_ordinal_to_read += 1;
5800 next_offset += envelope_size;
5801 }
5802
5803 let next_out_of_line = decoder.next_out_of_line();
5804 let handles_before = decoder.remaining_handles();
5805 if let Some((inlined, num_bytes, num_handles)) =
5806 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5807 {
5808 let member_inline_size =
5809 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5810 if inlined != (member_inline_size <= 4) {
5811 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5812 }
5813 let inner_offset;
5814 let mut inner_depth = depth.clone();
5815 if inlined {
5816 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5817 inner_offset = next_offset;
5818 } else {
5819 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5820 inner_depth.increment()?;
5821 }
5822 let val_ref =
5823 self.include_tx_power_level.get_or_insert_with(|| fidl::new_empty!(bool, D));
5824 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
5825 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5826 {
5827 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5828 }
5829 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5830 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5831 }
5832 }
5833
5834 next_offset += envelope_size;
5835 _next_ordinal_to_read += 1;
5836 if next_offset >= end_offset {
5837 return Ok(());
5838 }
5839
5840 while _next_ordinal_to_read < 9 {
5842 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5843 _next_ordinal_to_read += 1;
5844 next_offset += envelope_size;
5845 }
5846
5847 let next_out_of_line = decoder.next_out_of_line();
5848 let handles_before = decoder.remaining_handles();
5849 if let Some((inlined, num_bytes, num_handles)) =
5850 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5851 {
5852 let member_inline_size =
5853 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
5854 decoder.context,
5855 );
5856 if inlined != (member_inline_size <= 4) {
5857 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5858 }
5859 let inner_offset;
5860 let mut inner_depth = depth.clone();
5861 if inlined {
5862 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5863 inner_offset = next_offset;
5864 } else {
5865 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5866 inner_depth.increment()?;
5867 }
5868 let val_ref = self
5869 .resolvable_set_identifier
5870 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
5871 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
5872 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5873 {
5874 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5875 }
5876 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5877 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5878 }
5879 }
5880
5881 next_offset += envelope_size;
5882 _next_ordinal_to_read += 1;
5883 if next_offset >= end_offset {
5884 return Ok(());
5885 }
5886
5887 while _next_ordinal_to_read < 10 {
5889 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5890 _next_ordinal_to_read += 1;
5891 next_offset += envelope_size;
5892 }
5893
5894 let next_out_of_line = decoder.next_out_of_line();
5895 let handles_before = decoder.remaining_handles();
5896 if let Some((inlined, num_bytes, num_handles)) =
5897 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5898 {
5899 let member_inline_size =
5900 <fidl::encoding::BoundedString<128> as fidl::encoding::TypeMarker>::inline_size(
5901 decoder.context,
5902 );
5903 if inlined != (member_inline_size <= 4) {
5904 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5905 }
5906 let inner_offset;
5907 let mut inner_depth = depth.clone();
5908 if inlined {
5909 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5910 inner_offset = next_offset;
5911 } else {
5912 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5913 inner_depth.increment()?;
5914 }
5915 let val_ref = self
5916 .broadcast_name
5917 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<128>, D));
5918 fidl::decode!(
5919 fidl::encoding::BoundedString<128>,
5920 D,
5921 val_ref,
5922 decoder,
5923 inner_offset,
5924 inner_depth
5925 )?;
5926 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5927 {
5928 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5929 }
5930 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5931 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5932 }
5933 }
5934
5935 next_offset += envelope_size;
5936
5937 while next_offset < end_offset {
5939 _next_ordinal_to_read += 1;
5940 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5941 next_offset += envelope_size;
5942 }
5943
5944 Ok(())
5945 }
5946 }
5947
5948 impl AdvertisingParameters {
5949 #[inline(always)]
5950 fn max_ordinal_present(&self) -> u64 {
5951 if let Some(_) = self.address_type {
5952 return 7;
5953 }
5954 if let Some(_) = self.advertising_procedure {
5955 return 6;
5956 }
5957 if let Some(_) = self.connection_options {
5958 return 5;
5959 }
5960 if let Some(_) = self.connectable {
5961 return 4;
5962 }
5963 if let Some(_) = self.mode_hint {
5964 return 3;
5965 }
5966 if let Some(_) = self.scan_response {
5967 return 2;
5968 }
5969 if let Some(_) = self.data {
5970 return 1;
5971 }
5972 0
5973 }
5974 }
5975
5976 impl fidl::encoding::ValueTypeMarker for AdvertisingParameters {
5977 type Borrowed<'a> = &'a Self;
5978 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5979 value
5980 }
5981 }
5982
5983 unsafe impl fidl::encoding::TypeMarker for AdvertisingParameters {
5984 type Owned = Self;
5985
5986 #[inline(always)]
5987 fn inline_align(_context: fidl::encoding::Context) -> usize {
5988 8
5989 }
5990
5991 #[inline(always)]
5992 fn inline_size(_context: fidl::encoding::Context) -> usize {
5993 16
5994 }
5995 }
5996
5997 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<AdvertisingParameters, D>
5998 for &AdvertisingParameters
5999 {
6000 unsafe fn encode(
6001 self,
6002 encoder: &mut fidl::encoding::Encoder<'_, D>,
6003 offset: usize,
6004 mut depth: fidl::encoding::Depth,
6005 ) -> fidl::Result<()> {
6006 encoder.debug_check_bounds::<AdvertisingParameters>(offset);
6007 let max_ordinal: u64 = self.max_ordinal_present();
6009 encoder.write_num(max_ordinal, offset);
6010 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
6011 if max_ordinal == 0 {
6013 return Ok(());
6014 }
6015 depth.increment()?;
6016 let envelope_size = 8;
6017 let bytes_len = max_ordinal as usize * envelope_size;
6018 #[allow(unused_variables)]
6019 let offset = encoder.out_of_line_offset(bytes_len);
6020 let mut _prev_end_offset: usize = 0;
6021 if 1 > max_ordinal {
6022 return Ok(());
6023 }
6024
6025 let cur_offset: usize = (1 - 1) * envelope_size;
6028
6029 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6031
6032 fidl::encoding::encode_in_envelope_optional::<AdvertisingData, D>(
6037 self.data
6038 .as_ref()
6039 .map(<AdvertisingData as fidl::encoding::ValueTypeMarker>::borrow),
6040 encoder,
6041 offset + cur_offset,
6042 depth,
6043 )?;
6044
6045 _prev_end_offset = cur_offset + envelope_size;
6046 if 2 > max_ordinal {
6047 return Ok(());
6048 }
6049
6050 let cur_offset: usize = (2 - 1) * envelope_size;
6053
6054 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6056
6057 fidl::encoding::encode_in_envelope_optional::<AdvertisingData, D>(
6062 self.scan_response
6063 .as_ref()
6064 .map(<AdvertisingData as fidl::encoding::ValueTypeMarker>::borrow),
6065 encoder,
6066 offset + cur_offset,
6067 depth,
6068 )?;
6069
6070 _prev_end_offset = cur_offset + envelope_size;
6071 if 3 > max_ordinal {
6072 return Ok(());
6073 }
6074
6075 let cur_offset: usize = (3 - 1) * envelope_size;
6078
6079 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6081
6082 fidl::encoding::encode_in_envelope_optional::<AdvertisingModeHint, D>(
6087 self.mode_hint
6088 .as_ref()
6089 .map(<AdvertisingModeHint as fidl::encoding::ValueTypeMarker>::borrow),
6090 encoder,
6091 offset + cur_offset,
6092 depth,
6093 )?;
6094
6095 _prev_end_offset = cur_offset + envelope_size;
6096 if 4 > max_ordinal {
6097 return Ok(());
6098 }
6099
6100 let cur_offset: usize = (4 - 1) * envelope_size;
6103
6104 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6106
6107 fidl::encoding::encode_in_envelope_optional::<bool, D>(
6112 self.connectable.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
6113 encoder,
6114 offset + cur_offset,
6115 depth,
6116 )?;
6117
6118 _prev_end_offset = cur_offset + envelope_size;
6119 if 5 > max_ordinal {
6120 return Ok(());
6121 }
6122
6123 let cur_offset: usize = (5 - 1) * envelope_size;
6126
6127 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6129
6130 fidl::encoding::encode_in_envelope_optional::<ConnectionOptions, D>(
6135 self.connection_options
6136 .as_ref()
6137 .map(<ConnectionOptions as fidl::encoding::ValueTypeMarker>::borrow),
6138 encoder,
6139 offset + cur_offset,
6140 depth,
6141 )?;
6142
6143 _prev_end_offset = cur_offset + envelope_size;
6144 if 6 > max_ordinal {
6145 return Ok(());
6146 }
6147
6148 let cur_offset: usize = (6 - 1) * envelope_size;
6151
6152 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6154
6155 fidl::encoding::encode_in_envelope_optional::<AdvertisingProcedure, D>(
6160 self.advertising_procedure
6161 .as_ref()
6162 .map(<AdvertisingProcedure as fidl::encoding::ValueTypeMarker>::borrow),
6163 encoder,
6164 offset + cur_offset,
6165 depth,
6166 )?;
6167
6168 _prev_end_offset = cur_offset + envelope_size;
6169 if 7 > max_ordinal {
6170 return Ok(());
6171 }
6172
6173 let cur_offset: usize = (7 - 1) * envelope_size;
6176
6177 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6179
6180 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_bluetooth_common::AddressType, D>(
6185 self.address_type.as_ref().map(<fidl_fuchsia_bluetooth_common::AddressType as fidl::encoding::ValueTypeMarker>::borrow),
6186 encoder, offset + cur_offset, depth
6187 )?;
6188
6189 _prev_end_offset = cur_offset + envelope_size;
6190
6191 Ok(())
6192 }
6193 }
6194
6195 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for AdvertisingParameters {
6196 #[inline(always)]
6197 fn new_empty() -> Self {
6198 Self::default()
6199 }
6200
6201 unsafe fn decode(
6202 &mut self,
6203 decoder: &mut fidl::encoding::Decoder<'_, D>,
6204 offset: usize,
6205 mut depth: fidl::encoding::Depth,
6206 ) -> fidl::Result<()> {
6207 decoder.debug_check_bounds::<Self>(offset);
6208 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
6209 None => return Err(fidl::Error::NotNullable),
6210 Some(len) => len,
6211 };
6212 if len == 0 {
6214 return Ok(());
6215 };
6216 depth.increment()?;
6217 let envelope_size = 8;
6218 let bytes_len = len * envelope_size;
6219 let offset = decoder.out_of_line_offset(bytes_len)?;
6220 let mut _next_ordinal_to_read = 0;
6222 let mut next_offset = offset;
6223 let end_offset = offset + bytes_len;
6224 _next_ordinal_to_read += 1;
6225 if next_offset >= end_offset {
6226 return Ok(());
6227 }
6228
6229 while _next_ordinal_to_read < 1 {
6231 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6232 _next_ordinal_to_read += 1;
6233 next_offset += envelope_size;
6234 }
6235
6236 let next_out_of_line = decoder.next_out_of_line();
6237 let handles_before = decoder.remaining_handles();
6238 if let Some((inlined, num_bytes, num_handles)) =
6239 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6240 {
6241 let member_inline_size =
6242 <AdvertisingData as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6243 if inlined != (member_inline_size <= 4) {
6244 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6245 }
6246 let inner_offset;
6247 let mut inner_depth = depth.clone();
6248 if inlined {
6249 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6250 inner_offset = next_offset;
6251 } else {
6252 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6253 inner_depth.increment()?;
6254 }
6255 let val_ref = self.data.get_or_insert_with(|| fidl::new_empty!(AdvertisingData, D));
6256 fidl::decode!(AdvertisingData, D, val_ref, decoder, inner_offset, inner_depth)?;
6257 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6258 {
6259 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6260 }
6261 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6262 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6263 }
6264 }
6265
6266 next_offset += envelope_size;
6267 _next_ordinal_to_read += 1;
6268 if next_offset >= end_offset {
6269 return Ok(());
6270 }
6271
6272 while _next_ordinal_to_read < 2 {
6274 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6275 _next_ordinal_to_read += 1;
6276 next_offset += envelope_size;
6277 }
6278
6279 let next_out_of_line = decoder.next_out_of_line();
6280 let handles_before = decoder.remaining_handles();
6281 if let Some((inlined, num_bytes, num_handles)) =
6282 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6283 {
6284 let member_inline_size =
6285 <AdvertisingData as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6286 if inlined != (member_inline_size <= 4) {
6287 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6288 }
6289 let inner_offset;
6290 let mut inner_depth = depth.clone();
6291 if inlined {
6292 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6293 inner_offset = next_offset;
6294 } else {
6295 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6296 inner_depth.increment()?;
6297 }
6298 let val_ref =
6299 self.scan_response.get_or_insert_with(|| fidl::new_empty!(AdvertisingData, D));
6300 fidl::decode!(AdvertisingData, D, val_ref, decoder, inner_offset, inner_depth)?;
6301 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6302 {
6303 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6304 }
6305 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6306 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6307 }
6308 }
6309
6310 next_offset += envelope_size;
6311 _next_ordinal_to_read += 1;
6312 if next_offset >= end_offset {
6313 return Ok(());
6314 }
6315
6316 while _next_ordinal_to_read < 3 {
6318 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6319 _next_ordinal_to_read += 1;
6320 next_offset += envelope_size;
6321 }
6322
6323 let next_out_of_line = decoder.next_out_of_line();
6324 let handles_before = decoder.remaining_handles();
6325 if let Some((inlined, num_bytes, num_handles)) =
6326 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6327 {
6328 let member_inline_size =
6329 <AdvertisingModeHint as fidl::encoding::TypeMarker>::inline_size(
6330 decoder.context,
6331 );
6332 if inlined != (member_inline_size <= 4) {
6333 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6334 }
6335 let inner_offset;
6336 let mut inner_depth = depth.clone();
6337 if inlined {
6338 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6339 inner_offset = next_offset;
6340 } else {
6341 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6342 inner_depth.increment()?;
6343 }
6344 let val_ref =
6345 self.mode_hint.get_or_insert_with(|| fidl::new_empty!(AdvertisingModeHint, D));
6346 fidl::decode!(AdvertisingModeHint, D, val_ref, decoder, inner_offset, inner_depth)?;
6347 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6348 {
6349 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6350 }
6351 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6352 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6353 }
6354 }
6355
6356 next_offset += envelope_size;
6357 _next_ordinal_to_read += 1;
6358 if next_offset >= end_offset {
6359 return Ok(());
6360 }
6361
6362 while _next_ordinal_to_read < 4 {
6364 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6365 _next_ordinal_to_read += 1;
6366 next_offset += envelope_size;
6367 }
6368
6369 let next_out_of_line = decoder.next_out_of_line();
6370 let handles_before = decoder.remaining_handles();
6371 if let Some((inlined, num_bytes, num_handles)) =
6372 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6373 {
6374 let member_inline_size =
6375 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6376 if inlined != (member_inline_size <= 4) {
6377 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6378 }
6379 let inner_offset;
6380 let mut inner_depth = depth.clone();
6381 if inlined {
6382 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6383 inner_offset = next_offset;
6384 } else {
6385 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6386 inner_depth.increment()?;
6387 }
6388 let val_ref = self.connectable.get_or_insert_with(|| fidl::new_empty!(bool, D));
6389 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
6390 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6391 {
6392 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6393 }
6394 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6395 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6396 }
6397 }
6398
6399 next_offset += envelope_size;
6400 _next_ordinal_to_read += 1;
6401 if next_offset >= end_offset {
6402 return Ok(());
6403 }
6404
6405 while _next_ordinal_to_read < 5 {
6407 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6408 _next_ordinal_to_read += 1;
6409 next_offset += envelope_size;
6410 }
6411
6412 let next_out_of_line = decoder.next_out_of_line();
6413 let handles_before = decoder.remaining_handles();
6414 if let Some((inlined, num_bytes, num_handles)) =
6415 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6416 {
6417 let member_inline_size =
6418 <ConnectionOptions as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6419 if inlined != (member_inline_size <= 4) {
6420 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6421 }
6422 let inner_offset;
6423 let mut inner_depth = depth.clone();
6424 if inlined {
6425 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6426 inner_offset = next_offset;
6427 } else {
6428 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6429 inner_depth.increment()?;
6430 }
6431 let val_ref = self
6432 .connection_options
6433 .get_or_insert_with(|| fidl::new_empty!(ConnectionOptions, D));
6434 fidl::decode!(ConnectionOptions, D, val_ref, decoder, inner_offset, inner_depth)?;
6435 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6436 {
6437 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6438 }
6439 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6440 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6441 }
6442 }
6443
6444 next_offset += envelope_size;
6445 _next_ordinal_to_read += 1;
6446 if next_offset >= end_offset {
6447 return Ok(());
6448 }
6449
6450 while _next_ordinal_to_read < 6 {
6452 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6453 _next_ordinal_to_read += 1;
6454 next_offset += envelope_size;
6455 }
6456
6457 let next_out_of_line = decoder.next_out_of_line();
6458 let handles_before = decoder.remaining_handles();
6459 if let Some((inlined, num_bytes, num_handles)) =
6460 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6461 {
6462 let member_inline_size =
6463 <AdvertisingProcedure as fidl::encoding::TypeMarker>::inline_size(
6464 decoder.context,
6465 );
6466 if inlined != (member_inline_size <= 4) {
6467 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6468 }
6469 let inner_offset;
6470 let mut inner_depth = depth.clone();
6471 if inlined {
6472 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6473 inner_offset = next_offset;
6474 } else {
6475 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6476 inner_depth.increment()?;
6477 }
6478 let val_ref = self
6479 .advertising_procedure
6480 .get_or_insert_with(|| fidl::new_empty!(AdvertisingProcedure, D));
6481 fidl::decode!(
6482 AdvertisingProcedure,
6483 D,
6484 val_ref,
6485 decoder,
6486 inner_offset,
6487 inner_depth
6488 )?;
6489 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6490 {
6491 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6492 }
6493 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6494 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6495 }
6496 }
6497
6498 next_offset += envelope_size;
6499 _next_ordinal_to_read += 1;
6500 if next_offset >= end_offset {
6501 return Ok(());
6502 }
6503
6504 while _next_ordinal_to_read < 7 {
6506 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6507 _next_ordinal_to_read += 1;
6508 next_offset += envelope_size;
6509 }
6510
6511 let next_out_of_line = decoder.next_out_of_line();
6512 let handles_before = decoder.remaining_handles();
6513 if let Some((inlined, num_bytes, num_handles)) =
6514 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6515 {
6516 let member_inline_size = <fidl_fuchsia_bluetooth_common::AddressType as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6517 if inlined != (member_inline_size <= 4) {
6518 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6519 }
6520 let inner_offset;
6521 let mut inner_depth = depth.clone();
6522 if inlined {
6523 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6524 inner_offset = next_offset;
6525 } else {
6526 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6527 inner_depth.increment()?;
6528 }
6529 let val_ref = self.address_type.get_or_insert_with(|| {
6530 fidl::new_empty!(fidl_fuchsia_bluetooth_common::AddressType, D)
6531 });
6532 fidl::decode!(
6533 fidl_fuchsia_bluetooth_common::AddressType,
6534 D,
6535 val_ref,
6536 decoder,
6537 inner_offset,
6538 inner_depth
6539 )?;
6540 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6541 {
6542 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6543 }
6544 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6545 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6546 }
6547 }
6548
6549 next_offset += envelope_size;
6550
6551 while next_offset < end_offset {
6553 _next_ordinal_to_read += 1;
6554 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6555 next_offset += envelope_size;
6556 }
6557
6558 Ok(())
6559 }
6560 }
6561
6562 impl BroadcastIsochronousGroupInfo {
6563 #[inline(always)]
6564 fn max_ordinal_present(&self) -> u64 {
6565 if let Some(_) = self.encryption {
6566 return 4;
6567 }
6568 if let Some(_) = self.phy {
6569 return 3;
6570 }
6571 if let Some(_) = self.max_sdu_size {
6572 return 2;
6573 }
6574 if let Some(_) = self.streams_count {
6575 return 1;
6576 }
6577 0
6578 }
6579 }
6580
6581 impl fidl::encoding::ValueTypeMarker for BroadcastIsochronousGroupInfo {
6582 type Borrowed<'a> = &'a Self;
6583 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6584 value
6585 }
6586 }
6587
6588 unsafe impl fidl::encoding::TypeMarker for BroadcastIsochronousGroupInfo {
6589 type Owned = Self;
6590
6591 #[inline(always)]
6592 fn inline_align(_context: fidl::encoding::Context) -> usize {
6593 8
6594 }
6595
6596 #[inline(always)]
6597 fn inline_size(_context: fidl::encoding::Context) -> usize {
6598 16
6599 }
6600 }
6601
6602 unsafe impl<D: fidl::encoding::ResourceDialect>
6603 fidl::encoding::Encode<BroadcastIsochronousGroupInfo, D>
6604 for &BroadcastIsochronousGroupInfo
6605 {
6606 unsafe fn encode(
6607 self,
6608 encoder: &mut fidl::encoding::Encoder<'_, D>,
6609 offset: usize,
6610 mut depth: fidl::encoding::Depth,
6611 ) -> fidl::Result<()> {
6612 encoder.debug_check_bounds::<BroadcastIsochronousGroupInfo>(offset);
6613 let max_ordinal: u64 = self.max_ordinal_present();
6615 encoder.write_num(max_ordinal, offset);
6616 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
6617 if max_ordinal == 0 {
6619 return Ok(());
6620 }
6621 depth.increment()?;
6622 let envelope_size = 8;
6623 let bytes_len = max_ordinal as usize * envelope_size;
6624 #[allow(unused_variables)]
6625 let offset = encoder.out_of_line_offset(bytes_len);
6626 let mut _prev_end_offset: usize = 0;
6627 if 1 > max_ordinal {
6628 return Ok(());
6629 }
6630
6631 let cur_offset: usize = (1 - 1) * envelope_size;
6634
6635 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6637
6638 fidl::encoding::encode_in_envelope_optional::<u8, D>(
6643 self.streams_count.as_ref().map(<u8 as fidl::encoding::ValueTypeMarker>::borrow),
6644 encoder,
6645 offset + cur_offset,
6646 depth,
6647 )?;
6648
6649 _prev_end_offset = cur_offset + envelope_size;
6650 if 2 > max_ordinal {
6651 return Ok(());
6652 }
6653
6654 let cur_offset: usize = (2 - 1) * envelope_size;
6657
6658 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6660
6661 fidl::encoding::encode_in_envelope_optional::<u16, D>(
6666 self.max_sdu_size.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
6667 encoder,
6668 offset + cur_offset,
6669 depth,
6670 )?;
6671
6672 _prev_end_offset = cur_offset + envelope_size;
6673 if 3 > max_ordinal {
6674 return Ok(());
6675 }
6676
6677 let cur_offset: usize = (3 - 1) * envelope_size;
6680
6681 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6683
6684 fidl::encoding::encode_in_envelope_optional::<PhysicalLayer, D>(
6689 self.phy.as_ref().map(<PhysicalLayer as fidl::encoding::ValueTypeMarker>::borrow),
6690 encoder,
6691 offset + cur_offset,
6692 depth,
6693 )?;
6694
6695 _prev_end_offset = cur_offset + envelope_size;
6696 if 4 > max_ordinal {
6697 return Ok(());
6698 }
6699
6700 let cur_offset: usize = (4 - 1) * envelope_size;
6703
6704 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6706
6707 fidl::encoding::encode_in_envelope_optional::<bool, D>(
6712 self.encryption.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
6713 encoder,
6714 offset + cur_offset,
6715 depth,
6716 )?;
6717
6718 _prev_end_offset = cur_offset + envelope_size;
6719
6720 Ok(())
6721 }
6722 }
6723
6724 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
6725 for BroadcastIsochronousGroupInfo
6726 {
6727 #[inline(always)]
6728 fn new_empty() -> Self {
6729 Self::default()
6730 }
6731
6732 unsafe fn decode(
6733 &mut self,
6734 decoder: &mut fidl::encoding::Decoder<'_, D>,
6735 offset: usize,
6736 mut depth: fidl::encoding::Depth,
6737 ) -> fidl::Result<()> {
6738 decoder.debug_check_bounds::<Self>(offset);
6739 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
6740 None => return Err(fidl::Error::NotNullable),
6741 Some(len) => len,
6742 };
6743 if len == 0 {
6745 return Ok(());
6746 };
6747 depth.increment()?;
6748 let envelope_size = 8;
6749 let bytes_len = len * envelope_size;
6750 let offset = decoder.out_of_line_offset(bytes_len)?;
6751 let mut _next_ordinal_to_read = 0;
6753 let mut next_offset = offset;
6754 let end_offset = offset + bytes_len;
6755 _next_ordinal_to_read += 1;
6756 if next_offset >= end_offset {
6757 return Ok(());
6758 }
6759
6760 while _next_ordinal_to_read < 1 {
6762 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6763 _next_ordinal_to_read += 1;
6764 next_offset += envelope_size;
6765 }
6766
6767 let next_out_of_line = decoder.next_out_of_line();
6768 let handles_before = decoder.remaining_handles();
6769 if let Some((inlined, num_bytes, num_handles)) =
6770 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6771 {
6772 let member_inline_size =
6773 <u8 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6774 if inlined != (member_inline_size <= 4) {
6775 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6776 }
6777 let inner_offset;
6778 let mut inner_depth = depth.clone();
6779 if inlined {
6780 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6781 inner_offset = next_offset;
6782 } else {
6783 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6784 inner_depth.increment()?;
6785 }
6786 let val_ref = self.streams_count.get_or_insert_with(|| fidl::new_empty!(u8, D));
6787 fidl::decode!(u8, D, val_ref, decoder, inner_offset, inner_depth)?;
6788 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6789 {
6790 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6791 }
6792 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6793 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6794 }
6795 }
6796
6797 next_offset += envelope_size;
6798 _next_ordinal_to_read += 1;
6799 if next_offset >= end_offset {
6800 return Ok(());
6801 }
6802
6803 while _next_ordinal_to_read < 2 {
6805 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6806 _next_ordinal_to_read += 1;
6807 next_offset += envelope_size;
6808 }
6809
6810 let next_out_of_line = decoder.next_out_of_line();
6811 let handles_before = decoder.remaining_handles();
6812 if let Some((inlined, num_bytes, num_handles)) =
6813 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6814 {
6815 let member_inline_size =
6816 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6817 if inlined != (member_inline_size <= 4) {
6818 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6819 }
6820 let inner_offset;
6821 let mut inner_depth = depth.clone();
6822 if inlined {
6823 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6824 inner_offset = next_offset;
6825 } else {
6826 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6827 inner_depth.increment()?;
6828 }
6829 let val_ref = self.max_sdu_size.get_or_insert_with(|| fidl::new_empty!(u16, D));
6830 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
6831 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6832 {
6833 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6834 }
6835 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6836 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6837 }
6838 }
6839
6840 next_offset += envelope_size;
6841 _next_ordinal_to_read += 1;
6842 if next_offset >= end_offset {
6843 return Ok(());
6844 }
6845
6846 while _next_ordinal_to_read < 3 {
6848 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6849 _next_ordinal_to_read += 1;
6850 next_offset += envelope_size;
6851 }
6852
6853 let next_out_of_line = decoder.next_out_of_line();
6854 let handles_before = decoder.remaining_handles();
6855 if let Some((inlined, num_bytes, num_handles)) =
6856 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6857 {
6858 let member_inline_size =
6859 <PhysicalLayer as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6860 if inlined != (member_inline_size <= 4) {
6861 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6862 }
6863 let inner_offset;
6864 let mut inner_depth = depth.clone();
6865 if inlined {
6866 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6867 inner_offset = next_offset;
6868 } else {
6869 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6870 inner_depth.increment()?;
6871 }
6872 let val_ref = self.phy.get_or_insert_with(|| fidl::new_empty!(PhysicalLayer, D));
6873 fidl::decode!(PhysicalLayer, D, val_ref, decoder, inner_offset, inner_depth)?;
6874 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6875 {
6876 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6877 }
6878 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6879 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6880 }
6881 }
6882
6883 next_offset += envelope_size;
6884 _next_ordinal_to_read += 1;
6885 if next_offset >= end_offset {
6886 return Ok(());
6887 }
6888
6889 while _next_ordinal_to_read < 4 {
6891 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6892 _next_ordinal_to_read += 1;
6893 next_offset += envelope_size;
6894 }
6895
6896 let next_out_of_line = decoder.next_out_of_line();
6897 let handles_before = decoder.remaining_handles();
6898 if let Some((inlined, num_bytes, num_handles)) =
6899 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6900 {
6901 let member_inline_size =
6902 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6903 if inlined != (member_inline_size <= 4) {
6904 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6905 }
6906 let inner_offset;
6907 let mut inner_depth = depth.clone();
6908 if inlined {
6909 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6910 inner_offset = next_offset;
6911 } else {
6912 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6913 inner_depth.increment()?;
6914 }
6915 let val_ref = self.encryption.get_or_insert_with(|| fidl::new_empty!(bool, D));
6916 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
6917 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6918 {
6919 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6920 }
6921 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6922 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6923 }
6924 }
6925
6926 next_offset += envelope_size;
6927
6928 while next_offset < end_offset {
6930 _next_ordinal_to_read += 1;
6931 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6932 next_offset += envelope_size;
6933 }
6934
6935 Ok(())
6936 }
6937 }
6938
6939 impl BroadcastIsochronousGroupInfoReport {
6940 #[inline(always)]
6941 fn max_ordinal_present(&self) -> u64 {
6942 if let Some(_) = self.timestamp {
6943 return 2;
6944 }
6945 if let Some(_) = self.info {
6946 return 1;
6947 }
6948 0
6949 }
6950 }
6951
6952 impl fidl::encoding::ValueTypeMarker for BroadcastIsochronousGroupInfoReport {
6953 type Borrowed<'a> = &'a Self;
6954 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6955 value
6956 }
6957 }
6958
6959 unsafe impl fidl::encoding::TypeMarker for BroadcastIsochronousGroupInfoReport {
6960 type Owned = Self;
6961
6962 #[inline(always)]
6963 fn inline_align(_context: fidl::encoding::Context) -> usize {
6964 8
6965 }
6966
6967 #[inline(always)]
6968 fn inline_size(_context: fidl::encoding::Context) -> usize {
6969 16
6970 }
6971 }
6972
6973 unsafe impl<D: fidl::encoding::ResourceDialect>
6974 fidl::encoding::Encode<BroadcastIsochronousGroupInfoReport, D>
6975 for &BroadcastIsochronousGroupInfoReport
6976 {
6977 unsafe fn encode(
6978 self,
6979 encoder: &mut fidl::encoding::Encoder<'_, D>,
6980 offset: usize,
6981 mut depth: fidl::encoding::Depth,
6982 ) -> fidl::Result<()> {
6983 encoder.debug_check_bounds::<BroadcastIsochronousGroupInfoReport>(offset);
6984 let max_ordinal: u64 = self.max_ordinal_present();
6986 encoder.write_num(max_ordinal, offset);
6987 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
6988 if max_ordinal == 0 {
6990 return Ok(());
6991 }
6992 depth.increment()?;
6993 let envelope_size = 8;
6994 let bytes_len = max_ordinal as usize * envelope_size;
6995 #[allow(unused_variables)]
6996 let offset = encoder.out_of_line_offset(bytes_len);
6997 let mut _prev_end_offset: usize = 0;
6998 if 1 > max_ordinal {
6999 return Ok(());
7000 }
7001
7002 let cur_offset: usize = (1 - 1) * envelope_size;
7005
7006 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7008
7009 fidl::encoding::encode_in_envelope_optional::<BroadcastIsochronousGroupInfo, D>(
7014 self.info.as_ref().map(
7015 <BroadcastIsochronousGroupInfo as fidl::encoding::ValueTypeMarker>::borrow,
7016 ),
7017 encoder,
7018 offset + cur_offset,
7019 depth,
7020 )?;
7021
7022 _prev_end_offset = cur_offset + envelope_size;
7023 if 2 > max_ordinal {
7024 return Ok(());
7025 }
7026
7027 let cur_offset: usize = (2 - 1) * envelope_size;
7030
7031 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7033
7034 fidl::encoding::encode_in_envelope_optional::<i64, D>(
7039 self.timestamp.as_ref().map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
7040 encoder,
7041 offset + cur_offset,
7042 depth,
7043 )?;
7044
7045 _prev_end_offset = cur_offset + envelope_size;
7046
7047 Ok(())
7048 }
7049 }
7050
7051 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
7052 for BroadcastIsochronousGroupInfoReport
7053 {
7054 #[inline(always)]
7055 fn new_empty() -> Self {
7056 Self::default()
7057 }
7058
7059 unsafe fn decode(
7060 &mut self,
7061 decoder: &mut fidl::encoding::Decoder<'_, D>,
7062 offset: usize,
7063 mut depth: fidl::encoding::Depth,
7064 ) -> fidl::Result<()> {
7065 decoder.debug_check_bounds::<Self>(offset);
7066 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
7067 None => return Err(fidl::Error::NotNullable),
7068 Some(len) => len,
7069 };
7070 if len == 0 {
7072 return Ok(());
7073 };
7074 depth.increment()?;
7075 let envelope_size = 8;
7076 let bytes_len = len * envelope_size;
7077 let offset = decoder.out_of_line_offset(bytes_len)?;
7078 let mut _next_ordinal_to_read = 0;
7080 let mut next_offset = offset;
7081 let end_offset = offset + bytes_len;
7082 _next_ordinal_to_read += 1;
7083 if next_offset >= end_offset {
7084 return Ok(());
7085 }
7086
7087 while _next_ordinal_to_read < 1 {
7089 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7090 _next_ordinal_to_read += 1;
7091 next_offset += envelope_size;
7092 }
7093
7094 let next_out_of_line = decoder.next_out_of_line();
7095 let handles_before = decoder.remaining_handles();
7096 if let Some((inlined, num_bytes, num_handles)) =
7097 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7098 {
7099 let member_inline_size =
7100 <BroadcastIsochronousGroupInfo as fidl::encoding::TypeMarker>::inline_size(
7101 decoder.context,
7102 );
7103 if inlined != (member_inline_size <= 4) {
7104 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7105 }
7106 let inner_offset;
7107 let mut inner_depth = depth.clone();
7108 if inlined {
7109 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7110 inner_offset = next_offset;
7111 } else {
7112 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7113 inner_depth.increment()?;
7114 }
7115 let val_ref = self
7116 .info
7117 .get_or_insert_with(|| fidl::new_empty!(BroadcastIsochronousGroupInfo, D));
7118 fidl::decode!(
7119 BroadcastIsochronousGroupInfo,
7120 D,
7121 val_ref,
7122 decoder,
7123 inner_offset,
7124 inner_depth
7125 )?;
7126 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7127 {
7128 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7129 }
7130 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7131 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7132 }
7133 }
7134
7135 next_offset += envelope_size;
7136 _next_ordinal_to_read += 1;
7137 if next_offset >= end_offset {
7138 return Ok(());
7139 }
7140
7141 while _next_ordinal_to_read < 2 {
7143 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7144 _next_ordinal_to_read += 1;
7145 next_offset += envelope_size;
7146 }
7147
7148 let next_out_of_line = decoder.next_out_of_line();
7149 let handles_before = decoder.remaining_handles();
7150 if let Some((inlined, num_bytes, num_handles)) =
7151 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7152 {
7153 let member_inline_size =
7154 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7155 if inlined != (member_inline_size <= 4) {
7156 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7157 }
7158 let inner_offset;
7159 let mut inner_depth = depth.clone();
7160 if inlined {
7161 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7162 inner_offset = next_offset;
7163 } else {
7164 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7165 inner_depth.increment()?;
7166 }
7167 let val_ref = self.timestamp.get_or_insert_with(|| fidl::new_empty!(i64, D));
7168 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
7169 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7170 {
7171 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7172 }
7173 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7174 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7175 }
7176 }
7177
7178 next_offset += envelope_size;
7179
7180 while next_offset < end_offset {
7182 _next_ordinal_to_read += 1;
7183 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7184 next_offset += envelope_size;
7185 }
7186
7187 Ok(())
7188 }
7189 }
7190
7191 impl CentralCreateConnectedIsochronousGroupResponse {
7192 #[inline(always)]
7193 fn max_ordinal_present(&self) -> u64 {
7194 if let Some(_) = self.cig_id {
7195 return 1;
7196 }
7197 0
7198 }
7199 }
7200
7201 impl fidl::encoding::ValueTypeMarker for CentralCreateConnectedIsochronousGroupResponse {
7202 type Borrowed<'a> = &'a Self;
7203 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7204 value
7205 }
7206 }
7207
7208 unsafe impl fidl::encoding::TypeMarker for CentralCreateConnectedIsochronousGroupResponse {
7209 type Owned = Self;
7210
7211 #[inline(always)]
7212 fn inline_align(_context: fidl::encoding::Context) -> usize {
7213 8
7214 }
7215
7216 #[inline(always)]
7217 fn inline_size(_context: fidl::encoding::Context) -> usize {
7218 16
7219 }
7220 }
7221
7222 unsafe impl<D: fidl::encoding::ResourceDialect>
7223 fidl::encoding::Encode<CentralCreateConnectedIsochronousGroupResponse, D>
7224 for &CentralCreateConnectedIsochronousGroupResponse
7225 {
7226 unsafe fn encode(
7227 self,
7228 encoder: &mut fidl::encoding::Encoder<'_, D>,
7229 offset: usize,
7230 mut depth: fidl::encoding::Depth,
7231 ) -> fidl::Result<()> {
7232 encoder.debug_check_bounds::<CentralCreateConnectedIsochronousGroupResponse>(offset);
7233 let max_ordinal: u64 = self.max_ordinal_present();
7235 encoder.write_num(max_ordinal, offset);
7236 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
7237 if max_ordinal == 0 {
7239 return Ok(());
7240 }
7241 depth.increment()?;
7242 let envelope_size = 8;
7243 let bytes_len = max_ordinal as usize * envelope_size;
7244 #[allow(unused_variables)]
7245 let offset = encoder.out_of_line_offset(bytes_len);
7246 let mut _prev_end_offset: usize = 0;
7247 if 1 > max_ordinal {
7248 return Ok(());
7249 }
7250
7251 let cur_offset: usize = (1 - 1) * envelope_size;
7254
7255 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7257
7258 fidl::encoding::encode_in_envelope_optional::<u8, D>(
7263 self.cig_id.as_ref().map(<u8 as fidl::encoding::ValueTypeMarker>::borrow),
7264 encoder,
7265 offset + cur_offset,
7266 depth,
7267 )?;
7268
7269 _prev_end_offset = cur_offset + envelope_size;
7270
7271 Ok(())
7272 }
7273 }
7274
7275 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
7276 for CentralCreateConnectedIsochronousGroupResponse
7277 {
7278 #[inline(always)]
7279 fn new_empty() -> Self {
7280 Self::default()
7281 }
7282
7283 unsafe fn decode(
7284 &mut self,
7285 decoder: &mut fidl::encoding::Decoder<'_, D>,
7286 offset: usize,
7287 mut depth: fidl::encoding::Depth,
7288 ) -> fidl::Result<()> {
7289 decoder.debug_check_bounds::<Self>(offset);
7290 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
7291 None => return Err(fidl::Error::NotNullable),
7292 Some(len) => len,
7293 };
7294 if len == 0 {
7296 return Ok(());
7297 };
7298 depth.increment()?;
7299 let envelope_size = 8;
7300 let bytes_len = len * envelope_size;
7301 let offset = decoder.out_of_line_offset(bytes_len)?;
7302 let mut _next_ordinal_to_read = 0;
7304 let mut next_offset = offset;
7305 let end_offset = offset + bytes_len;
7306 _next_ordinal_to_read += 1;
7307 if next_offset >= end_offset {
7308 return Ok(());
7309 }
7310
7311 while _next_ordinal_to_read < 1 {
7313 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7314 _next_ordinal_to_read += 1;
7315 next_offset += envelope_size;
7316 }
7317
7318 let next_out_of_line = decoder.next_out_of_line();
7319 let handles_before = decoder.remaining_handles();
7320 if let Some((inlined, num_bytes, num_handles)) =
7321 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7322 {
7323 let member_inline_size =
7324 <u8 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7325 if inlined != (member_inline_size <= 4) {
7326 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7327 }
7328 let inner_offset;
7329 let mut inner_depth = depth.clone();
7330 if inlined {
7331 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7332 inner_offset = next_offset;
7333 } else {
7334 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7335 inner_depth.increment()?;
7336 }
7337 let val_ref = self.cig_id.get_or_insert_with(|| fidl::new_empty!(u8, D));
7338 fidl::decode!(u8, D, val_ref, decoder, inner_offset, inner_depth)?;
7339 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7340 {
7341 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7342 }
7343 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7344 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7345 }
7346 }
7347
7348 next_offset += envelope_size;
7349
7350 while next_offset < end_offset {
7352 _next_ordinal_to_read += 1;
7353 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7354 next_offset += envelope_size;
7355 }
7356
7357 Ok(())
7358 }
7359 }
7360
7361 impl ChannelListenerRegistryListenL2capResponse {
7362 #[inline(always)]
7363 fn max_ordinal_present(&self) -> u64 {
7364 if let Some(_) = self.psm {
7365 return 1;
7366 }
7367 0
7368 }
7369 }
7370
7371 impl fidl::encoding::ValueTypeMarker for ChannelListenerRegistryListenL2capResponse {
7372 type Borrowed<'a> = &'a Self;
7373 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7374 value
7375 }
7376 }
7377
7378 unsafe impl fidl::encoding::TypeMarker for ChannelListenerRegistryListenL2capResponse {
7379 type Owned = Self;
7380
7381 #[inline(always)]
7382 fn inline_align(_context: fidl::encoding::Context) -> usize {
7383 8
7384 }
7385
7386 #[inline(always)]
7387 fn inline_size(_context: fidl::encoding::Context) -> usize {
7388 16
7389 }
7390 }
7391
7392 unsafe impl<D: fidl::encoding::ResourceDialect>
7393 fidl::encoding::Encode<ChannelListenerRegistryListenL2capResponse, D>
7394 for &ChannelListenerRegistryListenL2capResponse
7395 {
7396 unsafe fn encode(
7397 self,
7398 encoder: &mut fidl::encoding::Encoder<'_, D>,
7399 offset: usize,
7400 mut depth: fidl::encoding::Depth,
7401 ) -> fidl::Result<()> {
7402 encoder.debug_check_bounds::<ChannelListenerRegistryListenL2capResponse>(offset);
7403 let max_ordinal: u64 = self.max_ordinal_present();
7405 encoder.write_num(max_ordinal, offset);
7406 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
7407 if max_ordinal == 0 {
7409 return Ok(());
7410 }
7411 depth.increment()?;
7412 let envelope_size = 8;
7413 let bytes_len = max_ordinal as usize * envelope_size;
7414 #[allow(unused_variables)]
7415 let offset = encoder.out_of_line_offset(bytes_len);
7416 let mut _prev_end_offset: usize = 0;
7417 if 1 > max_ordinal {
7418 return Ok(());
7419 }
7420
7421 let cur_offset: usize = (1 - 1) * envelope_size;
7424
7425 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7427
7428 fidl::encoding::encode_in_envelope_optional::<u16, D>(
7433 self.psm.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
7434 encoder,
7435 offset + cur_offset,
7436 depth,
7437 )?;
7438
7439 _prev_end_offset = cur_offset + envelope_size;
7440
7441 Ok(())
7442 }
7443 }
7444
7445 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
7446 for ChannelListenerRegistryListenL2capResponse
7447 {
7448 #[inline(always)]
7449 fn new_empty() -> Self {
7450 Self::default()
7451 }
7452
7453 unsafe fn decode(
7454 &mut self,
7455 decoder: &mut fidl::encoding::Decoder<'_, D>,
7456 offset: usize,
7457 mut depth: fidl::encoding::Depth,
7458 ) -> fidl::Result<()> {
7459 decoder.debug_check_bounds::<Self>(offset);
7460 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
7461 None => return Err(fidl::Error::NotNullable),
7462 Some(len) => len,
7463 };
7464 if len == 0 {
7466 return Ok(());
7467 };
7468 depth.increment()?;
7469 let envelope_size = 8;
7470 let bytes_len = len * envelope_size;
7471 let offset = decoder.out_of_line_offset(bytes_len)?;
7472 let mut _next_ordinal_to_read = 0;
7474 let mut next_offset = offset;
7475 let end_offset = offset + bytes_len;
7476 _next_ordinal_to_read += 1;
7477 if next_offset >= end_offset {
7478 return Ok(());
7479 }
7480
7481 while _next_ordinal_to_read < 1 {
7483 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7484 _next_ordinal_to_read += 1;
7485 next_offset += envelope_size;
7486 }
7487
7488 let next_out_of_line = decoder.next_out_of_line();
7489 let handles_before = decoder.remaining_handles();
7490 if let Some((inlined, num_bytes, num_handles)) =
7491 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7492 {
7493 let member_inline_size =
7494 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7495 if inlined != (member_inline_size <= 4) {
7496 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7497 }
7498 let inner_offset;
7499 let mut inner_depth = depth.clone();
7500 if inlined {
7501 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7502 inner_offset = next_offset;
7503 } else {
7504 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7505 inner_depth.increment()?;
7506 }
7507 let val_ref = self.psm.get_or_insert_with(|| fidl::new_empty!(u16, D));
7508 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
7509 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7510 {
7511 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7512 }
7513 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7514 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7515 }
7516 }
7517
7518 next_offset += envelope_size;
7519
7520 while next_offset < end_offset {
7522 _next_ordinal_to_read += 1;
7523 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7524 next_offset += envelope_size;
7525 }
7526
7527 Ok(())
7528 }
7529 }
7530
7531 impl ChannelOffloadExtStartOffloadRequest {
7532 #[inline(always)]
7533 fn max_ordinal_present(&self) -> u64 {
7534 0
7535 }
7536 }
7537
7538 impl fidl::encoding::ValueTypeMarker for ChannelOffloadExtStartOffloadRequest {
7539 type Borrowed<'a> = &'a Self;
7540 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7541 value
7542 }
7543 }
7544
7545 unsafe impl fidl::encoding::TypeMarker for ChannelOffloadExtStartOffloadRequest {
7546 type Owned = Self;
7547
7548 #[inline(always)]
7549 fn inline_align(_context: fidl::encoding::Context) -> usize {
7550 8
7551 }
7552
7553 #[inline(always)]
7554 fn inline_size(_context: fidl::encoding::Context) -> usize {
7555 16
7556 }
7557 }
7558
7559 unsafe impl<D: fidl::encoding::ResourceDialect>
7560 fidl::encoding::Encode<ChannelOffloadExtStartOffloadRequest, D>
7561 for &ChannelOffloadExtStartOffloadRequest
7562 {
7563 unsafe fn encode(
7564 self,
7565 encoder: &mut fidl::encoding::Encoder<'_, D>,
7566 offset: usize,
7567 mut depth: fidl::encoding::Depth,
7568 ) -> fidl::Result<()> {
7569 encoder.debug_check_bounds::<ChannelOffloadExtStartOffloadRequest>(offset);
7570 let max_ordinal: u64 = self.max_ordinal_present();
7572 encoder.write_num(max_ordinal, offset);
7573 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
7574 if max_ordinal == 0 {
7576 return Ok(());
7577 }
7578 depth.increment()?;
7579 let envelope_size = 8;
7580 let bytes_len = max_ordinal as usize * envelope_size;
7581 #[allow(unused_variables)]
7582 let offset = encoder.out_of_line_offset(bytes_len);
7583 let mut _prev_end_offset: usize = 0;
7584
7585 Ok(())
7586 }
7587 }
7588
7589 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
7590 for ChannelOffloadExtStartOffloadRequest
7591 {
7592 #[inline(always)]
7593 fn new_empty() -> Self {
7594 Self::default()
7595 }
7596
7597 unsafe fn decode(
7598 &mut self,
7599 decoder: &mut fidl::encoding::Decoder<'_, D>,
7600 offset: usize,
7601 mut depth: fidl::encoding::Depth,
7602 ) -> fidl::Result<()> {
7603 decoder.debug_check_bounds::<Self>(offset);
7604 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
7605 None => return Err(fidl::Error::NotNullable),
7606 Some(len) => len,
7607 };
7608 if len == 0 {
7610 return Ok(());
7611 };
7612 depth.increment()?;
7613 let envelope_size = 8;
7614 let bytes_len = len * envelope_size;
7615 let offset = decoder.out_of_line_offset(bytes_len)?;
7616 let mut _next_ordinal_to_read = 0;
7618 let mut next_offset = offset;
7619 let end_offset = offset + bytes_len;
7620
7621 while next_offset < end_offset {
7623 _next_ordinal_to_read += 1;
7624 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7625 next_offset += envelope_size;
7626 }
7627
7628 Ok(())
7629 }
7630 }
7631
7632 impl ChannelOffloadExtStartOffloadResponse {
7633 #[inline(always)]
7634 fn max_ordinal_present(&self) -> u64 {
7635 if let Some(_) = self.offload_parameters {
7636 return 1;
7637 }
7638 0
7639 }
7640 }
7641
7642 impl fidl::encoding::ValueTypeMarker for ChannelOffloadExtStartOffloadResponse {
7643 type Borrowed<'a> = &'a Self;
7644 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7645 value
7646 }
7647 }
7648
7649 unsafe impl fidl::encoding::TypeMarker for ChannelOffloadExtStartOffloadResponse {
7650 type Owned = Self;
7651
7652 #[inline(always)]
7653 fn inline_align(_context: fidl::encoding::Context) -> usize {
7654 8
7655 }
7656
7657 #[inline(always)]
7658 fn inline_size(_context: fidl::encoding::Context) -> usize {
7659 16
7660 }
7661 }
7662
7663 unsafe impl<D: fidl::encoding::ResourceDialect>
7664 fidl::encoding::Encode<ChannelOffloadExtStartOffloadResponse, D>
7665 for &ChannelOffloadExtStartOffloadResponse
7666 {
7667 unsafe fn encode(
7668 self,
7669 encoder: &mut fidl::encoding::Encoder<'_, D>,
7670 offset: usize,
7671 mut depth: fidl::encoding::Depth,
7672 ) -> fidl::Result<()> {
7673 encoder.debug_check_bounds::<ChannelOffloadExtStartOffloadResponse>(offset);
7674 let max_ordinal: u64 = self.max_ordinal_present();
7676 encoder.write_num(max_ordinal, offset);
7677 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
7678 if max_ordinal == 0 {
7680 return Ok(());
7681 }
7682 depth.increment()?;
7683 let envelope_size = 8;
7684 let bytes_len = max_ordinal as usize * envelope_size;
7685 #[allow(unused_variables)]
7686 let offset = encoder.out_of_line_offset(bytes_len);
7687 let mut _prev_end_offset: usize = 0;
7688 if 1 > max_ordinal {
7689 return Ok(());
7690 }
7691
7692 let cur_offset: usize = (1 - 1) * envelope_size;
7695
7696 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7698
7699 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_bluetooth_common::L2capChannelOffloadParameters, D>(
7704 self.offload_parameters.as_ref().map(<fidl_fuchsia_bluetooth_common::L2capChannelOffloadParameters as fidl::encoding::ValueTypeMarker>::borrow),
7705 encoder, offset + cur_offset, depth
7706 )?;
7707
7708 _prev_end_offset = cur_offset + envelope_size;
7709
7710 Ok(())
7711 }
7712 }
7713
7714 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
7715 for ChannelOffloadExtStartOffloadResponse
7716 {
7717 #[inline(always)]
7718 fn new_empty() -> Self {
7719 Self::default()
7720 }
7721
7722 unsafe fn decode(
7723 &mut self,
7724 decoder: &mut fidl::encoding::Decoder<'_, D>,
7725 offset: usize,
7726 mut depth: fidl::encoding::Depth,
7727 ) -> fidl::Result<()> {
7728 decoder.debug_check_bounds::<Self>(offset);
7729 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
7730 None => return Err(fidl::Error::NotNullable),
7731 Some(len) => len,
7732 };
7733 if len == 0 {
7735 return Ok(());
7736 };
7737 depth.increment()?;
7738 let envelope_size = 8;
7739 let bytes_len = len * envelope_size;
7740 let offset = decoder.out_of_line_offset(bytes_len)?;
7741 let mut _next_ordinal_to_read = 0;
7743 let mut next_offset = offset;
7744 let end_offset = offset + bytes_len;
7745 _next_ordinal_to_read += 1;
7746 if next_offset >= end_offset {
7747 return Ok(());
7748 }
7749
7750 while _next_ordinal_to_read < 1 {
7752 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7753 _next_ordinal_to_read += 1;
7754 next_offset += envelope_size;
7755 }
7756
7757 let next_out_of_line = decoder.next_out_of_line();
7758 let handles_before = decoder.remaining_handles();
7759 if let Some((inlined, num_bytes, num_handles)) =
7760 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7761 {
7762 let member_inline_size = <fidl_fuchsia_bluetooth_common::L2capChannelOffloadParameters as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7763 if inlined != (member_inline_size <= 4) {
7764 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7765 }
7766 let inner_offset;
7767 let mut inner_depth = depth.clone();
7768 if inlined {
7769 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7770 inner_offset = next_offset;
7771 } else {
7772 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7773 inner_depth.increment()?;
7774 }
7775 let val_ref = self.offload_parameters.get_or_insert_with(|| {
7776 fidl::new_empty!(
7777 fidl_fuchsia_bluetooth_common::L2capChannelOffloadParameters,
7778 D
7779 )
7780 });
7781 fidl::decode!(
7782 fidl_fuchsia_bluetooth_common::L2capChannelOffloadParameters,
7783 D,
7784 val_ref,
7785 decoder,
7786 inner_offset,
7787 inner_depth
7788 )?;
7789 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7790 {
7791 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7792 }
7793 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7794 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7795 }
7796 }
7797
7798 next_offset += envelope_size;
7799
7800 while next_offset < end_offset {
7802 _next_ordinal_to_read += 1;
7803 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7804 next_offset += envelope_size;
7805 }
7806
7807 Ok(())
7808 }
7809 }
7810
7811 impl CigParameters {
7812 #[inline(always)]
7813 fn max_ordinal_present(&self) -> u64 {
7814 if let Some(_) = self.expected_peers {
7815 return 7;
7816 }
7817 if let Some(_) = self.max_transport_latency_p_to_c {
7818 return 6;
7819 }
7820 if let Some(_) = self.max_transport_latency_c_to_p {
7821 return 5;
7822 }
7823 if let Some(_) = self.framing {
7824 return 4;
7825 }
7826 if let Some(_) = self.packing {
7827 return 3;
7828 }
7829 if let Some(_) = self.sdu_interval_p_to_c {
7830 return 2;
7831 }
7832 if let Some(_) = self.sdu_interval_c_to_p {
7833 return 1;
7834 }
7835 0
7836 }
7837 }
7838
7839 impl fidl::encoding::ValueTypeMarker for CigParameters {
7840 type Borrowed<'a> = &'a Self;
7841 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7842 value
7843 }
7844 }
7845
7846 unsafe impl fidl::encoding::TypeMarker for CigParameters {
7847 type Owned = Self;
7848
7849 #[inline(always)]
7850 fn inline_align(_context: fidl::encoding::Context) -> usize {
7851 8
7852 }
7853
7854 #[inline(always)]
7855 fn inline_size(_context: fidl::encoding::Context) -> usize {
7856 16
7857 }
7858 }
7859
7860 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<CigParameters, D>
7861 for &CigParameters
7862 {
7863 unsafe fn encode(
7864 self,
7865 encoder: &mut fidl::encoding::Encoder<'_, D>,
7866 offset: usize,
7867 mut depth: fidl::encoding::Depth,
7868 ) -> fidl::Result<()> {
7869 encoder.debug_check_bounds::<CigParameters>(offset);
7870 let max_ordinal: u64 = self.max_ordinal_present();
7872 encoder.write_num(max_ordinal, offset);
7873 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
7874 if max_ordinal == 0 {
7876 return Ok(());
7877 }
7878 depth.increment()?;
7879 let envelope_size = 8;
7880 let bytes_len = max_ordinal as usize * envelope_size;
7881 #[allow(unused_variables)]
7882 let offset = encoder.out_of_line_offset(bytes_len);
7883 let mut _prev_end_offset: usize = 0;
7884 if 1 > max_ordinal {
7885 return Ok(());
7886 }
7887
7888 let cur_offset: usize = (1 - 1) * envelope_size;
7891
7892 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7894
7895 fidl::encoding::encode_in_envelope_optional::<u32, D>(
7900 self.sdu_interval_c_to_p
7901 .as_ref()
7902 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
7903 encoder,
7904 offset + cur_offset,
7905 depth,
7906 )?;
7907
7908 _prev_end_offset = cur_offset + envelope_size;
7909 if 2 > max_ordinal {
7910 return Ok(());
7911 }
7912
7913 let cur_offset: usize = (2 - 1) * envelope_size;
7916
7917 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7919
7920 fidl::encoding::encode_in_envelope_optional::<u32, D>(
7925 self.sdu_interval_p_to_c
7926 .as_ref()
7927 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
7928 encoder,
7929 offset + cur_offset,
7930 depth,
7931 )?;
7932
7933 _prev_end_offset = cur_offset + envelope_size;
7934 if 3 > max_ordinal {
7935 return Ok(());
7936 }
7937
7938 let cur_offset: usize = (3 - 1) * envelope_size;
7941
7942 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7944
7945 fidl::encoding::encode_in_envelope_optional::<CigPacking, D>(
7950 self.packing.as_ref().map(<CigPacking as fidl::encoding::ValueTypeMarker>::borrow),
7951 encoder,
7952 offset + cur_offset,
7953 depth,
7954 )?;
7955
7956 _prev_end_offset = cur_offset + envelope_size;
7957 if 4 > max_ordinal {
7958 return Ok(());
7959 }
7960
7961 let cur_offset: usize = (4 - 1) * envelope_size;
7964
7965 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7967
7968 fidl::encoding::encode_in_envelope_optional::<CigFramingOptions, D>(
7973 self.framing
7974 .as_ref()
7975 .map(<CigFramingOptions as fidl::encoding::ValueTypeMarker>::borrow),
7976 encoder,
7977 offset + cur_offset,
7978 depth,
7979 )?;
7980
7981 _prev_end_offset = cur_offset + envelope_size;
7982 if 5 > max_ordinal {
7983 return Ok(());
7984 }
7985
7986 let cur_offset: usize = (5 - 1) * envelope_size;
7989
7990 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7992
7993 fidl::encoding::encode_in_envelope_optional::<u16, D>(
7998 self.max_transport_latency_c_to_p
7999 .as_ref()
8000 .map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
8001 encoder,
8002 offset + cur_offset,
8003 depth,
8004 )?;
8005
8006 _prev_end_offset = cur_offset + envelope_size;
8007 if 6 > max_ordinal {
8008 return Ok(());
8009 }
8010
8011 let cur_offset: usize = (6 - 1) * envelope_size;
8014
8015 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8017
8018 fidl::encoding::encode_in_envelope_optional::<u16, D>(
8023 self.max_transport_latency_p_to_c
8024 .as_ref()
8025 .map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
8026 encoder,
8027 offset + cur_offset,
8028 depth,
8029 )?;
8030
8031 _prev_end_offset = cur_offset + envelope_size;
8032 if 7 > max_ordinal {
8033 return Ok(());
8034 }
8035
8036 let cur_offset: usize = (7 - 1) * envelope_size;
8039
8040 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8042
8043 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<fidl_fuchsia_bluetooth_common::PeerId>, D>(
8048 self.expected_peers.as_ref().map(<fidl::encoding::UnboundedVector<fidl_fuchsia_bluetooth_common::PeerId> as fidl::encoding::ValueTypeMarker>::borrow),
8049 encoder, offset + cur_offset, depth
8050 )?;
8051
8052 _prev_end_offset = cur_offset + envelope_size;
8053
8054 Ok(())
8055 }
8056 }
8057
8058 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for CigParameters {
8059 #[inline(always)]
8060 fn new_empty() -> Self {
8061 Self::default()
8062 }
8063
8064 unsafe fn decode(
8065 &mut self,
8066 decoder: &mut fidl::encoding::Decoder<'_, D>,
8067 offset: usize,
8068 mut depth: fidl::encoding::Depth,
8069 ) -> fidl::Result<()> {
8070 decoder.debug_check_bounds::<Self>(offset);
8071 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
8072 None => return Err(fidl::Error::NotNullable),
8073 Some(len) => len,
8074 };
8075 if len == 0 {
8077 return Ok(());
8078 };
8079 depth.increment()?;
8080 let envelope_size = 8;
8081 let bytes_len = len * envelope_size;
8082 let offset = decoder.out_of_line_offset(bytes_len)?;
8083 let mut _next_ordinal_to_read = 0;
8085 let mut next_offset = offset;
8086 let end_offset = offset + bytes_len;
8087 _next_ordinal_to_read += 1;
8088 if next_offset >= end_offset {
8089 return Ok(());
8090 }
8091
8092 while _next_ordinal_to_read < 1 {
8094 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8095 _next_ordinal_to_read += 1;
8096 next_offset += envelope_size;
8097 }
8098
8099 let next_out_of_line = decoder.next_out_of_line();
8100 let handles_before = decoder.remaining_handles();
8101 if let Some((inlined, num_bytes, num_handles)) =
8102 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8103 {
8104 let member_inline_size =
8105 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8106 if inlined != (member_inline_size <= 4) {
8107 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8108 }
8109 let inner_offset;
8110 let mut inner_depth = depth.clone();
8111 if inlined {
8112 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8113 inner_offset = next_offset;
8114 } else {
8115 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8116 inner_depth.increment()?;
8117 }
8118 let val_ref =
8119 self.sdu_interval_c_to_p.get_or_insert_with(|| fidl::new_empty!(u32, D));
8120 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
8121 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8122 {
8123 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8124 }
8125 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8126 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8127 }
8128 }
8129
8130 next_offset += envelope_size;
8131 _next_ordinal_to_read += 1;
8132 if next_offset >= end_offset {
8133 return Ok(());
8134 }
8135
8136 while _next_ordinal_to_read < 2 {
8138 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8139 _next_ordinal_to_read += 1;
8140 next_offset += envelope_size;
8141 }
8142
8143 let next_out_of_line = decoder.next_out_of_line();
8144 let handles_before = decoder.remaining_handles();
8145 if let Some((inlined, num_bytes, num_handles)) =
8146 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8147 {
8148 let member_inline_size =
8149 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8150 if inlined != (member_inline_size <= 4) {
8151 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8152 }
8153 let inner_offset;
8154 let mut inner_depth = depth.clone();
8155 if inlined {
8156 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8157 inner_offset = next_offset;
8158 } else {
8159 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8160 inner_depth.increment()?;
8161 }
8162 let val_ref =
8163 self.sdu_interval_p_to_c.get_or_insert_with(|| fidl::new_empty!(u32, D));
8164 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
8165 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8166 {
8167 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8168 }
8169 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8170 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8171 }
8172 }
8173
8174 next_offset += envelope_size;
8175 _next_ordinal_to_read += 1;
8176 if next_offset >= end_offset {
8177 return Ok(());
8178 }
8179
8180 while _next_ordinal_to_read < 3 {
8182 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8183 _next_ordinal_to_read += 1;
8184 next_offset += envelope_size;
8185 }
8186
8187 let next_out_of_line = decoder.next_out_of_line();
8188 let handles_before = decoder.remaining_handles();
8189 if let Some((inlined, num_bytes, num_handles)) =
8190 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8191 {
8192 let member_inline_size =
8193 <CigPacking as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8194 if inlined != (member_inline_size <= 4) {
8195 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8196 }
8197 let inner_offset;
8198 let mut inner_depth = depth.clone();
8199 if inlined {
8200 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8201 inner_offset = next_offset;
8202 } else {
8203 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8204 inner_depth.increment()?;
8205 }
8206 let val_ref = self.packing.get_or_insert_with(|| fidl::new_empty!(CigPacking, D));
8207 fidl::decode!(CigPacking, D, val_ref, decoder, inner_offset, inner_depth)?;
8208 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8209 {
8210 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8211 }
8212 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8213 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8214 }
8215 }
8216
8217 next_offset += envelope_size;
8218 _next_ordinal_to_read += 1;
8219 if next_offset >= end_offset {
8220 return Ok(());
8221 }
8222
8223 while _next_ordinal_to_read < 4 {
8225 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8226 _next_ordinal_to_read += 1;
8227 next_offset += envelope_size;
8228 }
8229
8230 let next_out_of_line = decoder.next_out_of_line();
8231 let handles_before = decoder.remaining_handles();
8232 if let Some((inlined, num_bytes, num_handles)) =
8233 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8234 {
8235 let member_inline_size =
8236 <CigFramingOptions as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8237 if inlined != (member_inline_size <= 4) {
8238 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8239 }
8240 let inner_offset;
8241 let mut inner_depth = depth.clone();
8242 if inlined {
8243 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8244 inner_offset = next_offset;
8245 } else {
8246 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8247 inner_depth.increment()?;
8248 }
8249 let val_ref =
8250 self.framing.get_or_insert_with(|| fidl::new_empty!(CigFramingOptions, D));
8251 fidl::decode!(CigFramingOptions, D, val_ref, decoder, inner_offset, inner_depth)?;
8252 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8253 {
8254 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8255 }
8256 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8257 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8258 }
8259 }
8260
8261 next_offset += envelope_size;
8262 _next_ordinal_to_read += 1;
8263 if next_offset >= end_offset {
8264 return Ok(());
8265 }
8266
8267 while _next_ordinal_to_read < 5 {
8269 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8270 _next_ordinal_to_read += 1;
8271 next_offset += envelope_size;
8272 }
8273
8274 let next_out_of_line = decoder.next_out_of_line();
8275 let handles_before = decoder.remaining_handles();
8276 if let Some((inlined, num_bytes, num_handles)) =
8277 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8278 {
8279 let member_inline_size =
8280 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8281 if inlined != (member_inline_size <= 4) {
8282 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8283 }
8284 let inner_offset;
8285 let mut inner_depth = depth.clone();
8286 if inlined {
8287 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8288 inner_offset = next_offset;
8289 } else {
8290 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8291 inner_depth.increment()?;
8292 }
8293 let val_ref = self
8294 .max_transport_latency_c_to_p
8295 .get_or_insert_with(|| fidl::new_empty!(u16, D));
8296 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
8297 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8298 {
8299 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8300 }
8301 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8302 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8303 }
8304 }
8305
8306 next_offset += envelope_size;
8307 _next_ordinal_to_read += 1;
8308 if next_offset >= end_offset {
8309 return Ok(());
8310 }
8311
8312 while _next_ordinal_to_read < 6 {
8314 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8315 _next_ordinal_to_read += 1;
8316 next_offset += envelope_size;
8317 }
8318
8319 let next_out_of_line = decoder.next_out_of_line();
8320 let handles_before = decoder.remaining_handles();
8321 if let Some((inlined, num_bytes, num_handles)) =
8322 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8323 {
8324 let member_inline_size =
8325 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8326 if inlined != (member_inline_size <= 4) {
8327 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8328 }
8329 let inner_offset;
8330 let mut inner_depth = depth.clone();
8331 if inlined {
8332 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8333 inner_offset = next_offset;
8334 } else {
8335 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8336 inner_depth.increment()?;
8337 }
8338 let val_ref = self
8339 .max_transport_latency_p_to_c
8340 .get_or_insert_with(|| fidl::new_empty!(u16, D));
8341 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
8342 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8343 {
8344 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8345 }
8346 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8347 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8348 }
8349 }
8350
8351 next_offset += envelope_size;
8352 _next_ordinal_to_read += 1;
8353 if next_offset >= end_offset {
8354 return Ok(());
8355 }
8356
8357 while _next_ordinal_to_read < 7 {
8359 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8360 _next_ordinal_to_read += 1;
8361 next_offset += envelope_size;
8362 }
8363
8364 let next_out_of_line = decoder.next_out_of_line();
8365 let handles_before = decoder.remaining_handles();
8366 if let Some((inlined, num_bytes, num_handles)) =
8367 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8368 {
8369 let member_inline_size = <fidl::encoding::UnboundedVector<
8370 fidl_fuchsia_bluetooth_common::PeerId,
8371 > as fidl::encoding::TypeMarker>::inline_size(
8372 decoder.context
8373 );
8374 if inlined != (member_inline_size <= 4) {
8375 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8376 }
8377 let inner_offset;
8378 let mut inner_depth = depth.clone();
8379 if inlined {
8380 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8381 inner_offset = next_offset;
8382 } else {
8383 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8384 inner_depth.increment()?;
8385 }
8386 let val_ref = self.expected_peers.get_or_insert_with(|| {
8387 fidl::new_empty!(
8388 fidl::encoding::UnboundedVector<fidl_fuchsia_bluetooth_common::PeerId>,
8389 D
8390 )
8391 });
8392 fidl::decode!(
8393 fidl::encoding::UnboundedVector<fidl_fuchsia_bluetooth_common::PeerId>,
8394 D,
8395 val_ref,
8396 decoder,
8397 inner_offset,
8398 inner_depth
8399 )?;
8400 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8401 {
8402 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8403 }
8404 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8405 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8406 }
8407 }
8408
8409 next_offset += envelope_size;
8410
8411 while next_offset < end_offset {
8413 _next_ordinal_to_read += 1;
8414 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8415 next_offset += envelope_size;
8416 }
8417
8418 Ok(())
8419 }
8420 }
8421
8422 impl CisEstablishedParameters {
8423 #[inline(always)]
8424 fn max_ordinal_present(&self) -> u64 {
8425 if let Some(_) = self.peripheral_to_central_params {
8426 return 6;
8427 }
8428 if let Some(_) = self.central_to_peripheral_params {
8429 return 5;
8430 }
8431 if let Some(_) = self.iso_interval {
8432 return 4;
8433 }
8434 if let Some(_) = self.max_subevents {
8435 return 3;
8436 }
8437 if let Some(_) = self.cis_sync_delay {
8438 return 2;
8439 }
8440 if let Some(_) = self.cig_sync_delay {
8441 return 1;
8442 }
8443 0
8444 }
8445 }
8446
8447 impl fidl::encoding::ValueTypeMarker for CisEstablishedParameters {
8448 type Borrowed<'a> = &'a Self;
8449 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
8450 value
8451 }
8452 }
8453
8454 unsafe impl fidl::encoding::TypeMarker for CisEstablishedParameters {
8455 type Owned = Self;
8456
8457 #[inline(always)]
8458 fn inline_align(_context: fidl::encoding::Context) -> usize {
8459 8
8460 }
8461
8462 #[inline(always)]
8463 fn inline_size(_context: fidl::encoding::Context) -> usize {
8464 16
8465 }
8466 }
8467
8468 unsafe impl<D: fidl::encoding::ResourceDialect>
8469 fidl::encoding::Encode<CisEstablishedParameters, D> for &CisEstablishedParameters
8470 {
8471 unsafe fn encode(
8472 self,
8473 encoder: &mut fidl::encoding::Encoder<'_, D>,
8474 offset: usize,
8475 mut depth: fidl::encoding::Depth,
8476 ) -> fidl::Result<()> {
8477 encoder.debug_check_bounds::<CisEstablishedParameters>(offset);
8478 let max_ordinal: u64 = self.max_ordinal_present();
8480 encoder.write_num(max_ordinal, offset);
8481 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
8482 if max_ordinal == 0 {
8484 return Ok(());
8485 }
8486 depth.increment()?;
8487 let envelope_size = 8;
8488 let bytes_len = max_ordinal as usize * envelope_size;
8489 #[allow(unused_variables)]
8490 let offset = encoder.out_of_line_offset(bytes_len);
8491 let mut _prev_end_offset: usize = 0;
8492 if 1 > max_ordinal {
8493 return Ok(());
8494 }
8495
8496 let cur_offset: usize = (1 - 1) * envelope_size;
8499
8500 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8502
8503 fidl::encoding::encode_in_envelope_optional::<i64, D>(
8508 self.cig_sync_delay.as_ref().map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
8509 encoder,
8510 offset + cur_offset,
8511 depth,
8512 )?;
8513
8514 _prev_end_offset = cur_offset + envelope_size;
8515 if 2 > max_ordinal {
8516 return Ok(());
8517 }
8518
8519 let cur_offset: usize = (2 - 1) * envelope_size;
8522
8523 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8525
8526 fidl::encoding::encode_in_envelope_optional::<i64, D>(
8531 self.cis_sync_delay.as_ref().map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
8532 encoder,
8533 offset + cur_offset,
8534 depth,
8535 )?;
8536
8537 _prev_end_offset = cur_offset + envelope_size;
8538 if 3 > max_ordinal {
8539 return Ok(());
8540 }
8541
8542 let cur_offset: usize = (3 - 1) * envelope_size;
8545
8546 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8548
8549 fidl::encoding::encode_in_envelope_optional::<u8, D>(
8554 self.max_subevents.as_ref().map(<u8 as fidl::encoding::ValueTypeMarker>::borrow),
8555 encoder,
8556 offset + cur_offset,
8557 depth,
8558 )?;
8559
8560 _prev_end_offset = cur_offset + envelope_size;
8561 if 4 > max_ordinal {
8562 return Ok(());
8563 }
8564
8565 let cur_offset: usize = (4 - 1) * envelope_size;
8568
8569 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8571
8572 fidl::encoding::encode_in_envelope_optional::<i64, D>(
8577 self.iso_interval.as_ref().map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
8578 encoder,
8579 offset + cur_offset,
8580 depth,
8581 )?;
8582
8583 _prev_end_offset = cur_offset + envelope_size;
8584 if 5 > max_ordinal {
8585 return Ok(());
8586 }
8587
8588 let cur_offset: usize = (5 - 1) * envelope_size;
8591
8592 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8594
8595 fidl::encoding::encode_in_envelope_optional::<CisUnidirectionalParams, D>(
8600 self.central_to_peripheral_params
8601 .as_ref()
8602 .map(<CisUnidirectionalParams as fidl::encoding::ValueTypeMarker>::borrow),
8603 encoder,
8604 offset + cur_offset,
8605 depth,
8606 )?;
8607
8608 _prev_end_offset = cur_offset + envelope_size;
8609 if 6 > max_ordinal {
8610 return Ok(());
8611 }
8612
8613 let cur_offset: usize = (6 - 1) * envelope_size;
8616
8617 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8619
8620 fidl::encoding::encode_in_envelope_optional::<CisUnidirectionalParams, D>(
8625 self.peripheral_to_central_params
8626 .as_ref()
8627 .map(<CisUnidirectionalParams as fidl::encoding::ValueTypeMarker>::borrow),
8628 encoder,
8629 offset + cur_offset,
8630 depth,
8631 )?;
8632
8633 _prev_end_offset = cur_offset + envelope_size;
8634
8635 Ok(())
8636 }
8637 }
8638
8639 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
8640 for CisEstablishedParameters
8641 {
8642 #[inline(always)]
8643 fn new_empty() -> Self {
8644 Self::default()
8645 }
8646
8647 unsafe fn decode(
8648 &mut self,
8649 decoder: &mut fidl::encoding::Decoder<'_, D>,
8650 offset: usize,
8651 mut depth: fidl::encoding::Depth,
8652 ) -> fidl::Result<()> {
8653 decoder.debug_check_bounds::<Self>(offset);
8654 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
8655 None => return Err(fidl::Error::NotNullable),
8656 Some(len) => len,
8657 };
8658 if len == 0 {
8660 return Ok(());
8661 };
8662 depth.increment()?;
8663 let envelope_size = 8;
8664 let bytes_len = len * envelope_size;
8665 let offset = decoder.out_of_line_offset(bytes_len)?;
8666 let mut _next_ordinal_to_read = 0;
8668 let mut next_offset = offset;
8669 let end_offset = offset + bytes_len;
8670 _next_ordinal_to_read += 1;
8671 if next_offset >= end_offset {
8672 return Ok(());
8673 }
8674
8675 while _next_ordinal_to_read < 1 {
8677 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8678 _next_ordinal_to_read += 1;
8679 next_offset += envelope_size;
8680 }
8681
8682 let next_out_of_line = decoder.next_out_of_line();
8683 let handles_before = decoder.remaining_handles();
8684 if let Some((inlined, num_bytes, num_handles)) =
8685 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8686 {
8687 let member_inline_size =
8688 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8689 if inlined != (member_inline_size <= 4) {
8690 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8691 }
8692 let inner_offset;
8693 let mut inner_depth = depth.clone();
8694 if inlined {
8695 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8696 inner_offset = next_offset;
8697 } else {
8698 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8699 inner_depth.increment()?;
8700 }
8701 let val_ref = self.cig_sync_delay.get_or_insert_with(|| fidl::new_empty!(i64, D));
8702 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
8703 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8704 {
8705 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8706 }
8707 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8708 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8709 }
8710 }
8711
8712 next_offset += envelope_size;
8713 _next_ordinal_to_read += 1;
8714 if next_offset >= end_offset {
8715 return Ok(());
8716 }
8717
8718 while _next_ordinal_to_read < 2 {
8720 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8721 _next_ordinal_to_read += 1;
8722 next_offset += envelope_size;
8723 }
8724
8725 let next_out_of_line = decoder.next_out_of_line();
8726 let handles_before = decoder.remaining_handles();
8727 if let Some((inlined, num_bytes, num_handles)) =
8728 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8729 {
8730 let member_inline_size =
8731 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8732 if inlined != (member_inline_size <= 4) {
8733 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8734 }
8735 let inner_offset;
8736 let mut inner_depth = depth.clone();
8737 if inlined {
8738 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8739 inner_offset = next_offset;
8740 } else {
8741 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8742 inner_depth.increment()?;
8743 }
8744 let val_ref = self.cis_sync_delay.get_or_insert_with(|| fidl::new_empty!(i64, D));
8745 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
8746 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8747 {
8748 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8749 }
8750 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8751 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8752 }
8753 }
8754
8755 next_offset += envelope_size;
8756 _next_ordinal_to_read += 1;
8757 if next_offset >= end_offset {
8758 return Ok(());
8759 }
8760
8761 while _next_ordinal_to_read < 3 {
8763 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8764 _next_ordinal_to_read += 1;
8765 next_offset += envelope_size;
8766 }
8767
8768 let next_out_of_line = decoder.next_out_of_line();
8769 let handles_before = decoder.remaining_handles();
8770 if let Some((inlined, num_bytes, num_handles)) =
8771 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8772 {
8773 let member_inline_size =
8774 <u8 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8775 if inlined != (member_inline_size <= 4) {
8776 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8777 }
8778 let inner_offset;
8779 let mut inner_depth = depth.clone();
8780 if inlined {
8781 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8782 inner_offset = next_offset;
8783 } else {
8784 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8785 inner_depth.increment()?;
8786 }
8787 let val_ref = self.max_subevents.get_or_insert_with(|| fidl::new_empty!(u8, D));
8788 fidl::decode!(u8, D, val_ref, decoder, inner_offset, inner_depth)?;
8789 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8790 {
8791 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8792 }
8793 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8794 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8795 }
8796 }
8797
8798 next_offset += envelope_size;
8799 _next_ordinal_to_read += 1;
8800 if next_offset >= end_offset {
8801 return Ok(());
8802 }
8803
8804 while _next_ordinal_to_read < 4 {
8806 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8807 _next_ordinal_to_read += 1;
8808 next_offset += envelope_size;
8809 }
8810
8811 let next_out_of_line = decoder.next_out_of_line();
8812 let handles_before = decoder.remaining_handles();
8813 if let Some((inlined, num_bytes, num_handles)) =
8814 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8815 {
8816 let member_inline_size =
8817 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8818 if inlined != (member_inline_size <= 4) {
8819 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8820 }
8821 let inner_offset;
8822 let mut inner_depth = depth.clone();
8823 if inlined {
8824 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8825 inner_offset = next_offset;
8826 } else {
8827 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8828 inner_depth.increment()?;
8829 }
8830 let val_ref = self.iso_interval.get_or_insert_with(|| fidl::new_empty!(i64, D));
8831 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
8832 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8833 {
8834 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8835 }
8836 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8837 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8838 }
8839 }
8840
8841 next_offset += envelope_size;
8842 _next_ordinal_to_read += 1;
8843 if next_offset >= end_offset {
8844 return Ok(());
8845 }
8846
8847 while _next_ordinal_to_read < 5 {
8849 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8850 _next_ordinal_to_read += 1;
8851 next_offset += envelope_size;
8852 }
8853
8854 let next_out_of_line = decoder.next_out_of_line();
8855 let handles_before = decoder.remaining_handles();
8856 if let Some((inlined, num_bytes, num_handles)) =
8857 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8858 {
8859 let member_inline_size =
8860 <CisUnidirectionalParams as fidl::encoding::TypeMarker>::inline_size(
8861 decoder.context,
8862 );
8863 if inlined != (member_inline_size <= 4) {
8864 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8865 }
8866 let inner_offset;
8867 let mut inner_depth = depth.clone();
8868 if inlined {
8869 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8870 inner_offset = next_offset;
8871 } else {
8872 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8873 inner_depth.increment()?;
8874 }
8875 let val_ref = self
8876 .central_to_peripheral_params
8877 .get_or_insert_with(|| fidl::new_empty!(CisUnidirectionalParams, D));
8878 fidl::decode!(
8879 CisUnidirectionalParams,
8880 D,
8881 val_ref,
8882 decoder,
8883 inner_offset,
8884 inner_depth
8885 )?;
8886 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8887 {
8888 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8889 }
8890 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8891 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8892 }
8893 }
8894
8895 next_offset += envelope_size;
8896 _next_ordinal_to_read += 1;
8897 if next_offset >= end_offset {
8898 return Ok(());
8899 }
8900
8901 while _next_ordinal_to_read < 6 {
8903 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8904 _next_ordinal_to_read += 1;
8905 next_offset += envelope_size;
8906 }
8907
8908 let next_out_of_line = decoder.next_out_of_line();
8909 let handles_before = decoder.remaining_handles();
8910 if let Some((inlined, num_bytes, num_handles)) =
8911 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8912 {
8913 let member_inline_size =
8914 <CisUnidirectionalParams as fidl::encoding::TypeMarker>::inline_size(
8915 decoder.context,
8916 );
8917 if inlined != (member_inline_size <= 4) {
8918 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8919 }
8920 let inner_offset;
8921 let mut inner_depth = depth.clone();
8922 if inlined {
8923 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8924 inner_offset = next_offset;
8925 } else {
8926 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8927 inner_depth.increment()?;
8928 }
8929 let val_ref = self
8930 .peripheral_to_central_params
8931 .get_or_insert_with(|| fidl::new_empty!(CisUnidirectionalParams, D));
8932 fidl::decode!(
8933 CisUnidirectionalParams,
8934 D,
8935 val_ref,
8936 decoder,
8937 inner_offset,
8938 inner_depth
8939 )?;
8940 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8941 {
8942 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8943 }
8944 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8945 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8946 }
8947 }
8948
8949 next_offset += envelope_size;
8950
8951 while next_offset < end_offset {
8953 _next_ordinal_to_read += 1;
8954 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8955 next_offset += envelope_size;
8956 }
8957
8958 Ok(())
8959 }
8960 }
8961
8962 impl CisParameters {
8963 #[inline(always)]
8964 fn max_ordinal_present(&self) -> u64 {
8965 if let Some(_) = self.id {
8966 return 2;
8967 }
8968 if let Some(_) = self.cis_id {
8969 return 1;
8970 }
8971 0
8972 }
8973 }
8974
8975 impl fidl::encoding::ValueTypeMarker for CisParameters {
8976 type Borrowed<'a> = &'a Self;
8977 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
8978 value
8979 }
8980 }
8981
8982 unsafe impl fidl::encoding::TypeMarker for CisParameters {
8983 type Owned = Self;
8984
8985 #[inline(always)]
8986 fn inline_align(_context: fidl::encoding::Context) -> usize {
8987 8
8988 }
8989
8990 #[inline(always)]
8991 fn inline_size(_context: fidl::encoding::Context) -> usize {
8992 16
8993 }
8994 }
8995
8996 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<CisParameters, D>
8997 for &CisParameters
8998 {
8999 unsafe fn encode(
9000 self,
9001 encoder: &mut fidl::encoding::Encoder<'_, D>,
9002 offset: usize,
9003 mut depth: fidl::encoding::Depth,
9004 ) -> fidl::Result<()> {
9005 encoder.debug_check_bounds::<CisParameters>(offset);
9006 let max_ordinal: u64 = self.max_ordinal_present();
9008 encoder.write_num(max_ordinal, offset);
9009 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
9010 if max_ordinal == 0 {
9012 return Ok(());
9013 }
9014 depth.increment()?;
9015 let envelope_size = 8;
9016 let bytes_len = max_ordinal as usize * envelope_size;
9017 #[allow(unused_variables)]
9018 let offset = encoder.out_of_line_offset(bytes_len);
9019 let mut _prev_end_offset: usize = 0;
9020 if 1 > max_ordinal {
9021 return Ok(());
9022 }
9023
9024 let cur_offset: usize = (1 - 1) * envelope_size;
9027
9028 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9030
9031 fidl::encoding::encode_in_envelope_optional::<u8, D>(
9036 self.cis_id.as_ref().map(<u8 as fidl::encoding::ValueTypeMarker>::borrow),
9037 encoder,
9038 offset + cur_offset,
9039 depth,
9040 )?;
9041
9042 _prev_end_offset = cur_offset + envelope_size;
9043 if 2 > max_ordinal {
9044 return Ok(());
9045 }
9046
9047 let cur_offset: usize = (2 - 1) * envelope_size;
9050
9051 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9053
9054 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_bluetooth_common::PeerId, D>(
9059 self.id.as_ref().map(<fidl_fuchsia_bluetooth_common::PeerId as fidl::encoding::ValueTypeMarker>::borrow),
9060 encoder, offset + cur_offset, depth
9061 )?;
9062
9063 _prev_end_offset = cur_offset + envelope_size;
9064
9065 Ok(())
9066 }
9067 }
9068
9069 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for CisParameters {
9070 #[inline(always)]
9071 fn new_empty() -> Self {
9072 Self::default()
9073 }
9074
9075 unsafe fn decode(
9076 &mut self,
9077 decoder: &mut fidl::encoding::Decoder<'_, D>,
9078 offset: usize,
9079 mut depth: fidl::encoding::Depth,
9080 ) -> fidl::Result<()> {
9081 decoder.debug_check_bounds::<Self>(offset);
9082 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
9083 None => return Err(fidl::Error::NotNullable),
9084 Some(len) => len,
9085 };
9086 if len == 0 {
9088 return Ok(());
9089 };
9090 depth.increment()?;
9091 let envelope_size = 8;
9092 let bytes_len = len * envelope_size;
9093 let offset = decoder.out_of_line_offset(bytes_len)?;
9094 let mut _next_ordinal_to_read = 0;
9096 let mut next_offset = offset;
9097 let end_offset = offset + bytes_len;
9098 _next_ordinal_to_read += 1;
9099 if next_offset >= end_offset {
9100 return Ok(());
9101 }
9102
9103 while _next_ordinal_to_read < 1 {
9105 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9106 _next_ordinal_to_read += 1;
9107 next_offset += envelope_size;
9108 }
9109
9110 let next_out_of_line = decoder.next_out_of_line();
9111 let handles_before = decoder.remaining_handles();
9112 if let Some((inlined, num_bytes, num_handles)) =
9113 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9114 {
9115 let member_inline_size =
9116 <u8 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9117 if inlined != (member_inline_size <= 4) {
9118 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9119 }
9120 let inner_offset;
9121 let mut inner_depth = depth.clone();
9122 if inlined {
9123 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9124 inner_offset = next_offset;
9125 } else {
9126 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9127 inner_depth.increment()?;
9128 }
9129 let val_ref = self.cis_id.get_or_insert_with(|| fidl::new_empty!(u8, D));
9130 fidl::decode!(u8, D, val_ref, decoder, inner_offset, inner_depth)?;
9131 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9132 {
9133 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9134 }
9135 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9136 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9137 }
9138 }
9139
9140 next_offset += envelope_size;
9141 _next_ordinal_to_read += 1;
9142 if next_offset >= end_offset {
9143 return Ok(());
9144 }
9145
9146 while _next_ordinal_to_read < 2 {
9148 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9149 _next_ordinal_to_read += 1;
9150 next_offset += envelope_size;
9151 }
9152
9153 let next_out_of_line = decoder.next_out_of_line();
9154 let handles_before = decoder.remaining_handles();
9155 if let Some((inlined, num_bytes, num_handles)) =
9156 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9157 {
9158 let member_inline_size = <fidl_fuchsia_bluetooth_common::PeerId as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9159 if inlined != (member_inline_size <= 4) {
9160 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9161 }
9162 let inner_offset;
9163 let mut inner_depth = depth.clone();
9164 if inlined {
9165 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9166 inner_offset = next_offset;
9167 } else {
9168 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9169 inner_depth.increment()?;
9170 }
9171 let val_ref = self.id.get_or_insert_with(|| {
9172 fidl::new_empty!(fidl_fuchsia_bluetooth_common::PeerId, D)
9173 });
9174 fidl::decode!(
9175 fidl_fuchsia_bluetooth_common::PeerId,
9176 D,
9177 val_ref,
9178 decoder,
9179 inner_offset,
9180 inner_depth
9181 )?;
9182 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9183 {
9184 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9185 }
9186 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9187 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9188 }
9189 }
9190
9191 next_offset += envelope_size;
9192
9193 while next_offset < end_offset {
9195 _next_ordinal_to_read += 1;
9196 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9197 next_offset += envelope_size;
9198 }
9199
9200 Ok(())
9201 }
9202 }
9203
9204 impl CisUnidirectionalParams {
9205 #[inline(always)]
9206 fn max_ordinal_present(&self) -> u64 {
9207 if let Some(_) = self.flush_timeout {
9208 return 3;
9209 }
9210 if let Some(_) = self.burst_number {
9211 return 2;
9212 }
9213 if let Some(_) = self.transport_latency {
9214 return 1;
9215 }
9216 0
9217 }
9218 }
9219
9220 impl fidl::encoding::ValueTypeMarker for CisUnidirectionalParams {
9221 type Borrowed<'a> = &'a Self;
9222 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
9223 value
9224 }
9225 }
9226
9227 unsafe impl fidl::encoding::TypeMarker for CisUnidirectionalParams {
9228 type Owned = Self;
9229
9230 #[inline(always)]
9231 fn inline_align(_context: fidl::encoding::Context) -> usize {
9232 8
9233 }
9234
9235 #[inline(always)]
9236 fn inline_size(_context: fidl::encoding::Context) -> usize {
9237 16
9238 }
9239 }
9240
9241 unsafe impl<D: fidl::encoding::ResourceDialect>
9242 fidl::encoding::Encode<CisUnidirectionalParams, D> for &CisUnidirectionalParams
9243 {
9244 unsafe fn encode(
9245 self,
9246 encoder: &mut fidl::encoding::Encoder<'_, D>,
9247 offset: usize,
9248 mut depth: fidl::encoding::Depth,
9249 ) -> fidl::Result<()> {
9250 encoder.debug_check_bounds::<CisUnidirectionalParams>(offset);
9251 let max_ordinal: u64 = self.max_ordinal_present();
9253 encoder.write_num(max_ordinal, offset);
9254 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
9255 if max_ordinal == 0 {
9257 return Ok(());
9258 }
9259 depth.increment()?;
9260 let envelope_size = 8;
9261 let bytes_len = max_ordinal as usize * envelope_size;
9262 #[allow(unused_variables)]
9263 let offset = encoder.out_of_line_offset(bytes_len);
9264 let mut _prev_end_offset: usize = 0;
9265 if 1 > max_ordinal {
9266 return Ok(());
9267 }
9268
9269 let cur_offset: usize = (1 - 1) * envelope_size;
9272
9273 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9275
9276 fidl::encoding::encode_in_envelope_optional::<i64, D>(
9281 self.transport_latency
9282 .as_ref()
9283 .map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
9284 encoder,
9285 offset + cur_offset,
9286 depth,
9287 )?;
9288
9289 _prev_end_offset = cur_offset + envelope_size;
9290 if 2 > max_ordinal {
9291 return Ok(());
9292 }
9293
9294 let cur_offset: usize = (2 - 1) * envelope_size;
9297
9298 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9300
9301 fidl::encoding::encode_in_envelope_optional::<u8, D>(
9306 self.burst_number.as_ref().map(<u8 as fidl::encoding::ValueTypeMarker>::borrow),
9307 encoder,
9308 offset + cur_offset,
9309 depth,
9310 )?;
9311
9312 _prev_end_offset = cur_offset + envelope_size;
9313 if 3 > max_ordinal {
9314 return Ok(());
9315 }
9316
9317 let cur_offset: usize = (3 - 1) * envelope_size;
9320
9321 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9323
9324 fidl::encoding::encode_in_envelope_optional::<u8, D>(
9329 self.flush_timeout.as_ref().map(<u8 as fidl::encoding::ValueTypeMarker>::borrow),
9330 encoder,
9331 offset + cur_offset,
9332 depth,
9333 )?;
9334
9335 _prev_end_offset = cur_offset + envelope_size;
9336
9337 Ok(())
9338 }
9339 }
9340
9341 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
9342 for CisUnidirectionalParams
9343 {
9344 #[inline(always)]
9345 fn new_empty() -> Self {
9346 Self::default()
9347 }
9348
9349 unsafe fn decode(
9350 &mut self,
9351 decoder: &mut fidl::encoding::Decoder<'_, D>,
9352 offset: usize,
9353 mut depth: fidl::encoding::Depth,
9354 ) -> fidl::Result<()> {
9355 decoder.debug_check_bounds::<Self>(offset);
9356 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
9357 None => return Err(fidl::Error::NotNullable),
9358 Some(len) => len,
9359 };
9360 if len == 0 {
9362 return Ok(());
9363 };
9364 depth.increment()?;
9365 let envelope_size = 8;
9366 let bytes_len = len * envelope_size;
9367 let offset = decoder.out_of_line_offset(bytes_len)?;
9368 let mut _next_ordinal_to_read = 0;
9370 let mut next_offset = offset;
9371 let end_offset = offset + bytes_len;
9372 _next_ordinal_to_read += 1;
9373 if next_offset >= end_offset {
9374 return Ok(());
9375 }
9376
9377 while _next_ordinal_to_read < 1 {
9379 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9380 _next_ordinal_to_read += 1;
9381 next_offset += envelope_size;
9382 }
9383
9384 let next_out_of_line = decoder.next_out_of_line();
9385 let handles_before = decoder.remaining_handles();
9386 if let Some((inlined, num_bytes, num_handles)) =
9387 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9388 {
9389 let member_inline_size =
9390 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9391 if inlined != (member_inline_size <= 4) {
9392 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9393 }
9394 let inner_offset;
9395 let mut inner_depth = depth.clone();
9396 if inlined {
9397 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9398 inner_offset = next_offset;
9399 } else {
9400 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9401 inner_depth.increment()?;
9402 }
9403 let val_ref =
9404 self.transport_latency.get_or_insert_with(|| fidl::new_empty!(i64, D));
9405 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
9406 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9407 {
9408 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9409 }
9410 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9411 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9412 }
9413 }
9414
9415 next_offset += envelope_size;
9416 _next_ordinal_to_read += 1;
9417 if next_offset >= end_offset {
9418 return Ok(());
9419 }
9420
9421 while _next_ordinal_to_read < 2 {
9423 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9424 _next_ordinal_to_read += 1;
9425 next_offset += envelope_size;
9426 }
9427
9428 let next_out_of_line = decoder.next_out_of_line();
9429 let handles_before = decoder.remaining_handles();
9430 if let Some((inlined, num_bytes, num_handles)) =
9431 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9432 {
9433 let member_inline_size =
9434 <u8 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9435 if inlined != (member_inline_size <= 4) {
9436 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9437 }
9438 let inner_offset;
9439 let mut inner_depth = depth.clone();
9440 if inlined {
9441 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9442 inner_offset = next_offset;
9443 } else {
9444 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9445 inner_depth.increment()?;
9446 }
9447 let val_ref = self.burst_number.get_or_insert_with(|| fidl::new_empty!(u8, D));
9448 fidl::decode!(u8, D, val_ref, decoder, inner_offset, inner_depth)?;
9449 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9450 {
9451 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9452 }
9453 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9454 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9455 }
9456 }
9457
9458 next_offset += envelope_size;
9459 _next_ordinal_to_read += 1;
9460 if next_offset >= end_offset {
9461 return Ok(());
9462 }
9463
9464 while _next_ordinal_to_read < 3 {
9466 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9467 _next_ordinal_to_read += 1;
9468 next_offset += envelope_size;
9469 }
9470
9471 let next_out_of_line = decoder.next_out_of_line();
9472 let handles_before = decoder.remaining_handles();
9473 if let Some((inlined, num_bytes, num_handles)) =
9474 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9475 {
9476 let member_inline_size =
9477 <u8 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9478 if inlined != (member_inline_size <= 4) {
9479 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9480 }
9481 let inner_offset;
9482 let mut inner_depth = depth.clone();
9483 if inlined {
9484 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9485 inner_offset = next_offset;
9486 } else {
9487 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9488 inner_depth.increment()?;
9489 }
9490 let val_ref = self.flush_timeout.get_or_insert_with(|| fidl::new_empty!(u8, D));
9491 fidl::decode!(u8, D, val_ref, decoder, inner_offset, inner_depth)?;
9492 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9493 {
9494 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9495 }
9496 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9497 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9498 }
9499 }
9500
9501 next_offset += envelope_size;
9502
9503 while next_offset < end_offset {
9505 _next_ordinal_to_read += 1;
9506 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9507 next_offset += envelope_size;
9508 }
9509
9510 Ok(())
9511 }
9512 }
9513
9514 impl CodecDelayGetCodecLocalDelayRangeRequest {
9515 #[inline(always)]
9516 fn max_ordinal_present(&self) -> u64 {
9517 if let Some(_) = self.codec_attributes {
9518 return 3;
9519 }
9520 if let Some(_) = self.data_direction {
9521 return 2;
9522 }
9523 if let Some(_) = self.logical_transport_type {
9524 return 1;
9525 }
9526 0
9527 }
9528 }
9529
9530 impl fidl::encoding::ValueTypeMarker for CodecDelayGetCodecLocalDelayRangeRequest {
9531 type Borrowed<'a> = &'a Self;
9532 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
9533 value
9534 }
9535 }
9536
9537 unsafe impl fidl::encoding::TypeMarker for CodecDelayGetCodecLocalDelayRangeRequest {
9538 type Owned = Self;
9539
9540 #[inline(always)]
9541 fn inline_align(_context: fidl::encoding::Context) -> usize {
9542 8
9543 }
9544
9545 #[inline(always)]
9546 fn inline_size(_context: fidl::encoding::Context) -> usize {
9547 16
9548 }
9549 }
9550
9551 unsafe impl<D: fidl::encoding::ResourceDialect>
9552 fidl::encoding::Encode<CodecDelayGetCodecLocalDelayRangeRequest, D>
9553 for &CodecDelayGetCodecLocalDelayRangeRequest
9554 {
9555 unsafe fn encode(
9556 self,
9557 encoder: &mut fidl::encoding::Encoder<'_, D>,
9558 offset: usize,
9559 mut depth: fidl::encoding::Depth,
9560 ) -> fidl::Result<()> {
9561 encoder.debug_check_bounds::<CodecDelayGetCodecLocalDelayRangeRequest>(offset);
9562 let max_ordinal: u64 = self.max_ordinal_present();
9564 encoder.write_num(max_ordinal, offset);
9565 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
9566 if max_ordinal == 0 {
9568 return Ok(());
9569 }
9570 depth.increment()?;
9571 let envelope_size = 8;
9572 let bytes_len = max_ordinal as usize * envelope_size;
9573 #[allow(unused_variables)]
9574 let offset = encoder.out_of_line_offset(bytes_len);
9575 let mut _prev_end_offset: usize = 0;
9576 if 1 > max_ordinal {
9577 return Ok(());
9578 }
9579
9580 let cur_offset: usize = (1 - 1) * envelope_size;
9583
9584 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9586
9587 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_bluetooth_common::LogicalTransportType, D>(
9592 self.logical_transport_type.as_ref().map(<fidl_fuchsia_bluetooth_common::LogicalTransportType as fidl::encoding::ValueTypeMarker>::borrow),
9593 encoder, offset + cur_offset, depth
9594 )?;
9595
9596 _prev_end_offset = cur_offset + envelope_size;
9597 if 2 > max_ordinal {
9598 return Ok(());
9599 }
9600
9601 let cur_offset: usize = (2 - 1) * envelope_size;
9604
9605 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9607
9608 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_bluetooth_common::DataDirection, D>(
9613 self.data_direction.as_ref().map(<fidl_fuchsia_bluetooth_common::DataDirection as fidl::encoding::ValueTypeMarker>::borrow),
9614 encoder, offset + cur_offset, depth
9615 )?;
9616
9617 _prev_end_offset = cur_offset + envelope_size;
9618 if 3 > max_ordinal {
9619 return Ok(());
9620 }
9621
9622 let cur_offset: usize = (3 - 1) * envelope_size;
9625
9626 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9628
9629 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_bluetooth_common::CodecAttributes, D>(
9634 self.codec_attributes.as_ref().map(<fidl_fuchsia_bluetooth_common::CodecAttributes as fidl::encoding::ValueTypeMarker>::borrow),
9635 encoder, offset + cur_offset, depth
9636 )?;
9637
9638 _prev_end_offset = cur_offset + envelope_size;
9639
9640 Ok(())
9641 }
9642 }
9643
9644 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
9645 for CodecDelayGetCodecLocalDelayRangeRequest
9646 {
9647 #[inline(always)]
9648 fn new_empty() -> Self {
9649 Self::default()
9650 }
9651
9652 unsafe fn decode(
9653 &mut self,
9654 decoder: &mut fidl::encoding::Decoder<'_, D>,
9655 offset: usize,
9656 mut depth: fidl::encoding::Depth,
9657 ) -> fidl::Result<()> {
9658 decoder.debug_check_bounds::<Self>(offset);
9659 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
9660 None => return Err(fidl::Error::NotNullable),
9661 Some(len) => len,
9662 };
9663 if len == 0 {
9665 return Ok(());
9666 };
9667 depth.increment()?;
9668 let envelope_size = 8;
9669 let bytes_len = len * envelope_size;
9670 let offset = decoder.out_of_line_offset(bytes_len)?;
9671 let mut _next_ordinal_to_read = 0;
9673 let mut next_offset = offset;
9674 let end_offset = offset + bytes_len;
9675 _next_ordinal_to_read += 1;
9676 if next_offset >= end_offset {
9677 return Ok(());
9678 }
9679
9680 while _next_ordinal_to_read < 1 {
9682 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9683 _next_ordinal_to_read += 1;
9684 next_offset += envelope_size;
9685 }
9686
9687 let next_out_of_line = decoder.next_out_of_line();
9688 let handles_before = decoder.remaining_handles();
9689 if let Some((inlined, num_bytes, num_handles)) =
9690 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9691 {
9692 let member_inline_size = <fidl_fuchsia_bluetooth_common::LogicalTransportType as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9693 if inlined != (member_inline_size <= 4) {
9694 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9695 }
9696 let inner_offset;
9697 let mut inner_depth = depth.clone();
9698 if inlined {
9699 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9700 inner_offset = next_offset;
9701 } else {
9702 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9703 inner_depth.increment()?;
9704 }
9705 let val_ref = self.logical_transport_type.get_or_insert_with(|| {
9706 fidl::new_empty!(fidl_fuchsia_bluetooth_common::LogicalTransportType, D)
9707 });
9708 fidl::decode!(
9709 fidl_fuchsia_bluetooth_common::LogicalTransportType,
9710 D,
9711 val_ref,
9712 decoder,
9713 inner_offset,
9714 inner_depth
9715 )?;
9716 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9717 {
9718 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9719 }
9720 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9721 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9722 }
9723 }
9724
9725 next_offset += envelope_size;
9726 _next_ordinal_to_read += 1;
9727 if next_offset >= end_offset {
9728 return Ok(());
9729 }
9730
9731 while _next_ordinal_to_read < 2 {
9733 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9734 _next_ordinal_to_read += 1;
9735 next_offset += envelope_size;
9736 }
9737
9738 let next_out_of_line = decoder.next_out_of_line();
9739 let handles_before = decoder.remaining_handles();
9740 if let Some((inlined, num_bytes, num_handles)) =
9741 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9742 {
9743 let member_inline_size = <fidl_fuchsia_bluetooth_common::DataDirection as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9744 if inlined != (member_inline_size <= 4) {
9745 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9746 }
9747 let inner_offset;
9748 let mut inner_depth = depth.clone();
9749 if inlined {
9750 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9751 inner_offset = next_offset;
9752 } else {
9753 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9754 inner_depth.increment()?;
9755 }
9756 let val_ref = self.data_direction.get_or_insert_with(|| {
9757 fidl::new_empty!(fidl_fuchsia_bluetooth_common::DataDirection, D)
9758 });
9759 fidl::decode!(
9760 fidl_fuchsia_bluetooth_common::DataDirection,
9761 D,
9762 val_ref,
9763 decoder,
9764 inner_offset,
9765 inner_depth
9766 )?;
9767 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9768 {
9769 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9770 }
9771 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9772 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9773 }
9774 }
9775
9776 next_offset += envelope_size;
9777 _next_ordinal_to_read += 1;
9778 if next_offset >= end_offset {
9779 return Ok(());
9780 }
9781
9782 while _next_ordinal_to_read < 3 {
9784 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9785 _next_ordinal_to_read += 1;
9786 next_offset += envelope_size;
9787 }
9788
9789 let next_out_of_line = decoder.next_out_of_line();
9790 let handles_before = decoder.remaining_handles();
9791 if let Some((inlined, num_bytes, num_handles)) =
9792 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9793 {
9794 let member_inline_size = <fidl_fuchsia_bluetooth_common::CodecAttributes as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9795 if inlined != (member_inline_size <= 4) {
9796 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9797 }
9798 let inner_offset;
9799 let mut inner_depth = depth.clone();
9800 if inlined {
9801 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9802 inner_offset = next_offset;
9803 } else {
9804 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9805 inner_depth.increment()?;
9806 }
9807 let val_ref = self.codec_attributes.get_or_insert_with(|| {
9808 fidl::new_empty!(fidl_fuchsia_bluetooth_common::CodecAttributes, D)
9809 });
9810 fidl::decode!(
9811 fidl_fuchsia_bluetooth_common::CodecAttributes,
9812 D,
9813 val_ref,
9814 decoder,
9815 inner_offset,
9816 inner_depth
9817 )?;
9818 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9819 {
9820 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9821 }
9822 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9823 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9824 }
9825 }
9826
9827 next_offset += envelope_size;
9828
9829 while next_offset < end_offset {
9831 _next_ordinal_to_read += 1;
9832 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9833 next_offset += envelope_size;
9834 }
9835
9836 Ok(())
9837 }
9838 }
9839
9840 impl CodecDelayGetCodecLocalDelayRangeResponse {
9841 #[inline(always)]
9842 fn max_ordinal_present(&self) -> u64 {
9843 if let Some(_) = self.max_controller_delay {
9844 return 2;
9845 }
9846 if let Some(_) = self.min_controller_delay {
9847 return 1;
9848 }
9849 0
9850 }
9851 }
9852
9853 impl fidl::encoding::ValueTypeMarker for CodecDelayGetCodecLocalDelayRangeResponse {
9854 type Borrowed<'a> = &'a Self;
9855 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
9856 value
9857 }
9858 }
9859
9860 unsafe impl fidl::encoding::TypeMarker for CodecDelayGetCodecLocalDelayRangeResponse {
9861 type Owned = Self;
9862
9863 #[inline(always)]
9864 fn inline_align(_context: fidl::encoding::Context) -> usize {
9865 8
9866 }
9867
9868 #[inline(always)]
9869 fn inline_size(_context: fidl::encoding::Context) -> usize {
9870 16
9871 }
9872 }
9873
9874 unsafe impl<D: fidl::encoding::ResourceDialect>
9875 fidl::encoding::Encode<CodecDelayGetCodecLocalDelayRangeResponse, D>
9876 for &CodecDelayGetCodecLocalDelayRangeResponse
9877 {
9878 unsafe fn encode(
9879 self,
9880 encoder: &mut fidl::encoding::Encoder<'_, D>,
9881 offset: usize,
9882 mut depth: fidl::encoding::Depth,
9883 ) -> fidl::Result<()> {
9884 encoder.debug_check_bounds::<CodecDelayGetCodecLocalDelayRangeResponse>(offset);
9885 let max_ordinal: u64 = self.max_ordinal_present();
9887 encoder.write_num(max_ordinal, offset);
9888 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
9889 if max_ordinal == 0 {
9891 return Ok(());
9892 }
9893 depth.increment()?;
9894 let envelope_size = 8;
9895 let bytes_len = max_ordinal as usize * envelope_size;
9896 #[allow(unused_variables)]
9897 let offset = encoder.out_of_line_offset(bytes_len);
9898 let mut _prev_end_offset: usize = 0;
9899 if 1 > max_ordinal {
9900 return Ok(());
9901 }
9902
9903 let cur_offset: usize = (1 - 1) * envelope_size;
9906
9907 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9909
9910 fidl::encoding::encode_in_envelope_optional::<i64, D>(
9915 self.min_controller_delay
9916 .as_ref()
9917 .map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
9918 encoder,
9919 offset + cur_offset,
9920 depth,
9921 )?;
9922
9923 _prev_end_offset = cur_offset + envelope_size;
9924 if 2 > max_ordinal {
9925 return Ok(());
9926 }
9927
9928 let cur_offset: usize = (2 - 1) * envelope_size;
9931
9932 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9934
9935 fidl::encoding::encode_in_envelope_optional::<i64, D>(
9940 self.max_controller_delay
9941 .as_ref()
9942 .map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
9943 encoder,
9944 offset + cur_offset,
9945 depth,
9946 )?;
9947
9948 _prev_end_offset = cur_offset + envelope_size;
9949
9950 Ok(())
9951 }
9952 }
9953
9954 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
9955 for CodecDelayGetCodecLocalDelayRangeResponse
9956 {
9957 #[inline(always)]
9958 fn new_empty() -> Self {
9959 Self::default()
9960 }
9961
9962 unsafe fn decode(
9963 &mut self,
9964 decoder: &mut fidl::encoding::Decoder<'_, D>,
9965 offset: usize,
9966 mut depth: fidl::encoding::Depth,
9967 ) -> fidl::Result<()> {
9968 decoder.debug_check_bounds::<Self>(offset);
9969 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
9970 None => return Err(fidl::Error::NotNullable),
9971 Some(len) => len,
9972 };
9973 if len == 0 {
9975 return Ok(());
9976 };
9977 depth.increment()?;
9978 let envelope_size = 8;
9979 let bytes_len = len * envelope_size;
9980 let offset = decoder.out_of_line_offset(bytes_len)?;
9981 let mut _next_ordinal_to_read = 0;
9983 let mut next_offset = offset;
9984 let end_offset = offset + bytes_len;
9985 _next_ordinal_to_read += 1;
9986 if next_offset >= end_offset {
9987 return Ok(());
9988 }
9989
9990 while _next_ordinal_to_read < 1 {
9992 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9993 _next_ordinal_to_read += 1;
9994 next_offset += envelope_size;
9995 }
9996
9997 let next_out_of_line = decoder.next_out_of_line();
9998 let handles_before = decoder.remaining_handles();
9999 if let Some((inlined, num_bytes, num_handles)) =
10000 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10001 {
10002 let member_inline_size =
10003 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
10004 if inlined != (member_inline_size <= 4) {
10005 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10006 }
10007 let inner_offset;
10008 let mut inner_depth = depth.clone();
10009 if inlined {
10010 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10011 inner_offset = next_offset;
10012 } else {
10013 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10014 inner_depth.increment()?;
10015 }
10016 let val_ref =
10017 self.min_controller_delay.get_or_insert_with(|| fidl::new_empty!(i64, D));
10018 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
10019 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10020 {
10021 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10022 }
10023 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10024 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10025 }
10026 }
10027
10028 next_offset += envelope_size;
10029 _next_ordinal_to_read += 1;
10030 if next_offset >= end_offset {
10031 return Ok(());
10032 }
10033
10034 while _next_ordinal_to_read < 2 {
10036 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10037 _next_ordinal_to_read += 1;
10038 next_offset += envelope_size;
10039 }
10040
10041 let next_out_of_line = decoder.next_out_of_line();
10042 let handles_before = decoder.remaining_handles();
10043 if let Some((inlined, num_bytes, num_handles)) =
10044 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10045 {
10046 let member_inline_size =
10047 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
10048 if inlined != (member_inline_size <= 4) {
10049 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10050 }
10051 let inner_offset;
10052 let mut inner_depth = depth.clone();
10053 if inlined {
10054 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10055 inner_offset = next_offset;
10056 } else {
10057 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10058 inner_depth.increment()?;
10059 }
10060 let val_ref =
10061 self.max_controller_delay.get_or_insert_with(|| fidl::new_empty!(i64, D));
10062 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
10063 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10064 {
10065 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10066 }
10067 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10068 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10069 }
10070 }
10071
10072 next_offset += envelope_size;
10073
10074 while next_offset < end_offset {
10076 _next_ordinal_to_read += 1;
10077 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10078 next_offset += envelope_size;
10079 }
10080
10081 Ok(())
10082 }
10083 }
10084
10085 impl ConnectedIsochronousGroupEstablishStreamsRequest {
10086 #[inline(always)]
10087 fn max_ordinal_present(&self) -> u64 {
10088 if let Some(_) = self.cis_params {
10089 return 1;
10090 }
10091 0
10092 }
10093 }
10094
10095 impl fidl::encoding::ValueTypeMarker for ConnectedIsochronousGroupEstablishStreamsRequest {
10096 type Borrowed<'a> = &'a Self;
10097 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
10098 value
10099 }
10100 }
10101
10102 unsafe impl fidl::encoding::TypeMarker for ConnectedIsochronousGroupEstablishStreamsRequest {
10103 type Owned = Self;
10104
10105 #[inline(always)]
10106 fn inline_align(_context: fidl::encoding::Context) -> usize {
10107 8
10108 }
10109
10110 #[inline(always)]
10111 fn inline_size(_context: fidl::encoding::Context) -> usize {
10112 16
10113 }
10114 }
10115
10116 unsafe impl<D: fidl::encoding::ResourceDialect>
10117 fidl::encoding::Encode<ConnectedIsochronousGroupEstablishStreamsRequest, D>
10118 for &ConnectedIsochronousGroupEstablishStreamsRequest
10119 {
10120 unsafe fn encode(
10121 self,
10122 encoder: &mut fidl::encoding::Encoder<'_, D>,
10123 offset: usize,
10124 mut depth: fidl::encoding::Depth,
10125 ) -> fidl::Result<()> {
10126 encoder.debug_check_bounds::<ConnectedIsochronousGroupEstablishStreamsRequest>(offset);
10127 let max_ordinal: u64 = self.max_ordinal_present();
10129 encoder.write_num(max_ordinal, offset);
10130 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
10131 if max_ordinal == 0 {
10133 return Ok(());
10134 }
10135 depth.increment()?;
10136 let envelope_size = 8;
10137 let bytes_len = max_ordinal as usize * envelope_size;
10138 #[allow(unused_variables)]
10139 let offset = encoder.out_of_line_offset(bytes_len);
10140 let mut _prev_end_offset: usize = 0;
10141 if 1 > max_ordinal {
10142 return Ok(());
10143 }
10144
10145 let cur_offset: usize = (1 - 1) * envelope_size;
10148
10149 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10151
10152 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<CisParameters, 31>, D>(
10157 self.cis_params.as_ref().map(<fidl::encoding::Vector<CisParameters, 31> as fidl::encoding::ValueTypeMarker>::borrow),
10158 encoder, offset + cur_offset, depth
10159 )?;
10160
10161 _prev_end_offset = cur_offset + envelope_size;
10162
10163 Ok(())
10164 }
10165 }
10166
10167 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
10168 for ConnectedIsochronousGroupEstablishStreamsRequest
10169 {
10170 #[inline(always)]
10171 fn new_empty() -> Self {
10172 Self::default()
10173 }
10174
10175 unsafe fn decode(
10176 &mut self,
10177 decoder: &mut fidl::encoding::Decoder<'_, D>,
10178 offset: usize,
10179 mut depth: fidl::encoding::Depth,
10180 ) -> fidl::Result<()> {
10181 decoder.debug_check_bounds::<Self>(offset);
10182 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
10183 None => return Err(fidl::Error::NotNullable),
10184 Some(len) => len,
10185 };
10186 if len == 0 {
10188 return Ok(());
10189 };
10190 depth.increment()?;
10191 let envelope_size = 8;
10192 let bytes_len = len * envelope_size;
10193 let offset = decoder.out_of_line_offset(bytes_len)?;
10194 let mut _next_ordinal_to_read = 0;
10196 let mut next_offset = offset;
10197 let end_offset = offset + bytes_len;
10198 _next_ordinal_to_read += 1;
10199 if next_offset >= end_offset {
10200 return Ok(());
10201 }
10202
10203 while _next_ordinal_to_read < 1 {
10205 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10206 _next_ordinal_to_read += 1;
10207 next_offset += envelope_size;
10208 }
10209
10210 let next_out_of_line = decoder.next_out_of_line();
10211 let handles_before = decoder.remaining_handles();
10212 if let Some((inlined, num_bytes, num_handles)) =
10213 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10214 {
10215 let member_inline_size = <fidl::encoding::Vector<CisParameters, 31> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
10216 if inlined != (member_inline_size <= 4) {
10217 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10218 }
10219 let inner_offset;
10220 let mut inner_depth = depth.clone();
10221 if inlined {
10222 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10223 inner_offset = next_offset;
10224 } else {
10225 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10226 inner_depth.increment()?;
10227 }
10228 let val_ref = self.cis_params.get_or_insert_with(
10229 || fidl::new_empty!(fidl::encoding::Vector<CisParameters, 31>, D),
10230 );
10231 fidl::decode!(fidl::encoding::Vector<CisParameters, 31>, D, val_ref, decoder, inner_offset, inner_depth)?;
10232 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10233 {
10234 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10235 }
10236 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10237 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10238 }
10239 }
10240
10241 next_offset += envelope_size;
10242
10243 while next_offset < end_offset {
10245 _next_ordinal_to_read += 1;
10246 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10247 next_offset += envelope_size;
10248 }
10249
10250 Ok(())
10251 }
10252 }
10253
10254 impl ConnectionOptions {
10255 #[inline(always)]
10256 fn max_ordinal_present(&self) -> u64 {
10257 if let Some(_) = self.service_filter {
10258 return 2;
10259 }
10260 if let Some(_) = self.bondable_mode {
10261 return 1;
10262 }
10263 0
10264 }
10265 }
10266
10267 impl fidl::encoding::ValueTypeMarker for ConnectionOptions {
10268 type Borrowed<'a> = &'a Self;
10269 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
10270 value
10271 }
10272 }
10273
10274 unsafe impl fidl::encoding::TypeMarker for ConnectionOptions {
10275 type Owned = Self;
10276
10277 #[inline(always)]
10278 fn inline_align(_context: fidl::encoding::Context) -> usize {
10279 8
10280 }
10281
10282 #[inline(always)]
10283 fn inline_size(_context: fidl::encoding::Context) -> usize {
10284 16
10285 }
10286 }
10287
10288 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ConnectionOptions, D>
10289 for &ConnectionOptions
10290 {
10291 unsafe fn encode(
10292 self,
10293 encoder: &mut fidl::encoding::Encoder<'_, D>,
10294 offset: usize,
10295 mut depth: fidl::encoding::Depth,
10296 ) -> fidl::Result<()> {
10297 encoder.debug_check_bounds::<ConnectionOptions>(offset);
10298 let max_ordinal: u64 = self.max_ordinal_present();
10300 encoder.write_num(max_ordinal, offset);
10301 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
10302 if max_ordinal == 0 {
10304 return Ok(());
10305 }
10306 depth.increment()?;
10307 let envelope_size = 8;
10308 let bytes_len = max_ordinal as usize * envelope_size;
10309 #[allow(unused_variables)]
10310 let offset = encoder.out_of_line_offset(bytes_len);
10311 let mut _prev_end_offset: usize = 0;
10312 if 1 > max_ordinal {
10313 return Ok(());
10314 }
10315
10316 let cur_offset: usize = (1 - 1) * envelope_size;
10319
10320 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10322
10323 fidl::encoding::encode_in_envelope_optional::<bool, D>(
10328 self.bondable_mode.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
10329 encoder,
10330 offset + cur_offset,
10331 depth,
10332 )?;
10333
10334 _prev_end_offset = cur_offset + envelope_size;
10335 if 2 > max_ordinal {
10336 return Ok(());
10337 }
10338
10339 let cur_offset: usize = (2 - 1) * envelope_size;
10342
10343 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10345
10346 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_bluetooth_common::Uuid, D>(
10351 self.service_filter.as_ref().map(<fidl_fuchsia_bluetooth_common::Uuid as fidl::encoding::ValueTypeMarker>::borrow),
10352 encoder, offset + cur_offset, depth
10353 )?;
10354
10355 _prev_end_offset = cur_offset + envelope_size;
10356
10357 Ok(())
10358 }
10359 }
10360
10361 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ConnectionOptions {
10362 #[inline(always)]
10363 fn new_empty() -> Self {
10364 Self::default()
10365 }
10366
10367 unsafe fn decode(
10368 &mut self,
10369 decoder: &mut fidl::encoding::Decoder<'_, D>,
10370 offset: usize,
10371 mut depth: fidl::encoding::Depth,
10372 ) -> fidl::Result<()> {
10373 decoder.debug_check_bounds::<Self>(offset);
10374 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
10375 None => return Err(fidl::Error::NotNullable),
10376 Some(len) => len,
10377 };
10378 if len == 0 {
10380 return Ok(());
10381 };
10382 depth.increment()?;
10383 let envelope_size = 8;
10384 let bytes_len = len * envelope_size;
10385 let offset = decoder.out_of_line_offset(bytes_len)?;
10386 let mut _next_ordinal_to_read = 0;
10388 let mut next_offset = offset;
10389 let end_offset = offset + bytes_len;
10390 _next_ordinal_to_read += 1;
10391 if next_offset >= end_offset {
10392 return Ok(());
10393 }
10394
10395 while _next_ordinal_to_read < 1 {
10397 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10398 _next_ordinal_to_read += 1;
10399 next_offset += envelope_size;
10400 }
10401
10402 let next_out_of_line = decoder.next_out_of_line();
10403 let handles_before = decoder.remaining_handles();
10404 if let Some((inlined, num_bytes, num_handles)) =
10405 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10406 {
10407 let member_inline_size =
10408 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
10409 if inlined != (member_inline_size <= 4) {
10410 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10411 }
10412 let inner_offset;
10413 let mut inner_depth = depth.clone();
10414 if inlined {
10415 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10416 inner_offset = next_offset;
10417 } else {
10418 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10419 inner_depth.increment()?;
10420 }
10421 let val_ref = self.bondable_mode.get_or_insert_with(|| fidl::new_empty!(bool, D));
10422 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
10423 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10424 {
10425 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10426 }
10427 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10428 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10429 }
10430 }
10431
10432 next_offset += envelope_size;
10433 _next_ordinal_to_read += 1;
10434 if next_offset >= end_offset {
10435 return Ok(());
10436 }
10437
10438 while _next_ordinal_to_read < 2 {
10440 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10441 _next_ordinal_to_read += 1;
10442 next_offset += envelope_size;
10443 }
10444
10445 let next_out_of_line = decoder.next_out_of_line();
10446 let handles_before = decoder.remaining_handles();
10447 if let Some((inlined, num_bytes, num_handles)) =
10448 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10449 {
10450 let member_inline_size = <fidl_fuchsia_bluetooth_common::Uuid as fidl::encoding::TypeMarker>::inline_size(decoder.context);
10451 if inlined != (member_inline_size <= 4) {
10452 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10453 }
10454 let inner_offset;
10455 let mut inner_depth = depth.clone();
10456 if inlined {
10457 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10458 inner_offset = next_offset;
10459 } else {
10460 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10461 inner_depth.increment()?;
10462 }
10463 let val_ref = self.service_filter.get_or_insert_with(|| {
10464 fidl::new_empty!(fidl_fuchsia_bluetooth_common::Uuid, D)
10465 });
10466 fidl::decode!(
10467 fidl_fuchsia_bluetooth_common::Uuid,
10468 D,
10469 val_ref,
10470 decoder,
10471 inner_offset,
10472 inner_depth
10473 )?;
10474 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10475 {
10476 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10477 }
10478 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10479 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10480 }
10481 }
10482
10483 next_offset += envelope_size;
10484
10485 while next_offset < end_offset {
10487 _next_ordinal_to_read += 1;
10488 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10489 next_offset += envelope_size;
10490 }
10491
10492 Ok(())
10493 }
10494 }
10495
10496 impl ConnectionTransferPeriodicAdvertisingSyncRequest {
10497 #[inline(always)]
10498 fn max_ordinal_present(&self) -> u64 {
10499 if let Some(_) = self.service_data {
10500 return 2;
10501 }
10502 if let Some(_) = self.sync_id {
10503 return 1;
10504 }
10505 0
10506 }
10507 }
10508
10509 impl fidl::encoding::ValueTypeMarker for ConnectionTransferPeriodicAdvertisingSyncRequest {
10510 type Borrowed<'a> = &'a Self;
10511 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
10512 value
10513 }
10514 }
10515
10516 unsafe impl fidl::encoding::TypeMarker for ConnectionTransferPeriodicAdvertisingSyncRequest {
10517 type Owned = Self;
10518
10519 #[inline(always)]
10520 fn inline_align(_context: fidl::encoding::Context) -> usize {
10521 8
10522 }
10523
10524 #[inline(always)]
10525 fn inline_size(_context: fidl::encoding::Context) -> usize {
10526 16
10527 }
10528 }
10529
10530 unsafe impl<D: fidl::encoding::ResourceDialect>
10531 fidl::encoding::Encode<ConnectionTransferPeriodicAdvertisingSyncRequest, D>
10532 for &ConnectionTransferPeriodicAdvertisingSyncRequest
10533 {
10534 unsafe fn encode(
10535 self,
10536 encoder: &mut fidl::encoding::Encoder<'_, D>,
10537 offset: usize,
10538 mut depth: fidl::encoding::Depth,
10539 ) -> fidl::Result<()> {
10540 encoder.debug_check_bounds::<ConnectionTransferPeriodicAdvertisingSyncRequest>(offset);
10541 let max_ordinal: u64 = self.max_ordinal_present();
10543 encoder.write_num(max_ordinal, offset);
10544 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
10545 if max_ordinal == 0 {
10547 return Ok(());
10548 }
10549 depth.increment()?;
10550 let envelope_size = 8;
10551 let bytes_len = max_ordinal as usize * envelope_size;
10552 #[allow(unused_variables)]
10553 let offset = encoder.out_of_line_offset(bytes_len);
10554 let mut _prev_end_offset: usize = 0;
10555 if 1 > max_ordinal {
10556 return Ok(());
10557 }
10558
10559 let cur_offset: usize = (1 - 1) * envelope_size;
10562
10563 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10565
10566 fidl::encoding::encode_in_envelope_optional::<PeriodicAdvertisingSyncId, D>(
10571 self.sync_id
10572 .as_ref()
10573 .map(<PeriodicAdvertisingSyncId as fidl::encoding::ValueTypeMarker>::borrow),
10574 encoder,
10575 offset + cur_offset,
10576 depth,
10577 )?;
10578
10579 _prev_end_offset = cur_offset + envelope_size;
10580 if 2 > max_ordinal {
10581 return Ok(());
10582 }
10583
10584 let cur_offset: usize = (2 - 1) * envelope_size;
10587
10588 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10590
10591 fidl::encoding::encode_in_envelope_optional::<u16, D>(
10596 self.service_data.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
10597 encoder,
10598 offset + cur_offset,
10599 depth,
10600 )?;
10601
10602 _prev_end_offset = cur_offset + envelope_size;
10603
10604 Ok(())
10605 }
10606 }
10607
10608 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
10609 for ConnectionTransferPeriodicAdvertisingSyncRequest
10610 {
10611 #[inline(always)]
10612 fn new_empty() -> Self {
10613 Self::default()
10614 }
10615
10616 unsafe fn decode(
10617 &mut self,
10618 decoder: &mut fidl::encoding::Decoder<'_, D>,
10619 offset: usize,
10620 mut depth: fidl::encoding::Depth,
10621 ) -> fidl::Result<()> {
10622 decoder.debug_check_bounds::<Self>(offset);
10623 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
10624 None => return Err(fidl::Error::NotNullable),
10625 Some(len) => len,
10626 };
10627 if len == 0 {
10629 return Ok(());
10630 };
10631 depth.increment()?;
10632 let envelope_size = 8;
10633 let bytes_len = len * envelope_size;
10634 let offset = decoder.out_of_line_offset(bytes_len)?;
10635 let mut _next_ordinal_to_read = 0;
10637 let mut next_offset = offset;
10638 let end_offset = offset + bytes_len;
10639 _next_ordinal_to_read += 1;
10640 if next_offset >= end_offset {
10641 return Ok(());
10642 }
10643
10644 while _next_ordinal_to_read < 1 {
10646 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10647 _next_ordinal_to_read += 1;
10648 next_offset += envelope_size;
10649 }
10650
10651 let next_out_of_line = decoder.next_out_of_line();
10652 let handles_before = decoder.remaining_handles();
10653 if let Some((inlined, num_bytes, num_handles)) =
10654 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10655 {
10656 let member_inline_size =
10657 <PeriodicAdvertisingSyncId as fidl::encoding::TypeMarker>::inline_size(
10658 decoder.context,
10659 );
10660 if inlined != (member_inline_size <= 4) {
10661 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10662 }
10663 let inner_offset;
10664 let mut inner_depth = depth.clone();
10665 if inlined {
10666 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10667 inner_offset = next_offset;
10668 } else {
10669 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10670 inner_depth.increment()?;
10671 }
10672 let val_ref = self
10673 .sync_id
10674 .get_or_insert_with(|| fidl::new_empty!(PeriodicAdvertisingSyncId, D));
10675 fidl::decode!(
10676 PeriodicAdvertisingSyncId,
10677 D,
10678 val_ref,
10679 decoder,
10680 inner_offset,
10681 inner_depth
10682 )?;
10683 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10684 {
10685 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10686 }
10687 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10688 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10689 }
10690 }
10691
10692 next_offset += envelope_size;
10693 _next_ordinal_to_read += 1;
10694 if next_offset >= end_offset {
10695 return Ok(());
10696 }
10697
10698 while _next_ordinal_to_read < 2 {
10700 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10701 _next_ordinal_to_read += 1;
10702 next_offset += envelope_size;
10703 }
10704
10705 let next_out_of_line = decoder.next_out_of_line();
10706 let handles_before = decoder.remaining_handles();
10707 if let Some((inlined, num_bytes, num_handles)) =
10708 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10709 {
10710 let member_inline_size =
10711 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
10712 if inlined != (member_inline_size <= 4) {
10713 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10714 }
10715 let inner_offset;
10716 let mut inner_depth = depth.clone();
10717 if inlined {
10718 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10719 inner_offset = next_offset;
10720 } else {
10721 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10722 inner_depth.increment()?;
10723 }
10724 let val_ref = self.service_data.get_or_insert_with(|| fidl::new_empty!(u16, D));
10725 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
10726 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10727 {
10728 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10729 }
10730 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10731 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10732 }
10733 }
10734
10735 next_offset += envelope_size;
10736
10737 while next_offset < end_offset {
10739 _next_ordinal_to_read += 1;
10740 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10741 next_offset += envelope_size;
10742 }
10743
10744 Ok(())
10745 }
10746 }
10747
10748 impl Extended {
10749 #[inline(always)]
10750 fn max_ordinal_present(&self) -> u64 {
10751 0
10752 }
10753 }
10754
10755 impl fidl::encoding::ValueTypeMarker for Extended {
10756 type Borrowed<'a> = &'a Self;
10757 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
10758 value
10759 }
10760 }
10761
10762 unsafe impl fidl::encoding::TypeMarker for Extended {
10763 type Owned = Self;
10764
10765 #[inline(always)]
10766 fn inline_align(_context: fidl::encoding::Context) -> usize {
10767 8
10768 }
10769
10770 #[inline(always)]
10771 fn inline_size(_context: fidl::encoding::Context) -> usize {
10772 16
10773 }
10774 }
10775
10776 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Extended, D> for &Extended {
10777 unsafe fn encode(
10778 self,
10779 encoder: &mut fidl::encoding::Encoder<'_, D>,
10780 offset: usize,
10781 mut depth: fidl::encoding::Depth,
10782 ) -> fidl::Result<()> {
10783 encoder.debug_check_bounds::<Extended>(offset);
10784 let max_ordinal: u64 = self.max_ordinal_present();
10786 encoder.write_num(max_ordinal, offset);
10787 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
10788 if max_ordinal == 0 {
10790 return Ok(());
10791 }
10792 depth.increment()?;
10793 let envelope_size = 8;
10794 let bytes_len = max_ordinal as usize * envelope_size;
10795 #[allow(unused_variables)]
10796 let offset = encoder.out_of_line_offset(bytes_len);
10797 let mut _prev_end_offset: usize = 0;
10798
10799 Ok(())
10800 }
10801 }
10802
10803 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Extended {
10804 #[inline(always)]
10805 fn new_empty() -> Self {
10806 Self::default()
10807 }
10808
10809 unsafe fn decode(
10810 &mut self,
10811 decoder: &mut fidl::encoding::Decoder<'_, D>,
10812 offset: usize,
10813 mut depth: fidl::encoding::Depth,
10814 ) -> fidl::Result<()> {
10815 decoder.debug_check_bounds::<Self>(offset);
10816 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
10817 None => return Err(fidl::Error::NotNullable),
10818 Some(len) => len,
10819 };
10820 if len == 0 {
10822 return Ok(());
10823 };
10824 depth.increment()?;
10825 let envelope_size = 8;
10826 let bytes_len = len * envelope_size;
10827 let offset = decoder.out_of_line_offset(bytes_len)?;
10828 let mut _next_ordinal_to_read = 0;
10830 let mut next_offset = offset;
10831 let end_offset = offset + bytes_len;
10832
10833 while next_offset < end_offset {
10835 _next_ordinal_to_read += 1;
10836 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10837 next_offset += envelope_size;
10838 }
10839
10840 Ok(())
10841 }
10842 }
10843
10844 impl Filter {
10845 #[inline(always)]
10846 fn max_ordinal_present(&self) -> u64 {
10847 if let Some(_) = self.solicitation_uuid {
10848 return 7;
10849 }
10850 if let Some(_) = self.max_path_loss {
10851 return 6;
10852 }
10853 if let Some(_) = self.name {
10854 return 5;
10855 }
10856 if let Some(_) = self.connectable {
10857 return 4;
10858 }
10859 if let Some(_) = self.manufacturer_id {
10860 return 3;
10861 }
10862 if let Some(_) = self.service_data_uuid {
10863 return 2;
10864 }
10865 if let Some(_) = self.service_uuid {
10866 return 1;
10867 }
10868 0
10869 }
10870 }
10871
10872 impl fidl::encoding::ValueTypeMarker for Filter {
10873 type Borrowed<'a> = &'a Self;
10874 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
10875 value
10876 }
10877 }
10878
10879 unsafe impl fidl::encoding::TypeMarker for Filter {
10880 type Owned = Self;
10881
10882 #[inline(always)]
10883 fn inline_align(_context: fidl::encoding::Context) -> usize {
10884 8
10885 }
10886
10887 #[inline(always)]
10888 fn inline_size(_context: fidl::encoding::Context) -> usize {
10889 16
10890 }
10891 }
10892
10893 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Filter, D> for &Filter {
10894 unsafe fn encode(
10895 self,
10896 encoder: &mut fidl::encoding::Encoder<'_, D>,
10897 offset: usize,
10898 mut depth: fidl::encoding::Depth,
10899 ) -> fidl::Result<()> {
10900 encoder.debug_check_bounds::<Filter>(offset);
10901 let max_ordinal: u64 = self.max_ordinal_present();
10903 encoder.write_num(max_ordinal, offset);
10904 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
10905 if max_ordinal == 0 {
10907 return Ok(());
10908 }
10909 depth.increment()?;
10910 let envelope_size = 8;
10911 let bytes_len = max_ordinal as usize * envelope_size;
10912 #[allow(unused_variables)]
10913 let offset = encoder.out_of_line_offset(bytes_len);
10914 let mut _prev_end_offset: usize = 0;
10915 if 1 > max_ordinal {
10916 return Ok(());
10917 }
10918
10919 let cur_offset: usize = (1 - 1) * envelope_size;
10922
10923 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10925
10926 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_bluetooth_common::Uuid, D>(
10931 self.service_uuid.as_ref().map(<fidl_fuchsia_bluetooth_common::Uuid as fidl::encoding::ValueTypeMarker>::borrow),
10932 encoder, offset + cur_offset, depth
10933 )?;
10934
10935 _prev_end_offset = cur_offset + envelope_size;
10936 if 2 > max_ordinal {
10937 return Ok(());
10938 }
10939
10940 let cur_offset: usize = (2 - 1) * envelope_size;
10943
10944 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10946
10947 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_bluetooth_common::Uuid, D>(
10952 self.service_data_uuid.as_ref().map(<fidl_fuchsia_bluetooth_common::Uuid as fidl::encoding::ValueTypeMarker>::borrow),
10953 encoder, offset + cur_offset, depth
10954 )?;
10955
10956 _prev_end_offset = cur_offset + envelope_size;
10957 if 3 > max_ordinal {
10958 return Ok(());
10959 }
10960
10961 let cur_offset: usize = (3 - 1) * envelope_size;
10964
10965 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10967
10968 fidl::encoding::encode_in_envelope_optional::<u16, D>(
10973 self.manufacturer_id.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
10974 encoder,
10975 offset + cur_offset,
10976 depth,
10977 )?;
10978
10979 _prev_end_offset = cur_offset + envelope_size;
10980 if 4 > max_ordinal {
10981 return Ok(());
10982 }
10983
10984 let cur_offset: usize = (4 - 1) * envelope_size;
10987
10988 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10990
10991 fidl::encoding::encode_in_envelope_optional::<bool, D>(
10996 self.connectable.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
10997 encoder,
10998 offset + cur_offset,
10999 depth,
11000 )?;
11001
11002 _prev_end_offset = cur_offset + envelope_size;
11003 if 5 > max_ordinal {
11004 return Ok(());
11005 }
11006
11007 let cur_offset: usize = (5 - 1) * envelope_size;
11010
11011 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11013
11014 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<248>, D>(
11019 self.name.as_ref().map(
11020 <fidl::encoding::BoundedString<248> as fidl::encoding::ValueTypeMarker>::borrow,
11021 ),
11022 encoder,
11023 offset + cur_offset,
11024 depth,
11025 )?;
11026
11027 _prev_end_offset = cur_offset + envelope_size;
11028 if 6 > max_ordinal {
11029 return Ok(());
11030 }
11031
11032 let cur_offset: usize = (6 - 1) * envelope_size;
11035
11036 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11038
11039 fidl::encoding::encode_in_envelope_optional::<i8, D>(
11044 self.max_path_loss.as_ref().map(<i8 as fidl::encoding::ValueTypeMarker>::borrow),
11045 encoder,
11046 offset + cur_offset,
11047 depth,
11048 )?;
11049
11050 _prev_end_offset = cur_offset + envelope_size;
11051 if 7 > max_ordinal {
11052 return Ok(());
11053 }
11054
11055 let cur_offset: usize = (7 - 1) * envelope_size;
11058
11059 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11061
11062 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_bluetooth_common::Uuid, D>(
11067 self.solicitation_uuid.as_ref().map(<fidl_fuchsia_bluetooth_common::Uuid as fidl::encoding::ValueTypeMarker>::borrow),
11068 encoder, offset + cur_offset, depth
11069 )?;
11070
11071 _prev_end_offset = cur_offset + envelope_size;
11072
11073 Ok(())
11074 }
11075 }
11076
11077 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Filter {
11078 #[inline(always)]
11079 fn new_empty() -> Self {
11080 Self::default()
11081 }
11082
11083 unsafe fn decode(
11084 &mut self,
11085 decoder: &mut fidl::encoding::Decoder<'_, D>,
11086 offset: usize,
11087 mut depth: fidl::encoding::Depth,
11088 ) -> fidl::Result<()> {
11089 decoder.debug_check_bounds::<Self>(offset);
11090 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
11091 None => return Err(fidl::Error::NotNullable),
11092 Some(len) => len,
11093 };
11094 if len == 0 {
11096 return Ok(());
11097 };
11098 depth.increment()?;
11099 let envelope_size = 8;
11100 let bytes_len = len * envelope_size;
11101 let offset = decoder.out_of_line_offset(bytes_len)?;
11102 let mut _next_ordinal_to_read = 0;
11104 let mut next_offset = offset;
11105 let end_offset = offset + bytes_len;
11106 _next_ordinal_to_read += 1;
11107 if next_offset >= end_offset {
11108 return Ok(());
11109 }
11110
11111 while _next_ordinal_to_read < 1 {
11113 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11114 _next_ordinal_to_read += 1;
11115 next_offset += envelope_size;
11116 }
11117
11118 let next_out_of_line = decoder.next_out_of_line();
11119 let handles_before = decoder.remaining_handles();
11120 if let Some((inlined, num_bytes, num_handles)) =
11121 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11122 {
11123 let member_inline_size = <fidl_fuchsia_bluetooth_common::Uuid as fidl::encoding::TypeMarker>::inline_size(decoder.context);
11124 if inlined != (member_inline_size <= 4) {
11125 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11126 }
11127 let inner_offset;
11128 let mut inner_depth = depth.clone();
11129 if inlined {
11130 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11131 inner_offset = next_offset;
11132 } else {
11133 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11134 inner_depth.increment()?;
11135 }
11136 let val_ref = self.service_uuid.get_or_insert_with(|| {
11137 fidl::new_empty!(fidl_fuchsia_bluetooth_common::Uuid, D)
11138 });
11139 fidl::decode!(
11140 fidl_fuchsia_bluetooth_common::Uuid,
11141 D,
11142 val_ref,
11143 decoder,
11144 inner_offset,
11145 inner_depth
11146 )?;
11147 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11148 {
11149 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11150 }
11151 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11152 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11153 }
11154 }
11155
11156 next_offset += envelope_size;
11157 _next_ordinal_to_read += 1;
11158 if next_offset >= end_offset {
11159 return Ok(());
11160 }
11161
11162 while _next_ordinal_to_read < 2 {
11164 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11165 _next_ordinal_to_read += 1;
11166 next_offset += envelope_size;
11167 }
11168
11169 let next_out_of_line = decoder.next_out_of_line();
11170 let handles_before = decoder.remaining_handles();
11171 if let Some((inlined, num_bytes, num_handles)) =
11172 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11173 {
11174 let member_inline_size = <fidl_fuchsia_bluetooth_common::Uuid as fidl::encoding::TypeMarker>::inline_size(decoder.context);
11175 if inlined != (member_inline_size <= 4) {
11176 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11177 }
11178 let inner_offset;
11179 let mut inner_depth = depth.clone();
11180 if inlined {
11181 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11182 inner_offset = next_offset;
11183 } else {
11184 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11185 inner_depth.increment()?;
11186 }
11187 let val_ref = self.service_data_uuid.get_or_insert_with(|| {
11188 fidl::new_empty!(fidl_fuchsia_bluetooth_common::Uuid, D)
11189 });
11190 fidl::decode!(
11191 fidl_fuchsia_bluetooth_common::Uuid,
11192 D,
11193 val_ref,
11194 decoder,
11195 inner_offset,
11196 inner_depth
11197 )?;
11198 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11199 {
11200 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11201 }
11202 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11203 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11204 }
11205 }
11206
11207 next_offset += envelope_size;
11208 _next_ordinal_to_read += 1;
11209 if next_offset >= end_offset {
11210 return Ok(());
11211 }
11212
11213 while _next_ordinal_to_read < 3 {
11215 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11216 _next_ordinal_to_read += 1;
11217 next_offset += envelope_size;
11218 }
11219
11220 let next_out_of_line = decoder.next_out_of_line();
11221 let handles_before = decoder.remaining_handles();
11222 if let Some((inlined, num_bytes, num_handles)) =
11223 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11224 {
11225 let member_inline_size =
11226 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
11227 if inlined != (member_inline_size <= 4) {
11228 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11229 }
11230 let inner_offset;
11231 let mut inner_depth = depth.clone();
11232 if inlined {
11233 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11234 inner_offset = next_offset;
11235 } else {
11236 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11237 inner_depth.increment()?;
11238 }
11239 let val_ref = self.manufacturer_id.get_or_insert_with(|| fidl::new_empty!(u16, D));
11240 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
11241 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11242 {
11243 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11244 }
11245 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11246 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11247 }
11248 }
11249
11250 next_offset += envelope_size;
11251 _next_ordinal_to_read += 1;
11252 if next_offset >= end_offset {
11253 return Ok(());
11254 }
11255
11256 while _next_ordinal_to_read < 4 {
11258 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11259 _next_ordinal_to_read += 1;
11260 next_offset += envelope_size;
11261 }
11262
11263 let next_out_of_line = decoder.next_out_of_line();
11264 let handles_before = decoder.remaining_handles();
11265 if let Some((inlined, num_bytes, num_handles)) =
11266 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11267 {
11268 let member_inline_size =
11269 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
11270 if inlined != (member_inline_size <= 4) {
11271 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11272 }
11273 let inner_offset;
11274 let mut inner_depth = depth.clone();
11275 if inlined {
11276 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11277 inner_offset = next_offset;
11278 } else {
11279 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11280 inner_depth.increment()?;
11281 }
11282 let val_ref = self.connectable.get_or_insert_with(|| fidl::new_empty!(bool, D));
11283 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
11284 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11285 {
11286 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11287 }
11288 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11289 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11290 }
11291 }
11292
11293 next_offset += envelope_size;
11294 _next_ordinal_to_read += 1;
11295 if next_offset >= end_offset {
11296 return Ok(());
11297 }
11298
11299 while _next_ordinal_to_read < 5 {
11301 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11302 _next_ordinal_to_read += 1;
11303 next_offset += envelope_size;
11304 }
11305
11306 let next_out_of_line = decoder.next_out_of_line();
11307 let handles_before = decoder.remaining_handles();
11308 if let Some((inlined, num_bytes, num_handles)) =
11309 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11310 {
11311 let member_inline_size =
11312 <fidl::encoding::BoundedString<248> as fidl::encoding::TypeMarker>::inline_size(
11313 decoder.context,
11314 );
11315 if inlined != (member_inline_size <= 4) {
11316 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11317 }
11318 let inner_offset;
11319 let mut inner_depth = depth.clone();
11320 if inlined {
11321 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11322 inner_offset = next_offset;
11323 } else {
11324 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11325 inner_depth.increment()?;
11326 }
11327 let val_ref = self
11328 .name
11329 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<248>, D));
11330 fidl::decode!(
11331 fidl::encoding::BoundedString<248>,
11332 D,
11333 val_ref,
11334 decoder,
11335 inner_offset,
11336 inner_depth
11337 )?;
11338 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11339 {
11340 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11341 }
11342 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11343 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11344 }
11345 }
11346
11347 next_offset += envelope_size;
11348 _next_ordinal_to_read += 1;
11349 if next_offset >= end_offset {
11350 return Ok(());
11351 }
11352
11353 while _next_ordinal_to_read < 6 {
11355 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11356 _next_ordinal_to_read += 1;
11357 next_offset += envelope_size;
11358 }
11359
11360 let next_out_of_line = decoder.next_out_of_line();
11361 let handles_before = decoder.remaining_handles();
11362 if let Some((inlined, num_bytes, num_handles)) =
11363 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11364 {
11365 let member_inline_size =
11366 <i8 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
11367 if inlined != (member_inline_size <= 4) {
11368 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11369 }
11370 let inner_offset;
11371 let mut inner_depth = depth.clone();
11372 if inlined {
11373 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11374 inner_offset = next_offset;
11375 } else {
11376 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11377 inner_depth.increment()?;
11378 }
11379 let val_ref = self.max_path_loss.get_or_insert_with(|| fidl::new_empty!(i8, D));
11380 fidl::decode!(i8, D, val_ref, decoder, inner_offset, inner_depth)?;
11381 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11382 {
11383 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11384 }
11385 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11386 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11387 }
11388 }
11389
11390 next_offset += envelope_size;
11391 _next_ordinal_to_read += 1;
11392 if next_offset >= end_offset {
11393 return Ok(());
11394 }
11395
11396 while _next_ordinal_to_read < 7 {
11398 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11399 _next_ordinal_to_read += 1;
11400 next_offset += envelope_size;
11401 }
11402
11403 let next_out_of_line = decoder.next_out_of_line();
11404 let handles_before = decoder.remaining_handles();
11405 if let Some((inlined, num_bytes, num_handles)) =
11406 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11407 {
11408 let member_inline_size = <fidl_fuchsia_bluetooth_common::Uuid as fidl::encoding::TypeMarker>::inline_size(decoder.context);
11409 if inlined != (member_inline_size <= 4) {
11410 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11411 }
11412 let inner_offset;
11413 let mut inner_depth = depth.clone();
11414 if inlined {
11415 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11416 inner_offset = next_offset;
11417 } else {
11418 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11419 inner_depth.increment()?;
11420 }
11421 let val_ref = self.solicitation_uuid.get_or_insert_with(|| {
11422 fidl::new_empty!(fidl_fuchsia_bluetooth_common::Uuid, D)
11423 });
11424 fidl::decode!(
11425 fidl_fuchsia_bluetooth_common::Uuid,
11426 D,
11427 val_ref,
11428 decoder,
11429 inner_offset,
11430 inner_depth
11431 )?;
11432 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11433 {
11434 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11435 }
11436 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11437 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11438 }
11439 }
11440
11441 next_offset += envelope_size;
11442
11443 while next_offset < end_offset {
11445 _next_ordinal_to_read += 1;
11446 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11447 next_offset += envelope_size;
11448 }
11449
11450 Ok(())
11451 }
11452 }
11453
11454 impl IsochronousStreamOnEstablishedRequest {
11455 #[inline(always)]
11456 fn max_ordinal_present(&self) -> u64 {
11457 if let Some(_) = self.established_params {
11458 return 2;
11459 }
11460 if let Some(_) = self.result {
11461 return 1;
11462 }
11463 0
11464 }
11465 }
11466
11467 impl fidl::encoding::ValueTypeMarker for IsochronousStreamOnEstablishedRequest {
11468 type Borrowed<'a> = &'a Self;
11469 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
11470 value
11471 }
11472 }
11473
11474 unsafe impl fidl::encoding::TypeMarker for IsochronousStreamOnEstablishedRequest {
11475 type Owned = Self;
11476
11477 #[inline(always)]
11478 fn inline_align(_context: fidl::encoding::Context) -> usize {
11479 8
11480 }
11481
11482 #[inline(always)]
11483 fn inline_size(_context: fidl::encoding::Context) -> usize {
11484 16
11485 }
11486 }
11487
11488 unsafe impl<D: fidl::encoding::ResourceDialect>
11489 fidl::encoding::Encode<IsochronousStreamOnEstablishedRequest, D>
11490 for &IsochronousStreamOnEstablishedRequest
11491 {
11492 unsafe fn encode(
11493 self,
11494 encoder: &mut fidl::encoding::Encoder<'_, D>,
11495 offset: usize,
11496 mut depth: fidl::encoding::Depth,
11497 ) -> fidl::Result<()> {
11498 encoder.debug_check_bounds::<IsochronousStreamOnEstablishedRequest>(offset);
11499 let max_ordinal: u64 = self.max_ordinal_present();
11501 encoder.write_num(max_ordinal, offset);
11502 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
11503 if max_ordinal == 0 {
11505 return Ok(());
11506 }
11507 depth.increment()?;
11508 let envelope_size = 8;
11509 let bytes_len = max_ordinal as usize * envelope_size;
11510 #[allow(unused_variables)]
11511 let offset = encoder.out_of_line_offset(bytes_len);
11512 let mut _prev_end_offset: usize = 0;
11513 if 1 > max_ordinal {
11514 return Ok(());
11515 }
11516
11517 let cur_offset: usize = (1 - 1) * envelope_size;
11520
11521 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11523
11524 fidl::encoding::encode_in_envelope_optional::<i32, D>(
11529 self.result.as_ref().map(<i32 as fidl::encoding::ValueTypeMarker>::borrow),
11530 encoder,
11531 offset + cur_offset,
11532 depth,
11533 )?;
11534
11535 _prev_end_offset = cur_offset + envelope_size;
11536 if 2 > max_ordinal {
11537 return Ok(());
11538 }
11539
11540 let cur_offset: usize = (2 - 1) * envelope_size;
11543
11544 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11546
11547 fidl::encoding::encode_in_envelope_optional::<CisEstablishedParameters, D>(
11552 self.established_params
11553 .as_ref()
11554 .map(<CisEstablishedParameters as fidl::encoding::ValueTypeMarker>::borrow),
11555 encoder,
11556 offset + cur_offset,
11557 depth,
11558 )?;
11559
11560 _prev_end_offset = cur_offset + envelope_size;
11561
11562 Ok(())
11563 }
11564 }
11565
11566 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
11567 for IsochronousStreamOnEstablishedRequest
11568 {
11569 #[inline(always)]
11570 fn new_empty() -> Self {
11571 Self::default()
11572 }
11573
11574 unsafe fn decode(
11575 &mut self,
11576 decoder: &mut fidl::encoding::Decoder<'_, D>,
11577 offset: usize,
11578 mut depth: fidl::encoding::Depth,
11579 ) -> fidl::Result<()> {
11580 decoder.debug_check_bounds::<Self>(offset);
11581 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
11582 None => return Err(fidl::Error::NotNullable),
11583 Some(len) => len,
11584 };
11585 if len == 0 {
11587 return Ok(());
11588 };
11589 depth.increment()?;
11590 let envelope_size = 8;
11591 let bytes_len = len * envelope_size;
11592 let offset = decoder.out_of_line_offset(bytes_len)?;
11593 let mut _next_ordinal_to_read = 0;
11595 let mut next_offset = offset;
11596 let end_offset = offset + bytes_len;
11597 _next_ordinal_to_read += 1;
11598 if next_offset >= end_offset {
11599 return Ok(());
11600 }
11601
11602 while _next_ordinal_to_read < 1 {
11604 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11605 _next_ordinal_to_read += 1;
11606 next_offset += envelope_size;
11607 }
11608
11609 let next_out_of_line = decoder.next_out_of_line();
11610 let handles_before = decoder.remaining_handles();
11611 if let Some((inlined, num_bytes, num_handles)) =
11612 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11613 {
11614 let member_inline_size =
11615 <i32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
11616 if inlined != (member_inline_size <= 4) {
11617 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11618 }
11619 let inner_offset;
11620 let mut inner_depth = depth.clone();
11621 if inlined {
11622 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11623 inner_offset = next_offset;
11624 } else {
11625 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11626 inner_depth.increment()?;
11627 }
11628 let val_ref = self.result.get_or_insert_with(|| fidl::new_empty!(i32, D));
11629 fidl::decode!(i32, D, val_ref, decoder, inner_offset, inner_depth)?;
11630 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11631 {
11632 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11633 }
11634 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11635 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11636 }
11637 }
11638
11639 next_offset += envelope_size;
11640 _next_ordinal_to_read += 1;
11641 if next_offset >= end_offset {
11642 return Ok(());
11643 }
11644
11645 while _next_ordinal_to_read < 2 {
11647 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11648 _next_ordinal_to_read += 1;
11649 next_offset += envelope_size;
11650 }
11651
11652 let next_out_of_line = decoder.next_out_of_line();
11653 let handles_before = decoder.remaining_handles();
11654 if let Some((inlined, num_bytes, num_handles)) =
11655 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11656 {
11657 let member_inline_size =
11658 <CisEstablishedParameters as fidl::encoding::TypeMarker>::inline_size(
11659 decoder.context,
11660 );
11661 if inlined != (member_inline_size <= 4) {
11662 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11663 }
11664 let inner_offset;
11665 let mut inner_depth = depth.clone();
11666 if inlined {
11667 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11668 inner_offset = next_offset;
11669 } else {
11670 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11671 inner_depth.increment()?;
11672 }
11673 let val_ref = self
11674 .established_params
11675 .get_or_insert_with(|| fidl::new_empty!(CisEstablishedParameters, D));
11676 fidl::decode!(
11677 CisEstablishedParameters,
11678 D,
11679 val_ref,
11680 decoder,
11681 inner_offset,
11682 inner_depth
11683 )?;
11684 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11685 {
11686 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11687 }
11688 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11689 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11690 }
11691 }
11692
11693 next_offset += envelope_size;
11694
11695 while next_offset < end_offset {
11697 _next_ordinal_to_read += 1;
11698 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11699 next_offset += envelope_size;
11700 }
11701
11702 Ok(())
11703 }
11704 }
11705
11706 impl IsochronousStreamSetupDataPathRequest {
11707 #[inline(always)]
11708 fn max_ordinal_present(&self) -> u64 {
11709 if let Some(_) = self.controller_delay {
11710 return 3;
11711 }
11712 if let Some(_) = self.codec_attributes {
11713 return 2;
11714 }
11715 if let Some(_) = self.data_direction {
11716 return 1;
11717 }
11718 0
11719 }
11720 }
11721
11722 impl fidl::encoding::ValueTypeMarker for IsochronousStreamSetupDataPathRequest {
11723 type Borrowed<'a> = &'a Self;
11724 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
11725 value
11726 }
11727 }
11728
11729 unsafe impl fidl::encoding::TypeMarker for IsochronousStreamSetupDataPathRequest {
11730 type Owned = Self;
11731
11732 #[inline(always)]
11733 fn inline_align(_context: fidl::encoding::Context) -> usize {
11734 8
11735 }
11736
11737 #[inline(always)]
11738 fn inline_size(_context: fidl::encoding::Context) -> usize {
11739 16
11740 }
11741 }
11742
11743 unsafe impl<D: fidl::encoding::ResourceDialect>
11744 fidl::encoding::Encode<IsochronousStreamSetupDataPathRequest, D>
11745 for &IsochronousStreamSetupDataPathRequest
11746 {
11747 unsafe fn encode(
11748 self,
11749 encoder: &mut fidl::encoding::Encoder<'_, D>,
11750 offset: usize,
11751 mut depth: fidl::encoding::Depth,
11752 ) -> fidl::Result<()> {
11753 encoder.debug_check_bounds::<IsochronousStreamSetupDataPathRequest>(offset);
11754 let max_ordinal: u64 = self.max_ordinal_present();
11756 encoder.write_num(max_ordinal, offset);
11757 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
11758 if max_ordinal == 0 {
11760 return Ok(());
11761 }
11762 depth.increment()?;
11763 let envelope_size = 8;
11764 let bytes_len = max_ordinal as usize * envelope_size;
11765 #[allow(unused_variables)]
11766 let offset = encoder.out_of_line_offset(bytes_len);
11767 let mut _prev_end_offset: usize = 0;
11768 if 1 > max_ordinal {
11769 return Ok(());
11770 }
11771
11772 let cur_offset: usize = (1 - 1) * envelope_size;
11775
11776 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11778
11779 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_bluetooth_common::DataDirection, D>(
11784 self.data_direction.as_ref().map(<fidl_fuchsia_bluetooth_common::DataDirection as fidl::encoding::ValueTypeMarker>::borrow),
11785 encoder, offset + cur_offset, depth
11786 )?;
11787
11788 _prev_end_offset = cur_offset + envelope_size;
11789 if 2 > max_ordinal {
11790 return Ok(());
11791 }
11792
11793 let cur_offset: usize = (2 - 1) * envelope_size;
11796
11797 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11799
11800 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_bluetooth_common::CodecAttributes, D>(
11805 self.codec_attributes.as_ref().map(<fidl_fuchsia_bluetooth_common::CodecAttributes as fidl::encoding::ValueTypeMarker>::borrow),
11806 encoder, offset + cur_offset, depth
11807 )?;
11808
11809 _prev_end_offset = cur_offset + envelope_size;
11810 if 3 > max_ordinal {
11811 return Ok(());
11812 }
11813
11814 let cur_offset: usize = (3 - 1) * envelope_size;
11817
11818 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11820
11821 fidl::encoding::encode_in_envelope_optional::<i64, D>(
11826 self.controller_delay
11827 .as_ref()
11828 .map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
11829 encoder,
11830 offset + cur_offset,
11831 depth,
11832 )?;
11833
11834 _prev_end_offset = cur_offset + envelope_size;
11835
11836 Ok(())
11837 }
11838 }
11839
11840 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
11841 for IsochronousStreamSetupDataPathRequest
11842 {
11843 #[inline(always)]
11844 fn new_empty() -> Self {
11845 Self::default()
11846 }
11847
11848 unsafe fn decode(
11849 &mut self,
11850 decoder: &mut fidl::encoding::Decoder<'_, D>,
11851 offset: usize,
11852 mut depth: fidl::encoding::Depth,
11853 ) -> fidl::Result<()> {
11854 decoder.debug_check_bounds::<Self>(offset);
11855 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
11856 None => return Err(fidl::Error::NotNullable),
11857 Some(len) => len,
11858 };
11859 if len == 0 {
11861 return Ok(());
11862 };
11863 depth.increment()?;
11864 let envelope_size = 8;
11865 let bytes_len = len * envelope_size;
11866 let offset = decoder.out_of_line_offset(bytes_len)?;
11867 let mut _next_ordinal_to_read = 0;
11869 let mut next_offset = offset;
11870 let end_offset = offset + bytes_len;
11871 _next_ordinal_to_read += 1;
11872 if next_offset >= end_offset {
11873 return Ok(());
11874 }
11875
11876 while _next_ordinal_to_read < 1 {
11878 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11879 _next_ordinal_to_read += 1;
11880 next_offset += envelope_size;
11881 }
11882
11883 let next_out_of_line = decoder.next_out_of_line();
11884 let handles_before = decoder.remaining_handles();
11885 if let Some((inlined, num_bytes, num_handles)) =
11886 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11887 {
11888 let member_inline_size = <fidl_fuchsia_bluetooth_common::DataDirection as fidl::encoding::TypeMarker>::inline_size(decoder.context);
11889 if inlined != (member_inline_size <= 4) {
11890 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11891 }
11892 let inner_offset;
11893 let mut inner_depth = depth.clone();
11894 if inlined {
11895 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11896 inner_offset = next_offset;
11897 } else {
11898 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11899 inner_depth.increment()?;
11900 }
11901 let val_ref = self.data_direction.get_or_insert_with(|| {
11902 fidl::new_empty!(fidl_fuchsia_bluetooth_common::DataDirection, D)
11903 });
11904 fidl::decode!(
11905 fidl_fuchsia_bluetooth_common::DataDirection,
11906 D,
11907 val_ref,
11908 decoder,
11909 inner_offset,
11910 inner_depth
11911 )?;
11912 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11913 {
11914 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11915 }
11916 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11917 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11918 }
11919 }
11920
11921 next_offset += envelope_size;
11922 _next_ordinal_to_read += 1;
11923 if next_offset >= end_offset {
11924 return Ok(());
11925 }
11926
11927 while _next_ordinal_to_read < 2 {
11929 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11930 _next_ordinal_to_read += 1;
11931 next_offset += envelope_size;
11932 }
11933
11934 let next_out_of_line = decoder.next_out_of_line();
11935 let handles_before = decoder.remaining_handles();
11936 if let Some((inlined, num_bytes, num_handles)) =
11937 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11938 {
11939 let member_inline_size = <fidl_fuchsia_bluetooth_common::CodecAttributes as fidl::encoding::TypeMarker>::inline_size(decoder.context);
11940 if inlined != (member_inline_size <= 4) {
11941 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11942 }
11943 let inner_offset;
11944 let mut inner_depth = depth.clone();
11945 if inlined {
11946 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11947 inner_offset = next_offset;
11948 } else {
11949 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11950 inner_depth.increment()?;
11951 }
11952 let val_ref = self.codec_attributes.get_or_insert_with(|| {
11953 fidl::new_empty!(fidl_fuchsia_bluetooth_common::CodecAttributes, D)
11954 });
11955 fidl::decode!(
11956 fidl_fuchsia_bluetooth_common::CodecAttributes,
11957 D,
11958 val_ref,
11959 decoder,
11960 inner_offset,
11961 inner_depth
11962 )?;
11963 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11964 {
11965 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11966 }
11967 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11968 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11969 }
11970 }
11971
11972 next_offset += envelope_size;
11973 _next_ordinal_to_read += 1;
11974 if next_offset >= end_offset {
11975 return Ok(());
11976 }
11977
11978 while _next_ordinal_to_read < 3 {
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 =
11991 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
11992 if inlined != (member_inline_size <= 4) {
11993 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11994 }
11995 let inner_offset;
11996 let mut inner_depth = depth.clone();
11997 if inlined {
11998 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11999 inner_offset = next_offset;
12000 } else {
12001 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12002 inner_depth.increment()?;
12003 }
12004 let val_ref = self.controller_delay.get_or_insert_with(|| fidl::new_empty!(i64, D));
12005 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
12006 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12007 {
12008 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12009 }
12010 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12011 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12012 }
12013 }
12014
12015 next_offset += envelope_size;
12016
12017 while next_offset < end_offset {
12019 _next_ordinal_to_read += 1;
12020 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12021 next_offset += envelope_size;
12022 }
12023
12024 Ok(())
12025 }
12026 }
12027
12028 impl IsochronousStreamWriteRequest {
12029 #[inline(always)]
12030 fn max_ordinal_present(&self) -> u64 {
12031 if let Some(_) = self.data {
12032 return 1;
12033 }
12034 0
12035 }
12036 }
12037
12038 impl fidl::encoding::ValueTypeMarker for IsochronousStreamWriteRequest {
12039 type Borrowed<'a> = &'a Self;
12040 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
12041 value
12042 }
12043 }
12044
12045 unsafe impl fidl::encoding::TypeMarker for IsochronousStreamWriteRequest {
12046 type Owned = Self;
12047
12048 #[inline(always)]
12049 fn inline_align(_context: fidl::encoding::Context) -> usize {
12050 8
12051 }
12052
12053 #[inline(always)]
12054 fn inline_size(_context: fidl::encoding::Context) -> usize {
12055 16
12056 }
12057 }
12058
12059 unsafe impl<D: fidl::encoding::ResourceDialect>
12060 fidl::encoding::Encode<IsochronousStreamWriteRequest, D>
12061 for &IsochronousStreamWriteRequest
12062 {
12063 unsafe fn encode(
12064 self,
12065 encoder: &mut fidl::encoding::Encoder<'_, D>,
12066 offset: usize,
12067 mut depth: fidl::encoding::Depth,
12068 ) -> fidl::Result<()> {
12069 encoder.debug_check_bounds::<IsochronousStreamWriteRequest>(offset);
12070 let max_ordinal: u64 = self.max_ordinal_present();
12072 encoder.write_num(max_ordinal, offset);
12073 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
12074 if max_ordinal == 0 {
12076 return Ok(());
12077 }
12078 depth.increment()?;
12079 let envelope_size = 8;
12080 let bytes_len = max_ordinal as usize * envelope_size;
12081 #[allow(unused_variables)]
12082 let offset = encoder.out_of_line_offset(bytes_len);
12083 let mut _prev_end_offset: usize = 0;
12084 if 1 > max_ordinal {
12085 return Ok(());
12086 }
12087
12088 let cur_offset: usize = (1 - 1) * envelope_size;
12091
12092 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12094
12095 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u8, 4095>, D>(
12100 self.data.as_ref().map(
12101 <fidl::encoding::Vector<u8, 4095> as fidl::encoding::ValueTypeMarker>::borrow,
12102 ),
12103 encoder,
12104 offset + cur_offset,
12105 depth,
12106 )?;
12107
12108 _prev_end_offset = cur_offset + envelope_size;
12109
12110 Ok(())
12111 }
12112 }
12113
12114 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
12115 for IsochronousStreamWriteRequest
12116 {
12117 #[inline(always)]
12118 fn new_empty() -> Self {
12119 Self::default()
12120 }
12121
12122 unsafe fn decode(
12123 &mut self,
12124 decoder: &mut fidl::encoding::Decoder<'_, D>,
12125 offset: usize,
12126 mut depth: fidl::encoding::Depth,
12127 ) -> fidl::Result<()> {
12128 decoder.debug_check_bounds::<Self>(offset);
12129 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
12130 None => return Err(fidl::Error::NotNullable),
12131 Some(len) => len,
12132 };
12133 if len == 0 {
12135 return Ok(());
12136 };
12137 depth.increment()?;
12138 let envelope_size = 8;
12139 let bytes_len = len * envelope_size;
12140 let offset = decoder.out_of_line_offset(bytes_len)?;
12141 let mut _next_ordinal_to_read = 0;
12143 let mut next_offset = offset;
12144 let end_offset = offset + bytes_len;
12145 _next_ordinal_to_read += 1;
12146 if next_offset >= end_offset {
12147 return Ok(());
12148 }
12149
12150 while _next_ordinal_to_read < 1 {
12152 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12153 _next_ordinal_to_read += 1;
12154 next_offset += envelope_size;
12155 }
12156
12157 let next_out_of_line = decoder.next_out_of_line();
12158 let handles_before = decoder.remaining_handles();
12159 if let Some((inlined, num_bytes, num_handles)) =
12160 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12161 {
12162 let member_inline_size =
12163 <fidl::encoding::Vector<u8, 4095> as fidl::encoding::TypeMarker>::inline_size(
12164 decoder.context,
12165 );
12166 if inlined != (member_inline_size <= 4) {
12167 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12168 }
12169 let inner_offset;
12170 let mut inner_depth = depth.clone();
12171 if inlined {
12172 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12173 inner_offset = next_offset;
12174 } else {
12175 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12176 inner_depth.increment()?;
12177 }
12178 let val_ref = self
12179 .data
12180 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u8, 4095>, D));
12181 fidl::decode!(fidl::encoding::Vector<u8, 4095>, D, val_ref, decoder, inner_offset, inner_depth)?;
12182 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12183 {
12184 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12185 }
12186 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12187 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12188 }
12189 }
12190
12191 next_offset += envelope_size;
12192
12193 while next_offset < end_offset {
12195 _next_ordinal_to_read += 1;
12196 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12197 next_offset += envelope_size;
12198 }
12199
12200 Ok(())
12201 }
12202 }
12203
12204 impl IsochronousStreamReadResponse {
12205 #[inline(always)]
12206 fn max_ordinal_present(&self) -> u64 {
12207 if let Some(_) = self.timestamp {
12208 return 4;
12209 }
12210 if let Some(_) = self.status_flag {
12211 return 3;
12212 }
12213 if let Some(_) = self.sequence_number {
12214 return 2;
12215 }
12216 if let Some(_) = self.data {
12217 return 1;
12218 }
12219 0
12220 }
12221 }
12222
12223 impl fidl::encoding::ValueTypeMarker for IsochronousStreamReadResponse {
12224 type Borrowed<'a> = &'a Self;
12225 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
12226 value
12227 }
12228 }
12229
12230 unsafe impl fidl::encoding::TypeMarker for IsochronousStreamReadResponse {
12231 type Owned = Self;
12232
12233 #[inline(always)]
12234 fn inline_align(_context: fidl::encoding::Context) -> usize {
12235 8
12236 }
12237
12238 #[inline(always)]
12239 fn inline_size(_context: fidl::encoding::Context) -> usize {
12240 16
12241 }
12242 }
12243
12244 unsafe impl<D: fidl::encoding::ResourceDialect>
12245 fidl::encoding::Encode<IsochronousStreamReadResponse, D>
12246 for &IsochronousStreamReadResponse
12247 {
12248 unsafe fn encode(
12249 self,
12250 encoder: &mut fidl::encoding::Encoder<'_, D>,
12251 offset: usize,
12252 mut depth: fidl::encoding::Depth,
12253 ) -> fidl::Result<()> {
12254 encoder.debug_check_bounds::<IsochronousStreamReadResponse>(offset);
12255 let max_ordinal: u64 = self.max_ordinal_present();
12257 encoder.write_num(max_ordinal, offset);
12258 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
12259 if max_ordinal == 0 {
12261 return Ok(());
12262 }
12263 depth.increment()?;
12264 let envelope_size = 8;
12265 let bytes_len = max_ordinal as usize * envelope_size;
12266 #[allow(unused_variables)]
12267 let offset = encoder.out_of_line_offset(bytes_len);
12268 let mut _prev_end_offset: usize = 0;
12269 if 1 > max_ordinal {
12270 return Ok(());
12271 }
12272
12273 let cur_offset: usize = (1 - 1) * envelope_size;
12276
12277 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12279
12280 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u8>, D>(
12285 self.data.as_ref().map(<fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow),
12286 encoder, offset + cur_offset, depth
12287 )?;
12288
12289 _prev_end_offset = cur_offset + envelope_size;
12290 if 2 > max_ordinal {
12291 return Ok(());
12292 }
12293
12294 let cur_offset: usize = (2 - 1) * envelope_size;
12297
12298 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12300
12301 fidl::encoding::encode_in_envelope_optional::<u16, D>(
12306 self.sequence_number.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
12307 encoder,
12308 offset + cur_offset,
12309 depth,
12310 )?;
12311
12312 _prev_end_offset = cur_offset + envelope_size;
12313 if 3 > max_ordinal {
12314 return Ok(());
12315 }
12316
12317 let cur_offset: usize = (3 - 1) * envelope_size;
12320
12321 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12323
12324 fidl::encoding::encode_in_envelope_optional::<IsoPacketStatusFlag, D>(
12329 self.status_flag
12330 .as_ref()
12331 .map(<IsoPacketStatusFlag as fidl::encoding::ValueTypeMarker>::borrow),
12332 encoder,
12333 offset + cur_offset,
12334 depth,
12335 )?;
12336
12337 _prev_end_offset = cur_offset + envelope_size;
12338 if 4 > max_ordinal {
12339 return Ok(());
12340 }
12341
12342 let cur_offset: usize = (4 - 1) * envelope_size;
12345
12346 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12348
12349 fidl::encoding::encode_in_envelope_optional::<i64, D>(
12354 self.timestamp.as_ref().map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
12355 encoder,
12356 offset + cur_offset,
12357 depth,
12358 )?;
12359
12360 _prev_end_offset = cur_offset + envelope_size;
12361
12362 Ok(())
12363 }
12364 }
12365
12366 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
12367 for IsochronousStreamReadResponse
12368 {
12369 #[inline(always)]
12370 fn new_empty() -> Self {
12371 Self::default()
12372 }
12373
12374 unsafe fn decode(
12375 &mut self,
12376 decoder: &mut fidl::encoding::Decoder<'_, D>,
12377 offset: usize,
12378 mut depth: fidl::encoding::Depth,
12379 ) -> fidl::Result<()> {
12380 decoder.debug_check_bounds::<Self>(offset);
12381 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
12382 None => return Err(fidl::Error::NotNullable),
12383 Some(len) => len,
12384 };
12385 if len == 0 {
12387 return Ok(());
12388 };
12389 depth.increment()?;
12390 let envelope_size = 8;
12391 let bytes_len = len * envelope_size;
12392 let offset = decoder.out_of_line_offset(bytes_len)?;
12393 let mut _next_ordinal_to_read = 0;
12395 let mut next_offset = offset;
12396 let end_offset = offset + bytes_len;
12397 _next_ordinal_to_read += 1;
12398 if next_offset >= end_offset {
12399 return Ok(());
12400 }
12401
12402 while _next_ordinal_to_read < 1 {
12404 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12405 _next_ordinal_to_read += 1;
12406 next_offset += envelope_size;
12407 }
12408
12409 let next_out_of_line = decoder.next_out_of_line();
12410 let handles_before = decoder.remaining_handles();
12411 if let Some((inlined, num_bytes, num_handles)) =
12412 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12413 {
12414 let member_inline_size = <fidl::encoding::UnboundedVector<u8> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
12415 if inlined != (member_inline_size <= 4) {
12416 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12417 }
12418 let inner_offset;
12419 let mut inner_depth = depth.clone();
12420 if inlined {
12421 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12422 inner_offset = next_offset;
12423 } else {
12424 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12425 inner_depth.increment()?;
12426 }
12427 let val_ref = self.data.get_or_insert_with(|| {
12428 fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D)
12429 });
12430 fidl::decode!(
12431 fidl::encoding::UnboundedVector<u8>,
12432 D,
12433 val_ref,
12434 decoder,
12435 inner_offset,
12436 inner_depth
12437 )?;
12438 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12439 {
12440 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12441 }
12442 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12443 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12444 }
12445 }
12446
12447 next_offset += envelope_size;
12448 _next_ordinal_to_read += 1;
12449 if next_offset >= end_offset {
12450 return Ok(());
12451 }
12452
12453 while _next_ordinal_to_read < 2 {
12455 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12456 _next_ordinal_to_read += 1;
12457 next_offset += envelope_size;
12458 }
12459
12460 let next_out_of_line = decoder.next_out_of_line();
12461 let handles_before = decoder.remaining_handles();
12462 if let Some((inlined, num_bytes, num_handles)) =
12463 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12464 {
12465 let member_inline_size =
12466 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
12467 if inlined != (member_inline_size <= 4) {
12468 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12469 }
12470 let inner_offset;
12471 let mut inner_depth = depth.clone();
12472 if inlined {
12473 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12474 inner_offset = next_offset;
12475 } else {
12476 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12477 inner_depth.increment()?;
12478 }
12479 let val_ref = self.sequence_number.get_or_insert_with(|| fidl::new_empty!(u16, D));
12480 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
12481 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12482 {
12483 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12484 }
12485 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12486 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12487 }
12488 }
12489
12490 next_offset += envelope_size;
12491 _next_ordinal_to_read += 1;
12492 if next_offset >= end_offset {
12493 return Ok(());
12494 }
12495
12496 while _next_ordinal_to_read < 3 {
12498 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12499 _next_ordinal_to_read += 1;
12500 next_offset += envelope_size;
12501 }
12502
12503 let next_out_of_line = decoder.next_out_of_line();
12504 let handles_before = decoder.remaining_handles();
12505 if let Some((inlined, num_bytes, num_handles)) =
12506 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12507 {
12508 let member_inline_size =
12509 <IsoPacketStatusFlag as fidl::encoding::TypeMarker>::inline_size(
12510 decoder.context,
12511 );
12512 if inlined != (member_inline_size <= 4) {
12513 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12514 }
12515 let inner_offset;
12516 let mut inner_depth = depth.clone();
12517 if inlined {
12518 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12519 inner_offset = next_offset;
12520 } else {
12521 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12522 inner_depth.increment()?;
12523 }
12524 let val_ref = self
12525 .status_flag
12526 .get_or_insert_with(|| fidl::new_empty!(IsoPacketStatusFlag, D));
12527 fidl::decode!(IsoPacketStatusFlag, D, val_ref, decoder, inner_offset, inner_depth)?;
12528 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12529 {
12530 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12531 }
12532 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12533 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12534 }
12535 }
12536
12537 next_offset += envelope_size;
12538 _next_ordinal_to_read += 1;
12539 if next_offset >= end_offset {
12540 return Ok(());
12541 }
12542
12543 while _next_ordinal_to_read < 4 {
12545 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12546 _next_ordinal_to_read += 1;
12547 next_offset += envelope_size;
12548 }
12549
12550 let next_out_of_line = decoder.next_out_of_line();
12551 let handles_before = decoder.remaining_handles();
12552 if let Some((inlined, num_bytes, num_handles)) =
12553 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12554 {
12555 let member_inline_size =
12556 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
12557 if inlined != (member_inline_size <= 4) {
12558 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12559 }
12560 let inner_offset;
12561 let mut inner_depth = depth.clone();
12562 if inlined {
12563 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12564 inner_offset = next_offset;
12565 } else {
12566 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12567 inner_depth.increment()?;
12568 }
12569 let val_ref = self.timestamp.get_or_insert_with(|| fidl::new_empty!(i64, D));
12570 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
12571 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12572 {
12573 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12574 }
12575 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12576 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12577 }
12578 }
12579
12580 next_offset += envelope_size;
12581
12582 while next_offset < end_offset {
12584 _next_ordinal_to_read += 1;
12585 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12586 next_offset += envelope_size;
12587 }
12588
12589 Ok(())
12590 }
12591 }
12592
12593 impl Legacy {
12594 #[inline(always)]
12595 fn max_ordinal_present(&self) -> u64 {
12596 0
12597 }
12598 }
12599
12600 impl fidl::encoding::ValueTypeMarker for Legacy {
12601 type Borrowed<'a> = &'a Self;
12602 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
12603 value
12604 }
12605 }
12606
12607 unsafe impl fidl::encoding::TypeMarker for Legacy {
12608 type Owned = Self;
12609
12610 #[inline(always)]
12611 fn inline_align(_context: fidl::encoding::Context) -> usize {
12612 8
12613 }
12614
12615 #[inline(always)]
12616 fn inline_size(_context: fidl::encoding::Context) -> usize {
12617 16
12618 }
12619 }
12620
12621 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Legacy, D> for &Legacy {
12622 unsafe fn encode(
12623 self,
12624 encoder: &mut fidl::encoding::Encoder<'_, D>,
12625 offset: usize,
12626 mut depth: fidl::encoding::Depth,
12627 ) -> fidl::Result<()> {
12628 encoder.debug_check_bounds::<Legacy>(offset);
12629 let max_ordinal: u64 = self.max_ordinal_present();
12631 encoder.write_num(max_ordinal, offset);
12632 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
12633 if max_ordinal == 0 {
12635 return Ok(());
12636 }
12637 depth.increment()?;
12638 let envelope_size = 8;
12639 let bytes_len = max_ordinal as usize * envelope_size;
12640 #[allow(unused_variables)]
12641 let offset = encoder.out_of_line_offset(bytes_len);
12642 let mut _prev_end_offset: usize = 0;
12643
12644 Ok(())
12645 }
12646 }
12647
12648 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Legacy {
12649 #[inline(always)]
12650 fn new_empty() -> Self {
12651 Self::default()
12652 }
12653
12654 unsafe fn decode(
12655 &mut self,
12656 decoder: &mut fidl::encoding::Decoder<'_, D>,
12657 offset: usize,
12658 mut depth: fidl::encoding::Depth,
12659 ) -> fidl::Result<()> {
12660 decoder.debug_check_bounds::<Self>(offset);
12661 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
12662 None => return Err(fidl::Error::NotNullable),
12663 Some(len) => len,
12664 };
12665 if len == 0 {
12667 return Ok(());
12668 };
12669 depth.increment()?;
12670 let envelope_size = 8;
12671 let bytes_len = len * envelope_size;
12672 let offset = decoder.out_of_line_offset(bytes_len)?;
12673 let mut _next_ordinal_to_read = 0;
12675 let mut next_offset = offset;
12676 let end_offset = offset + bytes_len;
12677
12678 while next_offset < end_offset {
12680 _next_ordinal_to_read += 1;
12681 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12682 next_offset += envelope_size;
12683 }
12684
12685 Ok(())
12686 }
12687 }
12688
12689 impl Peer {
12690 #[inline(always)]
12691 fn max_ordinal_present(&self) -> u64 {
12692 if let Some(_) = self.periodic_advertising_interval {
12693 return 10;
12694 }
12695 if let Some(_) = self.advertising_sid {
12696 return 9;
12697 }
12698 if let Some(_) = self.last_updated {
12699 return 8;
12700 }
12701 if let Some(_) = self.bonded {
12702 return 7;
12703 }
12704 if let Some(_) = self.data {
12705 return 6;
12706 }
12707 if let Some(_) = self.name {
12708 return 5;
12709 }
12710 if let Some(_) = self.advertising_data {
12711 return 4;
12712 }
12713 if let Some(_) = self.rssi {
12714 return 3;
12715 }
12716 if let Some(_) = self.connectable {
12717 return 2;
12718 }
12719 if let Some(_) = self.id {
12720 return 1;
12721 }
12722 0
12723 }
12724 }
12725
12726 impl fidl::encoding::ValueTypeMarker for Peer {
12727 type Borrowed<'a> = &'a Self;
12728 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
12729 value
12730 }
12731 }
12732
12733 unsafe impl fidl::encoding::TypeMarker for Peer {
12734 type Owned = Self;
12735
12736 #[inline(always)]
12737 fn inline_align(_context: fidl::encoding::Context) -> usize {
12738 8
12739 }
12740
12741 #[inline(always)]
12742 fn inline_size(_context: fidl::encoding::Context) -> usize {
12743 16
12744 }
12745 }
12746
12747 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Peer, D> for &Peer {
12748 unsafe fn encode(
12749 self,
12750 encoder: &mut fidl::encoding::Encoder<'_, D>,
12751 offset: usize,
12752 mut depth: fidl::encoding::Depth,
12753 ) -> fidl::Result<()> {
12754 encoder.debug_check_bounds::<Peer>(offset);
12755 let max_ordinal: u64 = self.max_ordinal_present();
12757 encoder.write_num(max_ordinal, offset);
12758 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
12759 if max_ordinal == 0 {
12761 return Ok(());
12762 }
12763 depth.increment()?;
12764 let envelope_size = 8;
12765 let bytes_len = max_ordinal as usize * envelope_size;
12766 #[allow(unused_variables)]
12767 let offset = encoder.out_of_line_offset(bytes_len);
12768 let mut _prev_end_offset: usize = 0;
12769 if 1 > max_ordinal {
12770 return Ok(());
12771 }
12772
12773 let cur_offset: usize = (1 - 1) * envelope_size;
12776
12777 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12779
12780 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_bluetooth_common::PeerId, D>(
12785 self.id.as_ref().map(<fidl_fuchsia_bluetooth_common::PeerId as fidl::encoding::ValueTypeMarker>::borrow),
12786 encoder, offset + cur_offset, depth
12787 )?;
12788
12789 _prev_end_offset = cur_offset + envelope_size;
12790 if 2 > max_ordinal {
12791 return Ok(());
12792 }
12793
12794 let cur_offset: usize = (2 - 1) * envelope_size;
12797
12798 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12800
12801 fidl::encoding::encode_in_envelope_optional::<bool, D>(
12806 self.connectable.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
12807 encoder,
12808 offset + cur_offset,
12809 depth,
12810 )?;
12811
12812 _prev_end_offset = cur_offset + envelope_size;
12813 if 3 > max_ordinal {
12814 return Ok(());
12815 }
12816
12817 let cur_offset: usize = (3 - 1) * envelope_size;
12820
12821 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12823
12824 fidl::encoding::encode_in_envelope_optional::<i8, D>(
12829 self.rssi.as_ref().map(<i8 as fidl::encoding::ValueTypeMarker>::borrow),
12830 encoder,
12831 offset + cur_offset,
12832 depth,
12833 )?;
12834
12835 _prev_end_offset = cur_offset + envelope_size;
12836 if 4 > max_ordinal {
12837 return Ok(());
12838 }
12839
12840 let cur_offset: usize = (4 - 1) * envelope_size;
12843
12844 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12846
12847 fidl::encoding::encode_in_envelope_optional::<AdvertisingData, D>(
12852 self.advertising_data
12853 .as_ref()
12854 .map(<AdvertisingData as fidl::encoding::ValueTypeMarker>::borrow),
12855 encoder,
12856 offset + cur_offset,
12857 depth,
12858 )?;
12859
12860 _prev_end_offset = cur_offset + envelope_size;
12861 if 5 > max_ordinal {
12862 return Ok(());
12863 }
12864
12865 let cur_offset: usize = (5 - 1) * envelope_size;
12868
12869 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12871
12872 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<248>, D>(
12877 self.name.as_ref().map(
12878 <fidl::encoding::BoundedString<248> as fidl::encoding::ValueTypeMarker>::borrow,
12879 ),
12880 encoder,
12881 offset + cur_offset,
12882 depth,
12883 )?;
12884
12885 _prev_end_offset = cur_offset + envelope_size;
12886 if 6 > max_ordinal {
12887 return Ok(());
12888 }
12889
12890 let cur_offset: usize = (6 - 1) * envelope_size;
12893
12894 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12896
12897 fidl::encoding::encode_in_envelope_optional::<ScanData, D>(
12902 self.data.as_ref().map(<ScanData as fidl::encoding::ValueTypeMarker>::borrow),
12903 encoder,
12904 offset + cur_offset,
12905 depth,
12906 )?;
12907
12908 _prev_end_offset = cur_offset + envelope_size;
12909 if 7 > max_ordinal {
12910 return Ok(());
12911 }
12912
12913 let cur_offset: usize = (7 - 1) * envelope_size;
12916
12917 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12919
12920 fidl::encoding::encode_in_envelope_optional::<bool, D>(
12925 self.bonded.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
12926 encoder,
12927 offset + cur_offset,
12928 depth,
12929 )?;
12930
12931 _prev_end_offset = cur_offset + envelope_size;
12932 if 8 > max_ordinal {
12933 return Ok(());
12934 }
12935
12936 let cur_offset: usize = (8 - 1) * envelope_size;
12939
12940 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12942
12943 fidl::encoding::encode_in_envelope_optional::<i64, D>(
12948 self.last_updated.as_ref().map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
12949 encoder,
12950 offset + cur_offset,
12951 depth,
12952 )?;
12953
12954 _prev_end_offset = cur_offset + envelope_size;
12955 if 9 > max_ordinal {
12956 return Ok(());
12957 }
12958
12959 let cur_offset: usize = (9 - 1) * envelope_size;
12962
12963 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12965
12966 fidl::encoding::encode_in_envelope_optional::<u8, D>(
12971 self.advertising_sid.as_ref().map(<u8 as fidl::encoding::ValueTypeMarker>::borrow),
12972 encoder,
12973 offset + cur_offset,
12974 depth,
12975 )?;
12976
12977 _prev_end_offset = cur_offset + envelope_size;
12978 if 10 > max_ordinal {
12979 return Ok(());
12980 }
12981
12982 let cur_offset: usize = (10 - 1) * envelope_size;
12985
12986 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12988
12989 fidl::encoding::encode_in_envelope_optional::<u16, D>(
12994 self.periodic_advertising_interval
12995 .as_ref()
12996 .map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
12997 encoder,
12998 offset + cur_offset,
12999 depth,
13000 )?;
13001
13002 _prev_end_offset = cur_offset + envelope_size;
13003
13004 Ok(())
13005 }
13006 }
13007
13008 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Peer {
13009 #[inline(always)]
13010 fn new_empty() -> Self {
13011 Self::default()
13012 }
13013
13014 unsafe fn decode(
13015 &mut self,
13016 decoder: &mut fidl::encoding::Decoder<'_, D>,
13017 offset: usize,
13018 mut depth: fidl::encoding::Depth,
13019 ) -> fidl::Result<()> {
13020 decoder.debug_check_bounds::<Self>(offset);
13021 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
13022 None => return Err(fidl::Error::NotNullable),
13023 Some(len) => len,
13024 };
13025 if len == 0 {
13027 return Ok(());
13028 };
13029 depth.increment()?;
13030 let envelope_size = 8;
13031 let bytes_len = len * envelope_size;
13032 let offset = decoder.out_of_line_offset(bytes_len)?;
13033 let mut _next_ordinal_to_read = 0;
13035 let mut next_offset = offset;
13036 let end_offset = offset + bytes_len;
13037 _next_ordinal_to_read += 1;
13038 if next_offset >= end_offset {
13039 return Ok(());
13040 }
13041
13042 while _next_ordinal_to_read < 1 {
13044 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13045 _next_ordinal_to_read += 1;
13046 next_offset += envelope_size;
13047 }
13048
13049 let next_out_of_line = decoder.next_out_of_line();
13050 let handles_before = decoder.remaining_handles();
13051 if let Some((inlined, num_bytes, num_handles)) =
13052 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13053 {
13054 let member_inline_size = <fidl_fuchsia_bluetooth_common::PeerId as fidl::encoding::TypeMarker>::inline_size(decoder.context);
13055 if inlined != (member_inline_size <= 4) {
13056 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13057 }
13058 let inner_offset;
13059 let mut inner_depth = depth.clone();
13060 if inlined {
13061 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13062 inner_offset = next_offset;
13063 } else {
13064 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13065 inner_depth.increment()?;
13066 }
13067 let val_ref = self.id.get_or_insert_with(|| {
13068 fidl::new_empty!(fidl_fuchsia_bluetooth_common::PeerId, D)
13069 });
13070 fidl::decode!(
13071 fidl_fuchsia_bluetooth_common::PeerId,
13072 D,
13073 val_ref,
13074 decoder,
13075 inner_offset,
13076 inner_depth
13077 )?;
13078 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13079 {
13080 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13081 }
13082 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13083 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13084 }
13085 }
13086
13087 next_offset += envelope_size;
13088 _next_ordinal_to_read += 1;
13089 if next_offset >= end_offset {
13090 return Ok(());
13091 }
13092
13093 while _next_ordinal_to_read < 2 {
13095 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13096 _next_ordinal_to_read += 1;
13097 next_offset += envelope_size;
13098 }
13099
13100 let next_out_of_line = decoder.next_out_of_line();
13101 let handles_before = decoder.remaining_handles();
13102 if let Some((inlined, num_bytes, num_handles)) =
13103 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13104 {
13105 let member_inline_size =
13106 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
13107 if inlined != (member_inline_size <= 4) {
13108 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13109 }
13110 let inner_offset;
13111 let mut inner_depth = depth.clone();
13112 if inlined {
13113 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13114 inner_offset = next_offset;
13115 } else {
13116 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13117 inner_depth.increment()?;
13118 }
13119 let val_ref = self.connectable.get_or_insert_with(|| fidl::new_empty!(bool, D));
13120 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
13121 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13122 {
13123 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13124 }
13125 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13126 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13127 }
13128 }
13129
13130 next_offset += envelope_size;
13131 _next_ordinal_to_read += 1;
13132 if next_offset >= end_offset {
13133 return Ok(());
13134 }
13135
13136 while _next_ordinal_to_read < 3 {
13138 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13139 _next_ordinal_to_read += 1;
13140 next_offset += envelope_size;
13141 }
13142
13143 let next_out_of_line = decoder.next_out_of_line();
13144 let handles_before = decoder.remaining_handles();
13145 if let Some((inlined, num_bytes, num_handles)) =
13146 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13147 {
13148 let member_inline_size =
13149 <i8 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
13150 if inlined != (member_inline_size <= 4) {
13151 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13152 }
13153 let inner_offset;
13154 let mut inner_depth = depth.clone();
13155 if inlined {
13156 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13157 inner_offset = next_offset;
13158 } else {
13159 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13160 inner_depth.increment()?;
13161 }
13162 let val_ref = self.rssi.get_or_insert_with(|| fidl::new_empty!(i8, D));
13163 fidl::decode!(i8, D, val_ref, decoder, inner_offset, inner_depth)?;
13164 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13165 {
13166 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13167 }
13168 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13169 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13170 }
13171 }
13172
13173 next_offset += envelope_size;
13174 _next_ordinal_to_read += 1;
13175 if next_offset >= end_offset {
13176 return Ok(());
13177 }
13178
13179 while _next_ordinal_to_read < 4 {
13181 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13182 _next_ordinal_to_read += 1;
13183 next_offset += envelope_size;
13184 }
13185
13186 let next_out_of_line = decoder.next_out_of_line();
13187 let handles_before = decoder.remaining_handles();
13188 if let Some((inlined, num_bytes, num_handles)) =
13189 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13190 {
13191 let member_inline_size =
13192 <AdvertisingData as fidl::encoding::TypeMarker>::inline_size(decoder.context);
13193 if inlined != (member_inline_size <= 4) {
13194 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13195 }
13196 let inner_offset;
13197 let mut inner_depth = depth.clone();
13198 if inlined {
13199 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13200 inner_offset = next_offset;
13201 } else {
13202 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13203 inner_depth.increment()?;
13204 }
13205 let val_ref = self
13206 .advertising_data
13207 .get_or_insert_with(|| fidl::new_empty!(AdvertisingData, D));
13208 fidl::decode!(AdvertisingData, D, val_ref, decoder, inner_offset, inner_depth)?;
13209 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13210 {
13211 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13212 }
13213 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13214 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13215 }
13216 }
13217
13218 next_offset += envelope_size;
13219 _next_ordinal_to_read += 1;
13220 if next_offset >= end_offset {
13221 return Ok(());
13222 }
13223
13224 while _next_ordinal_to_read < 5 {
13226 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13227 _next_ordinal_to_read += 1;
13228 next_offset += envelope_size;
13229 }
13230
13231 let next_out_of_line = decoder.next_out_of_line();
13232 let handles_before = decoder.remaining_handles();
13233 if let Some((inlined, num_bytes, num_handles)) =
13234 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13235 {
13236 let member_inline_size =
13237 <fidl::encoding::BoundedString<248> as fidl::encoding::TypeMarker>::inline_size(
13238 decoder.context,
13239 );
13240 if inlined != (member_inline_size <= 4) {
13241 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13242 }
13243 let inner_offset;
13244 let mut inner_depth = depth.clone();
13245 if inlined {
13246 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13247 inner_offset = next_offset;
13248 } else {
13249 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13250 inner_depth.increment()?;
13251 }
13252 let val_ref = self
13253 .name
13254 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<248>, D));
13255 fidl::decode!(
13256 fidl::encoding::BoundedString<248>,
13257 D,
13258 val_ref,
13259 decoder,
13260 inner_offset,
13261 inner_depth
13262 )?;
13263 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13264 {
13265 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13266 }
13267 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13268 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13269 }
13270 }
13271
13272 next_offset += envelope_size;
13273 _next_ordinal_to_read += 1;
13274 if next_offset >= end_offset {
13275 return Ok(());
13276 }
13277
13278 while _next_ordinal_to_read < 6 {
13280 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13281 _next_ordinal_to_read += 1;
13282 next_offset += envelope_size;
13283 }
13284
13285 let next_out_of_line = decoder.next_out_of_line();
13286 let handles_before = decoder.remaining_handles();
13287 if let Some((inlined, num_bytes, num_handles)) =
13288 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13289 {
13290 let member_inline_size =
13291 <ScanData as fidl::encoding::TypeMarker>::inline_size(decoder.context);
13292 if inlined != (member_inline_size <= 4) {
13293 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13294 }
13295 let inner_offset;
13296 let mut inner_depth = depth.clone();
13297 if inlined {
13298 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13299 inner_offset = next_offset;
13300 } else {
13301 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13302 inner_depth.increment()?;
13303 }
13304 let val_ref = self.data.get_or_insert_with(|| fidl::new_empty!(ScanData, D));
13305 fidl::decode!(ScanData, D, val_ref, decoder, inner_offset, inner_depth)?;
13306 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13307 {
13308 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13309 }
13310 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13311 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13312 }
13313 }
13314
13315 next_offset += envelope_size;
13316 _next_ordinal_to_read += 1;
13317 if next_offset >= end_offset {
13318 return Ok(());
13319 }
13320
13321 while _next_ordinal_to_read < 7 {
13323 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13324 _next_ordinal_to_read += 1;
13325 next_offset += envelope_size;
13326 }
13327
13328 let next_out_of_line = decoder.next_out_of_line();
13329 let handles_before = decoder.remaining_handles();
13330 if let Some((inlined, num_bytes, num_handles)) =
13331 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13332 {
13333 let member_inline_size =
13334 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
13335 if inlined != (member_inline_size <= 4) {
13336 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13337 }
13338 let inner_offset;
13339 let mut inner_depth = depth.clone();
13340 if inlined {
13341 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13342 inner_offset = next_offset;
13343 } else {
13344 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13345 inner_depth.increment()?;
13346 }
13347 let val_ref = self.bonded.get_or_insert_with(|| fidl::new_empty!(bool, D));
13348 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
13349 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13350 {
13351 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13352 }
13353 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13354 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13355 }
13356 }
13357
13358 next_offset += envelope_size;
13359 _next_ordinal_to_read += 1;
13360 if next_offset >= end_offset {
13361 return Ok(());
13362 }
13363
13364 while _next_ordinal_to_read < 8 {
13366 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13367 _next_ordinal_to_read += 1;
13368 next_offset += envelope_size;
13369 }
13370
13371 let next_out_of_line = decoder.next_out_of_line();
13372 let handles_before = decoder.remaining_handles();
13373 if let Some((inlined, num_bytes, num_handles)) =
13374 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13375 {
13376 let member_inline_size =
13377 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
13378 if inlined != (member_inline_size <= 4) {
13379 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13380 }
13381 let inner_offset;
13382 let mut inner_depth = depth.clone();
13383 if inlined {
13384 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13385 inner_offset = next_offset;
13386 } else {
13387 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13388 inner_depth.increment()?;
13389 }
13390 let val_ref = self.last_updated.get_or_insert_with(|| fidl::new_empty!(i64, D));
13391 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
13392 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13393 {
13394 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13395 }
13396 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13397 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13398 }
13399 }
13400
13401 next_offset += envelope_size;
13402 _next_ordinal_to_read += 1;
13403 if next_offset >= end_offset {
13404 return Ok(());
13405 }
13406
13407 while _next_ordinal_to_read < 9 {
13409 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13410 _next_ordinal_to_read += 1;
13411 next_offset += envelope_size;
13412 }
13413
13414 let next_out_of_line = decoder.next_out_of_line();
13415 let handles_before = decoder.remaining_handles();
13416 if let Some((inlined, num_bytes, num_handles)) =
13417 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13418 {
13419 let member_inline_size =
13420 <u8 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
13421 if inlined != (member_inline_size <= 4) {
13422 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13423 }
13424 let inner_offset;
13425 let mut inner_depth = depth.clone();
13426 if inlined {
13427 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13428 inner_offset = next_offset;
13429 } else {
13430 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13431 inner_depth.increment()?;
13432 }
13433 let val_ref = self.advertising_sid.get_or_insert_with(|| fidl::new_empty!(u8, D));
13434 fidl::decode!(u8, D, val_ref, decoder, inner_offset, inner_depth)?;
13435 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13436 {
13437 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13438 }
13439 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13440 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13441 }
13442 }
13443
13444 next_offset += envelope_size;
13445 _next_ordinal_to_read += 1;
13446 if next_offset >= end_offset {
13447 return Ok(());
13448 }
13449
13450 while _next_ordinal_to_read < 10 {
13452 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13453 _next_ordinal_to_read += 1;
13454 next_offset += envelope_size;
13455 }
13456
13457 let next_out_of_line = decoder.next_out_of_line();
13458 let handles_before = decoder.remaining_handles();
13459 if let Some((inlined, num_bytes, num_handles)) =
13460 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13461 {
13462 let member_inline_size =
13463 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
13464 if inlined != (member_inline_size <= 4) {
13465 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13466 }
13467 let inner_offset;
13468 let mut inner_depth = depth.clone();
13469 if inlined {
13470 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13471 inner_offset = next_offset;
13472 } else {
13473 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13474 inner_depth.increment()?;
13475 }
13476 let val_ref = self
13477 .periodic_advertising_interval
13478 .get_or_insert_with(|| fidl::new_empty!(u16, D));
13479 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
13480 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13481 {
13482 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13483 }
13484 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13485 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13486 }
13487 }
13488
13489 next_offset += envelope_size;
13490
13491 while next_offset < end_offset {
13493 _next_ordinal_to_read += 1;
13494 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13495 next_offset += envelope_size;
13496 }
13497
13498 Ok(())
13499 }
13500 }
13501
13502 impl PeriodicAdvertisingReport {
13503 #[inline(always)]
13504 fn max_ordinal_present(&self) -> u64 {
13505 if let Some(_) = self.timestamp {
13506 return 5;
13507 }
13508 if let Some(_) = self.subevent {
13509 return 4;
13510 }
13511 if let Some(_) = self.event_counter {
13512 return 3;
13513 }
13514 if let Some(_) = self.data {
13515 return 2;
13516 }
13517 if let Some(_) = self.rssi {
13518 return 1;
13519 }
13520 0
13521 }
13522 }
13523
13524 impl fidl::encoding::ValueTypeMarker for PeriodicAdvertisingReport {
13525 type Borrowed<'a> = &'a Self;
13526 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
13527 value
13528 }
13529 }
13530
13531 unsafe impl fidl::encoding::TypeMarker for PeriodicAdvertisingReport {
13532 type Owned = Self;
13533
13534 #[inline(always)]
13535 fn inline_align(_context: fidl::encoding::Context) -> usize {
13536 8
13537 }
13538
13539 #[inline(always)]
13540 fn inline_size(_context: fidl::encoding::Context) -> usize {
13541 16
13542 }
13543 }
13544
13545 unsafe impl<D: fidl::encoding::ResourceDialect>
13546 fidl::encoding::Encode<PeriodicAdvertisingReport, D> for &PeriodicAdvertisingReport
13547 {
13548 unsafe fn encode(
13549 self,
13550 encoder: &mut fidl::encoding::Encoder<'_, D>,
13551 offset: usize,
13552 mut depth: fidl::encoding::Depth,
13553 ) -> fidl::Result<()> {
13554 encoder.debug_check_bounds::<PeriodicAdvertisingReport>(offset);
13555 let max_ordinal: u64 = self.max_ordinal_present();
13557 encoder.write_num(max_ordinal, offset);
13558 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
13559 if max_ordinal == 0 {
13561 return Ok(());
13562 }
13563 depth.increment()?;
13564 let envelope_size = 8;
13565 let bytes_len = max_ordinal as usize * envelope_size;
13566 #[allow(unused_variables)]
13567 let offset = encoder.out_of_line_offset(bytes_len);
13568 let mut _prev_end_offset: usize = 0;
13569 if 1 > max_ordinal {
13570 return Ok(());
13571 }
13572
13573 let cur_offset: usize = (1 - 1) * envelope_size;
13576
13577 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13579
13580 fidl::encoding::encode_in_envelope_optional::<i8, D>(
13585 self.rssi.as_ref().map(<i8 as fidl::encoding::ValueTypeMarker>::borrow),
13586 encoder,
13587 offset + cur_offset,
13588 depth,
13589 )?;
13590
13591 _prev_end_offset = cur_offset + envelope_size;
13592 if 2 > max_ordinal {
13593 return Ok(());
13594 }
13595
13596 let cur_offset: usize = (2 - 1) * envelope_size;
13599
13600 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13602
13603 fidl::encoding::encode_in_envelope_optional::<ScanData, D>(
13608 self.data.as_ref().map(<ScanData as fidl::encoding::ValueTypeMarker>::borrow),
13609 encoder,
13610 offset + cur_offset,
13611 depth,
13612 )?;
13613
13614 _prev_end_offset = cur_offset + envelope_size;
13615 if 3 > max_ordinal {
13616 return Ok(());
13617 }
13618
13619 let cur_offset: usize = (3 - 1) * envelope_size;
13622
13623 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13625
13626 fidl::encoding::encode_in_envelope_optional::<u16, D>(
13631 self.event_counter.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
13632 encoder,
13633 offset + cur_offset,
13634 depth,
13635 )?;
13636
13637 _prev_end_offset = cur_offset + envelope_size;
13638 if 4 > max_ordinal {
13639 return Ok(());
13640 }
13641
13642 let cur_offset: usize = (4 - 1) * envelope_size;
13645
13646 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13648
13649 fidl::encoding::encode_in_envelope_optional::<u8, D>(
13654 self.subevent.as_ref().map(<u8 as fidl::encoding::ValueTypeMarker>::borrow),
13655 encoder,
13656 offset + cur_offset,
13657 depth,
13658 )?;
13659
13660 _prev_end_offset = cur_offset + envelope_size;
13661 if 5 > max_ordinal {
13662 return Ok(());
13663 }
13664
13665 let cur_offset: usize = (5 - 1) * envelope_size;
13668
13669 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13671
13672 fidl::encoding::encode_in_envelope_optional::<i64, D>(
13677 self.timestamp.as_ref().map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
13678 encoder,
13679 offset + cur_offset,
13680 depth,
13681 )?;
13682
13683 _prev_end_offset = cur_offset + envelope_size;
13684
13685 Ok(())
13686 }
13687 }
13688
13689 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
13690 for PeriodicAdvertisingReport
13691 {
13692 #[inline(always)]
13693 fn new_empty() -> Self {
13694 Self::default()
13695 }
13696
13697 unsafe fn decode(
13698 &mut self,
13699 decoder: &mut fidl::encoding::Decoder<'_, D>,
13700 offset: usize,
13701 mut depth: fidl::encoding::Depth,
13702 ) -> fidl::Result<()> {
13703 decoder.debug_check_bounds::<Self>(offset);
13704 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
13705 None => return Err(fidl::Error::NotNullable),
13706 Some(len) => len,
13707 };
13708 if len == 0 {
13710 return Ok(());
13711 };
13712 depth.increment()?;
13713 let envelope_size = 8;
13714 let bytes_len = len * envelope_size;
13715 let offset = decoder.out_of_line_offset(bytes_len)?;
13716 let mut _next_ordinal_to_read = 0;
13718 let mut next_offset = offset;
13719 let end_offset = offset + bytes_len;
13720 _next_ordinal_to_read += 1;
13721 if next_offset >= end_offset {
13722 return Ok(());
13723 }
13724
13725 while _next_ordinal_to_read < 1 {
13727 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13728 _next_ordinal_to_read += 1;
13729 next_offset += envelope_size;
13730 }
13731
13732 let next_out_of_line = decoder.next_out_of_line();
13733 let handles_before = decoder.remaining_handles();
13734 if let Some((inlined, num_bytes, num_handles)) =
13735 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13736 {
13737 let member_inline_size =
13738 <i8 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
13739 if inlined != (member_inline_size <= 4) {
13740 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13741 }
13742 let inner_offset;
13743 let mut inner_depth = depth.clone();
13744 if inlined {
13745 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13746 inner_offset = next_offset;
13747 } else {
13748 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13749 inner_depth.increment()?;
13750 }
13751 let val_ref = self.rssi.get_or_insert_with(|| fidl::new_empty!(i8, D));
13752 fidl::decode!(i8, D, val_ref, decoder, inner_offset, inner_depth)?;
13753 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13754 {
13755 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13756 }
13757 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13758 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13759 }
13760 }
13761
13762 next_offset += envelope_size;
13763 _next_ordinal_to_read += 1;
13764 if next_offset >= end_offset {
13765 return Ok(());
13766 }
13767
13768 while _next_ordinal_to_read < 2 {
13770 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13771 _next_ordinal_to_read += 1;
13772 next_offset += envelope_size;
13773 }
13774
13775 let next_out_of_line = decoder.next_out_of_line();
13776 let handles_before = decoder.remaining_handles();
13777 if let Some((inlined, num_bytes, num_handles)) =
13778 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13779 {
13780 let member_inline_size =
13781 <ScanData as fidl::encoding::TypeMarker>::inline_size(decoder.context);
13782 if inlined != (member_inline_size <= 4) {
13783 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13784 }
13785 let inner_offset;
13786 let mut inner_depth = depth.clone();
13787 if inlined {
13788 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13789 inner_offset = next_offset;
13790 } else {
13791 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13792 inner_depth.increment()?;
13793 }
13794 let val_ref = self.data.get_or_insert_with(|| fidl::new_empty!(ScanData, D));
13795 fidl::decode!(ScanData, D, val_ref, decoder, inner_offset, inner_depth)?;
13796 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13797 {
13798 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13799 }
13800 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13801 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13802 }
13803 }
13804
13805 next_offset += envelope_size;
13806 _next_ordinal_to_read += 1;
13807 if next_offset >= end_offset {
13808 return Ok(());
13809 }
13810
13811 while _next_ordinal_to_read < 3 {
13813 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13814 _next_ordinal_to_read += 1;
13815 next_offset += envelope_size;
13816 }
13817
13818 let next_out_of_line = decoder.next_out_of_line();
13819 let handles_before = decoder.remaining_handles();
13820 if let Some((inlined, num_bytes, num_handles)) =
13821 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13822 {
13823 let member_inline_size =
13824 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
13825 if inlined != (member_inline_size <= 4) {
13826 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13827 }
13828 let inner_offset;
13829 let mut inner_depth = depth.clone();
13830 if inlined {
13831 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13832 inner_offset = next_offset;
13833 } else {
13834 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13835 inner_depth.increment()?;
13836 }
13837 let val_ref = self.event_counter.get_or_insert_with(|| fidl::new_empty!(u16, D));
13838 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
13839 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13840 {
13841 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13842 }
13843 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13844 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13845 }
13846 }
13847
13848 next_offset += envelope_size;
13849 _next_ordinal_to_read += 1;
13850 if next_offset >= end_offset {
13851 return Ok(());
13852 }
13853
13854 while _next_ordinal_to_read < 4 {
13856 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13857 _next_ordinal_to_read += 1;
13858 next_offset += envelope_size;
13859 }
13860
13861 let next_out_of_line = decoder.next_out_of_line();
13862 let handles_before = decoder.remaining_handles();
13863 if let Some((inlined, num_bytes, num_handles)) =
13864 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13865 {
13866 let member_inline_size =
13867 <u8 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
13868 if inlined != (member_inline_size <= 4) {
13869 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13870 }
13871 let inner_offset;
13872 let mut inner_depth = depth.clone();
13873 if inlined {
13874 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13875 inner_offset = next_offset;
13876 } else {
13877 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13878 inner_depth.increment()?;
13879 }
13880 let val_ref = self.subevent.get_or_insert_with(|| fidl::new_empty!(u8, D));
13881 fidl::decode!(u8, D, val_ref, decoder, inner_offset, inner_depth)?;
13882 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13883 {
13884 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13885 }
13886 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13887 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13888 }
13889 }
13890
13891 next_offset += envelope_size;
13892 _next_ordinal_to_read += 1;
13893 if next_offset >= end_offset {
13894 return Ok(());
13895 }
13896
13897 while _next_ordinal_to_read < 5 {
13899 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13900 _next_ordinal_to_read += 1;
13901 next_offset += envelope_size;
13902 }
13903
13904 let next_out_of_line = decoder.next_out_of_line();
13905 let handles_before = decoder.remaining_handles();
13906 if let Some((inlined, num_bytes, num_handles)) =
13907 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13908 {
13909 let member_inline_size =
13910 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
13911 if inlined != (member_inline_size <= 4) {
13912 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13913 }
13914 let inner_offset;
13915 let mut inner_depth = depth.clone();
13916 if inlined {
13917 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13918 inner_offset = next_offset;
13919 } else {
13920 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13921 inner_depth.increment()?;
13922 }
13923 let val_ref = self.timestamp.get_or_insert_with(|| fidl::new_empty!(i64, D));
13924 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
13925 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13926 {
13927 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13928 }
13929 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13930 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13931 }
13932 }
13933
13934 next_offset += envelope_size;
13935
13936 while next_offset < end_offset {
13938 _next_ordinal_to_read += 1;
13939 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13940 next_offset += envelope_size;
13941 }
13942
13943 Ok(())
13944 }
13945 }
13946
13947 impl PeriodicAdvertisingSyncConfiguration {
13948 #[inline(always)]
13949 fn max_ordinal_present(&self) -> u64 {
13950 if let Some(_) = self.filter_duplicates {
13951 return 1;
13952 }
13953 0
13954 }
13955 }
13956
13957 impl fidl::encoding::ValueTypeMarker for PeriodicAdvertisingSyncConfiguration {
13958 type Borrowed<'a> = &'a Self;
13959 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
13960 value
13961 }
13962 }
13963
13964 unsafe impl fidl::encoding::TypeMarker for PeriodicAdvertisingSyncConfiguration {
13965 type Owned = Self;
13966
13967 #[inline(always)]
13968 fn inline_align(_context: fidl::encoding::Context) -> usize {
13969 8
13970 }
13971
13972 #[inline(always)]
13973 fn inline_size(_context: fidl::encoding::Context) -> usize {
13974 16
13975 }
13976 }
13977
13978 unsafe impl<D: fidl::encoding::ResourceDialect>
13979 fidl::encoding::Encode<PeriodicAdvertisingSyncConfiguration, D>
13980 for &PeriodicAdvertisingSyncConfiguration
13981 {
13982 unsafe fn encode(
13983 self,
13984 encoder: &mut fidl::encoding::Encoder<'_, D>,
13985 offset: usize,
13986 mut depth: fidl::encoding::Depth,
13987 ) -> fidl::Result<()> {
13988 encoder.debug_check_bounds::<PeriodicAdvertisingSyncConfiguration>(offset);
13989 let max_ordinal: u64 = self.max_ordinal_present();
13991 encoder.write_num(max_ordinal, offset);
13992 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
13993 if max_ordinal == 0 {
13995 return Ok(());
13996 }
13997 depth.increment()?;
13998 let envelope_size = 8;
13999 let bytes_len = max_ordinal as usize * envelope_size;
14000 #[allow(unused_variables)]
14001 let offset = encoder.out_of_line_offset(bytes_len);
14002 let mut _prev_end_offset: usize = 0;
14003 if 1 > max_ordinal {
14004 return Ok(());
14005 }
14006
14007 let cur_offset: usize = (1 - 1) * envelope_size;
14010
14011 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14013
14014 fidl::encoding::encode_in_envelope_optional::<bool, D>(
14019 self.filter_duplicates
14020 .as_ref()
14021 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
14022 encoder,
14023 offset + cur_offset,
14024 depth,
14025 )?;
14026
14027 _prev_end_offset = cur_offset + envelope_size;
14028
14029 Ok(())
14030 }
14031 }
14032
14033 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
14034 for PeriodicAdvertisingSyncConfiguration
14035 {
14036 #[inline(always)]
14037 fn new_empty() -> Self {
14038 Self::default()
14039 }
14040
14041 unsafe fn decode(
14042 &mut self,
14043 decoder: &mut fidl::encoding::Decoder<'_, D>,
14044 offset: usize,
14045 mut depth: fidl::encoding::Depth,
14046 ) -> fidl::Result<()> {
14047 decoder.debug_check_bounds::<Self>(offset);
14048 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
14049 None => return Err(fidl::Error::NotNullable),
14050 Some(len) => len,
14051 };
14052 if len == 0 {
14054 return Ok(());
14055 };
14056 depth.increment()?;
14057 let envelope_size = 8;
14058 let bytes_len = len * envelope_size;
14059 let offset = decoder.out_of_line_offset(bytes_len)?;
14060 let mut _next_ordinal_to_read = 0;
14062 let mut next_offset = offset;
14063 let end_offset = offset + bytes_len;
14064 _next_ordinal_to_read += 1;
14065 if next_offset >= end_offset {
14066 return Ok(());
14067 }
14068
14069 while _next_ordinal_to_read < 1 {
14071 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14072 _next_ordinal_to_read += 1;
14073 next_offset += envelope_size;
14074 }
14075
14076 let next_out_of_line = decoder.next_out_of_line();
14077 let handles_before = decoder.remaining_handles();
14078 if let Some((inlined, num_bytes, num_handles)) =
14079 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14080 {
14081 let member_inline_size =
14082 <bool 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 =
14096 self.filter_duplicates.get_or_insert_with(|| fidl::new_empty!(bool, D));
14097 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
14098 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14099 {
14100 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14101 }
14102 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14103 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14104 }
14105 }
14106
14107 next_offset += envelope_size;
14108
14109 while next_offset < end_offset {
14111 _next_ordinal_to_read += 1;
14112 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14113 next_offset += envelope_size;
14114 }
14115
14116 Ok(())
14117 }
14118 }
14119
14120 impl PeriodicAdvertisingSyncOnEstablishedRequest {
14121 #[inline(always)]
14122 fn max_ordinal_present(&self) -> u64 {
14123 if let Some(_) = self.periodic_advertising_interval {
14124 return 7;
14125 }
14126 if let Some(_) = self.phy {
14127 return 6;
14128 }
14129 if let Some(_) = self.advertising_sid {
14130 return 5;
14131 }
14132 if let Some(_) = self.service_data {
14133 return 4;
14134 }
14135 if let Some(_) = self.peer_id {
14136 return 3;
14137 }
14138 if let Some(_) = self.subevents_count {
14139 return 2;
14140 }
14141 if let Some(_) = self.id {
14142 return 1;
14143 }
14144 0
14145 }
14146 }
14147
14148 impl fidl::encoding::ValueTypeMarker for PeriodicAdvertisingSyncOnEstablishedRequest {
14149 type Borrowed<'a> = &'a Self;
14150 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
14151 value
14152 }
14153 }
14154
14155 unsafe impl fidl::encoding::TypeMarker for PeriodicAdvertisingSyncOnEstablishedRequest {
14156 type Owned = Self;
14157
14158 #[inline(always)]
14159 fn inline_align(_context: fidl::encoding::Context) -> usize {
14160 8
14161 }
14162
14163 #[inline(always)]
14164 fn inline_size(_context: fidl::encoding::Context) -> usize {
14165 16
14166 }
14167 }
14168
14169 unsafe impl<D: fidl::encoding::ResourceDialect>
14170 fidl::encoding::Encode<PeriodicAdvertisingSyncOnEstablishedRequest, D>
14171 for &PeriodicAdvertisingSyncOnEstablishedRequest
14172 {
14173 unsafe fn encode(
14174 self,
14175 encoder: &mut fidl::encoding::Encoder<'_, D>,
14176 offset: usize,
14177 mut depth: fidl::encoding::Depth,
14178 ) -> fidl::Result<()> {
14179 encoder.debug_check_bounds::<PeriodicAdvertisingSyncOnEstablishedRequest>(offset);
14180 let max_ordinal: u64 = self.max_ordinal_present();
14182 encoder.write_num(max_ordinal, offset);
14183 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
14184 if max_ordinal == 0 {
14186 return Ok(());
14187 }
14188 depth.increment()?;
14189 let envelope_size = 8;
14190 let bytes_len = max_ordinal as usize * envelope_size;
14191 #[allow(unused_variables)]
14192 let offset = encoder.out_of_line_offset(bytes_len);
14193 let mut _prev_end_offset: usize = 0;
14194 if 1 > max_ordinal {
14195 return Ok(());
14196 }
14197
14198 let cur_offset: usize = (1 - 1) * envelope_size;
14201
14202 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14204
14205 fidl::encoding::encode_in_envelope_optional::<PeriodicAdvertisingSyncId, D>(
14210 self.id
14211 .as_ref()
14212 .map(<PeriodicAdvertisingSyncId as fidl::encoding::ValueTypeMarker>::borrow),
14213 encoder,
14214 offset + cur_offset,
14215 depth,
14216 )?;
14217
14218 _prev_end_offset = cur_offset + envelope_size;
14219 if 2 > max_ordinal {
14220 return Ok(());
14221 }
14222
14223 let cur_offset: usize = (2 - 1) * envelope_size;
14226
14227 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14229
14230 fidl::encoding::encode_in_envelope_optional::<u8, D>(
14235 self.subevents_count.as_ref().map(<u8 as fidl::encoding::ValueTypeMarker>::borrow),
14236 encoder,
14237 offset + cur_offset,
14238 depth,
14239 )?;
14240
14241 _prev_end_offset = cur_offset + envelope_size;
14242 if 3 > max_ordinal {
14243 return Ok(());
14244 }
14245
14246 let cur_offset: usize = (3 - 1) * envelope_size;
14249
14250 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14252
14253 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_bluetooth_common::PeerId, D>(
14258 self.peer_id.as_ref().map(<fidl_fuchsia_bluetooth_common::PeerId as fidl::encoding::ValueTypeMarker>::borrow),
14259 encoder, offset + cur_offset, depth
14260 )?;
14261
14262 _prev_end_offset = cur_offset + envelope_size;
14263 if 4 > max_ordinal {
14264 return Ok(());
14265 }
14266
14267 let cur_offset: usize = (4 - 1) * envelope_size;
14270
14271 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14273
14274 fidl::encoding::encode_in_envelope_optional::<u16, D>(
14279 self.service_data.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
14280 encoder,
14281 offset + cur_offset,
14282 depth,
14283 )?;
14284
14285 _prev_end_offset = cur_offset + envelope_size;
14286 if 5 > max_ordinal {
14287 return Ok(());
14288 }
14289
14290 let cur_offset: usize = (5 - 1) * envelope_size;
14293
14294 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14296
14297 fidl::encoding::encode_in_envelope_optional::<u8, D>(
14302 self.advertising_sid.as_ref().map(<u8 as fidl::encoding::ValueTypeMarker>::borrow),
14303 encoder,
14304 offset + cur_offset,
14305 depth,
14306 )?;
14307
14308 _prev_end_offset = cur_offset + envelope_size;
14309 if 6 > max_ordinal {
14310 return Ok(());
14311 }
14312
14313 let cur_offset: usize = (6 - 1) * envelope_size;
14316
14317 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14319
14320 fidl::encoding::encode_in_envelope_optional::<PhysicalLayer, D>(
14325 self.phy.as_ref().map(<PhysicalLayer as fidl::encoding::ValueTypeMarker>::borrow),
14326 encoder,
14327 offset + cur_offset,
14328 depth,
14329 )?;
14330
14331 _prev_end_offset = cur_offset + envelope_size;
14332 if 7 > max_ordinal {
14333 return Ok(());
14334 }
14335
14336 let cur_offset: usize = (7 - 1) * envelope_size;
14339
14340 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14342
14343 fidl::encoding::encode_in_envelope_optional::<u16, D>(
14348 self.periodic_advertising_interval
14349 .as_ref()
14350 .map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
14351 encoder,
14352 offset + cur_offset,
14353 depth,
14354 )?;
14355
14356 _prev_end_offset = cur_offset + envelope_size;
14357
14358 Ok(())
14359 }
14360 }
14361
14362 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
14363 for PeriodicAdvertisingSyncOnEstablishedRequest
14364 {
14365 #[inline(always)]
14366 fn new_empty() -> Self {
14367 Self::default()
14368 }
14369
14370 unsafe fn decode(
14371 &mut self,
14372 decoder: &mut fidl::encoding::Decoder<'_, D>,
14373 offset: usize,
14374 mut depth: fidl::encoding::Depth,
14375 ) -> fidl::Result<()> {
14376 decoder.debug_check_bounds::<Self>(offset);
14377 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
14378 None => return Err(fidl::Error::NotNullable),
14379 Some(len) => len,
14380 };
14381 if len == 0 {
14383 return Ok(());
14384 };
14385 depth.increment()?;
14386 let envelope_size = 8;
14387 let bytes_len = len * envelope_size;
14388 let offset = decoder.out_of_line_offset(bytes_len)?;
14389 let mut _next_ordinal_to_read = 0;
14391 let mut next_offset = offset;
14392 let end_offset = offset + bytes_len;
14393 _next_ordinal_to_read += 1;
14394 if next_offset >= end_offset {
14395 return Ok(());
14396 }
14397
14398 while _next_ordinal_to_read < 1 {
14400 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14401 _next_ordinal_to_read += 1;
14402 next_offset += envelope_size;
14403 }
14404
14405 let next_out_of_line = decoder.next_out_of_line();
14406 let handles_before = decoder.remaining_handles();
14407 if let Some((inlined, num_bytes, num_handles)) =
14408 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14409 {
14410 let member_inline_size =
14411 <PeriodicAdvertisingSyncId as fidl::encoding::TypeMarker>::inline_size(
14412 decoder.context,
14413 );
14414 if inlined != (member_inline_size <= 4) {
14415 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14416 }
14417 let inner_offset;
14418 let mut inner_depth = depth.clone();
14419 if inlined {
14420 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14421 inner_offset = next_offset;
14422 } else {
14423 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14424 inner_depth.increment()?;
14425 }
14426 let val_ref =
14427 self.id.get_or_insert_with(|| fidl::new_empty!(PeriodicAdvertisingSyncId, D));
14428 fidl::decode!(
14429 PeriodicAdvertisingSyncId,
14430 D,
14431 val_ref,
14432 decoder,
14433 inner_offset,
14434 inner_depth
14435 )?;
14436 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14437 {
14438 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14439 }
14440 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14441 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14442 }
14443 }
14444
14445 next_offset += envelope_size;
14446 _next_ordinal_to_read += 1;
14447 if next_offset >= end_offset {
14448 return Ok(());
14449 }
14450
14451 while _next_ordinal_to_read < 2 {
14453 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14454 _next_ordinal_to_read += 1;
14455 next_offset += envelope_size;
14456 }
14457
14458 let next_out_of_line = decoder.next_out_of_line();
14459 let handles_before = decoder.remaining_handles();
14460 if let Some((inlined, num_bytes, num_handles)) =
14461 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14462 {
14463 let member_inline_size =
14464 <u8 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
14465 if inlined != (member_inline_size <= 4) {
14466 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14467 }
14468 let inner_offset;
14469 let mut inner_depth = depth.clone();
14470 if inlined {
14471 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14472 inner_offset = next_offset;
14473 } else {
14474 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14475 inner_depth.increment()?;
14476 }
14477 let val_ref = self.subevents_count.get_or_insert_with(|| fidl::new_empty!(u8, D));
14478 fidl::decode!(u8, D, val_ref, decoder, inner_offset, inner_depth)?;
14479 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14480 {
14481 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14482 }
14483 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14484 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14485 }
14486 }
14487
14488 next_offset += envelope_size;
14489 _next_ordinal_to_read += 1;
14490 if next_offset >= end_offset {
14491 return Ok(());
14492 }
14493
14494 while _next_ordinal_to_read < 3 {
14496 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14497 _next_ordinal_to_read += 1;
14498 next_offset += envelope_size;
14499 }
14500
14501 let next_out_of_line = decoder.next_out_of_line();
14502 let handles_before = decoder.remaining_handles();
14503 if let Some((inlined, num_bytes, num_handles)) =
14504 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14505 {
14506 let member_inline_size = <fidl_fuchsia_bluetooth_common::PeerId as fidl::encoding::TypeMarker>::inline_size(decoder.context);
14507 if inlined != (member_inline_size <= 4) {
14508 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14509 }
14510 let inner_offset;
14511 let mut inner_depth = depth.clone();
14512 if inlined {
14513 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14514 inner_offset = next_offset;
14515 } else {
14516 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14517 inner_depth.increment()?;
14518 }
14519 let val_ref = self.peer_id.get_or_insert_with(|| {
14520 fidl::new_empty!(fidl_fuchsia_bluetooth_common::PeerId, D)
14521 });
14522 fidl::decode!(
14523 fidl_fuchsia_bluetooth_common::PeerId,
14524 D,
14525 val_ref,
14526 decoder,
14527 inner_offset,
14528 inner_depth
14529 )?;
14530 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14531 {
14532 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14533 }
14534 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14535 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14536 }
14537 }
14538
14539 next_offset += envelope_size;
14540 _next_ordinal_to_read += 1;
14541 if next_offset >= end_offset {
14542 return Ok(());
14543 }
14544
14545 while _next_ordinal_to_read < 4 {
14547 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14548 _next_ordinal_to_read += 1;
14549 next_offset += envelope_size;
14550 }
14551
14552 let next_out_of_line = decoder.next_out_of_line();
14553 let handles_before = decoder.remaining_handles();
14554 if let Some((inlined, num_bytes, num_handles)) =
14555 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14556 {
14557 let member_inline_size =
14558 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
14559 if inlined != (member_inline_size <= 4) {
14560 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14561 }
14562 let inner_offset;
14563 let mut inner_depth = depth.clone();
14564 if inlined {
14565 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14566 inner_offset = next_offset;
14567 } else {
14568 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14569 inner_depth.increment()?;
14570 }
14571 let val_ref = self.service_data.get_or_insert_with(|| fidl::new_empty!(u16, D));
14572 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
14573 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14574 {
14575 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14576 }
14577 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14578 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14579 }
14580 }
14581
14582 next_offset += envelope_size;
14583 _next_ordinal_to_read += 1;
14584 if next_offset >= end_offset {
14585 return Ok(());
14586 }
14587
14588 while _next_ordinal_to_read < 5 {
14590 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14591 _next_ordinal_to_read += 1;
14592 next_offset += envelope_size;
14593 }
14594
14595 let next_out_of_line = decoder.next_out_of_line();
14596 let handles_before = decoder.remaining_handles();
14597 if let Some((inlined, num_bytes, num_handles)) =
14598 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14599 {
14600 let member_inline_size =
14601 <u8 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
14602 if inlined != (member_inline_size <= 4) {
14603 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14604 }
14605 let inner_offset;
14606 let mut inner_depth = depth.clone();
14607 if inlined {
14608 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14609 inner_offset = next_offset;
14610 } else {
14611 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14612 inner_depth.increment()?;
14613 }
14614 let val_ref = self.advertising_sid.get_or_insert_with(|| fidl::new_empty!(u8, D));
14615 fidl::decode!(u8, D, val_ref, decoder, inner_offset, inner_depth)?;
14616 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14617 {
14618 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14619 }
14620 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14621 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14622 }
14623 }
14624
14625 next_offset += envelope_size;
14626 _next_ordinal_to_read += 1;
14627 if next_offset >= end_offset {
14628 return Ok(());
14629 }
14630
14631 while _next_ordinal_to_read < 6 {
14633 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14634 _next_ordinal_to_read += 1;
14635 next_offset += envelope_size;
14636 }
14637
14638 let next_out_of_line = decoder.next_out_of_line();
14639 let handles_before = decoder.remaining_handles();
14640 if let Some((inlined, num_bytes, num_handles)) =
14641 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14642 {
14643 let member_inline_size =
14644 <PhysicalLayer as fidl::encoding::TypeMarker>::inline_size(decoder.context);
14645 if inlined != (member_inline_size <= 4) {
14646 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14647 }
14648 let inner_offset;
14649 let mut inner_depth = depth.clone();
14650 if inlined {
14651 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14652 inner_offset = next_offset;
14653 } else {
14654 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14655 inner_depth.increment()?;
14656 }
14657 let val_ref = self.phy.get_or_insert_with(|| fidl::new_empty!(PhysicalLayer, D));
14658 fidl::decode!(PhysicalLayer, D, val_ref, decoder, inner_offset, inner_depth)?;
14659 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14660 {
14661 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14662 }
14663 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14664 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14665 }
14666 }
14667
14668 next_offset += envelope_size;
14669 _next_ordinal_to_read += 1;
14670 if next_offset >= end_offset {
14671 return Ok(());
14672 }
14673
14674 while _next_ordinal_to_read < 7 {
14676 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14677 _next_ordinal_to_read += 1;
14678 next_offset += envelope_size;
14679 }
14680
14681 let next_out_of_line = decoder.next_out_of_line();
14682 let handles_before = decoder.remaining_handles();
14683 if let Some((inlined, num_bytes, num_handles)) =
14684 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14685 {
14686 let member_inline_size =
14687 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
14688 if inlined != (member_inline_size <= 4) {
14689 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14690 }
14691 let inner_offset;
14692 let mut inner_depth = depth.clone();
14693 if inlined {
14694 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14695 inner_offset = next_offset;
14696 } else {
14697 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14698 inner_depth.increment()?;
14699 }
14700 let val_ref = self
14701 .periodic_advertising_interval
14702 .get_or_insert_with(|| fidl::new_empty!(u16, D));
14703 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
14704 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14705 {
14706 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14707 }
14708 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14709 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14710 }
14711 }
14712
14713 next_offset += envelope_size;
14714
14715 while next_offset < end_offset {
14717 _next_ordinal_to_read += 1;
14718 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14719 next_offset += envelope_size;
14720 }
14721
14722 Ok(())
14723 }
14724 }
14725
14726 impl PeriodicAdvertisingSyncSyncToSubeventsRequest {
14727 #[inline(always)]
14728 fn max_ordinal_present(&self) -> u64 {
14729 if let Some(_) = self.subevents {
14730 return 1;
14731 }
14732 0
14733 }
14734 }
14735
14736 impl fidl::encoding::ValueTypeMarker for PeriodicAdvertisingSyncSyncToSubeventsRequest {
14737 type Borrowed<'a> = &'a Self;
14738 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
14739 value
14740 }
14741 }
14742
14743 unsafe impl fidl::encoding::TypeMarker for PeriodicAdvertisingSyncSyncToSubeventsRequest {
14744 type Owned = Self;
14745
14746 #[inline(always)]
14747 fn inline_align(_context: fidl::encoding::Context) -> usize {
14748 8
14749 }
14750
14751 #[inline(always)]
14752 fn inline_size(_context: fidl::encoding::Context) -> usize {
14753 16
14754 }
14755 }
14756
14757 unsafe impl<D: fidl::encoding::ResourceDialect>
14758 fidl::encoding::Encode<PeriodicAdvertisingSyncSyncToSubeventsRequest, D>
14759 for &PeriodicAdvertisingSyncSyncToSubeventsRequest
14760 {
14761 unsafe fn encode(
14762 self,
14763 encoder: &mut fidl::encoding::Encoder<'_, D>,
14764 offset: usize,
14765 mut depth: fidl::encoding::Depth,
14766 ) -> fidl::Result<()> {
14767 encoder.debug_check_bounds::<PeriodicAdvertisingSyncSyncToSubeventsRequest>(offset);
14768 let max_ordinal: u64 = self.max_ordinal_present();
14770 encoder.write_num(max_ordinal, offset);
14771 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
14772 if max_ordinal == 0 {
14774 return Ok(());
14775 }
14776 depth.increment()?;
14777 let envelope_size = 8;
14778 let bytes_len = max_ordinal as usize * envelope_size;
14779 #[allow(unused_variables)]
14780 let offset = encoder.out_of_line_offset(bytes_len);
14781 let mut _prev_end_offset: usize = 0;
14782 if 1 > max_ordinal {
14783 return Ok(());
14784 }
14785
14786 let cur_offset: usize = (1 - 1) * envelope_size;
14789
14790 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14792
14793 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u8, 128>, D>(
14798 self.subevents.as_ref().map(
14799 <fidl::encoding::Vector<u8, 128> as fidl::encoding::ValueTypeMarker>::borrow,
14800 ),
14801 encoder,
14802 offset + cur_offset,
14803 depth,
14804 )?;
14805
14806 _prev_end_offset = cur_offset + envelope_size;
14807
14808 Ok(())
14809 }
14810 }
14811
14812 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
14813 for PeriodicAdvertisingSyncSyncToSubeventsRequest
14814 {
14815 #[inline(always)]
14816 fn new_empty() -> Self {
14817 Self::default()
14818 }
14819
14820 unsafe fn decode(
14821 &mut self,
14822 decoder: &mut fidl::encoding::Decoder<'_, D>,
14823 offset: usize,
14824 mut depth: fidl::encoding::Depth,
14825 ) -> fidl::Result<()> {
14826 decoder.debug_check_bounds::<Self>(offset);
14827 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
14828 None => return Err(fidl::Error::NotNullable),
14829 Some(len) => len,
14830 };
14831 if len == 0 {
14833 return Ok(());
14834 };
14835 depth.increment()?;
14836 let envelope_size = 8;
14837 let bytes_len = len * envelope_size;
14838 let offset = decoder.out_of_line_offset(bytes_len)?;
14839 let mut _next_ordinal_to_read = 0;
14841 let mut next_offset = offset;
14842 let end_offset = offset + bytes_len;
14843 _next_ordinal_to_read += 1;
14844 if next_offset >= end_offset {
14845 return Ok(());
14846 }
14847
14848 while _next_ordinal_to_read < 1 {
14850 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14851 _next_ordinal_to_read += 1;
14852 next_offset += envelope_size;
14853 }
14854
14855 let next_out_of_line = decoder.next_out_of_line();
14856 let handles_before = decoder.remaining_handles();
14857 if let Some((inlined, num_bytes, num_handles)) =
14858 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14859 {
14860 let member_inline_size =
14861 <fidl::encoding::Vector<u8, 128> as fidl::encoding::TypeMarker>::inline_size(
14862 decoder.context,
14863 );
14864 if inlined != (member_inline_size <= 4) {
14865 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14866 }
14867 let inner_offset;
14868 let mut inner_depth = depth.clone();
14869 if inlined {
14870 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14871 inner_offset = next_offset;
14872 } else {
14873 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14874 inner_depth.increment()?;
14875 }
14876 let val_ref = self
14877 .subevents
14878 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u8, 128>, D));
14879 fidl::decode!(fidl::encoding::Vector<u8, 128>, D, val_ref, decoder, inner_offset, inner_depth)?;
14880 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14881 {
14882 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14883 }
14884 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14885 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14886 }
14887 }
14888
14889 next_offset += envelope_size;
14890
14891 while next_offset < end_offset {
14893 _next_ordinal_to_read += 1;
14894 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14895 next_offset += envelope_size;
14896 }
14897
14898 Ok(())
14899 }
14900 }
14901
14902 impl PeriodicAdvertisingSyncWatchAdvertisingReportResponse {
14903 #[inline(always)]
14904 fn max_ordinal_present(&self) -> u64 {
14905 if let Some(_) = self.reports {
14906 return 1;
14907 }
14908 0
14909 }
14910 }
14911
14912 impl fidl::encoding::ValueTypeMarker for PeriodicAdvertisingSyncWatchAdvertisingReportResponse {
14913 type Borrowed<'a> = &'a Self;
14914 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
14915 value
14916 }
14917 }
14918
14919 unsafe impl fidl::encoding::TypeMarker for PeriodicAdvertisingSyncWatchAdvertisingReportResponse {
14920 type Owned = Self;
14921
14922 #[inline(always)]
14923 fn inline_align(_context: fidl::encoding::Context) -> usize {
14924 8
14925 }
14926
14927 #[inline(always)]
14928 fn inline_size(_context: fidl::encoding::Context) -> usize {
14929 16
14930 }
14931 }
14932
14933 unsafe impl<D: fidl::encoding::ResourceDialect>
14934 fidl::encoding::Encode<PeriodicAdvertisingSyncWatchAdvertisingReportResponse, D>
14935 for &PeriodicAdvertisingSyncWatchAdvertisingReportResponse
14936 {
14937 unsafe fn encode(
14938 self,
14939 encoder: &mut fidl::encoding::Encoder<'_, D>,
14940 offset: usize,
14941 mut depth: fidl::encoding::Depth,
14942 ) -> fidl::Result<()> {
14943 encoder.debug_check_bounds::<PeriodicAdvertisingSyncWatchAdvertisingReportResponse>(
14944 offset,
14945 );
14946 let max_ordinal: u64 = self.max_ordinal_present();
14948 encoder.write_num(max_ordinal, offset);
14949 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
14950 if max_ordinal == 0 {
14952 return Ok(());
14953 }
14954 depth.increment()?;
14955 let envelope_size = 8;
14956 let bytes_len = max_ordinal as usize * envelope_size;
14957 #[allow(unused_variables)]
14958 let offset = encoder.out_of_line_offset(bytes_len);
14959 let mut _prev_end_offset: usize = 0;
14960 if 1 > max_ordinal {
14961 return Ok(());
14962 }
14963
14964 let cur_offset: usize = (1 - 1) * envelope_size;
14967
14968 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14970
14971 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<SyncReport>, D>(
14976 self.reports.as_ref().map(<fidl::encoding::UnboundedVector<SyncReport> as fidl::encoding::ValueTypeMarker>::borrow),
14977 encoder, offset + cur_offset, depth
14978 )?;
14979
14980 _prev_end_offset = cur_offset + envelope_size;
14981
14982 Ok(())
14983 }
14984 }
14985
14986 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
14987 for PeriodicAdvertisingSyncWatchAdvertisingReportResponse
14988 {
14989 #[inline(always)]
14990 fn new_empty() -> Self {
14991 Self::default()
14992 }
14993
14994 unsafe fn decode(
14995 &mut self,
14996 decoder: &mut fidl::encoding::Decoder<'_, D>,
14997 offset: usize,
14998 mut depth: fidl::encoding::Depth,
14999 ) -> fidl::Result<()> {
15000 decoder.debug_check_bounds::<Self>(offset);
15001 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
15002 None => return Err(fidl::Error::NotNullable),
15003 Some(len) => len,
15004 };
15005 if len == 0 {
15007 return Ok(());
15008 };
15009 depth.increment()?;
15010 let envelope_size = 8;
15011 let bytes_len = len * envelope_size;
15012 let offset = decoder.out_of_line_offset(bytes_len)?;
15013 let mut _next_ordinal_to_read = 0;
15015 let mut next_offset = offset;
15016 let end_offset = offset + bytes_len;
15017 _next_ordinal_to_read += 1;
15018 if next_offset >= end_offset {
15019 return Ok(());
15020 }
15021
15022 while _next_ordinal_to_read < 1 {
15024 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15025 _next_ordinal_to_read += 1;
15026 next_offset += envelope_size;
15027 }
15028
15029 let next_out_of_line = decoder.next_out_of_line();
15030 let handles_before = decoder.remaining_handles();
15031 if let Some((inlined, num_bytes, num_handles)) =
15032 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15033 {
15034 let member_inline_size = <fidl::encoding::UnboundedVector<SyncReport> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
15035 if inlined != (member_inline_size <= 4) {
15036 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15037 }
15038 let inner_offset;
15039 let mut inner_depth = depth.clone();
15040 if inlined {
15041 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15042 inner_offset = next_offset;
15043 } else {
15044 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15045 inner_depth.increment()?;
15046 }
15047 let val_ref = self.reports.get_or_insert_with(|| {
15048 fidl::new_empty!(fidl::encoding::UnboundedVector<SyncReport>, D)
15049 });
15050 fidl::decode!(
15051 fidl::encoding::UnboundedVector<SyncReport>,
15052 D,
15053 val_ref,
15054 decoder,
15055 inner_offset,
15056 inner_depth
15057 )?;
15058 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15059 {
15060 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15061 }
15062 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15063 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15064 }
15065 }
15066
15067 next_offset += envelope_size;
15068
15069 while next_offset < end_offset {
15071 _next_ordinal_to_read += 1;
15072 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15073 next_offset += envelope_size;
15074 }
15075
15076 Ok(())
15077 }
15078 }
15079
15080 impl ScanData {
15081 #[inline(always)]
15082 fn max_ordinal_present(&self) -> u64 {
15083 if let Some(_) = self.broadcast_name {
15084 return 9;
15085 }
15086 if let Some(_) = self.resolvable_set_identifier {
15087 return 8;
15088 }
15089 if let Some(_) = self.timestamp {
15090 return 7;
15091 }
15092 if let Some(_) = self.uris {
15093 return 6;
15094 }
15095 if let Some(_) = self.manufacturer_data {
15096 return 5;
15097 }
15098 if let Some(_) = self.service_data {
15099 return 4;
15100 }
15101 if let Some(_) = self.service_uuids {
15102 return 3;
15103 }
15104 if let Some(_) = self.appearance {
15105 return 2;
15106 }
15107 if let Some(_) = self.tx_power {
15108 return 1;
15109 }
15110 0
15111 }
15112 }
15113
15114 impl fidl::encoding::ValueTypeMarker for ScanData {
15115 type Borrowed<'a> = &'a Self;
15116 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
15117 value
15118 }
15119 }
15120
15121 unsafe impl fidl::encoding::TypeMarker for ScanData {
15122 type Owned = Self;
15123
15124 #[inline(always)]
15125 fn inline_align(_context: fidl::encoding::Context) -> usize {
15126 8
15127 }
15128
15129 #[inline(always)]
15130 fn inline_size(_context: fidl::encoding::Context) -> usize {
15131 16
15132 }
15133 }
15134
15135 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ScanData, D> for &ScanData {
15136 unsafe fn encode(
15137 self,
15138 encoder: &mut fidl::encoding::Encoder<'_, D>,
15139 offset: usize,
15140 mut depth: fidl::encoding::Depth,
15141 ) -> fidl::Result<()> {
15142 encoder.debug_check_bounds::<ScanData>(offset);
15143 let max_ordinal: u64 = self.max_ordinal_present();
15145 encoder.write_num(max_ordinal, offset);
15146 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
15147 if max_ordinal == 0 {
15149 return Ok(());
15150 }
15151 depth.increment()?;
15152 let envelope_size = 8;
15153 let bytes_len = max_ordinal as usize * envelope_size;
15154 #[allow(unused_variables)]
15155 let offset = encoder.out_of_line_offset(bytes_len);
15156 let mut _prev_end_offset: usize = 0;
15157 if 1 > max_ordinal {
15158 return Ok(());
15159 }
15160
15161 let cur_offset: usize = (1 - 1) * envelope_size;
15164
15165 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
15167
15168 fidl::encoding::encode_in_envelope_optional::<i8, D>(
15173 self.tx_power.as_ref().map(<i8 as fidl::encoding::ValueTypeMarker>::borrow),
15174 encoder,
15175 offset + cur_offset,
15176 depth,
15177 )?;
15178
15179 _prev_end_offset = cur_offset + envelope_size;
15180 if 2 > max_ordinal {
15181 return Ok(());
15182 }
15183
15184 let cur_offset: usize = (2 - 1) * envelope_size;
15187
15188 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
15190
15191 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_bluetooth_common::Appearance, D>(
15196 self.appearance.as_ref().map(<fidl_fuchsia_bluetooth_common::Appearance as fidl::encoding::ValueTypeMarker>::borrow),
15197 encoder, offset + cur_offset, depth
15198 )?;
15199
15200 _prev_end_offset = cur_offset + envelope_size;
15201 if 3 > max_ordinal {
15202 return Ok(());
15203 }
15204
15205 let cur_offset: usize = (3 - 1) * envelope_size;
15208
15209 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
15211
15212 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<fidl_fuchsia_bluetooth_common::Uuid>, D>(
15217 self.service_uuids.as_ref().map(<fidl::encoding::UnboundedVector<fidl_fuchsia_bluetooth_common::Uuid> as fidl::encoding::ValueTypeMarker>::borrow),
15218 encoder, offset + cur_offset, depth
15219 )?;
15220
15221 _prev_end_offset = cur_offset + envelope_size;
15222 if 4 > max_ordinal {
15223 return Ok(());
15224 }
15225
15226 let cur_offset: usize = (4 - 1) * envelope_size;
15229
15230 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
15232
15233 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<ServiceData>, D>(
15238 self.service_data.as_ref().map(<fidl::encoding::UnboundedVector<ServiceData> as fidl::encoding::ValueTypeMarker>::borrow),
15239 encoder, offset + cur_offset, depth
15240 )?;
15241
15242 _prev_end_offset = cur_offset + envelope_size;
15243 if 5 > max_ordinal {
15244 return Ok(());
15245 }
15246
15247 let cur_offset: usize = (5 - 1) * envelope_size;
15250
15251 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
15253
15254 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<ManufacturerData>, D>(
15259 self.manufacturer_data.as_ref().map(<fidl::encoding::UnboundedVector<ManufacturerData> as fidl::encoding::ValueTypeMarker>::borrow),
15260 encoder, offset + cur_offset, depth
15261 )?;
15262
15263 _prev_end_offset = cur_offset + envelope_size;
15264 if 6 > max_ordinal {
15265 return Ok(());
15266 }
15267
15268 let cur_offset: usize = (6 - 1) * envelope_size;
15271
15272 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
15274
15275 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<278>>, D>(
15280 self.uris.as_ref().map(<fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<278>> as fidl::encoding::ValueTypeMarker>::borrow),
15281 encoder, offset + cur_offset, depth
15282 )?;
15283
15284 _prev_end_offset = cur_offset + envelope_size;
15285 if 7 > max_ordinal {
15286 return Ok(());
15287 }
15288
15289 let cur_offset: usize = (7 - 1) * envelope_size;
15292
15293 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
15295
15296 fidl::encoding::encode_in_envelope_optional::<i64, D>(
15301 self.timestamp.as_ref().map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
15302 encoder,
15303 offset + cur_offset,
15304 depth,
15305 )?;
15306
15307 _prev_end_offset = cur_offset + envelope_size;
15308 if 8 > max_ordinal {
15309 return Ok(());
15310 }
15311
15312 let cur_offset: usize = (8 - 1) * envelope_size;
15315
15316 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
15318
15319 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
15324 self.resolvable_set_identifier
15325 .as_ref()
15326 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
15327 encoder,
15328 offset + cur_offset,
15329 depth,
15330 )?;
15331
15332 _prev_end_offset = cur_offset + envelope_size;
15333 if 9 > max_ordinal {
15334 return Ok(());
15335 }
15336
15337 let cur_offset: usize = (9 - 1) * envelope_size;
15340
15341 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
15343
15344 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<128>, D>(
15349 self.broadcast_name.as_ref().map(
15350 <fidl::encoding::BoundedString<128> as fidl::encoding::ValueTypeMarker>::borrow,
15351 ),
15352 encoder,
15353 offset + cur_offset,
15354 depth,
15355 )?;
15356
15357 _prev_end_offset = cur_offset + envelope_size;
15358
15359 Ok(())
15360 }
15361 }
15362
15363 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ScanData {
15364 #[inline(always)]
15365 fn new_empty() -> Self {
15366 Self::default()
15367 }
15368
15369 unsafe fn decode(
15370 &mut self,
15371 decoder: &mut fidl::encoding::Decoder<'_, D>,
15372 offset: usize,
15373 mut depth: fidl::encoding::Depth,
15374 ) -> fidl::Result<()> {
15375 decoder.debug_check_bounds::<Self>(offset);
15376 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
15377 None => return Err(fidl::Error::NotNullable),
15378 Some(len) => len,
15379 };
15380 if len == 0 {
15382 return Ok(());
15383 };
15384 depth.increment()?;
15385 let envelope_size = 8;
15386 let bytes_len = len * envelope_size;
15387 let offset = decoder.out_of_line_offset(bytes_len)?;
15388 let mut _next_ordinal_to_read = 0;
15390 let mut next_offset = offset;
15391 let end_offset = offset + bytes_len;
15392 _next_ordinal_to_read += 1;
15393 if next_offset >= end_offset {
15394 return Ok(());
15395 }
15396
15397 while _next_ordinal_to_read < 1 {
15399 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15400 _next_ordinal_to_read += 1;
15401 next_offset += envelope_size;
15402 }
15403
15404 let next_out_of_line = decoder.next_out_of_line();
15405 let handles_before = decoder.remaining_handles();
15406 if let Some((inlined, num_bytes, num_handles)) =
15407 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15408 {
15409 let member_inline_size =
15410 <i8 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
15411 if inlined != (member_inline_size <= 4) {
15412 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15413 }
15414 let inner_offset;
15415 let mut inner_depth = depth.clone();
15416 if inlined {
15417 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15418 inner_offset = next_offset;
15419 } else {
15420 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15421 inner_depth.increment()?;
15422 }
15423 let val_ref = self.tx_power.get_or_insert_with(|| fidl::new_empty!(i8, D));
15424 fidl::decode!(i8, D, val_ref, decoder, inner_offset, inner_depth)?;
15425 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15426 {
15427 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15428 }
15429 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15430 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15431 }
15432 }
15433
15434 next_offset += envelope_size;
15435 _next_ordinal_to_read += 1;
15436 if next_offset >= end_offset {
15437 return Ok(());
15438 }
15439
15440 while _next_ordinal_to_read < 2 {
15442 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15443 _next_ordinal_to_read += 1;
15444 next_offset += envelope_size;
15445 }
15446
15447 let next_out_of_line = decoder.next_out_of_line();
15448 let handles_before = decoder.remaining_handles();
15449 if let Some((inlined, num_bytes, num_handles)) =
15450 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15451 {
15452 let member_inline_size = <fidl_fuchsia_bluetooth_common::Appearance as fidl::encoding::TypeMarker>::inline_size(decoder.context);
15453 if inlined != (member_inline_size <= 4) {
15454 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15455 }
15456 let inner_offset;
15457 let mut inner_depth = depth.clone();
15458 if inlined {
15459 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15460 inner_offset = next_offset;
15461 } else {
15462 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15463 inner_depth.increment()?;
15464 }
15465 let val_ref = self.appearance.get_or_insert_with(|| {
15466 fidl::new_empty!(fidl_fuchsia_bluetooth_common::Appearance, D)
15467 });
15468 fidl::decode!(
15469 fidl_fuchsia_bluetooth_common::Appearance,
15470 D,
15471 val_ref,
15472 decoder,
15473 inner_offset,
15474 inner_depth
15475 )?;
15476 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15477 {
15478 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15479 }
15480 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15481 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15482 }
15483 }
15484
15485 next_offset += envelope_size;
15486 _next_ordinal_to_read += 1;
15487 if next_offset >= end_offset {
15488 return Ok(());
15489 }
15490
15491 while _next_ordinal_to_read < 3 {
15493 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15494 _next_ordinal_to_read += 1;
15495 next_offset += envelope_size;
15496 }
15497
15498 let next_out_of_line = decoder.next_out_of_line();
15499 let handles_before = decoder.remaining_handles();
15500 if let Some((inlined, num_bytes, num_handles)) =
15501 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15502 {
15503 let member_inline_size = <fidl::encoding::UnboundedVector<
15504 fidl_fuchsia_bluetooth_common::Uuid,
15505 > as fidl::encoding::TypeMarker>::inline_size(
15506 decoder.context
15507 );
15508 if inlined != (member_inline_size <= 4) {
15509 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15510 }
15511 let inner_offset;
15512 let mut inner_depth = depth.clone();
15513 if inlined {
15514 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15515 inner_offset = next_offset;
15516 } else {
15517 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15518 inner_depth.increment()?;
15519 }
15520 let val_ref = self.service_uuids.get_or_insert_with(|| {
15521 fidl::new_empty!(
15522 fidl::encoding::UnboundedVector<fidl_fuchsia_bluetooth_common::Uuid>,
15523 D
15524 )
15525 });
15526 fidl::decode!(
15527 fidl::encoding::UnboundedVector<fidl_fuchsia_bluetooth_common::Uuid>,
15528 D,
15529 val_ref,
15530 decoder,
15531 inner_offset,
15532 inner_depth
15533 )?;
15534 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15535 {
15536 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15537 }
15538 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15539 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15540 }
15541 }
15542
15543 next_offset += envelope_size;
15544 _next_ordinal_to_read += 1;
15545 if next_offset >= end_offset {
15546 return Ok(());
15547 }
15548
15549 while _next_ordinal_to_read < 4 {
15551 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15552 _next_ordinal_to_read += 1;
15553 next_offset += envelope_size;
15554 }
15555
15556 let next_out_of_line = decoder.next_out_of_line();
15557 let handles_before = decoder.remaining_handles();
15558 if let Some((inlined, num_bytes, num_handles)) =
15559 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15560 {
15561 let member_inline_size = <fidl::encoding::UnboundedVector<ServiceData> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
15562 if inlined != (member_inline_size <= 4) {
15563 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15564 }
15565 let inner_offset;
15566 let mut inner_depth = depth.clone();
15567 if inlined {
15568 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15569 inner_offset = next_offset;
15570 } else {
15571 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15572 inner_depth.increment()?;
15573 }
15574 let val_ref = self.service_data.get_or_insert_with(|| {
15575 fidl::new_empty!(fidl::encoding::UnboundedVector<ServiceData>, D)
15576 });
15577 fidl::decode!(
15578 fidl::encoding::UnboundedVector<ServiceData>,
15579 D,
15580 val_ref,
15581 decoder,
15582 inner_offset,
15583 inner_depth
15584 )?;
15585 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15586 {
15587 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15588 }
15589 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15590 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15591 }
15592 }
15593
15594 next_offset += envelope_size;
15595 _next_ordinal_to_read += 1;
15596 if next_offset >= end_offset {
15597 return Ok(());
15598 }
15599
15600 while _next_ordinal_to_read < 5 {
15602 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15603 _next_ordinal_to_read += 1;
15604 next_offset += envelope_size;
15605 }
15606
15607 let next_out_of_line = decoder.next_out_of_line();
15608 let handles_before = decoder.remaining_handles();
15609 if let Some((inlined, num_bytes, num_handles)) =
15610 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15611 {
15612 let member_inline_size = <fidl::encoding::UnboundedVector<ManufacturerData> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
15613 if inlined != (member_inline_size <= 4) {
15614 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15615 }
15616 let inner_offset;
15617 let mut inner_depth = depth.clone();
15618 if inlined {
15619 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15620 inner_offset = next_offset;
15621 } else {
15622 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15623 inner_depth.increment()?;
15624 }
15625 let val_ref = self.manufacturer_data.get_or_insert_with(|| {
15626 fidl::new_empty!(fidl::encoding::UnboundedVector<ManufacturerData>, D)
15627 });
15628 fidl::decode!(
15629 fidl::encoding::UnboundedVector<ManufacturerData>,
15630 D,
15631 val_ref,
15632 decoder,
15633 inner_offset,
15634 inner_depth
15635 )?;
15636 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15637 {
15638 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15639 }
15640 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15641 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15642 }
15643 }
15644
15645 next_offset += envelope_size;
15646 _next_ordinal_to_read += 1;
15647 if next_offset >= end_offset {
15648 return Ok(());
15649 }
15650
15651 while _next_ordinal_to_read < 6 {
15653 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15654 _next_ordinal_to_read += 1;
15655 next_offset += envelope_size;
15656 }
15657
15658 let next_out_of_line = decoder.next_out_of_line();
15659 let handles_before = decoder.remaining_handles();
15660 if let Some((inlined, num_bytes, num_handles)) =
15661 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15662 {
15663 let member_inline_size = <fidl::encoding::UnboundedVector<
15664 fidl::encoding::BoundedString<278>,
15665 > as fidl::encoding::TypeMarker>::inline_size(
15666 decoder.context
15667 );
15668 if inlined != (member_inline_size <= 4) {
15669 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15670 }
15671 let inner_offset;
15672 let mut inner_depth = depth.clone();
15673 if inlined {
15674 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15675 inner_offset = next_offset;
15676 } else {
15677 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15678 inner_depth.increment()?;
15679 }
15680 let val_ref = self.uris.get_or_insert_with(|| {
15681 fidl::new_empty!(
15682 fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<278>>,
15683 D
15684 )
15685 });
15686 fidl::decode!(
15687 fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<278>>,
15688 D,
15689 val_ref,
15690 decoder,
15691 inner_offset,
15692 inner_depth
15693 )?;
15694 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15695 {
15696 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15697 }
15698 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15699 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15700 }
15701 }
15702
15703 next_offset += envelope_size;
15704 _next_ordinal_to_read += 1;
15705 if next_offset >= end_offset {
15706 return Ok(());
15707 }
15708
15709 while _next_ordinal_to_read < 7 {
15711 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15712 _next_ordinal_to_read += 1;
15713 next_offset += envelope_size;
15714 }
15715
15716 let next_out_of_line = decoder.next_out_of_line();
15717 let handles_before = decoder.remaining_handles();
15718 if let Some((inlined, num_bytes, num_handles)) =
15719 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15720 {
15721 let member_inline_size =
15722 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
15723 if inlined != (member_inline_size <= 4) {
15724 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15725 }
15726 let inner_offset;
15727 let mut inner_depth = depth.clone();
15728 if inlined {
15729 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15730 inner_offset = next_offset;
15731 } else {
15732 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15733 inner_depth.increment()?;
15734 }
15735 let val_ref = self.timestamp.get_or_insert_with(|| fidl::new_empty!(i64, D));
15736 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
15737 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15738 {
15739 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15740 }
15741 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15742 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15743 }
15744 }
15745
15746 next_offset += envelope_size;
15747 _next_ordinal_to_read += 1;
15748 if next_offset >= end_offset {
15749 return Ok(());
15750 }
15751
15752 while _next_ordinal_to_read < 8 {
15754 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15755 _next_ordinal_to_read += 1;
15756 next_offset += envelope_size;
15757 }
15758
15759 let next_out_of_line = decoder.next_out_of_line();
15760 let handles_before = decoder.remaining_handles();
15761 if let Some((inlined, num_bytes, num_handles)) =
15762 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15763 {
15764 let member_inline_size =
15765 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
15766 decoder.context,
15767 );
15768 if inlined != (member_inline_size <= 4) {
15769 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15770 }
15771 let inner_offset;
15772 let mut inner_depth = depth.clone();
15773 if inlined {
15774 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15775 inner_offset = next_offset;
15776 } else {
15777 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15778 inner_depth.increment()?;
15779 }
15780 let val_ref = self
15781 .resolvable_set_identifier
15782 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
15783 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
15784 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15785 {
15786 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15787 }
15788 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15789 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15790 }
15791 }
15792
15793 next_offset += envelope_size;
15794 _next_ordinal_to_read += 1;
15795 if next_offset >= end_offset {
15796 return Ok(());
15797 }
15798
15799 while _next_ordinal_to_read < 9 {
15801 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15802 _next_ordinal_to_read += 1;
15803 next_offset += envelope_size;
15804 }
15805
15806 let next_out_of_line = decoder.next_out_of_line();
15807 let handles_before = decoder.remaining_handles();
15808 if let Some((inlined, num_bytes, num_handles)) =
15809 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15810 {
15811 let member_inline_size =
15812 <fidl::encoding::BoundedString<128> as fidl::encoding::TypeMarker>::inline_size(
15813 decoder.context,
15814 );
15815 if inlined != (member_inline_size <= 4) {
15816 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15817 }
15818 let inner_offset;
15819 let mut inner_depth = depth.clone();
15820 if inlined {
15821 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15822 inner_offset = next_offset;
15823 } else {
15824 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15825 inner_depth.increment()?;
15826 }
15827 let val_ref = self
15828 .broadcast_name
15829 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<128>, D));
15830 fidl::decode!(
15831 fidl::encoding::BoundedString<128>,
15832 D,
15833 val_ref,
15834 decoder,
15835 inner_offset,
15836 inner_depth
15837 )?;
15838 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15839 {
15840 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15841 }
15842 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15843 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15844 }
15845 }
15846
15847 next_offset += envelope_size;
15848
15849 while next_offset < end_offset {
15851 _next_ordinal_to_read += 1;
15852 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15853 next_offset += envelope_size;
15854 }
15855
15856 Ok(())
15857 }
15858 }
15859
15860 impl ScanOptions {
15861 #[inline(always)]
15862 fn max_ordinal_present(&self) -> u64 {
15863 if let Some(_) = self.filters {
15864 return 1;
15865 }
15866 0
15867 }
15868 }
15869
15870 impl fidl::encoding::ValueTypeMarker for ScanOptions {
15871 type Borrowed<'a> = &'a Self;
15872 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
15873 value
15874 }
15875 }
15876
15877 unsafe impl fidl::encoding::TypeMarker for ScanOptions {
15878 type Owned = Self;
15879
15880 #[inline(always)]
15881 fn inline_align(_context: fidl::encoding::Context) -> usize {
15882 8
15883 }
15884
15885 #[inline(always)]
15886 fn inline_size(_context: fidl::encoding::Context) -> usize {
15887 16
15888 }
15889 }
15890
15891 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ScanOptions, D>
15892 for &ScanOptions
15893 {
15894 unsafe fn encode(
15895 self,
15896 encoder: &mut fidl::encoding::Encoder<'_, D>,
15897 offset: usize,
15898 mut depth: fidl::encoding::Depth,
15899 ) -> fidl::Result<()> {
15900 encoder.debug_check_bounds::<ScanOptions>(offset);
15901 let max_ordinal: u64 = self.max_ordinal_present();
15903 encoder.write_num(max_ordinal, offset);
15904 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
15905 if max_ordinal == 0 {
15907 return Ok(());
15908 }
15909 depth.increment()?;
15910 let envelope_size = 8;
15911 let bytes_len = max_ordinal as usize * envelope_size;
15912 #[allow(unused_variables)]
15913 let offset = encoder.out_of_line_offset(bytes_len);
15914 let mut _prev_end_offset: usize = 0;
15915 if 1 > max_ordinal {
15916 return Ok(());
15917 }
15918
15919 let cur_offset: usize = (1 - 1) * envelope_size;
15922
15923 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
15925
15926 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<Filter>, D>(
15931 self.filters.as_ref().map(<fidl::encoding::UnboundedVector<Filter> as fidl::encoding::ValueTypeMarker>::borrow),
15932 encoder, offset + cur_offset, depth
15933 )?;
15934
15935 _prev_end_offset = cur_offset + envelope_size;
15936
15937 Ok(())
15938 }
15939 }
15940
15941 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ScanOptions {
15942 #[inline(always)]
15943 fn new_empty() -> Self {
15944 Self::default()
15945 }
15946
15947 unsafe fn decode(
15948 &mut self,
15949 decoder: &mut fidl::encoding::Decoder<'_, D>,
15950 offset: usize,
15951 mut depth: fidl::encoding::Depth,
15952 ) -> fidl::Result<()> {
15953 decoder.debug_check_bounds::<Self>(offset);
15954 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
15955 None => return Err(fidl::Error::NotNullable),
15956 Some(len) => len,
15957 };
15958 if len == 0 {
15960 return Ok(());
15961 };
15962 depth.increment()?;
15963 let envelope_size = 8;
15964 let bytes_len = len * envelope_size;
15965 let offset = decoder.out_of_line_offset(bytes_len)?;
15966 let mut _next_ordinal_to_read = 0;
15968 let mut next_offset = offset;
15969 let end_offset = offset + bytes_len;
15970 _next_ordinal_to_read += 1;
15971 if next_offset >= end_offset {
15972 return Ok(());
15973 }
15974
15975 while _next_ordinal_to_read < 1 {
15977 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15978 _next_ordinal_to_read += 1;
15979 next_offset += envelope_size;
15980 }
15981
15982 let next_out_of_line = decoder.next_out_of_line();
15983 let handles_before = decoder.remaining_handles();
15984 if let Some((inlined, num_bytes, num_handles)) =
15985 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15986 {
15987 let member_inline_size = <fidl::encoding::UnboundedVector<Filter> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
15988 if inlined != (member_inline_size <= 4) {
15989 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15990 }
15991 let inner_offset;
15992 let mut inner_depth = depth.clone();
15993 if inlined {
15994 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15995 inner_offset = next_offset;
15996 } else {
15997 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15998 inner_depth.increment()?;
15999 }
16000 let val_ref = self.filters.get_or_insert_with(|| {
16001 fidl::new_empty!(fidl::encoding::UnboundedVector<Filter>, D)
16002 });
16003 fidl::decode!(
16004 fidl::encoding::UnboundedVector<Filter>,
16005 D,
16006 val_ref,
16007 decoder,
16008 inner_offset,
16009 inner_depth
16010 )?;
16011 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
16012 {
16013 return Err(fidl::Error::InvalidNumBytesInEnvelope);
16014 }
16015 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
16016 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
16017 }
16018 }
16019
16020 next_offset += envelope_size;
16021
16022 while next_offset < end_offset {
16024 _next_ordinal_to_read += 1;
16025 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
16026 next_offset += envelope_size;
16027 }
16028
16029 Ok(())
16030 }
16031 }
16032
16033 impl fidl::encoding::ValueTypeMarker for AdvertisingProcedure {
16034 type Borrowed<'a> = &'a Self;
16035 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
16036 value
16037 }
16038 }
16039
16040 unsafe impl fidl::encoding::TypeMarker for AdvertisingProcedure {
16041 type Owned = Self;
16042
16043 #[inline(always)]
16044 fn inline_align(_context: fidl::encoding::Context) -> usize {
16045 8
16046 }
16047
16048 #[inline(always)]
16049 fn inline_size(_context: fidl::encoding::Context) -> usize {
16050 16
16051 }
16052 }
16053
16054 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<AdvertisingProcedure, D>
16055 for &AdvertisingProcedure
16056 {
16057 #[inline]
16058 unsafe fn encode(
16059 self,
16060 encoder: &mut fidl::encoding::Encoder<'_, D>,
16061 offset: usize,
16062 _depth: fidl::encoding::Depth,
16063 ) -> fidl::Result<()> {
16064 encoder.debug_check_bounds::<AdvertisingProcedure>(offset);
16065 encoder.write_num::<u64>(self.ordinal(), offset);
16066 match self {
16067 AdvertisingProcedure::Legacy(ref val) => {
16068 fidl::encoding::encode_in_envelope::<Legacy, D>(
16069 <Legacy as fidl::encoding::ValueTypeMarker>::borrow(val),
16070 encoder,
16071 offset + 8,
16072 _depth,
16073 )
16074 }
16075 AdvertisingProcedure::Extended(ref val) => {
16076 fidl::encoding::encode_in_envelope::<Extended, D>(
16077 <Extended as fidl::encoding::ValueTypeMarker>::borrow(val),
16078 encoder,
16079 offset + 8,
16080 _depth,
16081 )
16082 }
16083 AdvertisingProcedure::__SourceBreaking { .. } => Err(fidl::Error::UnknownUnionTag),
16084 }
16085 }
16086 }
16087
16088 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for AdvertisingProcedure {
16089 #[inline(always)]
16090 fn new_empty() -> Self {
16091 Self::__SourceBreaking { unknown_ordinal: 0 }
16092 }
16093
16094 #[inline]
16095 unsafe fn decode(
16096 &mut self,
16097 decoder: &mut fidl::encoding::Decoder<'_, D>,
16098 offset: usize,
16099 mut depth: fidl::encoding::Depth,
16100 ) -> fidl::Result<()> {
16101 decoder.debug_check_bounds::<Self>(offset);
16102 #[allow(unused_variables)]
16103 let next_out_of_line = decoder.next_out_of_line();
16104 let handles_before = decoder.remaining_handles();
16105 let (ordinal, inlined, num_bytes, num_handles) =
16106 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
16107
16108 let member_inline_size = match ordinal {
16109 1 => <Legacy as fidl::encoding::TypeMarker>::inline_size(decoder.context),
16110 2 => <Extended as fidl::encoding::TypeMarker>::inline_size(decoder.context),
16111 0 => return Err(fidl::Error::UnknownUnionTag),
16112 _ => num_bytes as usize,
16113 };
16114
16115 if inlined != (member_inline_size <= 4) {
16116 return Err(fidl::Error::InvalidInlineBitInEnvelope);
16117 }
16118 let _inner_offset;
16119 if inlined {
16120 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
16121 _inner_offset = offset + 8;
16122 } else {
16123 depth.increment()?;
16124 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
16125 }
16126 match ordinal {
16127 1 => {
16128 #[allow(irrefutable_let_patterns)]
16129 if let AdvertisingProcedure::Legacy(_) = self {
16130 } else {
16132 *self = AdvertisingProcedure::Legacy(fidl::new_empty!(Legacy, D));
16134 }
16135 #[allow(irrefutable_let_patterns)]
16136 if let AdvertisingProcedure::Legacy(ref mut val) = self {
16137 fidl::decode!(Legacy, D, val, decoder, _inner_offset, depth)?;
16138 } else {
16139 unreachable!()
16140 }
16141 }
16142 2 => {
16143 #[allow(irrefutable_let_patterns)]
16144 if let AdvertisingProcedure::Extended(_) = self {
16145 } else {
16147 *self = AdvertisingProcedure::Extended(fidl::new_empty!(Extended, D));
16149 }
16150 #[allow(irrefutable_let_patterns)]
16151 if let AdvertisingProcedure::Extended(ref mut val) = self {
16152 fidl::decode!(Extended, D, val, decoder, _inner_offset, depth)?;
16153 } else {
16154 unreachable!()
16155 }
16156 }
16157 #[allow(deprecated)]
16158 ordinal => {
16159 for _ in 0..num_handles {
16160 decoder.drop_next_handle()?;
16161 }
16162 *self = AdvertisingProcedure::__SourceBreaking { unknown_ordinal: ordinal };
16163 }
16164 }
16165 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
16166 return Err(fidl::Error::InvalidNumBytesInEnvelope);
16167 }
16168 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
16169 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
16170 }
16171 Ok(())
16172 }
16173 }
16174
16175 impl fidl::encoding::ValueTypeMarker for SyncReport {
16176 type Borrowed<'a> = &'a Self;
16177 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
16178 value
16179 }
16180 }
16181
16182 unsafe impl fidl::encoding::TypeMarker for SyncReport {
16183 type Owned = Self;
16184
16185 #[inline(always)]
16186 fn inline_align(_context: fidl::encoding::Context) -> usize {
16187 8
16188 }
16189
16190 #[inline(always)]
16191 fn inline_size(_context: fidl::encoding::Context) -> usize {
16192 16
16193 }
16194 }
16195
16196 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<SyncReport, D>
16197 for &SyncReport
16198 {
16199 #[inline]
16200 unsafe fn encode(
16201 self,
16202 encoder: &mut fidl::encoding::Encoder<'_, D>,
16203 offset: usize,
16204 _depth: fidl::encoding::Depth,
16205 ) -> fidl::Result<()> {
16206 encoder.debug_check_bounds::<SyncReport>(offset);
16207 encoder.write_num::<u64>(self.ordinal(), offset);
16208 match self {
16209 SyncReport::PeriodicAdvertisingReport(ref val) => {
16210 fidl::encoding::encode_in_envelope::<PeriodicAdvertisingReport, D>(
16211 <PeriodicAdvertisingReport as fidl::encoding::ValueTypeMarker>::borrow(val),
16212 encoder, offset + 8, _depth
16213 )
16214 }
16215 SyncReport::BroadcastIsochronousGroupInfoReport(ref val) => {
16216 fidl::encoding::encode_in_envelope::<BroadcastIsochronousGroupInfoReport, D>(
16217 <BroadcastIsochronousGroupInfoReport as fidl::encoding::ValueTypeMarker>::borrow(val),
16218 encoder, offset + 8, _depth
16219 )
16220 }
16221 SyncReport::__SourceBreaking { .. } => Err(fidl::Error::UnknownUnionTag),
16222 }
16223 }
16224 }
16225
16226 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for SyncReport {
16227 #[inline(always)]
16228 fn new_empty() -> Self {
16229 Self::__SourceBreaking { unknown_ordinal: 0 }
16230 }
16231
16232 #[inline]
16233 unsafe fn decode(
16234 &mut self,
16235 decoder: &mut fidl::encoding::Decoder<'_, D>,
16236 offset: usize,
16237 mut depth: fidl::encoding::Depth,
16238 ) -> fidl::Result<()> {
16239 decoder.debug_check_bounds::<Self>(offset);
16240 #[allow(unused_variables)]
16241 let next_out_of_line = decoder.next_out_of_line();
16242 let handles_before = decoder.remaining_handles();
16243 let (ordinal, inlined, num_bytes, num_handles) =
16244 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
16245
16246 let member_inline_size = match ordinal {
16247 1 => <PeriodicAdvertisingReport as fidl::encoding::TypeMarker>::inline_size(
16248 decoder.context,
16249 ),
16250 2 => {
16251 <BroadcastIsochronousGroupInfoReport as fidl::encoding::TypeMarker>::inline_size(
16252 decoder.context,
16253 )
16254 }
16255 0 => return Err(fidl::Error::UnknownUnionTag),
16256 _ => num_bytes as usize,
16257 };
16258
16259 if inlined != (member_inline_size <= 4) {
16260 return Err(fidl::Error::InvalidInlineBitInEnvelope);
16261 }
16262 let _inner_offset;
16263 if inlined {
16264 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
16265 _inner_offset = offset + 8;
16266 } else {
16267 depth.increment()?;
16268 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
16269 }
16270 match ordinal {
16271 1 => {
16272 #[allow(irrefutable_let_patterns)]
16273 if let SyncReport::PeriodicAdvertisingReport(_) = self {
16274 } else {
16276 *self = SyncReport::PeriodicAdvertisingReport(fidl::new_empty!(
16278 PeriodicAdvertisingReport,
16279 D
16280 ));
16281 }
16282 #[allow(irrefutable_let_patterns)]
16283 if let SyncReport::PeriodicAdvertisingReport(ref mut val) = self {
16284 fidl::decode!(
16285 PeriodicAdvertisingReport,
16286 D,
16287 val,
16288 decoder,
16289 _inner_offset,
16290 depth
16291 )?;
16292 } else {
16293 unreachable!()
16294 }
16295 }
16296 2 => {
16297 #[allow(irrefutable_let_patterns)]
16298 if let SyncReport::BroadcastIsochronousGroupInfoReport(_) = self {
16299 } else {
16301 *self = SyncReport::BroadcastIsochronousGroupInfoReport(fidl::new_empty!(
16303 BroadcastIsochronousGroupInfoReport,
16304 D
16305 ));
16306 }
16307 #[allow(irrefutable_let_patterns)]
16308 if let SyncReport::BroadcastIsochronousGroupInfoReport(ref mut val) = self {
16309 fidl::decode!(
16310 BroadcastIsochronousGroupInfoReport,
16311 D,
16312 val,
16313 decoder,
16314 _inner_offset,
16315 depth
16316 )?;
16317 } else {
16318 unreachable!()
16319 }
16320 }
16321 #[allow(deprecated)]
16322 ordinal => {
16323 for _ in 0..num_handles {
16324 decoder.drop_next_handle()?;
16325 }
16326 *self = SyncReport::__SourceBreaking { unknown_ordinal: ordinal };
16327 }
16328 }
16329 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
16330 return Err(fidl::Error::InvalidNumBytesInEnvelope);
16331 }
16332 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
16333 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
16334 }
16335 Ok(())
16336 }
16337 }
16338}