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<
5005 fidl_fuchsia_bluetooth__common::ChannelMode,
5006 >,
5007 D
5008 )
5009 });
5010 fidl::decode!(
5011 fidl::encoding::UnboundedVector<fidl_fuchsia_bluetooth__common::ChannelMode>,
5012 D,
5013 val_ref,
5014 decoder,
5015 inner_offset,
5016 inner_depth
5017 )?;
5018 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5019 {
5020 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5021 }
5022 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5023 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5024 }
5025 }
5026
5027 next_offset += envelope_size;
5028 _next_ordinal_to_read += 1;
5029 if next_offset >= end_offset {
5030 return Ok(());
5031 }
5032
5033 while _next_ordinal_to_read < 2 {
5035 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5036 _next_ordinal_to_read += 1;
5037 next_offset += envelope_size;
5038 }
5039
5040 let next_out_of_line = decoder.next_out_of_line();
5041 let handles_before = decoder.remaining_handles();
5042 if let Some((inlined, num_bytes, num_handles)) =
5043 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5044 {
5045 let member_inline_size =
5046 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5047 if inlined != (member_inline_size <= 4) {
5048 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5049 }
5050 let inner_offset;
5051 let mut inner_depth = depth.clone();
5052 if inlined {
5053 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5054 inner_offset = next_offset;
5055 } else {
5056 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5057 inner_depth.increment()?;
5058 }
5059 let val_ref = self.max_packet_size.get_or_insert_with(|| fidl::new_empty!(u16, D));
5060 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
5061 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5062 {
5063 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5064 }
5065 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5066 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5067 }
5068 }
5069
5070 next_offset += envelope_size;
5071
5072 while next_offset < end_offset {
5074 _next_ordinal_to_read += 1;
5075 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5076 next_offset += envelope_size;
5077 }
5078
5079 Ok(())
5080 }
5081 }
5082
5083 impl AdvertisingData {
5084 #[inline(always)]
5085 fn max_ordinal_present(&self) -> u64 {
5086 if let Some(_) = self.broadcast_name {
5087 return 10;
5088 }
5089 if let Some(_) = self.resolvable_set_identifier {
5090 return 9;
5091 }
5092 if let Some(_) = self.include_tx_power_level {
5093 return 8;
5094 }
5095 if let Some(_) = self.uris {
5096 return 7;
5097 }
5098 if let Some(_) = self.manufacturer_data {
5099 return 6;
5100 }
5101 if let Some(_) = self.service_data {
5102 return 5;
5103 }
5104 if let Some(_) = self.service_uuids {
5105 return 4;
5106 }
5107 if let Some(_) = self.tx_power_level {
5108 return 3;
5109 }
5110 if let Some(_) = self.appearance {
5111 return 2;
5112 }
5113 if let Some(_) = self.name {
5114 return 1;
5115 }
5116 0
5117 }
5118 }
5119
5120 impl fidl::encoding::ValueTypeMarker for AdvertisingData {
5121 type Borrowed<'a> = &'a Self;
5122 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5123 value
5124 }
5125 }
5126
5127 unsafe impl fidl::encoding::TypeMarker for AdvertisingData {
5128 type Owned = Self;
5129
5130 #[inline(always)]
5131 fn inline_align(_context: fidl::encoding::Context) -> usize {
5132 8
5133 }
5134
5135 #[inline(always)]
5136 fn inline_size(_context: fidl::encoding::Context) -> usize {
5137 16
5138 }
5139 }
5140
5141 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<AdvertisingData, D>
5142 for &AdvertisingData
5143 {
5144 unsafe fn encode(
5145 self,
5146 encoder: &mut fidl::encoding::Encoder<'_, D>,
5147 offset: usize,
5148 mut depth: fidl::encoding::Depth,
5149 ) -> fidl::Result<()> {
5150 encoder.debug_check_bounds::<AdvertisingData>(offset);
5151 let max_ordinal: u64 = self.max_ordinal_present();
5153 encoder.write_num(max_ordinal, offset);
5154 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
5155 if max_ordinal == 0 {
5157 return Ok(());
5158 }
5159 depth.increment()?;
5160 let envelope_size = 8;
5161 let bytes_len = max_ordinal as usize * envelope_size;
5162 #[allow(unused_variables)]
5163 let offset = encoder.out_of_line_offset(bytes_len);
5164 let mut _prev_end_offset: usize = 0;
5165 if 1 > max_ordinal {
5166 return Ok(());
5167 }
5168
5169 let cur_offset: usize = (1 - 1) * envelope_size;
5172
5173 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5175
5176 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<248>, D>(
5181 self.name.as_ref().map(
5182 <fidl::encoding::BoundedString<248> as fidl::encoding::ValueTypeMarker>::borrow,
5183 ),
5184 encoder,
5185 offset + cur_offset,
5186 depth,
5187 )?;
5188
5189 _prev_end_offset = cur_offset + envelope_size;
5190 if 2 > max_ordinal {
5191 return Ok(());
5192 }
5193
5194 let cur_offset: usize = (2 - 1) * envelope_size;
5197
5198 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5200
5201 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_bluetooth__common::Appearance, D>(
5206 self.appearance.as_ref().map(<fidl_fuchsia_bluetooth__common::Appearance as fidl::encoding::ValueTypeMarker>::borrow),
5207 encoder, offset + cur_offset, depth
5208 )?;
5209
5210 _prev_end_offset = cur_offset + envelope_size;
5211 if 3 > max_ordinal {
5212 return Ok(());
5213 }
5214
5215 let cur_offset: usize = (3 - 1) * envelope_size;
5218
5219 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5221
5222 fidl::encoding::encode_in_envelope_optional::<i8, D>(
5227 self.tx_power_level.as_ref().map(<i8 as fidl::encoding::ValueTypeMarker>::borrow),
5228 encoder,
5229 offset + cur_offset,
5230 depth,
5231 )?;
5232
5233 _prev_end_offset = cur_offset + envelope_size;
5234 if 4 > max_ordinal {
5235 return Ok(());
5236 }
5237
5238 let cur_offset: usize = (4 - 1) * envelope_size;
5241
5242 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5244
5245 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<fidl_fuchsia_bluetooth__common::Uuid>, D>(
5250 self.service_uuids.as_ref().map(<fidl::encoding::UnboundedVector<fidl_fuchsia_bluetooth__common::Uuid> as fidl::encoding::ValueTypeMarker>::borrow),
5251 encoder, offset + cur_offset, depth
5252 )?;
5253
5254 _prev_end_offset = cur_offset + envelope_size;
5255 if 5 > max_ordinal {
5256 return Ok(());
5257 }
5258
5259 let cur_offset: usize = (5 - 1) * envelope_size;
5262
5263 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5265
5266 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<ServiceData>, D>(
5271 self.service_data.as_ref().map(<fidl::encoding::UnboundedVector<ServiceData> as fidl::encoding::ValueTypeMarker>::borrow),
5272 encoder, offset + cur_offset, depth
5273 )?;
5274
5275 _prev_end_offset = cur_offset + envelope_size;
5276 if 6 > max_ordinal {
5277 return Ok(());
5278 }
5279
5280 let cur_offset: usize = (6 - 1) * envelope_size;
5283
5284 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5286
5287 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<ManufacturerData>, D>(
5292 self.manufacturer_data.as_ref().map(<fidl::encoding::UnboundedVector<ManufacturerData> as fidl::encoding::ValueTypeMarker>::borrow),
5293 encoder, offset + cur_offset, depth
5294 )?;
5295
5296 _prev_end_offset = cur_offset + envelope_size;
5297 if 7 > max_ordinal {
5298 return Ok(());
5299 }
5300
5301 let cur_offset: usize = (7 - 1) * envelope_size;
5304
5305 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5307
5308 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<278>>, D>(
5313 self.uris.as_ref().map(<fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<278>> as fidl::encoding::ValueTypeMarker>::borrow),
5314 encoder, offset + cur_offset, depth
5315 )?;
5316
5317 _prev_end_offset = cur_offset + envelope_size;
5318 if 8 > max_ordinal {
5319 return Ok(());
5320 }
5321
5322 let cur_offset: usize = (8 - 1) * envelope_size;
5325
5326 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5328
5329 fidl::encoding::encode_in_envelope_optional::<bool, D>(
5334 self.include_tx_power_level
5335 .as_ref()
5336 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
5337 encoder,
5338 offset + cur_offset,
5339 depth,
5340 )?;
5341
5342 _prev_end_offset = cur_offset + envelope_size;
5343 if 9 > max_ordinal {
5344 return Ok(());
5345 }
5346
5347 let cur_offset: usize = (9 - 1) * envelope_size;
5350
5351 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5353
5354 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
5359 self.resolvable_set_identifier
5360 .as_ref()
5361 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
5362 encoder,
5363 offset + cur_offset,
5364 depth,
5365 )?;
5366
5367 _prev_end_offset = cur_offset + envelope_size;
5368 if 10 > max_ordinal {
5369 return Ok(());
5370 }
5371
5372 let cur_offset: usize = (10 - 1) * envelope_size;
5375
5376 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5378
5379 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<128>, D>(
5384 self.broadcast_name.as_ref().map(
5385 <fidl::encoding::BoundedString<128> as fidl::encoding::ValueTypeMarker>::borrow,
5386 ),
5387 encoder,
5388 offset + cur_offset,
5389 depth,
5390 )?;
5391
5392 _prev_end_offset = cur_offset + envelope_size;
5393
5394 Ok(())
5395 }
5396 }
5397
5398 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for AdvertisingData {
5399 #[inline(always)]
5400 fn new_empty() -> Self {
5401 Self::default()
5402 }
5403
5404 unsafe fn decode(
5405 &mut self,
5406 decoder: &mut fidl::encoding::Decoder<'_, D>,
5407 offset: usize,
5408 mut depth: fidl::encoding::Depth,
5409 ) -> fidl::Result<()> {
5410 decoder.debug_check_bounds::<Self>(offset);
5411 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
5412 None => return Err(fidl::Error::NotNullable),
5413 Some(len) => len,
5414 };
5415 if len == 0 {
5417 return Ok(());
5418 };
5419 depth.increment()?;
5420 let envelope_size = 8;
5421 let bytes_len = len * envelope_size;
5422 let offset = decoder.out_of_line_offset(bytes_len)?;
5423 let mut _next_ordinal_to_read = 0;
5425 let mut next_offset = offset;
5426 let end_offset = offset + bytes_len;
5427 _next_ordinal_to_read += 1;
5428 if next_offset >= end_offset {
5429 return Ok(());
5430 }
5431
5432 while _next_ordinal_to_read < 1 {
5434 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5435 _next_ordinal_to_read += 1;
5436 next_offset += envelope_size;
5437 }
5438
5439 let next_out_of_line = decoder.next_out_of_line();
5440 let handles_before = decoder.remaining_handles();
5441 if let Some((inlined, num_bytes, num_handles)) =
5442 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5443 {
5444 let member_inline_size =
5445 <fidl::encoding::BoundedString<248> as fidl::encoding::TypeMarker>::inline_size(
5446 decoder.context,
5447 );
5448 if inlined != (member_inline_size <= 4) {
5449 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5450 }
5451 let inner_offset;
5452 let mut inner_depth = depth.clone();
5453 if inlined {
5454 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5455 inner_offset = next_offset;
5456 } else {
5457 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5458 inner_depth.increment()?;
5459 }
5460 let val_ref = self
5461 .name
5462 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<248>, D));
5463 fidl::decode!(
5464 fidl::encoding::BoundedString<248>,
5465 D,
5466 val_ref,
5467 decoder,
5468 inner_offset,
5469 inner_depth
5470 )?;
5471 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5472 {
5473 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5474 }
5475 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5476 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5477 }
5478 }
5479
5480 next_offset += envelope_size;
5481 _next_ordinal_to_read += 1;
5482 if next_offset >= end_offset {
5483 return Ok(());
5484 }
5485
5486 while _next_ordinal_to_read < 2 {
5488 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5489 _next_ordinal_to_read += 1;
5490 next_offset += envelope_size;
5491 }
5492
5493 let next_out_of_line = decoder.next_out_of_line();
5494 let handles_before = decoder.remaining_handles();
5495 if let Some((inlined, num_bytes, num_handles)) =
5496 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5497 {
5498 let member_inline_size = <fidl_fuchsia_bluetooth__common::Appearance as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5499 if inlined != (member_inline_size <= 4) {
5500 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5501 }
5502 let inner_offset;
5503 let mut inner_depth = depth.clone();
5504 if inlined {
5505 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5506 inner_offset = next_offset;
5507 } else {
5508 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5509 inner_depth.increment()?;
5510 }
5511 let val_ref = self.appearance.get_or_insert_with(|| {
5512 fidl::new_empty!(fidl_fuchsia_bluetooth__common::Appearance, D)
5513 });
5514 fidl::decode!(
5515 fidl_fuchsia_bluetooth__common::Appearance,
5516 D,
5517 val_ref,
5518 decoder,
5519 inner_offset,
5520 inner_depth
5521 )?;
5522 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5523 {
5524 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5525 }
5526 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5527 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5528 }
5529 }
5530
5531 next_offset += envelope_size;
5532 _next_ordinal_to_read += 1;
5533 if next_offset >= end_offset {
5534 return Ok(());
5535 }
5536
5537 while _next_ordinal_to_read < 3 {
5539 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5540 _next_ordinal_to_read += 1;
5541 next_offset += envelope_size;
5542 }
5543
5544 let next_out_of_line = decoder.next_out_of_line();
5545 let handles_before = decoder.remaining_handles();
5546 if let Some((inlined, num_bytes, num_handles)) =
5547 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5548 {
5549 let member_inline_size =
5550 <i8 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5551 if inlined != (member_inline_size <= 4) {
5552 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5553 }
5554 let inner_offset;
5555 let mut inner_depth = depth.clone();
5556 if inlined {
5557 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5558 inner_offset = next_offset;
5559 } else {
5560 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5561 inner_depth.increment()?;
5562 }
5563 let val_ref = self.tx_power_level.get_or_insert_with(|| fidl::new_empty!(i8, D));
5564 fidl::decode!(i8, D, val_ref, decoder, inner_offset, inner_depth)?;
5565 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5566 {
5567 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5568 }
5569 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5570 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5571 }
5572 }
5573
5574 next_offset += envelope_size;
5575 _next_ordinal_to_read += 1;
5576 if next_offset >= end_offset {
5577 return Ok(());
5578 }
5579
5580 while _next_ordinal_to_read < 4 {
5582 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5583 _next_ordinal_to_read += 1;
5584 next_offset += envelope_size;
5585 }
5586
5587 let next_out_of_line = decoder.next_out_of_line();
5588 let handles_before = decoder.remaining_handles();
5589 if let Some((inlined, num_bytes, num_handles)) =
5590 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5591 {
5592 let member_inline_size = <fidl::encoding::UnboundedVector<
5593 fidl_fuchsia_bluetooth__common::Uuid,
5594 > as fidl::encoding::TypeMarker>::inline_size(
5595 decoder.context
5596 );
5597 if inlined != (member_inline_size <= 4) {
5598 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5599 }
5600 let inner_offset;
5601 let mut inner_depth = depth.clone();
5602 if inlined {
5603 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5604 inner_offset = next_offset;
5605 } else {
5606 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5607 inner_depth.increment()?;
5608 }
5609 let val_ref = self.service_uuids.get_or_insert_with(|| {
5610 fidl::new_empty!(
5611 fidl::encoding::UnboundedVector<fidl_fuchsia_bluetooth__common::Uuid>,
5612 D
5613 )
5614 });
5615 fidl::decode!(
5616 fidl::encoding::UnboundedVector<fidl_fuchsia_bluetooth__common::Uuid>,
5617 D,
5618 val_ref,
5619 decoder,
5620 inner_offset,
5621 inner_depth
5622 )?;
5623 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5624 {
5625 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5626 }
5627 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5628 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5629 }
5630 }
5631
5632 next_offset += envelope_size;
5633 _next_ordinal_to_read += 1;
5634 if next_offset >= end_offset {
5635 return Ok(());
5636 }
5637
5638 while _next_ordinal_to_read < 5 {
5640 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5641 _next_ordinal_to_read += 1;
5642 next_offset += envelope_size;
5643 }
5644
5645 let next_out_of_line = decoder.next_out_of_line();
5646 let handles_before = decoder.remaining_handles();
5647 if let Some((inlined, num_bytes, num_handles)) =
5648 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5649 {
5650 let member_inline_size = <fidl::encoding::UnboundedVector<ServiceData> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5651 if inlined != (member_inline_size <= 4) {
5652 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5653 }
5654 let inner_offset;
5655 let mut inner_depth = depth.clone();
5656 if inlined {
5657 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5658 inner_offset = next_offset;
5659 } else {
5660 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5661 inner_depth.increment()?;
5662 }
5663 let val_ref = self.service_data.get_or_insert_with(|| {
5664 fidl::new_empty!(fidl::encoding::UnboundedVector<ServiceData>, D)
5665 });
5666 fidl::decode!(
5667 fidl::encoding::UnboundedVector<ServiceData>,
5668 D,
5669 val_ref,
5670 decoder,
5671 inner_offset,
5672 inner_depth
5673 )?;
5674 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5675 {
5676 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5677 }
5678 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5679 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5680 }
5681 }
5682
5683 next_offset += envelope_size;
5684 _next_ordinal_to_read += 1;
5685 if next_offset >= end_offset {
5686 return Ok(());
5687 }
5688
5689 while _next_ordinal_to_read < 6 {
5691 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5692 _next_ordinal_to_read += 1;
5693 next_offset += envelope_size;
5694 }
5695
5696 let next_out_of_line = decoder.next_out_of_line();
5697 let handles_before = decoder.remaining_handles();
5698 if let Some((inlined, num_bytes, num_handles)) =
5699 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5700 {
5701 let member_inline_size = <fidl::encoding::UnboundedVector<ManufacturerData> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5702 if inlined != (member_inline_size <= 4) {
5703 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5704 }
5705 let inner_offset;
5706 let mut inner_depth = depth.clone();
5707 if inlined {
5708 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5709 inner_offset = next_offset;
5710 } else {
5711 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5712 inner_depth.increment()?;
5713 }
5714 let val_ref = self.manufacturer_data.get_or_insert_with(|| {
5715 fidl::new_empty!(fidl::encoding::UnboundedVector<ManufacturerData>, D)
5716 });
5717 fidl::decode!(
5718 fidl::encoding::UnboundedVector<ManufacturerData>,
5719 D,
5720 val_ref,
5721 decoder,
5722 inner_offset,
5723 inner_depth
5724 )?;
5725 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5726 {
5727 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5728 }
5729 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5730 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5731 }
5732 }
5733
5734 next_offset += envelope_size;
5735 _next_ordinal_to_read += 1;
5736 if next_offset >= end_offset {
5737 return Ok(());
5738 }
5739
5740 while _next_ordinal_to_read < 7 {
5742 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5743 _next_ordinal_to_read += 1;
5744 next_offset += envelope_size;
5745 }
5746
5747 let next_out_of_line = decoder.next_out_of_line();
5748 let handles_before = decoder.remaining_handles();
5749 if let Some((inlined, num_bytes, num_handles)) =
5750 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5751 {
5752 let member_inline_size = <fidl::encoding::UnboundedVector<
5753 fidl::encoding::BoundedString<278>,
5754 > as fidl::encoding::TypeMarker>::inline_size(
5755 decoder.context
5756 );
5757 if inlined != (member_inline_size <= 4) {
5758 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5759 }
5760 let inner_offset;
5761 let mut inner_depth = depth.clone();
5762 if inlined {
5763 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5764 inner_offset = next_offset;
5765 } else {
5766 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5767 inner_depth.increment()?;
5768 }
5769 let val_ref = self.uris.get_or_insert_with(|| {
5770 fidl::new_empty!(
5771 fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<278>>,
5772 D
5773 )
5774 });
5775 fidl::decode!(
5776 fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<278>>,
5777 D,
5778 val_ref,
5779 decoder,
5780 inner_offset,
5781 inner_depth
5782 )?;
5783 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5784 {
5785 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5786 }
5787 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5788 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5789 }
5790 }
5791
5792 next_offset += envelope_size;
5793 _next_ordinal_to_read += 1;
5794 if next_offset >= end_offset {
5795 return Ok(());
5796 }
5797
5798 while _next_ordinal_to_read < 8 {
5800 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5801 _next_ordinal_to_read += 1;
5802 next_offset += envelope_size;
5803 }
5804
5805 let next_out_of_line = decoder.next_out_of_line();
5806 let handles_before = decoder.remaining_handles();
5807 if let Some((inlined, num_bytes, num_handles)) =
5808 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5809 {
5810 let member_inline_size =
5811 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5812 if inlined != (member_inline_size <= 4) {
5813 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5814 }
5815 let inner_offset;
5816 let mut inner_depth = depth.clone();
5817 if inlined {
5818 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5819 inner_offset = next_offset;
5820 } else {
5821 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5822 inner_depth.increment()?;
5823 }
5824 let val_ref =
5825 self.include_tx_power_level.get_or_insert_with(|| fidl::new_empty!(bool, D));
5826 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
5827 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5828 {
5829 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5830 }
5831 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5832 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5833 }
5834 }
5835
5836 next_offset += envelope_size;
5837 _next_ordinal_to_read += 1;
5838 if next_offset >= end_offset {
5839 return Ok(());
5840 }
5841
5842 while _next_ordinal_to_read < 9 {
5844 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5845 _next_ordinal_to_read += 1;
5846 next_offset += envelope_size;
5847 }
5848
5849 let next_out_of_line = decoder.next_out_of_line();
5850 let handles_before = decoder.remaining_handles();
5851 if let Some((inlined, num_bytes, num_handles)) =
5852 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5853 {
5854 let member_inline_size =
5855 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
5856 decoder.context,
5857 );
5858 if inlined != (member_inline_size <= 4) {
5859 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5860 }
5861 let inner_offset;
5862 let mut inner_depth = depth.clone();
5863 if inlined {
5864 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5865 inner_offset = next_offset;
5866 } else {
5867 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5868 inner_depth.increment()?;
5869 }
5870 let val_ref = self
5871 .resolvable_set_identifier
5872 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
5873 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
5874 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5875 {
5876 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5877 }
5878 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5879 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5880 }
5881 }
5882
5883 next_offset += envelope_size;
5884 _next_ordinal_to_read += 1;
5885 if next_offset >= end_offset {
5886 return Ok(());
5887 }
5888
5889 while _next_ordinal_to_read < 10 {
5891 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5892 _next_ordinal_to_read += 1;
5893 next_offset += envelope_size;
5894 }
5895
5896 let next_out_of_line = decoder.next_out_of_line();
5897 let handles_before = decoder.remaining_handles();
5898 if let Some((inlined, num_bytes, num_handles)) =
5899 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5900 {
5901 let member_inline_size =
5902 <fidl::encoding::BoundedString<128> as fidl::encoding::TypeMarker>::inline_size(
5903 decoder.context,
5904 );
5905 if inlined != (member_inline_size <= 4) {
5906 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5907 }
5908 let inner_offset;
5909 let mut inner_depth = depth.clone();
5910 if inlined {
5911 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5912 inner_offset = next_offset;
5913 } else {
5914 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5915 inner_depth.increment()?;
5916 }
5917 let val_ref = self
5918 .broadcast_name
5919 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<128>, D));
5920 fidl::decode!(
5921 fidl::encoding::BoundedString<128>,
5922 D,
5923 val_ref,
5924 decoder,
5925 inner_offset,
5926 inner_depth
5927 )?;
5928 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5929 {
5930 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5931 }
5932 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5933 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5934 }
5935 }
5936
5937 next_offset += envelope_size;
5938
5939 while next_offset < end_offset {
5941 _next_ordinal_to_read += 1;
5942 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5943 next_offset += envelope_size;
5944 }
5945
5946 Ok(())
5947 }
5948 }
5949
5950 impl AdvertisingParameters {
5951 #[inline(always)]
5952 fn max_ordinal_present(&self) -> u64 {
5953 if let Some(_) = self.address_type {
5954 return 7;
5955 }
5956 if let Some(_) = self.advertising_procedure {
5957 return 6;
5958 }
5959 if let Some(_) = self.connection_options {
5960 return 5;
5961 }
5962 if let Some(_) = self.connectable {
5963 return 4;
5964 }
5965 if let Some(_) = self.mode_hint {
5966 return 3;
5967 }
5968 if let Some(_) = self.scan_response {
5969 return 2;
5970 }
5971 if let Some(_) = self.data {
5972 return 1;
5973 }
5974 0
5975 }
5976 }
5977
5978 impl fidl::encoding::ValueTypeMarker for AdvertisingParameters {
5979 type Borrowed<'a> = &'a Self;
5980 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5981 value
5982 }
5983 }
5984
5985 unsafe impl fidl::encoding::TypeMarker for AdvertisingParameters {
5986 type Owned = Self;
5987
5988 #[inline(always)]
5989 fn inline_align(_context: fidl::encoding::Context) -> usize {
5990 8
5991 }
5992
5993 #[inline(always)]
5994 fn inline_size(_context: fidl::encoding::Context) -> usize {
5995 16
5996 }
5997 }
5998
5999 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<AdvertisingParameters, D>
6000 for &AdvertisingParameters
6001 {
6002 unsafe fn encode(
6003 self,
6004 encoder: &mut fidl::encoding::Encoder<'_, D>,
6005 offset: usize,
6006 mut depth: fidl::encoding::Depth,
6007 ) -> fidl::Result<()> {
6008 encoder.debug_check_bounds::<AdvertisingParameters>(offset);
6009 let max_ordinal: u64 = self.max_ordinal_present();
6011 encoder.write_num(max_ordinal, offset);
6012 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
6013 if max_ordinal == 0 {
6015 return Ok(());
6016 }
6017 depth.increment()?;
6018 let envelope_size = 8;
6019 let bytes_len = max_ordinal as usize * envelope_size;
6020 #[allow(unused_variables)]
6021 let offset = encoder.out_of_line_offset(bytes_len);
6022 let mut _prev_end_offset: usize = 0;
6023 if 1 > max_ordinal {
6024 return Ok(());
6025 }
6026
6027 let cur_offset: usize = (1 - 1) * envelope_size;
6030
6031 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6033
6034 fidl::encoding::encode_in_envelope_optional::<AdvertisingData, D>(
6039 self.data
6040 .as_ref()
6041 .map(<AdvertisingData as fidl::encoding::ValueTypeMarker>::borrow),
6042 encoder,
6043 offset + cur_offset,
6044 depth,
6045 )?;
6046
6047 _prev_end_offset = cur_offset + envelope_size;
6048 if 2 > max_ordinal {
6049 return Ok(());
6050 }
6051
6052 let cur_offset: usize = (2 - 1) * envelope_size;
6055
6056 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6058
6059 fidl::encoding::encode_in_envelope_optional::<AdvertisingData, D>(
6064 self.scan_response
6065 .as_ref()
6066 .map(<AdvertisingData as fidl::encoding::ValueTypeMarker>::borrow),
6067 encoder,
6068 offset + cur_offset,
6069 depth,
6070 )?;
6071
6072 _prev_end_offset = cur_offset + envelope_size;
6073 if 3 > max_ordinal {
6074 return Ok(());
6075 }
6076
6077 let cur_offset: usize = (3 - 1) * envelope_size;
6080
6081 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6083
6084 fidl::encoding::encode_in_envelope_optional::<AdvertisingModeHint, D>(
6089 self.mode_hint
6090 .as_ref()
6091 .map(<AdvertisingModeHint as fidl::encoding::ValueTypeMarker>::borrow),
6092 encoder,
6093 offset + cur_offset,
6094 depth,
6095 )?;
6096
6097 _prev_end_offset = cur_offset + envelope_size;
6098 if 4 > max_ordinal {
6099 return Ok(());
6100 }
6101
6102 let cur_offset: usize = (4 - 1) * envelope_size;
6105
6106 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6108
6109 fidl::encoding::encode_in_envelope_optional::<bool, D>(
6114 self.connectable.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
6115 encoder,
6116 offset + cur_offset,
6117 depth,
6118 )?;
6119
6120 _prev_end_offset = cur_offset + envelope_size;
6121 if 5 > max_ordinal {
6122 return Ok(());
6123 }
6124
6125 let cur_offset: usize = (5 - 1) * envelope_size;
6128
6129 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6131
6132 fidl::encoding::encode_in_envelope_optional::<ConnectionOptions, D>(
6137 self.connection_options
6138 .as_ref()
6139 .map(<ConnectionOptions as fidl::encoding::ValueTypeMarker>::borrow),
6140 encoder,
6141 offset + cur_offset,
6142 depth,
6143 )?;
6144
6145 _prev_end_offset = cur_offset + envelope_size;
6146 if 6 > max_ordinal {
6147 return Ok(());
6148 }
6149
6150 let cur_offset: usize = (6 - 1) * envelope_size;
6153
6154 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6156
6157 fidl::encoding::encode_in_envelope_optional::<AdvertisingProcedure, D>(
6162 self.advertising_procedure
6163 .as_ref()
6164 .map(<AdvertisingProcedure as fidl::encoding::ValueTypeMarker>::borrow),
6165 encoder,
6166 offset + cur_offset,
6167 depth,
6168 )?;
6169
6170 _prev_end_offset = cur_offset + envelope_size;
6171 if 7 > max_ordinal {
6172 return Ok(());
6173 }
6174
6175 let cur_offset: usize = (7 - 1) * envelope_size;
6178
6179 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6181
6182 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_bluetooth__common::AddressType, D>(
6187 self.address_type.as_ref().map(<fidl_fuchsia_bluetooth__common::AddressType as fidl::encoding::ValueTypeMarker>::borrow),
6188 encoder, offset + cur_offset, depth
6189 )?;
6190
6191 _prev_end_offset = cur_offset + envelope_size;
6192
6193 Ok(())
6194 }
6195 }
6196
6197 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for AdvertisingParameters {
6198 #[inline(always)]
6199 fn new_empty() -> Self {
6200 Self::default()
6201 }
6202
6203 unsafe fn decode(
6204 &mut self,
6205 decoder: &mut fidl::encoding::Decoder<'_, D>,
6206 offset: usize,
6207 mut depth: fidl::encoding::Depth,
6208 ) -> fidl::Result<()> {
6209 decoder.debug_check_bounds::<Self>(offset);
6210 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
6211 None => return Err(fidl::Error::NotNullable),
6212 Some(len) => len,
6213 };
6214 if len == 0 {
6216 return Ok(());
6217 };
6218 depth.increment()?;
6219 let envelope_size = 8;
6220 let bytes_len = len * envelope_size;
6221 let offset = decoder.out_of_line_offset(bytes_len)?;
6222 let mut _next_ordinal_to_read = 0;
6224 let mut next_offset = offset;
6225 let end_offset = offset + bytes_len;
6226 _next_ordinal_to_read += 1;
6227 if next_offset >= end_offset {
6228 return Ok(());
6229 }
6230
6231 while _next_ordinal_to_read < 1 {
6233 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6234 _next_ordinal_to_read += 1;
6235 next_offset += envelope_size;
6236 }
6237
6238 let next_out_of_line = decoder.next_out_of_line();
6239 let handles_before = decoder.remaining_handles();
6240 if let Some((inlined, num_bytes, num_handles)) =
6241 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6242 {
6243 let member_inline_size =
6244 <AdvertisingData as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6245 if inlined != (member_inline_size <= 4) {
6246 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6247 }
6248 let inner_offset;
6249 let mut inner_depth = depth.clone();
6250 if inlined {
6251 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6252 inner_offset = next_offset;
6253 } else {
6254 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6255 inner_depth.increment()?;
6256 }
6257 let val_ref = self.data.get_or_insert_with(|| fidl::new_empty!(AdvertisingData, D));
6258 fidl::decode!(AdvertisingData, D, val_ref, decoder, inner_offset, inner_depth)?;
6259 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6260 {
6261 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6262 }
6263 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6264 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6265 }
6266 }
6267
6268 next_offset += envelope_size;
6269 _next_ordinal_to_read += 1;
6270 if next_offset >= end_offset {
6271 return Ok(());
6272 }
6273
6274 while _next_ordinal_to_read < 2 {
6276 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6277 _next_ordinal_to_read += 1;
6278 next_offset += envelope_size;
6279 }
6280
6281 let next_out_of_line = decoder.next_out_of_line();
6282 let handles_before = decoder.remaining_handles();
6283 if let Some((inlined, num_bytes, num_handles)) =
6284 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6285 {
6286 let member_inline_size =
6287 <AdvertisingData as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6288 if inlined != (member_inline_size <= 4) {
6289 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6290 }
6291 let inner_offset;
6292 let mut inner_depth = depth.clone();
6293 if inlined {
6294 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6295 inner_offset = next_offset;
6296 } else {
6297 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6298 inner_depth.increment()?;
6299 }
6300 let val_ref =
6301 self.scan_response.get_or_insert_with(|| fidl::new_empty!(AdvertisingData, D));
6302 fidl::decode!(AdvertisingData, D, val_ref, decoder, inner_offset, inner_depth)?;
6303 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6304 {
6305 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6306 }
6307 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6308 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6309 }
6310 }
6311
6312 next_offset += envelope_size;
6313 _next_ordinal_to_read += 1;
6314 if next_offset >= end_offset {
6315 return Ok(());
6316 }
6317
6318 while _next_ordinal_to_read < 3 {
6320 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6321 _next_ordinal_to_read += 1;
6322 next_offset += envelope_size;
6323 }
6324
6325 let next_out_of_line = decoder.next_out_of_line();
6326 let handles_before = decoder.remaining_handles();
6327 if let Some((inlined, num_bytes, num_handles)) =
6328 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6329 {
6330 let member_inline_size =
6331 <AdvertisingModeHint as fidl::encoding::TypeMarker>::inline_size(
6332 decoder.context,
6333 );
6334 if inlined != (member_inline_size <= 4) {
6335 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6336 }
6337 let inner_offset;
6338 let mut inner_depth = depth.clone();
6339 if inlined {
6340 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6341 inner_offset = next_offset;
6342 } else {
6343 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6344 inner_depth.increment()?;
6345 }
6346 let val_ref =
6347 self.mode_hint.get_or_insert_with(|| fidl::new_empty!(AdvertisingModeHint, D));
6348 fidl::decode!(AdvertisingModeHint, D, val_ref, decoder, inner_offset, inner_depth)?;
6349 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6350 {
6351 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6352 }
6353 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6354 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6355 }
6356 }
6357
6358 next_offset += envelope_size;
6359 _next_ordinal_to_read += 1;
6360 if next_offset >= end_offset {
6361 return Ok(());
6362 }
6363
6364 while _next_ordinal_to_read < 4 {
6366 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6367 _next_ordinal_to_read += 1;
6368 next_offset += envelope_size;
6369 }
6370
6371 let next_out_of_line = decoder.next_out_of_line();
6372 let handles_before = decoder.remaining_handles();
6373 if let Some((inlined, num_bytes, num_handles)) =
6374 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6375 {
6376 let member_inline_size =
6377 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6378 if inlined != (member_inline_size <= 4) {
6379 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6380 }
6381 let inner_offset;
6382 let mut inner_depth = depth.clone();
6383 if inlined {
6384 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6385 inner_offset = next_offset;
6386 } else {
6387 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6388 inner_depth.increment()?;
6389 }
6390 let val_ref = self.connectable.get_or_insert_with(|| fidl::new_empty!(bool, D));
6391 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
6392 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6393 {
6394 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6395 }
6396 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6397 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6398 }
6399 }
6400
6401 next_offset += envelope_size;
6402 _next_ordinal_to_read += 1;
6403 if next_offset >= end_offset {
6404 return Ok(());
6405 }
6406
6407 while _next_ordinal_to_read < 5 {
6409 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6410 _next_ordinal_to_read += 1;
6411 next_offset += envelope_size;
6412 }
6413
6414 let next_out_of_line = decoder.next_out_of_line();
6415 let handles_before = decoder.remaining_handles();
6416 if let Some((inlined, num_bytes, num_handles)) =
6417 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6418 {
6419 let member_inline_size =
6420 <ConnectionOptions as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6421 if inlined != (member_inline_size <= 4) {
6422 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6423 }
6424 let inner_offset;
6425 let mut inner_depth = depth.clone();
6426 if inlined {
6427 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6428 inner_offset = next_offset;
6429 } else {
6430 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6431 inner_depth.increment()?;
6432 }
6433 let val_ref = self
6434 .connection_options
6435 .get_or_insert_with(|| fidl::new_empty!(ConnectionOptions, D));
6436 fidl::decode!(ConnectionOptions, D, val_ref, decoder, inner_offset, inner_depth)?;
6437 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6438 {
6439 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6440 }
6441 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6442 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6443 }
6444 }
6445
6446 next_offset += envelope_size;
6447 _next_ordinal_to_read += 1;
6448 if next_offset >= end_offset {
6449 return Ok(());
6450 }
6451
6452 while _next_ordinal_to_read < 6 {
6454 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6455 _next_ordinal_to_read += 1;
6456 next_offset += envelope_size;
6457 }
6458
6459 let next_out_of_line = decoder.next_out_of_line();
6460 let handles_before = decoder.remaining_handles();
6461 if let Some((inlined, num_bytes, num_handles)) =
6462 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6463 {
6464 let member_inline_size =
6465 <AdvertisingProcedure as fidl::encoding::TypeMarker>::inline_size(
6466 decoder.context,
6467 );
6468 if inlined != (member_inline_size <= 4) {
6469 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6470 }
6471 let inner_offset;
6472 let mut inner_depth = depth.clone();
6473 if inlined {
6474 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6475 inner_offset = next_offset;
6476 } else {
6477 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6478 inner_depth.increment()?;
6479 }
6480 let val_ref = self
6481 .advertising_procedure
6482 .get_or_insert_with(|| fidl::new_empty!(AdvertisingProcedure, D));
6483 fidl::decode!(
6484 AdvertisingProcedure,
6485 D,
6486 val_ref,
6487 decoder,
6488 inner_offset,
6489 inner_depth
6490 )?;
6491 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6492 {
6493 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6494 }
6495 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6496 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6497 }
6498 }
6499
6500 next_offset += envelope_size;
6501 _next_ordinal_to_read += 1;
6502 if next_offset >= end_offset {
6503 return Ok(());
6504 }
6505
6506 while _next_ordinal_to_read < 7 {
6508 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6509 _next_ordinal_to_read += 1;
6510 next_offset += envelope_size;
6511 }
6512
6513 let next_out_of_line = decoder.next_out_of_line();
6514 let handles_before = decoder.remaining_handles();
6515 if let Some((inlined, num_bytes, num_handles)) =
6516 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6517 {
6518 let member_inline_size = <fidl_fuchsia_bluetooth__common::AddressType as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6519 if inlined != (member_inline_size <= 4) {
6520 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6521 }
6522 let inner_offset;
6523 let mut inner_depth = depth.clone();
6524 if inlined {
6525 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6526 inner_offset = next_offset;
6527 } else {
6528 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6529 inner_depth.increment()?;
6530 }
6531 let val_ref = self.address_type.get_or_insert_with(|| {
6532 fidl::new_empty!(fidl_fuchsia_bluetooth__common::AddressType, D)
6533 });
6534 fidl::decode!(
6535 fidl_fuchsia_bluetooth__common::AddressType,
6536 D,
6537 val_ref,
6538 decoder,
6539 inner_offset,
6540 inner_depth
6541 )?;
6542 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6543 {
6544 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6545 }
6546 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6547 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6548 }
6549 }
6550
6551 next_offset += envelope_size;
6552
6553 while next_offset < end_offset {
6555 _next_ordinal_to_read += 1;
6556 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6557 next_offset += envelope_size;
6558 }
6559
6560 Ok(())
6561 }
6562 }
6563
6564 impl BroadcastIsochronousGroupInfo {
6565 #[inline(always)]
6566 fn max_ordinal_present(&self) -> u64 {
6567 if let Some(_) = self.encryption {
6568 return 4;
6569 }
6570 if let Some(_) = self.phy {
6571 return 3;
6572 }
6573 if let Some(_) = self.max_sdu_size {
6574 return 2;
6575 }
6576 if let Some(_) = self.streams_count {
6577 return 1;
6578 }
6579 0
6580 }
6581 }
6582
6583 impl fidl::encoding::ValueTypeMarker for BroadcastIsochronousGroupInfo {
6584 type Borrowed<'a> = &'a Self;
6585 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6586 value
6587 }
6588 }
6589
6590 unsafe impl fidl::encoding::TypeMarker for BroadcastIsochronousGroupInfo {
6591 type Owned = Self;
6592
6593 #[inline(always)]
6594 fn inline_align(_context: fidl::encoding::Context) -> usize {
6595 8
6596 }
6597
6598 #[inline(always)]
6599 fn inline_size(_context: fidl::encoding::Context) -> usize {
6600 16
6601 }
6602 }
6603
6604 unsafe impl<D: fidl::encoding::ResourceDialect>
6605 fidl::encoding::Encode<BroadcastIsochronousGroupInfo, D>
6606 for &BroadcastIsochronousGroupInfo
6607 {
6608 unsafe fn encode(
6609 self,
6610 encoder: &mut fidl::encoding::Encoder<'_, D>,
6611 offset: usize,
6612 mut depth: fidl::encoding::Depth,
6613 ) -> fidl::Result<()> {
6614 encoder.debug_check_bounds::<BroadcastIsochronousGroupInfo>(offset);
6615 let max_ordinal: u64 = self.max_ordinal_present();
6617 encoder.write_num(max_ordinal, offset);
6618 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
6619 if max_ordinal == 0 {
6621 return Ok(());
6622 }
6623 depth.increment()?;
6624 let envelope_size = 8;
6625 let bytes_len = max_ordinal as usize * envelope_size;
6626 #[allow(unused_variables)]
6627 let offset = encoder.out_of_line_offset(bytes_len);
6628 let mut _prev_end_offset: usize = 0;
6629 if 1 > max_ordinal {
6630 return Ok(());
6631 }
6632
6633 let cur_offset: usize = (1 - 1) * envelope_size;
6636
6637 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6639
6640 fidl::encoding::encode_in_envelope_optional::<u8, D>(
6645 self.streams_count.as_ref().map(<u8 as fidl::encoding::ValueTypeMarker>::borrow),
6646 encoder,
6647 offset + cur_offset,
6648 depth,
6649 )?;
6650
6651 _prev_end_offset = cur_offset + envelope_size;
6652 if 2 > max_ordinal {
6653 return Ok(());
6654 }
6655
6656 let cur_offset: usize = (2 - 1) * envelope_size;
6659
6660 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6662
6663 fidl::encoding::encode_in_envelope_optional::<u16, D>(
6668 self.max_sdu_size.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
6669 encoder,
6670 offset + cur_offset,
6671 depth,
6672 )?;
6673
6674 _prev_end_offset = cur_offset + envelope_size;
6675 if 3 > max_ordinal {
6676 return Ok(());
6677 }
6678
6679 let cur_offset: usize = (3 - 1) * envelope_size;
6682
6683 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6685
6686 fidl::encoding::encode_in_envelope_optional::<PhysicalLayer, D>(
6691 self.phy.as_ref().map(<PhysicalLayer as fidl::encoding::ValueTypeMarker>::borrow),
6692 encoder,
6693 offset + cur_offset,
6694 depth,
6695 )?;
6696
6697 _prev_end_offset = cur_offset + envelope_size;
6698 if 4 > max_ordinal {
6699 return Ok(());
6700 }
6701
6702 let cur_offset: usize = (4 - 1) * envelope_size;
6705
6706 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6708
6709 fidl::encoding::encode_in_envelope_optional::<bool, D>(
6714 self.encryption.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
6715 encoder,
6716 offset + cur_offset,
6717 depth,
6718 )?;
6719
6720 _prev_end_offset = cur_offset + envelope_size;
6721
6722 Ok(())
6723 }
6724 }
6725
6726 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
6727 for BroadcastIsochronousGroupInfo
6728 {
6729 #[inline(always)]
6730 fn new_empty() -> Self {
6731 Self::default()
6732 }
6733
6734 unsafe fn decode(
6735 &mut self,
6736 decoder: &mut fidl::encoding::Decoder<'_, D>,
6737 offset: usize,
6738 mut depth: fidl::encoding::Depth,
6739 ) -> fidl::Result<()> {
6740 decoder.debug_check_bounds::<Self>(offset);
6741 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
6742 None => return Err(fidl::Error::NotNullable),
6743 Some(len) => len,
6744 };
6745 if len == 0 {
6747 return Ok(());
6748 };
6749 depth.increment()?;
6750 let envelope_size = 8;
6751 let bytes_len = len * envelope_size;
6752 let offset = decoder.out_of_line_offset(bytes_len)?;
6753 let mut _next_ordinal_to_read = 0;
6755 let mut next_offset = offset;
6756 let end_offset = offset + bytes_len;
6757 _next_ordinal_to_read += 1;
6758 if next_offset >= end_offset {
6759 return Ok(());
6760 }
6761
6762 while _next_ordinal_to_read < 1 {
6764 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6765 _next_ordinal_to_read += 1;
6766 next_offset += envelope_size;
6767 }
6768
6769 let next_out_of_line = decoder.next_out_of_line();
6770 let handles_before = decoder.remaining_handles();
6771 if let Some((inlined, num_bytes, num_handles)) =
6772 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6773 {
6774 let member_inline_size =
6775 <u8 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6776 if inlined != (member_inline_size <= 4) {
6777 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6778 }
6779 let inner_offset;
6780 let mut inner_depth = depth.clone();
6781 if inlined {
6782 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6783 inner_offset = next_offset;
6784 } else {
6785 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6786 inner_depth.increment()?;
6787 }
6788 let val_ref = self.streams_count.get_or_insert_with(|| fidl::new_empty!(u8, D));
6789 fidl::decode!(u8, D, val_ref, decoder, inner_offset, inner_depth)?;
6790 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6791 {
6792 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6793 }
6794 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6795 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6796 }
6797 }
6798
6799 next_offset += envelope_size;
6800 _next_ordinal_to_read += 1;
6801 if next_offset >= end_offset {
6802 return Ok(());
6803 }
6804
6805 while _next_ordinal_to_read < 2 {
6807 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6808 _next_ordinal_to_read += 1;
6809 next_offset += envelope_size;
6810 }
6811
6812 let next_out_of_line = decoder.next_out_of_line();
6813 let handles_before = decoder.remaining_handles();
6814 if let Some((inlined, num_bytes, num_handles)) =
6815 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6816 {
6817 let member_inline_size =
6818 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6819 if inlined != (member_inline_size <= 4) {
6820 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6821 }
6822 let inner_offset;
6823 let mut inner_depth = depth.clone();
6824 if inlined {
6825 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6826 inner_offset = next_offset;
6827 } else {
6828 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6829 inner_depth.increment()?;
6830 }
6831 let val_ref = self.max_sdu_size.get_or_insert_with(|| fidl::new_empty!(u16, D));
6832 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
6833 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6834 {
6835 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6836 }
6837 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6838 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6839 }
6840 }
6841
6842 next_offset += envelope_size;
6843 _next_ordinal_to_read += 1;
6844 if next_offset >= end_offset {
6845 return Ok(());
6846 }
6847
6848 while _next_ordinal_to_read < 3 {
6850 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6851 _next_ordinal_to_read += 1;
6852 next_offset += envelope_size;
6853 }
6854
6855 let next_out_of_line = decoder.next_out_of_line();
6856 let handles_before = decoder.remaining_handles();
6857 if let Some((inlined, num_bytes, num_handles)) =
6858 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6859 {
6860 let member_inline_size =
6861 <PhysicalLayer as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6862 if inlined != (member_inline_size <= 4) {
6863 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6864 }
6865 let inner_offset;
6866 let mut inner_depth = depth.clone();
6867 if inlined {
6868 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6869 inner_offset = next_offset;
6870 } else {
6871 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6872 inner_depth.increment()?;
6873 }
6874 let val_ref = self.phy.get_or_insert_with(|| fidl::new_empty!(PhysicalLayer, D));
6875 fidl::decode!(PhysicalLayer, D, val_ref, decoder, inner_offset, inner_depth)?;
6876 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6877 {
6878 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6879 }
6880 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6881 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6882 }
6883 }
6884
6885 next_offset += envelope_size;
6886 _next_ordinal_to_read += 1;
6887 if next_offset >= end_offset {
6888 return Ok(());
6889 }
6890
6891 while _next_ordinal_to_read < 4 {
6893 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6894 _next_ordinal_to_read += 1;
6895 next_offset += envelope_size;
6896 }
6897
6898 let next_out_of_line = decoder.next_out_of_line();
6899 let handles_before = decoder.remaining_handles();
6900 if let Some((inlined, num_bytes, num_handles)) =
6901 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6902 {
6903 let member_inline_size =
6904 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6905 if inlined != (member_inline_size <= 4) {
6906 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6907 }
6908 let inner_offset;
6909 let mut inner_depth = depth.clone();
6910 if inlined {
6911 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6912 inner_offset = next_offset;
6913 } else {
6914 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6915 inner_depth.increment()?;
6916 }
6917 let val_ref = self.encryption.get_or_insert_with(|| fidl::new_empty!(bool, D));
6918 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
6919 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6920 {
6921 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6922 }
6923 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6924 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6925 }
6926 }
6927
6928 next_offset += envelope_size;
6929
6930 while next_offset < end_offset {
6932 _next_ordinal_to_read += 1;
6933 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6934 next_offset += envelope_size;
6935 }
6936
6937 Ok(())
6938 }
6939 }
6940
6941 impl BroadcastIsochronousGroupInfoReport {
6942 #[inline(always)]
6943 fn max_ordinal_present(&self) -> u64 {
6944 if let Some(_) = self.timestamp {
6945 return 2;
6946 }
6947 if let Some(_) = self.info {
6948 return 1;
6949 }
6950 0
6951 }
6952 }
6953
6954 impl fidl::encoding::ValueTypeMarker for BroadcastIsochronousGroupInfoReport {
6955 type Borrowed<'a> = &'a Self;
6956 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6957 value
6958 }
6959 }
6960
6961 unsafe impl fidl::encoding::TypeMarker for BroadcastIsochronousGroupInfoReport {
6962 type Owned = Self;
6963
6964 #[inline(always)]
6965 fn inline_align(_context: fidl::encoding::Context) -> usize {
6966 8
6967 }
6968
6969 #[inline(always)]
6970 fn inline_size(_context: fidl::encoding::Context) -> usize {
6971 16
6972 }
6973 }
6974
6975 unsafe impl<D: fidl::encoding::ResourceDialect>
6976 fidl::encoding::Encode<BroadcastIsochronousGroupInfoReport, D>
6977 for &BroadcastIsochronousGroupInfoReport
6978 {
6979 unsafe fn encode(
6980 self,
6981 encoder: &mut fidl::encoding::Encoder<'_, D>,
6982 offset: usize,
6983 mut depth: fidl::encoding::Depth,
6984 ) -> fidl::Result<()> {
6985 encoder.debug_check_bounds::<BroadcastIsochronousGroupInfoReport>(offset);
6986 let max_ordinal: u64 = self.max_ordinal_present();
6988 encoder.write_num(max_ordinal, offset);
6989 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
6990 if max_ordinal == 0 {
6992 return Ok(());
6993 }
6994 depth.increment()?;
6995 let envelope_size = 8;
6996 let bytes_len = max_ordinal as usize * envelope_size;
6997 #[allow(unused_variables)]
6998 let offset = encoder.out_of_line_offset(bytes_len);
6999 let mut _prev_end_offset: usize = 0;
7000 if 1 > max_ordinal {
7001 return Ok(());
7002 }
7003
7004 let cur_offset: usize = (1 - 1) * envelope_size;
7007
7008 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7010
7011 fidl::encoding::encode_in_envelope_optional::<BroadcastIsochronousGroupInfo, D>(
7016 self.info.as_ref().map(
7017 <BroadcastIsochronousGroupInfo as fidl::encoding::ValueTypeMarker>::borrow,
7018 ),
7019 encoder,
7020 offset + cur_offset,
7021 depth,
7022 )?;
7023
7024 _prev_end_offset = cur_offset + envelope_size;
7025 if 2 > max_ordinal {
7026 return Ok(());
7027 }
7028
7029 let cur_offset: usize = (2 - 1) * envelope_size;
7032
7033 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7035
7036 fidl::encoding::encode_in_envelope_optional::<i64, D>(
7041 self.timestamp.as_ref().map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
7042 encoder,
7043 offset + cur_offset,
7044 depth,
7045 )?;
7046
7047 _prev_end_offset = cur_offset + envelope_size;
7048
7049 Ok(())
7050 }
7051 }
7052
7053 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
7054 for BroadcastIsochronousGroupInfoReport
7055 {
7056 #[inline(always)]
7057 fn new_empty() -> Self {
7058 Self::default()
7059 }
7060
7061 unsafe fn decode(
7062 &mut self,
7063 decoder: &mut fidl::encoding::Decoder<'_, D>,
7064 offset: usize,
7065 mut depth: fidl::encoding::Depth,
7066 ) -> fidl::Result<()> {
7067 decoder.debug_check_bounds::<Self>(offset);
7068 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
7069 None => return Err(fidl::Error::NotNullable),
7070 Some(len) => len,
7071 };
7072 if len == 0 {
7074 return Ok(());
7075 };
7076 depth.increment()?;
7077 let envelope_size = 8;
7078 let bytes_len = len * envelope_size;
7079 let offset = decoder.out_of_line_offset(bytes_len)?;
7080 let mut _next_ordinal_to_read = 0;
7082 let mut next_offset = offset;
7083 let end_offset = offset + bytes_len;
7084 _next_ordinal_to_read += 1;
7085 if next_offset >= end_offset {
7086 return Ok(());
7087 }
7088
7089 while _next_ordinal_to_read < 1 {
7091 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7092 _next_ordinal_to_read += 1;
7093 next_offset += envelope_size;
7094 }
7095
7096 let next_out_of_line = decoder.next_out_of_line();
7097 let handles_before = decoder.remaining_handles();
7098 if let Some((inlined, num_bytes, num_handles)) =
7099 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7100 {
7101 let member_inline_size =
7102 <BroadcastIsochronousGroupInfo as fidl::encoding::TypeMarker>::inline_size(
7103 decoder.context,
7104 );
7105 if inlined != (member_inline_size <= 4) {
7106 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7107 }
7108 let inner_offset;
7109 let mut inner_depth = depth.clone();
7110 if inlined {
7111 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7112 inner_offset = next_offset;
7113 } else {
7114 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7115 inner_depth.increment()?;
7116 }
7117 let val_ref = self
7118 .info
7119 .get_or_insert_with(|| fidl::new_empty!(BroadcastIsochronousGroupInfo, D));
7120 fidl::decode!(
7121 BroadcastIsochronousGroupInfo,
7122 D,
7123 val_ref,
7124 decoder,
7125 inner_offset,
7126 inner_depth
7127 )?;
7128 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7129 {
7130 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7131 }
7132 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7133 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7134 }
7135 }
7136
7137 next_offset += envelope_size;
7138 _next_ordinal_to_read += 1;
7139 if next_offset >= end_offset {
7140 return Ok(());
7141 }
7142
7143 while _next_ordinal_to_read < 2 {
7145 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7146 _next_ordinal_to_read += 1;
7147 next_offset += envelope_size;
7148 }
7149
7150 let next_out_of_line = decoder.next_out_of_line();
7151 let handles_before = decoder.remaining_handles();
7152 if let Some((inlined, num_bytes, num_handles)) =
7153 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7154 {
7155 let member_inline_size =
7156 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7157 if inlined != (member_inline_size <= 4) {
7158 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7159 }
7160 let inner_offset;
7161 let mut inner_depth = depth.clone();
7162 if inlined {
7163 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7164 inner_offset = next_offset;
7165 } else {
7166 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7167 inner_depth.increment()?;
7168 }
7169 let val_ref = self.timestamp.get_or_insert_with(|| fidl::new_empty!(i64, D));
7170 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
7171 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7172 {
7173 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7174 }
7175 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7176 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7177 }
7178 }
7179
7180 next_offset += envelope_size;
7181
7182 while next_offset < end_offset {
7184 _next_ordinal_to_read += 1;
7185 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7186 next_offset += envelope_size;
7187 }
7188
7189 Ok(())
7190 }
7191 }
7192
7193 impl CentralCreateConnectedIsochronousGroupResponse {
7194 #[inline(always)]
7195 fn max_ordinal_present(&self) -> u64 {
7196 if let Some(_) = self.cig_id {
7197 return 1;
7198 }
7199 0
7200 }
7201 }
7202
7203 impl fidl::encoding::ValueTypeMarker for CentralCreateConnectedIsochronousGroupResponse {
7204 type Borrowed<'a> = &'a Self;
7205 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7206 value
7207 }
7208 }
7209
7210 unsafe impl fidl::encoding::TypeMarker for CentralCreateConnectedIsochronousGroupResponse {
7211 type Owned = Self;
7212
7213 #[inline(always)]
7214 fn inline_align(_context: fidl::encoding::Context) -> usize {
7215 8
7216 }
7217
7218 #[inline(always)]
7219 fn inline_size(_context: fidl::encoding::Context) -> usize {
7220 16
7221 }
7222 }
7223
7224 unsafe impl<D: fidl::encoding::ResourceDialect>
7225 fidl::encoding::Encode<CentralCreateConnectedIsochronousGroupResponse, D>
7226 for &CentralCreateConnectedIsochronousGroupResponse
7227 {
7228 unsafe fn encode(
7229 self,
7230 encoder: &mut fidl::encoding::Encoder<'_, D>,
7231 offset: usize,
7232 mut depth: fidl::encoding::Depth,
7233 ) -> fidl::Result<()> {
7234 encoder.debug_check_bounds::<CentralCreateConnectedIsochronousGroupResponse>(offset);
7235 let max_ordinal: u64 = self.max_ordinal_present();
7237 encoder.write_num(max_ordinal, offset);
7238 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
7239 if max_ordinal == 0 {
7241 return Ok(());
7242 }
7243 depth.increment()?;
7244 let envelope_size = 8;
7245 let bytes_len = max_ordinal as usize * envelope_size;
7246 #[allow(unused_variables)]
7247 let offset = encoder.out_of_line_offset(bytes_len);
7248 let mut _prev_end_offset: usize = 0;
7249 if 1 > max_ordinal {
7250 return Ok(());
7251 }
7252
7253 let cur_offset: usize = (1 - 1) * envelope_size;
7256
7257 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7259
7260 fidl::encoding::encode_in_envelope_optional::<u8, D>(
7265 self.cig_id.as_ref().map(<u8 as fidl::encoding::ValueTypeMarker>::borrow),
7266 encoder,
7267 offset + cur_offset,
7268 depth,
7269 )?;
7270
7271 _prev_end_offset = cur_offset + envelope_size;
7272
7273 Ok(())
7274 }
7275 }
7276
7277 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
7278 for CentralCreateConnectedIsochronousGroupResponse
7279 {
7280 #[inline(always)]
7281 fn new_empty() -> Self {
7282 Self::default()
7283 }
7284
7285 unsafe fn decode(
7286 &mut self,
7287 decoder: &mut fidl::encoding::Decoder<'_, D>,
7288 offset: usize,
7289 mut depth: fidl::encoding::Depth,
7290 ) -> fidl::Result<()> {
7291 decoder.debug_check_bounds::<Self>(offset);
7292 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
7293 None => return Err(fidl::Error::NotNullable),
7294 Some(len) => len,
7295 };
7296 if len == 0 {
7298 return Ok(());
7299 };
7300 depth.increment()?;
7301 let envelope_size = 8;
7302 let bytes_len = len * envelope_size;
7303 let offset = decoder.out_of_line_offset(bytes_len)?;
7304 let mut _next_ordinal_to_read = 0;
7306 let mut next_offset = offset;
7307 let end_offset = offset + bytes_len;
7308 _next_ordinal_to_read += 1;
7309 if next_offset >= end_offset {
7310 return Ok(());
7311 }
7312
7313 while _next_ordinal_to_read < 1 {
7315 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7316 _next_ordinal_to_read += 1;
7317 next_offset += envelope_size;
7318 }
7319
7320 let next_out_of_line = decoder.next_out_of_line();
7321 let handles_before = decoder.remaining_handles();
7322 if let Some((inlined, num_bytes, num_handles)) =
7323 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7324 {
7325 let member_inline_size =
7326 <u8 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7327 if inlined != (member_inline_size <= 4) {
7328 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7329 }
7330 let inner_offset;
7331 let mut inner_depth = depth.clone();
7332 if inlined {
7333 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7334 inner_offset = next_offset;
7335 } else {
7336 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7337 inner_depth.increment()?;
7338 }
7339 let val_ref = self.cig_id.get_or_insert_with(|| fidl::new_empty!(u8, D));
7340 fidl::decode!(u8, D, val_ref, decoder, inner_offset, inner_depth)?;
7341 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7342 {
7343 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7344 }
7345 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7346 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7347 }
7348 }
7349
7350 next_offset += envelope_size;
7351
7352 while next_offset < end_offset {
7354 _next_ordinal_to_read += 1;
7355 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7356 next_offset += envelope_size;
7357 }
7358
7359 Ok(())
7360 }
7361 }
7362
7363 impl ChannelListenerRegistryListenL2capResponse {
7364 #[inline(always)]
7365 fn max_ordinal_present(&self) -> u64 {
7366 if let Some(_) = self.psm {
7367 return 1;
7368 }
7369 0
7370 }
7371 }
7372
7373 impl fidl::encoding::ValueTypeMarker for ChannelListenerRegistryListenL2capResponse {
7374 type Borrowed<'a> = &'a Self;
7375 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7376 value
7377 }
7378 }
7379
7380 unsafe impl fidl::encoding::TypeMarker for ChannelListenerRegistryListenL2capResponse {
7381 type Owned = Self;
7382
7383 #[inline(always)]
7384 fn inline_align(_context: fidl::encoding::Context) -> usize {
7385 8
7386 }
7387
7388 #[inline(always)]
7389 fn inline_size(_context: fidl::encoding::Context) -> usize {
7390 16
7391 }
7392 }
7393
7394 unsafe impl<D: fidl::encoding::ResourceDialect>
7395 fidl::encoding::Encode<ChannelListenerRegistryListenL2capResponse, D>
7396 for &ChannelListenerRegistryListenL2capResponse
7397 {
7398 unsafe fn encode(
7399 self,
7400 encoder: &mut fidl::encoding::Encoder<'_, D>,
7401 offset: usize,
7402 mut depth: fidl::encoding::Depth,
7403 ) -> fidl::Result<()> {
7404 encoder.debug_check_bounds::<ChannelListenerRegistryListenL2capResponse>(offset);
7405 let max_ordinal: u64 = self.max_ordinal_present();
7407 encoder.write_num(max_ordinal, offset);
7408 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
7409 if max_ordinal == 0 {
7411 return Ok(());
7412 }
7413 depth.increment()?;
7414 let envelope_size = 8;
7415 let bytes_len = max_ordinal as usize * envelope_size;
7416 #[allow(unused_variables)]
7417 let offset = encoder.out_of_line_offset(bytes_len);
7418 let mut _prev_end_offset: usize = 0;
7419 if 1 > max_ordinal {
7420 return Ok(());
7421 }
7422
7423 let cur_offset: usize = (1 - 1) * envelope_size;
7426
7427 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7429
7430 fidl::encoding::encode_in_envelope_optional::<u16, D>(
7435 self.psm.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
7436 encoder,
7437 offset + cur_offset,
7438 depth,
7439 )?;
7440
7441 _prev_end_offset = cur_offset + envelope_size;
7442
7443 Ok(())
7444 }
7445 }
7446
7447 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
7448 for ChannelListenerRegistryListenL2capResponse
7449 {
7450 #[inline(always)]
7451 fn new_empty() -> Self {
7452 Self::default()
7453 }
7454
7455 unsafe fn decode(
7456 &mut self,
7457 decoder: &mut fidl::encoding::Decoder<'_, D>,
7458 offset: usize,
7459 mut depth: fidl::encoding::Depth,
7460 ) -> fidl::Result<()> {
7461 decoder.debug_check_bounds::<Self>(offset);
7462 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
7463 None => return Err(fidl::Error::NotNullable),
7464 Some(len) => len,
7465 };
7466 if len == 0 {
7468 return Ok(());
7469 };
7470 depth.increment()?;
7471 let envelope_size = 8;
7472 let bytes_len = len * envelope_size;
7473 let offset = decoder.out_of_line_offset(bytes_len)?;
7474 let mut _next_ordinal_to_read = 0;
7476 let mut next_offset = offset;
7477 let end_offset = offset + bytes_len;
7478 _next_ordinal_to_read += 1;
7479 if next_offset >= end_offset {
7480 return Ok(());
7481 }
7482
7483 while _next_ordinal_to_read < 1 {
7485 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7486 _next_ordinal_to_read += 1;
7487 next_offset += envelope_size;
7488 }
7489
7490 let next_out_of_line = decoder.next_out_of_line();
7491 let handles_before = decoder.remaining_handles();
7492 if let Some((inlined, num_bytes, num_handles)) =
7493 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7494 {
7495 let member_inline_size =
7496 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7497 if inlined != (member_inline_size <= 4) {
7498 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7499 }
7500 let inner_offset;
7501 let mut inner_depth = depth.clone();
7502 if inlined {
7503 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7504 inner_offset = next_offset;
7505 } else {
7506 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7507 inner_depth.increment()?;
7508 }
7509 let val_ref = self.psm.get_or_insert_with(|| fidl::new_empty!(u16, D));
7510 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
7511 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7512 {
7513 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7514 }
7515 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7516 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7517 }
7518 }
7519
7520 next_offset += envelope_size;
7521
7522 while next_offset < end_offset {
7524 _next_ordinal_to_read += 1;
7525 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7526 next_offset += envelope_size;
7527 }
7528
7529 Ok(())
7530 }
7531 }
7532
7533 impl ChannelOffloadExtStartOffloadRequest {
7534 #[inline(always)]
7535 fn max_ordinal_present(&self) -> u64 {
7536 0
7537 }
7538 }
7539
7540 impl fidl::encoding::ValueTypeMarker for ChannelOffloadExtStartOffloadRequest {
7541 type Borrowed<'a> = &'a Self;
7542 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7543 value
7544 }
7545 }
7546
7547 unsafe impl fidl::encoding::TypeMarker for ChannelOffloadExtStartOffloadRequest {
7548 type Owned = Self;
7549
7550 #[inline(always)]
7551 fn inline_align(_context: fidl::encoding::Context) -> usize {
7552 8
7553 }
7554
7555 #[inline(always)]
7556 fn inline_size(_context: fidl::encoding::Context) -> usize {
7557 16
7558 }
7559 }
7560
7561 unsafe impl<D: fidl::encoding::ResourceDialect>
7562 fidl::encoding::Encode<ChannelOffloadExtStartOffloadRequest, D>
7563 for &ChannelOffloadExtStartOffloadRequest
7564 {
7565 unsafe fn encode(
7566 self,
7567 encoder: &mut fidl::encoding::Encoder<'_, D>,
7568 offset: usize,
7569 mut depth: fidl::encoding::Depth,
7570 ) -> fidl::Result<()> {
7571 encoder.debug_check_bounds::<ChannelOffloadExtStartOffloadRequest>(offset);
7572 let max_ordinal: u64 = self.max_ordinal_present();
7574 encoder.write_num(max_ordinal, offset);
7575 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
7576 if max_ordinal == 0 {
7578 return Ok(());
7579 }
7580 depth.increment()?;
7581 let envelope_size = 8;
7582 let bytes_len = max_ordinal as usize * envelope_size;
7583 #[allow(unused_variables)]
7584 let offset = encoder.out_of_line_offset(bytes_len);
7585 let mut _prev_end_offset: usize = 0;
7586
7587 Ok(())
7588 }
7589 }
7590
7591 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
7592 for ChannelOffloadExtStartOffloadRequest
7593 {
7594 #[inline(always)]
7595 fn new_empty() -> Self {
7596 Self::default()
7597 }
7598
7599 unsafe fn decode(
7600 &mut self,
7601 decoder: &mut fidl::encoding::Decoder<'_, D>,
7602 offset: usize,
7603 mut depth: fidl::encoding::Depth,
7604 ) -> fidl::Result<()> {
7605 decoder.debug_check_bounds::<Self>(offset);
7606 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
7607 None => return Err(fidl::Error::NotNullable),
7608 Some(len) => len,
7609 };
7610 if len == 0 {
7612 return Ok(());
7613 };
7614 depth.increment()?;
7615 let envelope_size = 8;
7616 let bytes_len = len * envelope_size;
7617 let offset = decoder.out_of_line_offset(bytes_len)?;
7618 let mut _next_ordinal_to_read = 0;
7620 let mut next_offset = offset;
7621 let end_offset = offset + bytes_len;
7622
7623 while next_offset < end_offset {
7625 _next_ordinal_to_read += 1;
7626 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7627 next_offset += envelope_size;
7628 }
7629
7630 Ok(())
7631 }
7632 }
7633
7634 impl ChannelOffloadExtStartOffloadResponse {
7635 #[inline(always)]
7636 fn max_ordinal_present(&self) -> u64 {
7637 if let Some(_) = self.offload_parameters {
7638 return 1;
7639 }
7640 0
7641 }
7642 }
7643
7644 impl fidl::encoding::ValueTypeMarker for ChannelOffloadExtStartOffloadResponse {
7645 type Borrowed<'a> = &'a Self;
7646 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7647 value
7648 }
7649 }
7650
7651 unsafe impl fidl::encoding::TypeMarker for ChannelOffloadExtStartOffloadResponse {
7652 type Owned = Self;
7653
7654 #[inline(always)]
7655 fn inline_align(_context: fidl::encoding::Context) -> usize {
7656 8
7657 }
7658
7659 #[inline(always)]
7660 fn inline_size(_context: fidl::encoding::Context) -> usize {
7661 16
7662 }
7663 }
7664
7665 unsafe impl<D: fidl::encoding::ResourceDialect>
7666 fidl::encoding::Encode<ChannelOffloadExtStartOffloadResponse, D>
7667 for &ChannelOffloadExtStartOffloadResponse
7668 {
7669 unsafe fn encode(
7670 self,
7671 encoder: &mut fidl::encoding::Encoder<'_, D>,
7672 offset: usize,
7673 mut depth: fidl::encoding::Depth,
7674 ) -> fidl::Result<()> {
7675 encoder.debug_check_bounds::<ChannelOffloadExtStartOffloadResponse>(offset);
7676 let max_ordinal: u64 = self.max_ordinal_present();
7678 encoder.write_num(max_ordinal, offset);
7679 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
7680 if max_ordinal == 0 {
7682 return Ok(());
7683 }
7684 depth.increment()?;
7685 let envelope_size = 8;
7686 let bytes_len = max_ordinal as usize * envelope_size;
7687 #[allow(unused_variables)]
7688 let offset = encoder.out_of_line_offset(bytes_len);
7689 let mut _prev_end_offset: usize = 0;
7690 if 1 > max_ordinal {
7691 return Ok(());
7692 }
7693
7694 let cur_offset: usize = (1 - 1) * envelope_size;
7697
7698 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7700
7701 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_bluetooth__common::L2capChannelOffloadParameters, D>(
7706 self.offload_parameters.as_ref().map(<fidl_fuchsia_bluetooth__common::L2capChannelOffloadParameters as fidl::encoding::ValueTypeMarker>::borrow),
7707 encoder, offset + cur_offset, depth
7708 )?;
7709
7710 _prev_end_offset = cur_offset + envelope_size;
7711
7712 Ok(())
7713 }
7714 }
7715
7716 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
7717 for ChannelOffloadExtStartOffloadResponse
7718 {
7719 #[inline(always)]
7720 fn new_empty() -> Self {
7721 Self::default()
7722 }
7723
7724 unsafe fn decode(
7725 &mut self,
7726 decoder: &mut fidl::encoding::Decoder<'_, D>,
7727 offset: usize,
7728 mut depth: fidl::encoding::Depth,
7729 ) -> fidl::Result<()> {
7730 decoder.debug_check_bounds::<Self>(offset);
7731 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
7732 None => return Err(fidl::Error::NotNullable),
7733 Some(len) => len,
7734 };
7735 if len == 0 {
7737 return Ok(());
7738 };
7739 depth.increment()?;
7740 let envelope_size = 8;
7741 let bytes_len = len * envelope_size;
7742 let offset = decoder.out_of_line_offset(bytes_len)?;
7743 let mut _next_ordinal_to_read = 0;
7745 let mut next_offset = offset;
7746 let end_offset = offset + bytes_len;
7747 _next_ordinal_to_read += 1;
7748 if next_offset >= end_offset {
7749 return Ok(());
7750 }
7751
7752 while _next_ordinal_to_read < 1 {
7754 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7755 _next_ordinal_to_read += 1;
7756 next_offset += envelope_size;
7757 }
7758
7759 let next_out_of_line = decoder.next_out_of_line();
7760 let handles_before = decoder.remaining_handles();
7761 if let Some((inlined, num_bytes, num_handles)) =
7762 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7763 {
7764 let member_inline_size = <fidl_fuchsia_bluetooth__common::L2capChannelOffloadParameters as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7765 if inlined != (member_inline_size <= 4) {
7766 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7767 }
7768 let inner_offset;
7769 let mut inner_depth = depth.clone();
7770 if inlined {
7771 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7772 inner_offset = next_offset;
7773 } else {
7774 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7775 inner_depth.increment()?;
7776 }
7777 let val_ref = self.offload_parameters.get_or_insert_with(|| {
7778 fidl::new_empty!(
7779 fidl_fuchsia_bluetooth__common::L2capChannelOffloadParameters,
7780 D
7781 )
7782 });
7783 fidl::decode!(
7784 fidl_fuchsia_bluetooth__common::L2capChannelOffloadParameters,
7785 D,
7786 val_ref,
7787 decoder,
7788 inner_offset,
7789 inner_depth
7790 )?;
7791 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7792 {
7793 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7794 }
7795 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7796 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7797 }
7798 }
7799
7800 next_offset += envelope_size;
7801
7802 while next_offset < end_offset {
7804 _next_ordinal_to_read += 1;
7805 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7806 next_offset += envelope_size;
7807 }
7808
7809 Ok(())
7810 }
7811 }
7812
7813 impl CigParameters {
7814 #[inline(always)]
7815 fn max_ordinal_present(&self) -> u64 {
7816 if let Some(_) = self.expected_peers {
7817 return 7;
7818 }
7819 if let Some(_) = self.max_transport_latency_p_to_c {
7820 return 6;
7821 }
7822 if let Some(_) = self.max_transport_latency_c_to_p {
7823 return 5;
7824 }
7825 if let Some(_) = self.framing {
7826 return 4;
7827 }
7828 if let Some(_) = self.packing {
7829 return 3;
7830 }
7831 if let Some(_) = self.sdu_interval_p_to_c {
7832 return 2;
7833 }
7834 if let Some(_) = self.sdu_interval_c_to_p {
7835 return 1;
7836 }
7837 0
7838 }
7839 }
7840
7841 impl fidl::encoding::ValueTypeMarker for CigParameters {
7842 type Borrowed<'a> = &'a Self;
7843 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7844 value
7845 }
7846 }
7847
7848 unsafe impl fidl::encoding::TypeMarker for CigParameters {
7849 type Owned = Self;
7850
7851 #[inline(always)]
7852 fn inline_align(_context: fidl::encoding::Context) -> usize {
7853 8
7854 }
7855
7856 #[inline(always)]
7857 fn inline_size(_context: fidl::encoding::Context) -> usize {
7858 16
7859 }
7860 }
7861
7862 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<CigParameters, D>
7863 for &CigParameters
7864 {
7865 unsafe fn encode(
7866 self,
7867 encoder: &mut fidl::encoding::Encoder<'_, D>,
7868 offset: usize,
7869 mut depth: fidl::encoding::Depth,
7870 ) -> fidl::Result<()> {
7871 encoder.debug_check_bounds::<CigParameters>(offset);
7872 let max_ordinal: u64 = self.max_ordinal_present();
7874 encoder.write_num(max_ordinal, offset);
7875 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
7876 if max_ordinal == 0 {
7878 return Ok(());
7879 }
7880 depth.increment()?;
7881 let envelope_size = 8;
7882 let bytes_len = max_ordinal as usize * envelope_size;
7883 #[allow(unused_variables)]
7884 let offset = encoder.out_of_line_offset(bytes_len);
7885 let mut _prev_end_offset: usize = 0;
7886 if 1 > max_ordinal {
7887 return Ok(());
7888 }
7889
7890 let cur_offset: usize = (1 - 1) * envelope_size;
7893
7894 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7896
7897 fidl::encoding::encode_in_envelope_optional::<u32, D>(
7902 self.sdu_interval_c_to_p
7903 .as_ref()
7904 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
7905 encoder,
7906 offset + cur_offset,
7907 depth,
7908 )?;
7909
7910 _prev_end_offset = cur_offset + envelope_size;
7911 if 2 > max_ordinal {
7912 return Ok(());
7913 }
7914
7915 let cur_offset: usize = (2 - 1) * envelope_size;
7918
7919 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7921
7922 fidl::encoding::encode_in_envelope_optional::<u32, D>(
7927 self.sdu_interval_p_to_c
7928 .as_ref()
7929 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
7930 encoder,
7931 offset + cur_offset,
7932 depth,
7933 )?;
7934
7935 _prev_end_offset = cur_offset + envelope_size;
7936 if 3 > max_ordinal {
7937 return Ok(());
7938 }
7939
7940 let cur_offset: usize = (3 - 1) * envelope_size;
7943
7944 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7946
7947 fidl::encoding::encode_in_envelope_optional::<CigPacking, D>(
7952 self.packing.as_ref().map(<CigPacking as fidl::encoding::ValueTypeMarker>::borrow),
7953 encoder,
7954 offset + cur_offset,
7955 depth,
7956 )?;
7957
7958 _prev_end_offset = cur_offset + envelope_size;
7959 if 4 > max_ordinal {
7960 return Ok(());
7961 }
7962
7963 let cur_offset: usize = (4 - 1) * envelope_size;
7966
7967 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7969
7970 fidl::encoding::encode_in_envelope_optional::<CigFramingOptions, D>(
7975 self.framing
7976 .as_ref()
7977 .map(<CigFramingOptions as fidl::encoding::ValueTypeMarker>::borrow),
7978 encoder,
7979 offset + cur_offset,
7980 depth,
7981 )?;
7982
7983 _prev_end_offset = cur_offset + envelope_size;
7984 if 5 > max_ordinal {
7985 return Ok(());
7986 }
7987
7988 let cur_offset: usize = (5 - 1) * envelope_size;
7991
7992 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7994
7995 fidl::encoding::encode_in_envelope_optional::<u16, D>(
8000 self.max_transport_latency_c_to_p
8001 .as_ref()
8002 .map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
8003 encoder,
8004 offset + cur_offset,
8005 depth,
8006 )?;
8007
8008 _prev_end_offset = cur_offset + envelope_size;
8009 if 6 > max_ordinal {
8010 return Ok(());
8011 }
8012
8013 let cur_offset: usize = (6 - 1) * envelope_size;
8016
8017 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8019
8020 fidl::encoding::encode_in_envelope_optional::<u16, D>(
8025 self.max_transport_latency_p_to_c
8026 .as_ref()
8027 .map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
8028 encoder,
8029 offset + cur_offset,
8030 depth,
8031 )?;
8032
8033 _prev_end_offset = cur_offset + envelope_size;
8034 if 7 > max_ordinal {
8035 return Ok(());
8036 }
8037
8038 let cur_offset: usize = (7 - 1) * envelope_size;
8041
8042 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8044
8045 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<fidl_fuchsia_bluetooth__common::PeerId>, D>(
8050 self.expected_peers.as_ref().map(<fidl::encoding::UnboundedVector<fidl_fuchsia_bluetooth__common::PeerId> as fidl::encoding::ValueTypeMarker>::borrow),
8051 encoder, offset + cur_offset, depth
8052 )?;
8053
8054 _prev_end_offset = cur_offset + envelope_size;
8055
8056 Ok(())
8057 }
8058 }
8059
8060 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for CigParameters {
8061 #[inline(always)]
8062 fn new_empty() -> Self {
8063 Self::default()
8064 }
8065
8066 unsafe fn decode(
8067 &mut self,
8068 decoder: &mut fidl::encoding::Decoder<'_, D>,
8069 offset: usize,
8070 mut depth: fidl::encoding::Depth,
8071 ) -> fidl::Result<()> {
8072 decoder.debug_check_bounds::<Self>(offset);
8073 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
8074 None => return Err(fidl::Error::NotNullable),
8075 Some(len) => len,
8076 };
8077 if len == 0 {
8079 return Ok(());
8080 };
8081 depth.increment()?;
8082 let envelope_size = 8;
8083 let bytes_len = len * envelope_size;
8084 let offset = decoder.out_of_line_offset(bytes_len)?;
8085 let mut _next_ordinal_to_read = 0;
8087 let mut next_offset = offset;
8088 let end_offset = offset + bytes_len;
8089 _next_ordinal_to_read += 1;
8090 if next_offset >= end_offset {
8091 return Ok(());
8092 }
8093
8094 while _next_ordinal_to_read < 1 {
8096 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8097 _next_ordinal_to_read += 1;
8098 next_offset += envelope_size;
8099 }
8100
8101 let next_out_of_line = decoder.next_out_of_line();
8102 let handles_before = decoder.remaining_handles();
8103 if let Some((inlined, num_bytes, num_handles)) =
8104 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8105 {
8106 let member_inline_size =
8107 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8108 if inlined != (member_inline_size <= 4) {
8109 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8110 }
8111 let inner_offset;
8112 let mut inner_depth = depth.clone();
8113 if inlined {
8114 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8115 inner_offset = next_offset;
8116 } else {
8117 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8118 inner_depth.increment()?;
8119 }
8120 let val_ref =
8121 self.sdu_interval_c_to_p.get_or_insert_with(|| fidl::new_empty!(u32, D));
8122 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
8123 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8124 {
8125 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8126 }
8127 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8128 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8129 }
8130 }
8131
8132 next_offset += envelope_size;
8133 _next_ordinal_to_read += 1;
8134 if next_offset >= end_offset {
8135 return Ok(());
8136 }
8137
8138 while _next_ordinal_to_read < 2 {
8140 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8141 _next_ordinal_to_read += 1;
8142 next_offset += envelope_size;
8143 }
8144
8145 let next_out_of_line = decoder.next_out_of_line();
8146 let handles_before = decoder.remaining_handles();
8147 if let Some((inlined, num_bytes, num_handles)) =
8148 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8149 {
8150 let member_inline_size =
8151 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8152 if inlined != (member_inline_size <= 4) {
8153 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8154 }
8155 let inner_offset;
8156 let mut inner_depth = depth.clone();
8157 if inlined {
8158 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8159 inner_offset = next_offset;
8160 } else {
8161 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8162 inner_depth.increment()?;
8163 }
8164 let val_ref =
8165 self.sdu_interval_p_to_c.get_or_insert_with(|| fidl::new_empty!(u32, D));
8166 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
8167 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8168 {
8169 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8170 }
8171 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8172 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8173 }
8174 }
8175
8176 next_offset += envelope_size;
8177 _next_ordinal_to_read += 1;
8178 if next_offset >= end_offset {
8179 return Ok(());
8180 }
8181
8182 while _next_ordinal_to_read < 3 {
8184 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8185 _next_ordinal_to_read += 1;
8186 next_offset += envelope_size;
8187 }
8188
8189 let next_out_of_line = decoder.next_out_of_line();
8190 let handles_before = decoder.remaining_handles();
8191 if let Some((inlined, num_bytes, num_handles)) =
8192 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8193 {
8194 let member_inline_size =
8195 <CigPacking as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8196 if inlined != (member_inline_size <= 4) {
8197 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8198 }
8199 let inner_offset;
8200 let mut inner_depth = depth.clone();
8201 if inlined {
8202 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8203 inner_offset = next_offset;
8204 } else {
8205 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8206 inner_depth.increment()?;
8207 }
8208 let val_ref = self.packing.get_or_insert_with(|| fidl::new_empty!(CigPacking, D));
8209 fidl::decode!(CigPacking, D, val_ref, decoder, inner_offset, inner_depth)?;
8210 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8211 {
8212 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8213 }
8214 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8215 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8216 }
8217 }
8218
8219 next_offset += envelope_size;
8220 _next_ordinal_to_read += 1;
8221 if next_offset >= end_offset {
8222 return Ok(());
8223 }
8224
8225 while _next_ordinal_to_read < 4 {
8227 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8228 _next_ordinal_to_read += 1;
8229 next_offset += envelope_size;
8230 }
8231
8232 let next_out_of_line = decoder.next_out_of_line();
8233 let handles_before = decoder.remaining_handles();
8234 if let Some((inlined, num_bytes, num_handles)) =
8235 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8236 {
8237 let member_inline_size =
8238 <CigFramingOptions as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8239 if inlined != (member_inline_size <= 4) {
8240 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8241 }
8242 let inner_offset;
8243 let mut inner_depth = depth.clone();
8244 if inlined {
8245 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8246 inner_offset = next_offset;
8247 } else {
8248 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8249 inner_depth.increment()?;
8250 }
8251 let val_ref =
8252 self.framing.get_or_insert_with(|| fidl::new_empty!(CigFramingOptions, D));
8253 fidl::decode!(CigFramingOptions, D, val_ref, decoder, inner_offset, inner_depth)?;
8254 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8255 {
8256 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8257 }
8258 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8259 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8260 }
8261 }
8262
8263 next_offset += envelope_size;
8264 _next_ordinal_to_read += 1;
8265 if next_offset >= end_offset {
8266 return Ok(());
8267 }
8268
8269 while _next_ordinal_to_read < 5 {
8271 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8272 _next_ordinal_to_read += 1;
8273 next_offset += envelope_size;
8274 }
8275
8276 let next_out_of_line = decoder.next_out_of_line();
8277 let handles_before = decoder.remaining_handles();
8278 if let Some((inlined, num_bytes, num_handles)) =
8279 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8280 {
8281 let member_inline_size =
8282 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8283 if inlined != (member_inline_size <= 4) {
8284 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8285 }
8286 let inner_offset;
8287 let mut inner_depth = depth.clone();
8288 if inlined {
8289 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8290 inner_offset = next_offset;
8291 } else {
8292 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8293 inner_depth.increment()?;
8294 }
8295 let val_ref = self
8296 .max_transport_latency_c_to_p
8297 .get_or_insert_with(|| fidl::new_empty!(u16, D));
8298 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
8299 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8300 {
8301 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8302 }
8303 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8304 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8305 }
8306 }
8307
8308 next_offset += envelope_size;
8309 _next_ordinal_to_read += 1;
8310 if next_offset >= end_offset {
8311 return Ok(());
8312 }
8313
8314 while _next_ordinal_to_read < 6 {
8316 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8317 _next_ordinal_to_read += 1;
8318 next_offset += envelope_size;
8319 }
8320
8321 let next_out_of_line = decoder.next_out_of_line();
8322 let handles_before = decoder.remaining_handles();
8323 if let Some((inlined, num_bytes, num_handles)) =
8324 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8325 {
8326 let member_inline_size =
8327 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8328 if inlined != (member_inline_size <= 4) {
8329 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8330 }
8331 let inner_offset;
8332 let mut inner_depth = depth.clone();
8333 if inlined {
8334 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8335 inner_offset = next_offset;
8336 } else {
8337 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8338 inner_depth.increment()?;
8339 }
8340 let val_ref = self
8341 .max_transport_latency_p_to_c
8342 .get_or_insert_with(|| fidl::new_empty!(u16, D));
8343 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
8344 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8345 {
8346 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8347 }
8348 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8349 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8350 }
8351 }
8352
8353 next_offset += envelope_size;
8354 _next_ordinal_to_read += 1;
8355 if next_offset >= end_offset {
8356 return Ok(());
8357 }
8358
8359 while _next_ordinal_to_read < 7 {
8361 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8362 _next_ordinal_to_read += 1;
8363 next_offset += envelope_size;
8364 }
8365
8366 let next_out_of_line = decoder.next_out_of_line();
8367 let handles_before = decoder.remaining_handles();
8368 if let Some((inlined, num_bytes, num_handles)) =
8369 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8370 {
8371 let member_inline_size = <fidl::encoding::UnboundedVector<
8372 fidl_fuchsia_bluetooth__common::PeerId,
8373 > as fidl::encoding::TypeMarker>::inline_size(
8374 decoder.context
8375 );
8376 if inlined != (member_inline_size <= 4) {
8377 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8378 }
8379 let inner_offset;
8380 let mut inner_depth = depth.clone();
8381 if inlined {
8382 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8383 inner_offset = next_offset;
8384 } else {
8385 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8386 inner_depth.increment()?;
8387 }
8388 let val_ref = self.expected_peers.get_or_insert_with(|| {
8389 fidl::new_empty!(
8390 fidl::encoding::UnboundedVector<fidl_fuchsia_bluetooth__common::PeerId>,
8391 D
8392 )
8393 });
8394 fidl::decode!(
8395 fidl::encoding::UnboundedVector<fidl_fuchsia_bluetooth__common::PeerId>,
8396 D,
8397 val_ref,
8398 decoder,
8399 inner_offset,
8400 inner_depth
8401 )?;
8402 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8403 {
8404 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8405 }
8406 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8407 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8408 }
8409 }
8410
8411 next_offset += envelope_size;
8412
8413 while next_offset < end_offset {
8415 _next_ordinal_to_read += 1;
8416 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8417 next_offset += envelope_size;
8418 }
8419
8420 Ok(())
8421 }
8422 }
8423
8424 impl CisEstablishedParameters {
8425 #[inline(always)]
8426 fn max_ordinal_present(&self) -> u64 {
8427 if let Some(_) = self.peripheral_to_central_params {
8428 return 6;
8429 }
8430 if let Some(_) = self.central_to_peripheral_params {
8431 return 5;
8432 }
8433 if let Some(_) = self.iso_interval {
8434 return 4;
8435 }
8436 if let Some(_) = self.max_subevents {
8437 return 3;
8438 }
8439 if let Some(_) = self.cis_sync_delay {
8440 return 2;
8441 }
8442 if let Some(_) = self.cig_sync_delay {
8443 return 1;
8444 }
8445 0
8446 }
8447 }
8448
8449 impl fidl::encoding::ValueTypeMarker for CisEstablishedParameters {
8450 type Borrowed<'a> = &'a Self;
8451 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
8452 value
8453 }
8454 }
8455
8456 unsafe impl fidl::encoding::TypeMarker for CisEstablishedParameters {
8457 type Owned = Self;
8458
8459 #[inline(always)]
8460 fn inline_align(_context: fidl::encoding::Context) -> usize {
8461 8
8462 }
8463
8464 #[inline(always)]
8465 fn inline_size(_context: fidl::encoding::Context) -> usize {
8466 16
8467 }
8468 }
8469
8470 unsafe impl<D: fidl::encoding::ResourceDialect>
8471 fidl::encoding::Encode<CisEstablishedParameters, D> for &CisEstablishedParameters
8472 {
8473 unsafe fn encode(
8474 self,
8475 encoder: &mut fidl::encoding::Encoder<'_, D>,
8476 offset: usize,
8477 mut depth: fidl::encoding::Depth,
8478 ) -> fidl::Result<()> {
8479 encoder.debug_check_bounds::<CisEstablishedParameters>(offset);
8480 let max_ordinal: u64 = self.max_ordinal_present();
8482 encoder.write_num(max_ordinal, offset);
8483 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
8484 if max_ordinal == 0 {
8486 return Ok(());
8487 }
8488 depth.increment()?;
8489 let envelope_size = 8;
8490 let bytes_len = max_ordinal as usize * envelope_size;
8491 #[allow(unused_variables)]
8492 let offset = encoder.out_of_line_offset(bytes_len);
8493 let mut _prev_end_offset: usize = 0;
8494 if 1 > max_ordinal {
8495 return Ok(());
8496 }
8497
8498 let cur_offset: usize = (1 - 1) * envelope_size;
8501
8502 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8504
8505 fidl::encoding::encode_in_envelope_optional::<i64, D>(
8510 self.cig_sync_delay.as_ref().map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
8511 encoder,
8512 offset + cur_offset,
8513 depth,
8514 )?;
8515
8516 _prev_end_offset = cur_offset + envelope_size;
8517 if 2 > max_ordinal {
8518 return Ok(());
8519 }
8520
8521 let cur_offset: usize = (2 - 1) * envelope_size;
8524
8525 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8527
8528 fidl::encoding::encode_in_envelope_optional::<i64, D>(
8533 self.cis_sync_delay.as_ref().map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
8534 encoder,
8535 offset + cur_offset,
8536 depth,
8537 )?;
8538
8539 _prev_end_offset = cur_offset + envelope_size;
8540 if 3 > max_ordinal {
8541 return Ok(());
8542 }
8543
8544 let cur_offset: usize = (3 - 1) * envelope_size;
8547
8548 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8550
8551 fidl::encoding::encode_in_envelope_optional::<u8, D>(
8556 self.max_subevents.as_ref().map(<u8 as fidl::encoding::ValueTypeMarker>::borrow),
8557 encoder,
8558 offset + cur_offset,
8559 depth,
8560 )?;
8561
8562 _prev_end_offset = cur_offset + envelope_size;
8563 if 4 > max_ordinal {
8564 return Ok(());
8565 }
8566
8567 let cur_offset: usize = (4 - 1) * envelope_size;
8570
8571 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8573
8574 fidl::encoding::encode_in_envelope_optional::<i64, D>(
8579 self.iso_interval.as_ref().map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
8580 encoder,
8581 offset + cur_offset,
8582 depth,
8583 )?;
8584
8585 _prev_end_offset = cur_offset + envelope_size;
8586 if 5 > max_ordinal {
8587 return Ok(());
8588 }
8589
8590 let cur_offset: usize = (5 - 1) * envelope_size;
8593
8594 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8596
8597 fidl::encoding::encode_in_envelope_optional::<CisUnidirectionalParams, D>(
8602 self.central_to_peripheral_params
8603 .as_ref()
8604 .map(<CisUnidirectionalParams as fidl::encoding::ValueTypeMarker>::borrow),
8605 encoder,
8606 offset + cur_offset,
8607 depth,
8608 )?;
8609
8610 _prev_end_offset = cur_offset + envelope_size;
8611 if 6 > max_ordinal {
8612 return Ok(());
8613 }
8614
8615 let cur_offset: usize = (6 - 1) * envelope_size;
8618
8619 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8621
8622 fidl::encoding::encode_in_envelope_optional::<CisUnidirectionalParams, D>(
8627 self.peripheral_to_central_params
8628 .as_ref()
8629 .map(<CisUnidirectionalParams as fidl::encoding::ValueTypeMarker>::borrow),
8630 encoder,
8631 offset + cur_offset,
8632 depth,
8633 )?;
8634
8635 _prev_end_offset = cur_offset + envelope_size;
8636
8637 Ok(())
8638 }
8639 }
8640
8641 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
8642 for CisEstablishedParameters
8643 {
8644 #[inline(always)]
8645 fn new_empty() -> Self {
8646 Self::default()
8647 }
8648
8649 unsafe fn decode(
8650 &mut self,
8651 decoder: &mut fidl::encoding::Decoder<'_, D>,
8652 offset: usize,
8653 mut depth: fidl::encoding::Depth,
8654 ) -> fidl::Result<()> {
8655 decoder.debug_check_bounds::<Self>(offset);
8656 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
8657 None => return Err(fidl::Error::NotNullable),
8658 Some(len) => len,
8659 };
8660 if len == 0 {
8662 return Ok(());
8663 };
8664 depth.increment()?;
8665 let envelope_size = 8;
8666 let bytes_len = len * envelope_size;
8667 let offset = decoder.out_of_line_offset(bytes_len)?;
8668 let mut _next_ordinal_to_read = 0;
8670 let mut next_offset = offset;
8671 let end_offset = offset + bytes_len;
8672 _next_ordinal_to_read += 1;
8673 if next_offset >= end_offset {
8674 return Ok(());
8675 }
8676
8677 while _next_ordinal_to_read < 1 {
8679 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8680 _next_ordinal_to_read += 1;
8681 next_offset += envelope_size;
8682 }
8683
8684 let next_out_of_line = decoder.next_out_of_line();
8685 let handles_before = decoder.remaining_handles();
8686 if let Some((inlined, num_bytes, num_handles)) =
8687 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8688 {
8689 let member_inline_size =
8690 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8691 if inlined != (member_inline_size <= 4) {
8692 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8693 }
8694 let inner_offset;
8695 let mut inner_depth = depth.clone();
8696 if inlined {
8697 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8698 inner_offset = next_offset;
8699 } else {
8700 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8701 inner_depth.increment()?;
8702 }
8703 let val_ref = self.cig_sync_delay.get_or_insert_with(|| fidl::new_empty!(i64, D));
8704 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
8705 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8706 {
8707 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8708 }
8709 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8710 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8711 }
8712 }
8713
8714 next_offset += envelope_size;
8715 _next_ordinal_to_read += 1;
8716 if next_offset >= end_offset {
8717 return Ok(());
8718 }
8719
8720 while _next_ordinal_to_read < 2 {
8722 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8723 _next_ordinal_to_read += 1;
8724 next_offset += envelope_size;
8725 }
8726
8727 let next_out_of_line = decoder.next_out_of_line();
8728 let handles_before = decoder.remaining_handles();
8729 if let Some((inlined, num_bytes, num_handles)) =
8730 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8731 {
8732 let member_inline_size =
8733 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8734 if inlined != (member_inline_size <= 4) {
8735 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8736 }
8737 let inner_offset;
8738 let mut inner_depth = depth.clone();
8739 if inlined {
8740 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8741 inner_offset = next_offset;
8742 } else {
8743 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8744 inner_depth.increment()?;
8745 }
8746 let val_ref = self.cis_sync_delay.get_or_insert_with(|| fidl::new_empty!(i64, D));
8747 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
8748 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8749 {
8750 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8751 }
8752 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8753 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8754 }
8755 }
8756
8757 next_offset += envelope_size;
8758 _next_ordinal_to_read += 1;
8759 if next_offset >= end_offset {
8760 return Ok(());
8761 }
8762
8763 while _next_ordinal_to_read < 3 {
8765 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8766 _next_ordinal_to_read += 1;
8767 next_offset += envelope_size;
8768 }
8769
8770 let next_out_of_line = decoder.next_out_of_line();
8771 let handles_before = decoder.remaining_handles();
8772 if let Some((inlined, num_bytes, num_handles)) =
8773 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8774 {
8775 let member_inline_size =
8776 <u8 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8777 if inlined != (member_inline_size <= 4) {
8778 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8779 }
8780 let inner_offset;
8781 let mut inner_depth = depth.clone();
8782 if inlined {
8783 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8784 inner_offset = next_offset;
8785 } else {
8786 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8787 inner_depth.increment()?;
8788 }
8789 let val_ref = self.max_subevents.get_or_insert_with(|| fidl::new_empty!(u8, D));
8790 fidl::decode!(u8, D, val_ref, decoder, inner_offset, inner_depth)?;
8791 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8792 {
8793 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8794 }
8795 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8796 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8797 }
8798 }
8799
8800 next_offset += envelope_size;
8801 _next_ordinal_to_read += 1;
8802 if next_offset >= end_offset {
8803 return Ok(());
8804 }
8805
8806 while _next_ordinal_to_read < 4 {
8808 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8809 _next_ordinal_to_read += 1;
8810 next_offset += envelope_size;
8811 }
8812
8813 let next_out_of_line = decoder.next_out_of_line();
8814 let handles_before = decoder.remaining_handles();
8815 if let Some((inlined, num_bytes, num_handles)) =
8816 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8817 {
8818 let member_inline_size =
8819 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8820 if inlined != (member_inline_size <= 4) {
8821 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8822 }
8823 let inner_offset;
8824 let mut inner_depth = depth.clone();
8825 if inlined {
8826 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8827 inner_offset = next_offset;
8828 } else {
8829 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8830 inner_depth.increment()?;
8831 }
8832 let val_ref = self.iso_interval.get_or_insert_with(|| fidl::new_empty!(i64, D));
8833 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
8834 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8835 {
8836 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8837 }
8838 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8839 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8840 }
8841 }
8842
8843 next_offset += envelope_size;
8844 _next_ordinal_to_read += 1;
8845 if next_offset >= end_offset {
8846 return Ok(());
8847 }
8848
8849 while _next_ordinal_to_read < 5 {
8851 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8852 _next_ordinal_to_read += 1;
8853 next_offset += envelope_size;
8854 }
8855
8856 let next_out_of_line = decoder.next_out_of_line();
8857 let handles_before = decoder.remaining_handles();
8858 if let Some((inlined, num_bytes, num_handles)) =
8859 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8860 {
8861 let member_inline_size =
8862 <CisUnidirectionalParams as fidl::encoding::TypeMarker>::inline_size(
8863 decoder.context,
8864 );
8865 if inlined != (member_inline_size <= 4) {
8866 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8867 }
8868 let inner_offset;
8869 let mut inner_depth = depth.clone();
8870 if inlined {
8871 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8872 inner_offset = next_offset;
8873 } else {
8874 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8875 inner_depth.increment()?;
8876 }
8877 let val_ref = self
8878 .central_to_peripheral_params
8879 .get_or_insert_with(|| fidl::new_empty!(CisUnidirectionalParams, D));
8880 fidl::decode!(
8881 CisUnidirectionalParams,
8882 D,
8883 val_ref,
8884 decoder,
8885 inner_offset,
8886 inner_depth
8887 )?;
8888 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8889 {
8890 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8891 }
8892 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8893 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8894 }
8895 }
8896
8897 next_offset += envelope_size;
8898 _next_ordinal_to_read += 1;
8899 if next_offset >= end_offset {
8900 return Ok(());
8901 }
8902
8903 while _next_ordinal_to_read < 6 {
8905 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8906 _next_ordinal_to_read += 1;
8907 next_offset += envelope_size;
8908 }
8909
8910 let next_out_of_line = decoder.next_out_of_line();
8911 let handles_before = decoder.remaining_handles();
8912 if let Some((inlined, num_bytes, num_handles)) =
8913 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8914 {
8915 let member_inline_size =
8916 <CisUnidirectionalParams as fidl::encoding::TypeMarker>::inline_size(
8917 decoder.context,
8918 );
8919 if inlined != (member_inline_size <= 4) {
8920 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8921 }
8922 let inner_offset;
8923 let mut inner_depth = depth.clone();
8924 if inlined {
8925 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8926 inner_offset = next_offset;
8927 } else {
8928 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8929 inner_depth.increment()?;
8930 }
8931 let val_ref = self
8932 .peripheral_to_central_params
8933 .get_or_insert_with(|| fidl::new_empty!(CisUnidirectionalParams, D));
8934 fidl::decode!(
8935 CisUnidirectionalParams,
8936 D,
8937 val_ref,
8938 decoder,
8939 inner_offset,
8940 inner_depth
8941 )?;
8942 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8943 {
8944 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8945 }
8946 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8947 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8948 }
8949 }
8950
8951 next_offset += envelope_size;
8952
8953 while next_offset < end_offset {
8955 _next_ordinal_to_read += 1;
8956 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8957 next_offset += envelope_size;
8958 }
8959
8960 Ok(())
8961 }
8962 }
8963
8964 impl CisParameters {
8965 #[inline(always)]
8966 fn max_ordinal_present(&self) -> u64 {
8967 if let Some(_) = self.id {
8968 return 2;
8969 }
8970 if let Some(_) = self.cis_id {
8971 return 1;
8972 }
8973 0
8974 }
8975 }
8976
8977 impl fidl::encoding::ValueTypeMarker for CisParameters {
8978 type Borrowed<'a> = &'a Self;
8979 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
8980 value
8981 }
8982 }
8983
8984 unsafe impl fidl::encoding::TypeMarker for CisParameters {
8985 type Owned = Self;
8986
8987 #[inline(always)]
8988 fn inline_align(_context: fidl::encoding::Context) -> usize {
8989 8
8990 }
8991
8992 #[inline(always)]
8993 fn inline_size(_context: fidl::encoding::Context) -> usize {
8994 16
8995 }
8996 }
8997
8998 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<CisParameters, D>
8999 for &CisParameters
9000 {
9001 unsafe fn encode(
9002 self,
9003 encoder: &mut fidl::encoding::Encoder<'_, D>,
9004 offset: usize,
9005 mut depth: fidl::encoding::Depth,
9006 ) -> fidl::Result<()> {
9007 encoder.debug_check_bounds::<CisParameters>(offset);
9008 let max_ordinal: u64 = self.max_ordinal_present();
9010 encoder.write_num(max_ordinal, offset);
9011 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
9012 if max_ordinal == 0 {
9014 return Ok(());
9015 }
9016 depth.increment()?;
9017 let envelope_size = 8;
9018 let bytes_len = max_ordinal as usize * envelope_size;
9019 #[allow(unused_variables)]
9020 let offset = encoder.out_of_line_offset(bytes_len);
9021 let mut _prev_end_offset: usize = 0;
9022 if 1 > max_ordinal {
9023 return Ok(());
9024 }
9025
9026 let cur_offset: usize = (1 - 1) * envelope_size;
9029
9030 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9032
9033 fidl::encoding::encode_in_envelope_optional::<u8, D>(
9038 self.cis_id.as_ref().map(<u8 as fidl::encoding::ValueTypeMarker>::borrow),
9039 encoder,
9040 offset + cur_offset,
9041 depth,
9042 )?;
9043
9044 _prev_end_offset = cur_offset + envelope_size;
9045 if 2 > max_ordinal {
9046 return Ok(());
9047 }
9048
9049 let cur_offset: usize = (2 - 1) * envelope_size;
9052
9053 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9055
9056 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_bluetooth__common::PeerId, D>(
9061 self.id.as_ref().map(<fidl_fuchsia_bluetooth__common::PeerId as fidl::encoding::ValueTypeMarker>::borrow),
9062 encoder, offset + cur_offset, depth
9063 )?;
9064
9065 _prev_end_offset = cur_offset + envelope_size;
9066
9067 Ok(())
9068 }
9069 }
9070
9071 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for CisParameters {
9072 #[inline(always)]
9073 fn new_empty() -> Self {
9074 Self::default()
9075 }
9076
9077 unsafe fn decode(
9078 &mut self,
9079 decoder: &mut fidl::encoding::Decoder<'_, D>,
9080 offset: usize,
9081 mut depth: fidl::encoding::Depth,
9082 ) -> fidl::Result<()> {
9083 decoder.debug_check_bounds::<Self>(offset);
9084 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
9085 None => return Err(fidl::Error::NotNullable),
9086 Some(len) => len,
9087 };
9088 if len == 0 {
9090 return Ok(());
9091 };
9092 depth.increment()?;
9093 let envelope_size = 8;
9094 let bytes_len = len * envelope_size;
9095 let offset = decoder.out_of_line_offset(bytes_len)?;
9096 let mut _next_ordinal_to_read = 0;
9098 let mut next_offset = offset;
9099 let end_offset = offset + bytes_len;
9100 _next_ordinal_to_read += 1;
9101 if next_offset >= end_offset {
9102 return Ok(());
9103 }
9104
9105 while _next_ordinal_to_read < 1 {
9107 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9108 _next_ordinal_to_read += 1;
9109 next_offset += envelope_size;
9110 }
9111
9112 let next_out_of_line = decoder.next_out_of_line();
9113 let handles_before = decoder.remaining_handles();
9114 if let Some((inlined, num_bytes, num_handles)) =
9115 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9116 {
9117 let member_inline_size =
9118 <u8 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9119 if inlined != (member_inline_size <= 4) {
9120 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9121 }
9122 let inner_offset;
9123 let mut inner_depth = depth.clone();
9124 if inlined {
9125 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9126 inner_offset = next_offset;
9127 } else {
9128 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9129 inner_depth.increment()?;
9130 }
9131 let val_ref = self.cis_id.get_or_insert_with(|| fidl::new_empty!(u8, D));
9132 fidl::decode!(u8, D, val_ref, decoder, inner_offset, inner_depth)?;
9133 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9134 {
9135 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9136 }
9137 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9138 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9139 }
9140 }
9141
9142 next_offset += envelope_size;
9143 _next_ordinal_to_read += 1;
9144 if next_offset >= end_offset {
9145 return Ok(());
9146 }
9147
9148 while _next_ordinal_to_read < 2 {
9150 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9151 _next_ordinal_to_read += 1;
9152 next_offset += envelope_size;
9153 }
9154
9155 let next_out_of_line = decoder.next_out_of_line();
9156 let handles_before = decoder.remaining_handles();
9157 if let Some((inlined, num_bytes, num_handles)) =
9158 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9159 {
9160 let member_inline_size = <fidl_fuchsia_bluetooth__common::PeerId as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9161 if inlined != (member_inline_size <= 4) {
9162 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9163 }
9164 let inner_offset;
9165 let mut inner_depth = depth.clone();
9166 if inlined {
9167 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9168 inner_offset = next_offset;
9169 } else {
9170 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9171 inner_depth.increment()?;
9172 }
9173 let val_ref = self.id.get_or_insert_with(|| {
9174 fidl::new_empty!(fidl_fuchsia_bluetooth__common::PeerId, D)
9175 });
9176 fidl::decode!(
9177 fidl_fuchsia_bluetooth__common::PeerId,
9178 D,
9179 val_ref,
9180 decoder,
9181 inner_offset,
9182 inner_depth
9183 )?;
9184 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9185 {
9186 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9187 }
9188 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9189 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9190 }
9191 }
9192
9193 next_offset += envelope_size;
9194
9195 while next_offset < end_offset {
9197 _next_ordinal_to_read += 1;
9198 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9199 next_offset += envelope_size;
9200 }
9201
9202 Ok(())
9203 }
9204 }
9205
9206 impl CisUnidirectionalParams {
9207 #[inline(always)]
9208 fn max_ordinal_present(&self) -> u64 {
9209 if let Some(_) = self.flush_timeout {
9210 return 3;
9211 }
9212 if let Some(_) = self.burst_number {
9213 return 2;
9214 }
9215 if let Some(_) = self.transport_latency {
9216 return 1;
9217 }
9218 0
9219 }
9220 }
9221
9222 impl fidl::encoding::ValueTypeMarker for CisUnidirectionalParams {
9223 type Borrowed<'a> = &'a Self;
9224 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
9225 value
9226 }
9227 }
9228
9229 unsafe impl fidl::encoding::TypeMarker for CisUnidirectionalParams {
9230 type Owned = Self;
9231
9232 #[inline(always)]
9233 fn inline_align(_context: fidl::encoding::Context) -> usize {
9234 8
9235 }
9236
9237 #[inline(always)]
9238 fn inline_size(_context: fidl::encoding::Context) -> usize {
9239 16
9240 }
9241 }
9242
9243 unsafe impl<D: fidl::encoding::ResourceDialect>
9244 fidl::encoding::Encode<CisUnidirectionalParams, D> for &CisUnidirectionalParams
9245 {
9246 unsafe fn encode(
9247 self,
9248 encoder: &mut fidl::encoding::Encoder<'_, D>,
9249 offset: usize,
9250 mut depth: fidl::encoding::Depth,
9251 ) -> fidl::Result<()> {
9252 encoder.debug_check_bounds::<CisUnidirectionalParams>(offset);
9253 let max_ordinal: u64 = self.max_ordinal_present();
9255 encoder.write_num(max_ordinal, offset);
9256 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
9257 if max_ordinal == 0 {
9259 return Ok(());
9260 }
9261 depth.increment()?;
9262 let envelope_size = 8;
9263 let bytes_len = max_ordinal as usize * envelope_size;
9264 #[allow(unused_variables)]
9265 let offset = encoder.out_of_line_offset(bytes_len);
9266 let mut _prev_end_offset: usize = 0;
9267 if 1 > max_ordinal {
9268 return Ok(());
9269 }
9270
9271 let cur_offset: usize = (1 - 1) * envelope_size;
9274
9275 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9277
9278 fidl::encoding::encode_in_envelope_optional::<i64, D>(
9283 self.transport_latency
9284 .as_ref()
9285 .map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
9286 encoder,
9287 offset + cur_offset,
9288 depth,
9289 )?;
9290
9291 _prev_end_offset = cur_offset + envelope_size;
9292 if 2 > max_ordinal {
9293 return Ok(());
9294 }
9295
9296 let cur_offset: usize = (2 - 1) * envelope_size;
9299
9300 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9302
9303 fidl::encoding::encode_in_envelope_optional::<u8, D>(
9308 self.burst_number.as_ref().map(<u8 as fidl::encoding::ValueTypeMarker>::borrow),
9309 encoder,
9310 offset + cur_offset,
9311 depth,
9312 )?;
9313
9314 _prev_end_offset = cur_offset + envelope_size;
9315 if 3 > max_ordinal {
9316 return Ok(());
9317 }
9318
9319 let cur_offset: usize = (3 - 1) * envelope_size;
9322
9323 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9325
9326 fidl::encoding::encode_in_envelope_optional::<u8, D>(
9331 self.flush_timeout.as_ref().map(<u8 as fidl::encoding::ValueTypeMarker>::borrow),
9332 encoder,
9333 offset + cur_offset,
9334 depth,
9335 )?;
9336
9337 _prev_end_offset = cur_offset + envelope_size;
9338
9339 Ok(())
9340 }
9341 }
9342
9343 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
9344 for CisUnidirectionalParams
9345 {
9346 #[inline(always)]
9347 fn new_empty() -> Self {
9348 Self::default()
9349 }
9350
9351 unsafe fn decode(
9352 &mut self,
9353 decoder: &mut fidl::encoding::Decoder<'_, D>,
9354 offset: usize,
9355 mut depth: fidl::encoding::Depth,
9356 ) -> fidl::Result<()> {
9357 decoder.debug_check_bounds::<Self>(offset);
9358 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
9359 None => return Err(fidl::Error::NotNullable),
9360 Some(len) => len,
9361 };
9362 if len == 0 {
9364 return Ok(());
9365 };
9366 depth.increment()?;
9367 let envelope_size = 8;
9368 let bytes_len = len * envelope_size;
9369 let offset = decoder.out_of_line_offset(bytes_len)?;
9370 let mut _next_ordinal_to_read = 0;
9372 let mut next_offset = offset;
9373 let end_offset = offset + bytes_len;
9374 _next_ordinal_to_read += 1;
9375 if next_offset >= end_offset {
9376 return Ok(());
9377 }
9378
9379 while _next_ordinal_to_read < 1 {
9381 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9382 _next_ordinal_to_read += 1;
9383 next_offset += envelope_size;
9384 }
9385
9386 let next_out_of_line = decoder.next_out_of_line();
9387 let handles_before = decoder.remaining_handles();
9388 if let Some((inlined, num_bytes, num_handles)) =
9389 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9390 {
9391 let member_inline_size =
9392 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9393 if inlined != (member_inline_size <= 4) {
9394 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9395 }
9396 let inner_offset;
9397 let mut inner_depth = depth.clone();
9398 if inlined {
9399 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9400 inner_offset = next_offset;
9401 } else {
9402 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9403 inner_depth.increment()?;
9404 }
9405 let val_ref =
9406 self.transport_latency.get_or_insert_with(|| fidl::new_empty!(i64, D));
9407 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
9408 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9409 {
9410 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9411 }
9412 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9413 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9414 }
9415 }
9416
9417 next_offset += envelope_size;
9418 _next_ordinal_to_read += 1;
9419 if next_offset >= end_offset {
9420 return Ok(());
9421 }
9422
9423 while _next_ordinal_to_read < 2 {
9425 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9426 _next_ordinal_to_read += 1;
9427 next_offset += envelope_size;
9428 }
9429
9430 let next_out_of_line = decoder.next_out_of_line();
9431 let handles_before = decoder.remaining_handles();
9432 if let Some((inlined, num_bytes, num_handles)) =
9433 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9434 {
9435 let member_inline_size =
9436 <u8 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9437 if inlined != (member_inline_size <= 4) {
9438 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9439 }
9440 let inner_offset;
9441 let mut inner_depth = depth.clone();
9442 if inlined {
9443 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9444 inner_offset = next_offset;
9445 } else {
9446 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9447 inner_depth.increment()?;
9448 }
9449 let val_ref = self.burst_number.get_or_insert_with(|| fidl::new_empty!(u8, D));
9450 fidl::decode!(u8, D, val_ref, decoder, inner_offset, inner_depth)?;
9451 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9452 {
9453 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9454 }
9455 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9456 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9457 }
9458 }
9459
9460 next_offset += envelope_size;
9461 _next_ordinal_to_read += 1;
9462 if next_offset >= end_offset {
9463 return Ok(());
9464 }
9465
9466 while _next_ordinal_to_read < 3 {
9468 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9469 _next_ordinal_to_read += 1;
9470 next_offset += envelope_size;
9471 }
9472
9473 let next_out_of_line = decoder.next_out_of_line();
9474 let handles_before = decoder.remaining_handles();
9475 if let Some((inlined, num_bytes, num_handles)) =
9476 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9477 {
9478 let member_inline_size =
9479 <u8 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9480 if inlined != (member_inline_size <= 4) {
9481 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9482 }
9483 let inner_offset;
9484 let mut inner_depth = depth.clone();
9485 if inlined {
9486 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9487 inner_offset = next_offset;
9488 } else {
9489 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9490 inner_depth.increment()?;
9491 }
9492 let val_ref = self.flush_timeout.get_or_insert_with(|| fidl::new_empty!(u8, D));
9493 fidl::decode!(u8, D, val_ref, decoder, inner_offset, inner_depth)?;
9494 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9495 {
9496 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9497 }
9498 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9499 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9500 }
9501 }
9502
9503 next_offset += envelope_size;
9504
9505 while next_offset < end_offset {
9507 _next_ordinal_to_read += 1;
9508 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9509 next_offset += envelope_size;
9510 }
9511
9512 Ok(())
9513 }
9514 }
9515
9516 impl CodecDelayGetCodecLocalDelayRangeRequest {
9517 #[inline(always)]
9518 fn max_ordinal_present(&self) -> u64 {
9519 if let Some(_) = self.codec_attributes {
9520 return 3;
9521 }
9522 if let Some(_) = self.data_direction {
9523 return 2;
9524 }
9525 if let Some(_) = self.logical_transport_type {
9526 return 1;
9527 }
9528 0
9529 }
9530 }
9531
9532 impl fidl::encoding::ValueTypeMarker for CodecDelayGetCodecLocalDelayRangeRequest {
9533 type Borrowed<'a> = &'a Self;
9534 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
9535 value
9536 }
9537 }
9538
9539 unsafe impl fidl::encoding::TypeMarker for CodecDelayGetCodecLocalDelayRangeRequest {
9540 type Owned = Self;
9541
9542 #[inline(always)]
9543 fn inline_align(_context: fidl::encoding::Context) -> usize {
9544 8
9545 }
9546
9547 #[inline(always)]
9548 fn inline_size(_context: fidl::encoding::Context) -> usize {
9549 16
9550 }
9551 }
9552
9553 unsafe impl<D: fidl::encoding::ResourceDialect>
9554 fidl::encoding::Encode<CodecDelayGetCodecLocalDelayRangeRequest, D>
9555 for &CodecDelayGetCodecLocalDelayRangeRequest
9556 {
9557 unsafe fn encode(
9558 self,
9559 encoder: &mut fidl::encoding::Encoder<'_, D>,
9560 offset: usize,
9561 mut depth: fidl::encoding::Depth,
9562 ) -> fidl::Result<()> {
9563 encoder.debug_check_bounds::<CodecDelayGetCodecLocalDelayRangeRequest>(offset);
9564 let max_ordinal: u64 = self.max_ordinal_present();
9566 encoder.write_num(max_ordinal, offset);
9567 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
9568 if max_ordinal == 0 {
9570 return Ok(());
9571 }
9572 depth.increment()?;
9573 let envelope_size = 8;
9574 let bytes_len = max_ordinal as usize * envelope_size;
9575 #[allow(unused_variables)]
9576 let offset = encoder.out_of_line_offset(bytes_len);
9577 let mut _prev_end_offset: usize = 0;
9578 if 1 > max_ordinal {
9579 return Ok(());
9580 }
9581
9582 let cur_offset: usize = (1 - 1) * envelope_size;
9585
9586 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9588
9589 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_bluetooth__common::LogicalTransportType, D>(
9594 self.logical_transport_type.as_ref().map(<fidl_fuchsia_bluetooth__common::LogicalTransportType as fidl::encoding::ValueTypeMarker>::borrow),
9595 encoder, offset + cur_offset, depth
9596 )?;
9597
9598 _prev_end_offset = cur_offset + envelope_size;
9599 if 2 > max_ordinal {
9600 return Ok(());
9601 }
9602
9603 let cur_offset: usize = (2 - 1) * envelope_size;
9606
9607 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9609
9610 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_bluetooth__common::DataDirection, D>(
9615 self.data_direction.as_ref().map(<fidl_fuchsia_bluetooth__common::DataDirection as fidl::encoding::ValueTypeMarker>::borrow),
9616 encoder, offset + cur_offset, depth
9617 )?;
9618
9619 _prev_end_offset = cur_offset + envelope_size;
9620 if 3 > max_ordinal {
9621 return Ok(());
9622 }
9623
9624 let cur_offset: usize = (3 - 1) * envelope_size;
9627
9628 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9630
9631 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_bluetooth__common::CodecAttributes, D>(
9636 self.codec_attributes.as_ref().map(<fidl_fuchsia_bluetooth__common::CodecAttributes as fidl::encoding::ValueTypeMarker>::borrow),
9637 encoder, offset + cur_offset, depth
9638 )?;
9639
9640 _prev_end_offset = cur_offset + envelope_size;
9641
9642 Ok(())
9643 }
9644 }
9645
9646 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
9647 for CodecDelayGetCodecLocalDelayRangeRequest
9648 {
9649 #[inline(always)]
9650 fn new_empty() -> Self {
9651 Self::default()
9652 }
9653
9654 unsafe fn decode(
9655 &mut self,
9656 decoder: &mut fidl::encoding::Decoder<'_, D>,
9657 offset: usize,
9658 mut depth: fidl::encoding::Depth,
9659 ) -> fidl::Result<()> {
9660 decoder.debug_check_bounds::<Self>(offset);
9661 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
9662 None => return Err(fidl::Error::NotNullable),
9663 Some(len) => len,
9664 };
9665 if len == 0 {
9667 return Ok(());
9668 };
9669 depth.increment()?;
9670 let envelope_size = 8;
9671 let bytes_len = len * envelope_size;
9672 let offset = decoder.out_of_line_offset(bytes_len)?;
9673 let mut _next_ordinal_to_read = 0;
9675 let mut next_offset = offset;
9676 let end_offset = offset + bytes_len;
9677 _next_ordinal_to_read += 1;
9678 if next_offset >= end_offset {
9679 return Ok(());
9680 }
9681
9682 while _next_ordinal_to_read < 1 {
9684 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9685 _next_ordinal_to_read += 1;
9686 next_offset += envelope_size;
9687 }
9688
9689 let next_out_of_line = decoder.next_out_of_line();
9690 let handles_before = decoder.remaining_handles();
9691 if let Some((inlined, num_bytes, num_handles)) =
9692 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9693 {
9694 let member_inline_size = <fidl_fuchsia_bluetooth__common::LogicalTransportType as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9695 if inlined != (member_inline_size <= 4) {
9696 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9697 }
9698 let inner_offset;
9699 let mut inner_depth = depth.clone();
9700 if inlined {
9701 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9702 inner_offset = next_offset;
9703 } else {
9704 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9705 inner_depth.increment()?;
9706 }
9707 let val_ref = self.logical_transport_type.get_or_insert_with(|| {
9708 fidl::new_empty!(fidl_fuchsia_bluetooth__common::LogicalTransportType, D)
9709 });
9710 fidl::decode!(
9711 fidl_fuchsia_bluetooth__common::LogicalTransportType,
9712 D,
9713 val_ref,
9714 decoder,
9715 inner_offset,
9716 inner_depth
9717 )?;
9718 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9719 {
9720 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9721 }
9722 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9723 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9724 }
9725 }
9726
9727 next_offset += envelope_size;
9728 _next_ordinal_to_read += 1;
9729 if next_offset >= end_offset {
9730 return Ok(());
9731 }
9732
9733 while _next_ordinal_to_read < 2 {
9735 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9736 _next_ordinal_to_read += 1;
9737 next_offset += envelope_size;
9738 }
9739
9740 let next_out_of_line = decoder.next_out_of_line();
9741 let handles_before = decoder.remaining_handles();
9742 if let Some((inlined, num_bytes, num_handles)) =
9743 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9744 {
9745 let member_inline_size = <fidl_fuchsia_bluetooth__common::DataDirection as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9746 if inlined != (member_inline_size <= 4) {
9747 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9748 }
9749 let inner_offset;
9750 let mut inner_depth = depth.clone();
9751 if inlined {
9752 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9753 inner_offset = next_offset;
9754 } else {
9755 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9756 inner_depth.increment()?;
9757 }
9758 let val_ref = self.data_direction.get_or_insert_with(|| {
9759 fidl::new_empty!(fidl_fuchsia_bluetooth__common::DataDirection, D)
9760 });
9761 fidl::decode!(
9762 fidl_fuchsia_bluetooth__common::DataDirection,
9763 D,
9764 val_ref,
9765 decoder,
9766 inner_offset,
9767 inner_depth
9768 )?;
9769 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9770 {
9771 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9772 }
9773 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9774 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9775 }
9776 }
9777
9778 next_offset += envelope_size;
9779 _next_ordinal_to_read += 1;
9780 if next_offset >= end_offset {
9781 return Ok(());
9782 }
9783
9784 while _next_ordinal_to_read < 3 {
9786 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9787 _next_ordinal_to_read += 1;
9788 next_offset += envelope_size;
9789 }
9790
9791 let next_out_of_line = decoder.next_out_of_line();
9792 let handles_before = decoder.remaining_handles();
9793 if let Some((inlined, num_bytes, num_handles)) =
9794 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9795 {
9796 let member_inline_size = <fidl_fuchsia_bluetooth__common::CodecAttributes as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9797 if inlined != (member_inline_size <= 4) {
9798 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9799 }
9800 let inner_offset;
9801 let mut inner_depth = depth.clone();
9802 if inlined {
9803 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9804 inner_offset = next_offset;
9805 } else {
9806 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9807 inner_depth.increment()?;
9808 }
9809 let val_ref = self.codec_attributes.get_or_insert_with(|| {
9810 fidl::new_empty!(fidl_fuchsia_bluetooth__common::CodecAttributes, D)
9811 });
9812 fidl::decode!(
9813 fidl_fuchsia_bluetooth__common::CodecAttributes,
9814 D,
9815 val_ref,
9816 decoder,
9817 inner_offset,
9818 inner_depth
9819 )?;
9820 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9821 {
9822 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9823 }
9824 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9825 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9826 }
9827 }
9828
9829 next_offset += envelope_size;
9830
9831 while next_offset < end_offset {
9833 _next_ordinal_to_read += 1;
9834 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9835 next_offset += envelope_size;
9836 }
9837
9838 Ok(())
9839 }
9840 }
9841
9842 impl CodecDelayGetCodecLocalDelayRangeResponse {
9843 #[inline(always)]
9844 fn max_ordinal_present(&self) -> u64 {
9845 if let Some(_) = self.max_controller_delay {
9846 return 2;
9847 }
9848 if let Some(_) = self.min_controller_delay {
9849 return 1;
9850 }
9851 0
9852 }
9853 }
9854
9855 impl fidl::encoding::ValueTypeMarker for CodecDelayGetCodecLocalDelayRangeResponse {
9856 type Borrowed<'a> = &'a Self;
9857 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
9858 value
9859 }
9860 }
9861
9862 unsafe impl fidl::encoding::TypeMarker for CodecDelayGetCodecLocalDelayRangeResponse {
9863 type Owned = Self;
9864
9865 #[inline(always)]
9866 fn inline_align(_context: fidl::encoding::Context) -> usize {
9867 8
9868 }
9869
9870 #[inline(always)]
9871 fn inline_size(_context: fidl::encoding::Context) -> usize {
9872 16
9873 }
9874 }
9875
9876 unsafe impl<D: fidl::encoding::ResourceDialect>
9877 fidl::encoding::Encode<CodecDelayGetCodecLocalDelayRangeResponse, D>
9878 for &CodecDelayGetCodecLocalDelayRangeResponse
9879 {
9880 unsafe fn encode(
9881 self,
9882 encoder: &mut fidl::encoding::Encoder<'_, D>,
9883 offset: usize,
9884 mut depth: fidl::encoding::Depth,
9885 ) -> fidl::Result<()> {
9886 encoder.debug_check_bounds::<CodecDelayGetCodecLocalDelayRangeResponse>(offset);
9887 let max_ordinal: u64 = self.max_ordinal_present();
9889 encoder.write_num(max_ordinal, offset);
9890 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
9891 if max_ordinal == 0 {
9893 return Ok(());
9894 }
9895 depth.increment()?;
9896 let envelope_size = 8;
9897 let bytes_len = max_ordinal as usize * envelope_size;
9898 #[allow(unused_variables)]
9899 let offset = encoder.out_of_line_offset(bytes_len);
9900 let mut _prev_end_offset: usize = 0;
9901 if 1 > max_ordinal {
9902 return Ok(());
9903 }
9904
9905 let cur_offset: usize = (1 - 1) * envelope_size;
9908
9909 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9911
9912 fidl::encoding::encode_in_envelope_optional::<i64, D>(
9917 self.min_controller_delay
9918 .as_ref()
9919 .map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
9920 encoder,
9921 offset + cur_offset,
9922 depth,
9923 )?;
9924
9925 _prev_end_offset = cur_offset + envelope_size;
9926 if 2 > max_ordinal {
9927 return Ok(());
9928 }
9929
9930 let cur_offset: usize = (2 - 1) * envelope_size;
9933
9934 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9936
9937 fidl::encoding::encode_in_envelope_optional::<i64, D>(
9942 self.max_controller_delay
9943 .as_ref()
9944 .map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
9945 encoder,
9946 offset + cur_offset,
9947 depth,
9948 )?;
9949
9950 _prev_end_offset = cur_offset + envelope_size;
9951
9952 Ok(())
9953 }
9954 }
9955
9956 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
9957 for CodecDelayGetCodecLocalDelayRangeResponse
9958 {
9959 #[inline(always)]
9960 fn new_empty() -> Self {
9961 Self::default()
9962 }
9963
9964 unsafe fn decode(
9965 &mut self,
9966 decoder: &mut fidl::encoding::Decoder<'_, D>,
9967 offset: usize,
9968 mut depth: fidl::encoding::Depth,
9969 ) -> fidl::Result<()> {
9970 decoder.debug_check_bounds::<Self>(offset);
9971 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
9972 None => return Err(fidl::Error::NotNullable),
9973 Some(len) => len,
9974 };
9975 if len == 0 {
9977 return Ok(());
9978 };
9979 depth.increment()?;
9980 let envelope_size = 8;
9981 let bytes_len = len * envelope_size;
9982 let offset = decoder.out_of_line_offset(bytes_len)?;
9983 let mut _next_ordinal_to_read = 0;
9985 let mut next_offset = offset;
9986 let end_offset = offset + bytes_len;
9987 _next_ordinal_to_read += 1;
9988 if next_offset >= end_offset {
9989 return Ok(());
9990 }
9991
9992 while _next_ordinal_to_read < 1 {
9994 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9995 _next_ordinal_to_read += 1;
9996 next_offset += envelope_size;
9997 }
9998
9999 let next_out_of_line = decoder.next_out_of_line();
10000 let handles_before = decoder.remaining_handles();
10001 if let Some((inlined, num_bytes, num_handles)) =
10002 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10003 {
10004 let member_inline_size =
10005 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
10006 if inlined != (member_inline_size <= 4) {
10007 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10008 }
10009 let inner_offset;
10010 let mut inner_depth = depth.clone();
10011 if inlined {
10012 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10013 inner_offset = next_offset;
10014 } else {
10015 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10016 inner_depth.increment()?;
10017 }
10018 let val_ref =
10019 self.min_controller_delay.get_or_insert_with(|| fidl::new_empty!(i64, D));
10020 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
10021 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10022 {
10023 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10024 }
10025 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10026 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10027 }
10028 }
10029
10030 next_offset += envelope_size;
10031 _next_ordinal_to_read += 1;
10032 if next_offset >= end_offset {
10033 return Ok(());
10034 }
10035
10036 while _next_ordinal_to_read < 2 {
10038 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10039 _next_ordinal_to_read += 1;
10040 next_offset += envelope_size;
10041 }
10042
10043 let next_out_of_line = decoder.next_out_of_line();
10044 let handles_before = decoder.remaining_handles();
10045 if let Some((inlined, num_bytes, num_handles)) =
10046 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10047 {
10048 let member_inline_size =
10049 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
10050 if inlined != (member_inline_size <= 4) {
10051 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10052 }
10053 let inner_offset;
10054 let mut inner_depth = depth.clone();
10055 if inlined {
10056 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10057 inner_offset = next_offset;
10058 } else {
10059 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10060 inner_depth.increment()?;
10061 }
10062 let val_ref =
10063 self.max_controller_delay.get_or_insert_with(|| fidl::new_empty!(i64, D));
10064 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
10065 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10066 {
10067 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10068 }
10069 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10070 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10071 }
10072 }
10073
10074 next_offset += envelope_size;
10075
10076 while next_offset < end_offset {
10078 _next_ordinal_to_read += 1;
10079 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10080 next_offset += envelope_size;
10081 }
10082
10083 Ok(())
10084 }
10085 }
10086
10087 impl ConnectedIsochronousGroupEstablishStreamsRequest {
10088 #[inline(always)]
10089 fn max_ordinal_present(&self) -> u64 {
10090 if let Some(_) = self.cis_params {
10091 return 1;
10092 }
10093 0
10094 }
10095 }
10096
10097 impl fidl::encoding::ValueTypeMarker for ConnectedIsochronousGroupEstablishStreamsRequest {
10098 type Borrowed<'a> = &'a Self;
10099 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
10100 value
10101 }
10102 }
10103
10104 unsafe impl fidl::encoding::TypeMarker for ConnectedIsochronousGroupEstablishStreamsRequest {
10105 type Owned = Self;
10106
10107 #[inline(always)]
10108 fn inline_align(_context: fidl::encoding::Context) -> usize {
10109 8
10110 }
10111
10112 #[inline(always)]
10113 fn inline_size(_context: fidl::encoding::Context) -> usize {
10114 16
10115 }
10116 }
10117
10118 unsafe impl<D: fidl::encoding::ResourceDialect>
10119 fidl::encoding::Encode<ConnectedIsochronousGroupEstablishStreamsRequest, D>
10120 for &ConnectedIsochronousGroupEstablishStreamsRequest
10121 {
10122 unsafe fn encode(
10123 self,
10124 encoder: &mut fidl::encoding::Encoder<'_, D>,
10125 offset: usize,
10126 mut depth: fidl::encoding::Depth,
10127 ) -> fidl::Result<()> {
10128 encoder.debug_check_bounds::<ConnectedIsochronousGroupEstablishStreamsRequest>(offset);
10129 let max_ordinal: u64 = self.max_ordinal_present();
10131 encoder.write_num(max_ordinal, offset);
10132 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
10133 if max_ordinal == 0 {
10135 return Ok(());
10136 }
10137 depth.increment()?;
10138 let envelope_size = 8;
10139 let bytes_len = max_ordinal as usize * envelope_size;
10140 #[allow(unused_variables)]
10141 let offset = encoder.out_of_line_offset(bytes_len);
10142 let mut _prev_end_offset: usize = 0;
10143 if 1 > max_ordinal {
10144 return Ok(());
10145 }
10146
10147 let cur_offset: usize = (1 - 1) * envelope_size;
10150
10151 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10153
10154 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<CisParameters, 31>, D>(
10159 self.cis_params.as_ref().map(<fidl::encoding::Vector<CisParameters, 31> as fidl::encoding::ValueTypeMarker>::borrow),
10160 encoder, offset + cur_offset, depth
10161 )?;
10162
10163 _prev_end_offset = cur_offset + envelope_size;
10164
10165 Ok(())
10166 }
10167 }
10168
10169 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
10170 for ConnectedIsochronousGroupEstablishStreamsRequest
10171 {
10172 #[inline(always)]
10173 fn new_empty() -> Self {
10174 Self::default()
10175 }
10176
10177 unsafe fn decode(
10178 &mut self,
10179 decoder: &mut fidl::encoding::Decoder<'_, D>,
10180 offset: usize,
10181 mut depth: fidl::encoding::Depth,
10182 ) -> fidl::Result<()> {
10183 decoder.debug_check_bounds::<Self>(offset);
10184 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
10185 None => return Err(fidl::Error::NotNullable),
10186 Some(len) => len,
10187 };
10188 if len == 0 {
10190 return Ok(());
10191 };
10192 depth.increment()?;
10193 let envelope_size = 8;
10194 let bytes_len = len * envelope_size;
10195 let offset = decoder.out_of_line_offset(bytes_len)?;
10196 let mut _next_ordinal_to_read = 0;
10198 let mut next_offset = offset;
10199 let end_offset = offset + bytes_len;
10200 _next_ordinal_to_read += 1;
10201 if next_offset >= end_offset {
10202 return Ok(());
10203 }
10204
10205 while _next_ordinal_to_read < 1 {
10207 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10208 _next_ordinal_to_read += 1;
10209 next_offset += envelope_size;
10210 }
10211
10212 let next_out_of_line = decoder.next_out_of_line();
10213 let handles_before = decoder.remaining_handles();
10214 if let Some((inlined, num_bytes, num_handles)) =
10215 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10216 {
10217 let member_inline_size = <fidl::encoding::Vector<CisParameters, 31> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
10218 if inlined != (member_inline_size <= 4) {
10219 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10220 }
10221 let inner_offset;
10222 let mut inner_depth = depth.clone();
10223 if inlined {
10224 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10225 inner_offset = next_offset;
10226 } else {
10227 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10228 inner_depth.increment()?;
10229 }
10230 let val_ref = self.cis_params.get_or_insert_with(
10231 || fidl::new_empty!(fidl::encoding::Vector<CisParameters, 31>, D),
10232 );
10233 fidl::decode!(fidl::encoding::Vector<CisParameters, 31>, D, val_ref, decoder, inner_offset, inner_depth)?;
10234 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10235 {
10236 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10237 }
10238 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10239 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10240 }
10241 }
10242
10243 next_offset += envelope_size;
10244
10245 while next_offset < end_offset {
10247 _next_ordinal_to_read += 1;
10248 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10249 next_offset += envelope_size;
10250 }
10251
10252 Ok(())
10253 }
10254 }
10255
10256 impl ConnectionOptions {
10257 #[inline(always)]
10258 fn max_ordinal_present(&self) -> u64 {
10259 if let Some(_) = self.service_filter {
10260 return 2;
10261 }
10262 if let Some(_) = self.bondable_mode {
10263 return 1;
10264 }
10265 0
10266 }
10267 }
10268
10269 impl fidl::encoding::ValueTypeMarker for ConnectionOptions {
10270 type Borrowed<'a> = &'a Self;
10271 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
10272 value
10273 }
10274 }
10275
10276 unsafe impl fidl::encoding::TypeMarker for ConnectionOptions {
10277 type Owned = Self;
10278
10279 #[inline(always)]
10280 fn inline_align(_context: fidl::encoding::Context) -> usize {
10281 8
10282 }
10283
10284 #[inline(always)]
10285 fn inline_size(_context: fidl::encoding::Context) -> usize {
10286 16
10287 }
10288 }
10289
10290 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ConnectionOptions, D>
10291 for &ConnectionOptions
10292 {
10293 unsafe fn encode(
10294 self,
10295 encoder: &mut fidl::encoding::Encoder<'_, D>,
10296 offset: usize,
10297 mut depth: fidl::encoding::Depth,
10298 ) -> fidl::Result<()> {
10299 encoder.debug_check_bounds::<ConnectionOptions>(offset);
10300 let max_ordinal: u64 = self.max_ordinal_present();
10302 encoder.write_num(max_ordinal, offset);
10303 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
10304 if max_ordinal == 0 {
10306 return Ok(());
10307 }
10308 depth.increment()?;
10309 let envelope_size = 8;
10310 let bytes_len = max_ordinal as usize * envelope_size;
10311 #[allow(unused_variables)]
10312 let offset = encoder.out_of_line_offset(bytes_len);
10313 let mut _prev_end_offset: usize = 0;
10314 if 1 > max_ordinal {
10315 return Ok(());
10316 }
10317
10318 let cur_offset: usize = (1 - 1) * envelope_size;
10321
10322 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10324
10325 fidl::encoding::encode_in_envelope_optional::<bool, D>(
10330 self.bondable_mode.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
10331 encoder,
10332 offset + cur_offset,
10333 depth,
10334 )?;
10335
10336 _prev_end_offset = cur_offset + envelope_size;
10337 if 2 > max_ordinal {
10338 return Ok(());
10339 }
10340
10341 let cur_offset: usize = (2 - 1) * envelope_size;
10344
10345 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10347
10348 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_bluetooth__common::Uuid, D>(
10353 self.service_filter.as_ref().map(<fidl_fuchsia_bluetooth__common::Uuid as fidl::encoding::ValueTypeMarker>::borrow),
10354 encoder, offset + cur_offset, depth
10355 )?;
10356
10357 _prev_end_offset = cur_offset + envelope_size;
10358
10359 Ok(())
10360 }
10361 }
10362
10363 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ConnectionOptions {
10364 #[inline(always)]
10365 fn new_empty() -> Self {
10366 Self::default()
10367 }
10368
10369 unsafe fn decode(
10370 &mut self,
10371 decoder: &mut fidl::encoding::Decoder<'_, D>,
10372 offset: usize,
10373 mut depth: fidl::encoding::Depth,
10374 ) -> fidl::Result<()> {
10375 decoder.debug_check_bounds::<Self>(offset);
10376 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
10377 None => return Err(fidl::Error::NotNullable),
10378 Some(len) => len,
10379 };
10380 if len == 0 {
10382 return Ok(());
10383 };
10384 depth.increment()?;
10385 let envelope_size = 8;
10386 let bytes_len = len * envelope_size;
10387 let offset = decoder.out_of_line_offset(bytes_len)?;
10388 let mut _next_ordinal_to_read = 0;
10390 let mut next_offset = offset;
10391 let end_offset = offset + bytes_len;
10392 _next_ordinal_to_read += 1;
10393 if next_offset >= end_offset {
10394 return Ok(());
10395 }
10396
10397 while _next_ordinal_to_read < 1 {
10399 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10400 _next_ordinal_to_read += 1;
10401 next_offset += envelope_size;
10402 }
10403
10404 let next_out_of_line = decoder.next_out_of_line();
10405 let handles_before = decoder.remaining_handles();
10406 if let Some((inlined, num_bytes, num_handles)) =
10407 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10408 {
10409 let member_inline_size =
10410 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
10411 if inlined != (member_inline_size <= 4) {
10412 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10413 }
10414 let inner_offset;
10415 let mut inner_depth = depth.clone();
10416 if inlined {
10417 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10418 inner_offset = next_offset;
10419 } else {
10420 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10421 inner_depth.increment()?;
10422 }
10423 let val_ref = self.bondable_mode.get_or_insert_with(|| fidl::new_empty!(bool, D));
10424 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
10425 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10426 {
10427 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10428 }
10429 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10430 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10431 }
10432 }
10433
10434 next_offset += envelope_size;
10435 _next_ordinal_to_read += 1;
10436 if next_offset >= end_offset {
10437 return Ok(());
10438 }
10439
10440 while _next_ordinal_to_read < 2 {
10442 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10443 _next_ordinal_to_read += 1;
10444 next_offset += envelope_size;
10445 }
10446
10447 let next_out_of_line = decoder.next_out_of_line();
10448 let handles_before = decoder.remaining_handles();
10449 if let Some((inlined, num_bytes, num_handles)) =
10450 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10451 {
10452 let member_inline_size = <fidl_fuchsia_bluetooth__common::Uuid as fidl::encoding::TypeMarker>::inline_size(decoder.context);
10453 if inlined != (member_inline_size <= 4) {
10454 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10455 }
10456 let inner_offset;
10457 let mut inner_depth = depth.clone();
10458 if inlined {
10459 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10460 inner_offset = next_offset;
10461 } else {
10462 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10463 inner_depth.increment()?;
10464 }
10465 let val_ref = self.service_filter.get_or_insert_with(|| {
10466 fidl::new_empty!(fidl_fuchsia_bluetooth__common::Uuid, D)
10467 });
10468 fidl::decode!(
10469 fidl_fuchsia_bluetooth__common::Uuid,
10470 D,
10471 val_ref,
10472 decoder,
10473 inner_offset,
10474 inner_depth
10475 )?;
10476 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10477 {
10478 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10479 }
10480 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10481 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10482 }
10483 }
10484
10485 next_offset += envelope_size;
10486
10487 while next_offset < end_offset {
10489 _next_ordinal_to_read += 1;
10490 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10491 next_offset += envelope_size;
10492 }
10493
10494 Ok(())
10495 }
10496 }
10497
10498 impl ConnectionTransferPeriodicAdvertisingSyncRequest {
10499 #[inline(always)]
10500 fn max_ordinal_present(&self) -> u64 {
10501 if let Some(_) = self.service_data {
10502 return 2;
10503 }
10504 if let Some(_) = self.sync_id {
10505 return 1;
10506 }
10507 0
10508 }
10509 }
10510
10511 impl fidl::encoding::ValueTypeMarker for ConnectionTransferPeriodicAdvertisingSyncRequest {
10512 type Borrowed<'a> = &'a Self;
10513 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
10514 value
10515 }
10516 }
10517
10518 unsafe impl fidl::encoding::TypeMarker for ConnectionTransferPeriodicAdvertisingSyncRequest {
10519 type Owned = Self;
10520
10521 #[inline(always)]
10522 fn inline_align(_context: fidl::encoding::Context) -> usize {
10523 8
10524 }
10525
10526 #[inline(always)]
10527 fn inline_size(_context: fidl::encoding::Context) -> usize {
10528 16
10529 }
10530 }
10531
10532 unsafe impl<D: fidl::encoding::ResourceDialect>
10533 fidl::encoding::Encode<ConnectionTransferPeriodicAdvertisingSyncRequest, D>
10534 for &ConnectionTransferPeriodicAdvertisingSyncRequest
10535 {
10536 unsafe fn encode(
10537 self,
10538 encoder: &mut fidl::encoding::Encoder<'_, D>,
10539 offset: usize,
10540 mut depth: fidl::encoding::Depth,
10541 ) -> fidl::Result<()> {
10542 encoder.debug_check_bounds::<ConnectionTransferPeriodicAdvertisingSyncRequest>(offset);
10543 let max_ordinal: u64 = self.max_ordinal_present();
10545 encoder.write_num(max_ordinal, offset);
10546 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
10547 if max_ordinal == 0 {
10549 return Ok(());
10550 }
10551 depth.increment()?;
10552 let envelope_size = 8;
10553 let bytes_len = max_ordinal as usize * envelope_size;
10554 #[allow(unused_variables)]
10555 let offset = encoder.out_of_line_offset(bytes_len);
10556 let mut _prev_end_offset: usize = 0;
10557 if 1 > max_ordinal {
10558 return Ok(());
10559 }
10560
10561 let cur_offset: usize = (1 - 1) * envelope_size;
10564
10565 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10567
10568 fidl::encoding::encode_in_envelope_optional::<PeriodicAdvertisingSyncId, D>(
10573 self.sync_id
10574 .as_ref()
10575 .map(<PeriodicAdvertisingSyncId as fidl::encoding::ValueTypeMarker>::borrow),
10576 encoder,
10577 offset + cur_offset,
10578 depth,
10579 )?;
10580
10581 _prev_end_offset = cur_offset + envelope_size;
10582 if 2 > max_ordinal {
10583 return Ok(());
10584 }
10585
10586 let cur_offset: usize = (2 - 1) * envelope_size;
10589
10590 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10592
10593 fidl::encoding::encode_in_envelope_optional::<u16, D>(
10598 self.service_data.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
10599 encoder,
10600 offset + cur_offset,
10601 depth,
10602 )?;
10603
10604 _prev_end_offset = cur_offset + envelope_size;
10605
10606 Ok(())
10607 }
10608 }
10609
10610 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
10611 for ConnectionTransferPeriodicAdvertisingSyncRequest
10612 {
10613 #[inline(always)]
10614 fn new_empty() -> Self {
10615 Self::default()
10616 }
10617
10618 unsafe fn decode(
10619 &mut self,
10620 decoder: &mut fidl::encoding::Decoder<'_, D>,
10621 offset: usize,
10622 mut depth: fidl::encoding::Depth,
10623 ) -> fidl::Result<()> {
10624 decoder.debug_check_bounds::<Self>(offset);
10625 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
10626 None => return Err(fidl::Error::NotNullable),
10627 Some(len) => len,
10628 };
10629 if len == 0 {
10631 return Ok(());
10632 };
10633 depth.increment()?;
10634 let envelope_size = 8;
10635 let bytes_len = len * envelope_size;
10636 let offset = decoder.out_of_line_offset(bytes_len)?;
10637 let mut _next_ordinal_to_read = 0;
10639 let mut next_offset = offset;
10640 let end_offset = offset + bytes_len;
10641 _next_ordinal_to_read += 1;
10642 if next_offset >= end_offset {
10643 return Ok(());
10644 }
10645
10646 while _next_ordinal_to_read < 1 {
10648 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10649 _next_ordinal_to_read += 1;
10650 next_offset += envelope_size;
10651 }
10652
10653 let next_out_of_line = decoder.next_out_of_line();
10654 let handles_before = decoder.remaining_handles();
10655 if let Some((inlined, num_bytes, num_handles)) =
10656 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10657 {
10658 let member_inline_size =
10659 <PeriodicAdvertisingSyncId as fidl::encoding::TypeMarker>::inline_size(
10660 decoder.context,
10661 );
10662 if inlined != (member_inline_size <= 4) {
10663 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10664 }
10665 let inner_offset;
10666 let mut inner_depth = depth.clone();
10667 if inlined {
10668 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10669 inner_offset = next_offset;
10670 } else {
10671 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10672 inner_depth.increment()?;
10673 }
10674 let val_ref = self
10675 .sync_id
10676 .get_or_insert_with(|| fidl::new_empty!(PeriodicAdvertisingSyncId, D));
10677 fidl::decode!(
10678 PeriodicAdvertisingSyncId,
10679 D,
10680 val_ref,
10681 decoder,
10682 inner_offset,
10683 inner_depth
10684 )?;
10685 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10686 {
10687 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10688 }
10689 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10690 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10691 }
10692 }
10693
10694 next_offset += envelope_size;
10695 _next_ordinal_to_read += 1;
10696 if next_offset >= end_offset {
10697 return Ok(());
10698 }
10699
10700 while _next_ordinal_to_read < 2 {
10702 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10703 _next_ordinal_to_read += 1;
10704 next_offset += envelope_size;
10705 }
10706
10707 let next_out_of_line = decoder.next_out_of_line();
10708 let handles_before = decoder.remaining_handles();
10709 if let Some((inlined, num_bytes, num_handles)) =
10710 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10711 {
10712 let member_inline_size =
10713 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
10714 if inlined != (member_inline_size <= 4) {
10715 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10716 }
10717 let inner_offset;
10718 let mut inner_depth = depth.clone();
10719 if inlined {
10720 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10721 inner_offset = next_offset;
10722 } else {
10723 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10724 inner_depth.increment()?;
10725 }
10726 let val_ref = self.service_data.get_or_insert_with(|| fidl::new_empty!(u16, D));
10727 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
10728 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10729 {
10730 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10731 }
10732 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10733 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10734 }
10735 }
10736
10737 next_offset += envelope_size;
10738
10739 while next_offset < end_offset {
10741 _next_ordinal_to_read += 1;
10742 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10743 next_offset += envelope_size;
10744 }
10745
10746 Ok(())
10747 }
10748 }
10749
10750 impl Extended {
10751 #[inline(always)]
10752 fn max_ordinal_present(&self) -> u64 {
10753 0
10754 }
10755 }
10756
10757 impl fidl::encoding::ValueTypeMarker for Extended {
10758 type Borrowed<'a> = &'a Self;
10759 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
10760 value
10761 }
10762 }
10763
10764 unsafe impl fidl::encoding::TypeMarker for Extended {
10765 type Owned = Self;
10766
10767 #[inline(always)]
10768 fn inline_align(_context: fidl::encoding::Context) -> usize {
10769 8
10770 }
10771
10772 #[inline(always)]
10773 fn inline_size(_context: fidl::encoding::Context) -> usize {
10774 16
10775 }
10776 }
10777
10778 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Extended, D> for &Extended {
10779 unsafe fn encode(
10780 self,
10781 encoder: &mut fidl::encoding::Encoder<'_, D>,
10782 offset: usize,
10783 mut depth: fidl::encoding::Depth,
10784 ) -> fidl::Result<()> {
10785 encoder.debug_check_bounds::<Extended>(offset);
10786 let max_ordinal: u64 = self.max_ordinal_present();
10788 encoder.write_num(max_ordinal, offset);
10789 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
10790 if max_ordinal == 0 {
10792 return Ok(());
10793 }
10794 depth.increment()?;
10795 let envelope_size = 8;
10796 let bytes_len = max_ordinal as usize * envelope_size;
10797 #[allow(unused_variables)]
10798 let offset = encoder.out_of_line_offset(bytes_len);
10799 let mut _prev_end_offset: usize = 0;
10800
10801 Ok(())
10802 }
10803 }
10804
10805 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Extended {
10806 #[inline(always)]
10807 fn new_empty() -> Self {
10808 Self::default()
10809 }
10810
10811 unsafe fn decode(
10812 &mut self,
10813 decoder: &mut fidl::encoding::Decoder<'_, D>,
10814 offset: usize,
10815 mut depth: fidl::encoding::Depth,
10816 ) -> fidl::Result<()> {
10817 decoder.debug_check_bounds::<Self>(offset);
10818 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
10819 None => return Err(fidl::Error::NotNullable),
10820 Some(len) => len,
10821 };
10822 if len == 0 {
10824 return Ok(());
10825 };
10826 depth.increment()?;
10827 let envelope_size = 8;
10828 let bytes_len = len * envelope_size;
10829 let offset = decoder.out_of_line_offset(bytes_len)?;
10830 let mut _next_ordinal_to_read = 0;
10832 let mut next_offset = offset;
10833 let end_offset = offset + bytes_len;
10834
10835 while next_offset < end_offset {
10837 _next_ordinal_to_read += 1;
10838 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10839 next_offset += envelope_size;
10840 }
10841
10842 Ok(())
10843 }
10844 }
10845
10846 impl Filter {
10847 #[inline(always)]
10848 fn max_ordinal_present(&self) -> u64 {
10849 if let Some(_) = self.solicitation_uuid {
10850 return 7;
10851 }
10852 if let Some(_) = self.max_path_loss {
10853 return 6;
10854 }
10855 if let Some(_) = self.name {
10856 return 5;
10857 }
10858 if let Some(_) = self.connectable {
10859 return 4;
10860 }
10861 if let Some(_) = self.manufacturer_id {
10862 return 3;
10863 }
10864 if let Some(_) = self.service_data_uuid {
10865 return 2;
10866 }
10867 if let Some(_) = self.service_uuid {
10868 return 1;
10869 }
10870 0
10871 }
10872 }
10873
10874 impl fidl::encoding::ValueTypeMarker for Filter {
10875 type Borrowed<'a> = &'a Self;
10876 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
10877 value
10878 }
10879 }
10880
10881 unsafe impl fidl::encoding::TypeMarker for Filter {
10882 type Owned = Self;
10883
10884 #[inline(always)]
10885 fn inline_align(_context: fidl::encoding::Context) -> usize {
10886 8
10887 }
10888
10889 #[inline(always)]
10890 fn inline_size(_context: fidl::encoding::Context) -> usize {
10891 16
10892 }
10893 }
10894
10895 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Filter, D> for &Filter {
10896 unsafe fn encode(
10897 self,
10898 encoder: &mut fidl::encoding::Encoder<'_, D>,
10899 offset: usize,
10900 mut depth: fidl::encoding::Depth,
10901 ) -> fidl::Result<()> {
10902 encoder.debug_check_bounds::<Filter>(offset);
10903 let max_ordinal: u64 = self.max_ordinal_present();
10905 encoder.write_num(max_ordinal, offset);
10906 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
10907 if max_ordinal == 0 {
10909 return Ok(());
10910 }
10911 depth.increment()?;
10912 let envelope_size = 8;
10913 let bytes_len = max_ordinal as usize * envelope_size;
10914 #[allow(unused_variables)]
10915 let offset = encoder.out_of_line_offset(bytes_len);
10916 let mut _prev_end_offset: usize = 0;
10917 if 1 > max_ordinal {
10918 return Ok(());
10919 }
10920
10921 let cur_offset: usize = (1 - 1) * envelope_size;
10924
10925 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10927
10928 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_bluetooth__common::Uuid, D>(
10933 self.service_uuid.as_ref().map(<fidl_fuchsia_bluetooth__common::Uuid as fidl::encoding::ValueTypeMarker>::borrow),
10934 encoder, offset + cur_offset, depth
10935 )?;
10936
10937 _prev_end_offset = cur_offset + envelope_size;
10938 if 2 > max_ordinal {
10939 return Ok(());
10940 }
10941
10942 let cur_offset: usize = (2 - 1) * envelope_size;
10945
10946 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10948
10949 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_bluetooth__common::Uuid, D>(
10954 self.service_data_uuid.as_ref().map(<fidl_fuchsia_bluetooth__common::Uuid as fidl::encoding::ValueTypeMarker>::borrow),
10955 encoder, offset + cur_offset, depth
10956 )?;
10957
10958 _prev_end_offset = cur_offset + envelope_size;
10959 if 3 > max_ordinal {
10960 return Ok(());
10961 }
10962
10963 let cur_offset: usize = (3 - 1) * envelope_size;
10966
10967 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10969
10970 fidl::encoding::encode_in_envelope_optional::<u16, D>(
10975 self.manufacturer_id.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
10976 encoder,
10977 offset + cur_offset,
10978 depth,
10979 )?;
10980
10981 _prev_end_offset = cur_offset + envelope_size;
10982 if 4 > max_ordinal {
10983 return Ok(());
10984 }
10985
10986 let cur_offset: usize = (4 - 1) * envelope_size;
10989
10990 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10992
10993 fidl::encoding::encode_in_envelope_optional::<bool, D>(
10998 self.connectable.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
10999 encoder,
11000 offset + cur_offset,
11001 depth,
11002 )?;
11003
11004 _prev_end_offset = cur_offset + envelope_size;
11005 if 5 > max_ordinal {
11006 return Ok(());
11007 }
11008
11009 let cur_offset: usize = (5 - 1) * envelope_size;
11012
11013 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11015
11016 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<248>, D>(
11021 self.name.as_ref().map(
11022 <fidl::encoding::BoundedString<248> as fidl::encoding::ValueTypeMarker>::borrow,
11023 ),
11024 encoder,
11025 offset + cur_offset,
11026 depth,
11027 )?;
11028
11029 _prev_end_offset = cur_offset + envelope_size;
11030 if 6 > max_ordinal {
11031 return Ok(());
11032 }
11033
11034 let cur_offset: usize = (6 - 1) * envelope_size;
11037
11038 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11040
11041 fidl::encoding::encode_in_envelope_optional::<i8, D>(
11046 self.max_path_loss.as_ref().map(<i8 as fidl::encoding::ValueTypeMarker>::borrow),
11047 encoder,
11048 offset + cur_offset,
11049 depth,
11050 )?;
11051
11052 _prev_end_offset = cur_offset + envelope_size;
11053 if 7 > max_ordinal {
11054 return Ok(());
11055 }
11056
11057 let cur_offset: usize = (7 - 1) * envelope_size;
11060
11061 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11063
11064 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_bluetooth__common::Uuid, D>(
11069 self.solicitation_uuid.as_ref().map(<fidl_fuchsia_bluetooth__common::Uuid as fidl::encoding::ValueTypeMarker>::borrow),
11070 encoder, offset + cur_offset, depth
11071 )?;
11072
11073 _prev_end_offset = cur_offset + envelope_size;
11074
11075 Ok(())
11076 }
11077 }
11078
11079 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Filter {
11080 #[inline(always)]
11081 fn new_empty() -> Self {
11082 Self::default()
11083 }
11084
11085 unsafe fn decode(
11086 &mut self,
11087 decoder: &mut fidl::encoding::Decoder<'_, D>,
11088 offset: usize,
11089 mut depth: fidl::encoding::Depth,
11090 ) -> fidl::Result<()> {
11091 decoder.debug_check_bounds::<Self>(offset);
11092 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
11093 None => return Err(fidl::Error::NotNullable),
11094 Some(len) => len,
11095 };
11096 if len == 0 {
11098 return Ok(());
11099 };
11100 depth.increment()?;
11101 let envelope_size = 8;
11102 let bytes_len = len * envelope_size;
11103 let offset = decoder.out_of_line_offset(bytes_len)?;
11104 let mut _next_ordinal_to_read = 0;
11106 let mut next_offset = offset;
11107 let end_offset = offset + bytes_len;
11108 _next_ordinal_to_read += 1;
11109 if next_offset >= end_offset {
11110 return Ok(());
11111 }
11112
11113 while _next_ordinal_to_read < 1 {
11115 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11116 _next_ordinal_to_read += 1;
11117 next_offset += envelope_size;
11118 }
11119
11120 let next_out_of_line = decoder.next_out_of_line();
11121 let handles_before = decoder.remaining_handles();
11122 if let Some((inlined, num_bytes, num_handles)) =
11123 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11124 {
11125 let member_inline_size = <fidl_fuchsia_bluetooth__common::Uuid as fidl::encoding::TypeMarker>::inline_size(decoder.context);
11126 if inlined != (member_inline_size <= 4) {
11127 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11128 }
11129 let inner_offset;
11130 let mut inner_depth = depth.clone();
11131 if inlined {
11132 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11133 inner_offset = next_offset;
11134 } else {
11135 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11136 inner_depth.increment()?;
11137 }
11138 let val_ref = self.service_uuid.get_or_insert_with(|| {
11139 fidl::new_empty!(fidl_fuchsia_bluetooth__common::Uuid, D)
11140 });
11141 fidl::decode!(
11142 fidl_fuchsia_bluetooth__common::Uuid,
11143 D,
11144 val_ref,
11145 decoder,
11146 inner_offset,
11147 inner_depth
11148 )?;
11149 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11150 {
11151 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11152 }
11153 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11154 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11155 }
11156 }
11157
11158 next_offset += envelope_size;
11159 _next_ordinal_to_read += 1;
11160 if next_offset >= end_offset {
11161 return Ok(());
11162 }
11163
11164 while _next_ordinal_to_read < 2 {
11166 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11167 _next_ordinal_to_read += 1;
11168 next_offset += envelope_size;
11169 }
11170
11171 let next_out_of_line = decoder.next_out_of_line();
11172 let handles_before = decoder.remaining_handles();
11173 if let Some((inlined, num_bytes, num_handles)) =
11174 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11175 {
11176 let member_inline_size = <fidl_fuchsia_bluetooth__common::Uuid as fidl::encoding::TypeMarker>::inline_size(decoder.context);
11177 if inlined != (member_inline_size <= 4) {
11178 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11179 }
11180 let inner_offset;
11181 let mut inner_depth = depth.clone();
11182 if inlined {
11183 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11184 inner_offset = next_offset;
11185 } else {
11186 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11187 inner_depth.increment()?;
11188 }
11189 let val_ref = self.service_data_uuid.get_or_insert_with(|| {
11190 fidl::new_empty!(fidl_fuchsia_bluetooth__common::Uuid, D)
11191 });
11192 fidl::decode!(
11193 fidl_fuchsia_bluetooth__common::Uuid,
11194 D,
11195 val_ref,
11196 decoder,
11197 inner_offset,
11198 inner_depth
11199 )?;
11200 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11201 {
11202 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11203 }
11204 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11205 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11206 }
11207 }
11208
11209 next_offset += envelope_size;
11210 _next_ordinal_to_read += 1;
11211 if next_offset >= end_offset {
11212 return Ok(());
11213 }
11214
11215 while _next_ordinal_to_read < 3 {
11217 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11218 _next_ordinal_to_read += 1;
11219 next_offset += envelope_size;
11220 }
11221
11222 let next_out_of_line = decoder.next_out_of_line();
11223 let handles_before = decoder.remaining_handles();
11224 if let Some((inlined, num_bytes, num_handles)) =
11225 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11226 {
11227 let member_inline_size =
11228 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
11229 if inlined != (member_inline_size <= 4) {
11230 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11231 }
11232 let inner_offset;
11233 let mut inner_depth = depth.clone();
11234 if inlined {
11235 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11236 inner_offset = next_offset;
11237 } else {
11238 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11239 inner_depth.increment()?;
11240 }
11241 let val_ref = self.manufacturer_id.get_or_insert_with(|| fidl::new_empty!(u16, D));
11242 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
11243 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11244 {
11245 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11246 }
11247 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11248 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11249 }
11250 }
11251
11252 next_offset += envelope_size;
11253 _next_ordinal_to_read += 1;
11254 if next_offset >= end_offset {
11255 return Ok(());
11256 }
11257
11258 while _next_ordinal_to_read < 4 {
11260 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11261 _next_ordinal_to_read += 1;
11262 next_offset += envelope_size;
11263 }
11264
11265 let next_out_of_line = decoder.next_out_of_line();
11266 let handles_before = decoder.remaining_handles();
11267 if let Some((inlined, num_bytes, num_handles)) =
11268 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11269 {
11270 let member_inline_size =
11271 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
11272 if inlined != (member_inline_size <= 4) {
11273 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11274 }
11275 let inner_offset;
11276 let mut inner_depth = depth.clone();
11277 if inlined {
11278 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11279 inner_offset = next_offset;
11280 } else {
11281 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11282 inner_depth.increment()?;
11283 }
11284 let val_ref = self.connectable.get_or_insert_with(|| fidl::new_empty!(bool, D));
11285 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
11286 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11287 {
11288 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11289 }
11290 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11291 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11292 }
11293 }
11294
11295 next_offset += envelope_size;
11296 _next_ordinal_to_read += 1;
11297 if next_offset >= end_offset {
11298 return Ok(());
11299 }
11300
11301 while _next_ordinal_to_read < 5 {
11303 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11304 _next_ordinal_to_read += 1;
11305 next_offset += envelope_size;
11306 }
11307
11308 let next_out_of_line = decoder.next_out_of_line();
11309 let handles_before = decoder.remaining_handles();
11310 if let Some((inlined, num_bytes, num_handles)) =
11311 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11312 {
11313 let member_inline_size =
11314 <fidl::encoding::BoundedString<248> as fidl::encoding::TypeMarker>::inline_size(
11315 decoder.context,
11316 );
11317 if inlined != (member_inline_size <= 4) {
11318 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11319 }
11320 let inner_offset;
11321 let mut inner_depth = depth.clone();
11322 if inlined {
11323 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11324 inner_offset = next_offset;
11325 } else {
11326 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11327 inner_depth.increment()?;
11328 }
11329 let val_ref = self
11330 .name
11331 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<248>, D));
11332 fidl::decode!(
11333 fidl::encoding::BoundedString<248>,
11334 D,
11335 val_ref,
11336 decoder,
11337 inner_offset,
11338 inner_depth
11339 )?;
11340 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11341 {
11342 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11343 }
11344 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11345 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11346 }
11347 }
11348
11349 next_offset += envelope_size;
11350 _next_ordinal_to_read += 1;
11351 if next_offset >= end_offset {
11352 return Ok(());
11353 }
11354
11355 while _next_ordinal_to_read < 6 {
11357 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11358 _next_ordinal_to_read += 1;
11359 next_offset += envelope_size;
11360 }
11361
11362 let next_out_of_line = decoder.next_out_of_line();
11363 let handles_before = decoder.remaining_handles();
11364 if let Some((inlined, num_bytes, num_handles)) =
11365 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11366 {
11367 let member_inline_size =
11368 <i8 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
11369 if inlined != (member_inline_size <= 4) {
11370 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11371 }
11372 let inner_offset;
11373 let mut inner_depth = depth.clone();
11374 if inlined {
11375 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11376 inner_offset = next_offset;
11377 } else {
11378 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11379 inner_depth.increment()?;
11380 }
11381 let val_ref = self.max_path_loss.get_or_insert_with(|| fidl::new_empty!(i8, D));
11382 fidl::decode!(i8, D, val_ref, decoder, inner_offset, inner_depth)?;
11383 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11384 {
11385 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11386 }
11387 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11388 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11389 }
11390 }
11391
11392 next_offset += envelope_size;
11393 _next_ordinal_to_read += 1;
11394 if next_offset >= end_offset {
11395 return Ok(());
11396 }
11397
11398 while _next_ordinal_to_read < 7 {
11400 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11401 _next_ordinal_to_read += 1;
11402 next_offset += envelope_size;
11403 }
11404
11405 let next_out_of_line = decoder.next_out_of_line();
11406 let handles_before = decoder.remaining_handles();
11407 if let Some((inlined, num_bytes, num_handles)) =
11408 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11409 {
11410 let member_inline_size = <fidl_fuchsia_bluetooth__common::Uuid as fidl::encoding::TypeMarker>::inline_size(decoder.context);
11411 if inlined != (member_inline_size <= 4) {
11412 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11413 }
11414 let inner_offset;
11415 let mut inner_depth = depth.clone();
11416 if inlined {
11417 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11418 inner_offset = next_offset;
11419 } else {
11420 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11421 inner_depth.increment()?;
11422 }
11423 let val_ref = self.solicitation_uuid.get_or_insert_with(|| {
11424 fidl::new_empty!(fidl_fuchsia_bluetooth__common::Uuid, D)
11425 });
11426 fidl::decode!(
11427 fidl_fuchsia_bluetooth__common::Uuid,
11428 D,
11429 val_ref,
11430 decoder,
11431 inner_offset,
11432 inner_depth
11433 )?;
11434 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11435 {
11436 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11437 }
11438 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11439 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11440 }
11441 }
11442
11443 next_offset += envelope_size;
11444
11445 while next_offset < end_offset {
11447 _next_ordinal_to_read += 1;
11448 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11449 next_offset += envelope_size;
11450 }
11451
11452 Ok(())
11453 }
11454 }
11455
11456 impl IsochronousStreamOnEstablishedRequest {
11457 #[inline(always)]
11458 fn max_ordinal_present(&self) -> u64 {
11459 if let Some(_) = self.established_params {
11460 return 2;
11461 }
11462 if let Some(_) = self.result {
11463 return 1;
11464 }
11465 0
11466 }
11467 }
11468
11469 impl fidl::encoding::ValueTypeMarker for IsochronousStreamOnEstablishedRequest {
11470 type Borrowed<'a> = &'a Self;
11471 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
11472 value
11473 }
11474 }
11475
11476 unsafe impl fidl::encoding::TypeMarker for IsochronousStreamOnEstablishedRequest {
11477 type Owned = Self;
11478
11479 #[inline(always)]
11480 fn inline_align(_context: fidl::encoding::Context) -> usize {
11481 8
11482 }
11483
11484 #[inline(always)]
11485 fn inline_size(_context: fidl::encoding::Context) -> usize {
11486 16
11487 }
11488 }
11489
11490 unsafe impl<D: fidl::encoding::ResourceDialect>
11491 fidl::encoding::Encode<IsochronousStreamOnEstablishedRequest, D>
11492 for &IsochronousStreamOnEstablishedRequest
11493 {
11494 unsafe fn encode(
11495 self,
11496 encoder: &mut fidl::encoding::Encoder<'_, D>,
11497 offset: usize,
11498 mut depth: fidl::encoding::Depth,
11499 ) -> fidl::Result<()> {
11500 encoder.debug_check_bounds::<IsochronousStreamOnEstablishedRequest>(offset);
11501 let max_ordinal: u64 = self.max_ordinal_present();
11503 encoder.write_num(max_ordinal, offset);
11504 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
11505 if max_ordinal == 0 {
11507 return Ok(());
11508 }
11509 depth.increment()?;
11510 let envelope_size = 8;
11511 let bytes_len = max_ordinal as usize * envelope_size;
11512 #[allow(unused_variables)]
11513 let offset = encoder.out_of_line_offset(bytes_len);
11514 let mut _prev_end_offset: usize = 0;
11515 if 1 > max_ordinal {
11516 return Ok(());
11517 }
11518
11519 let cur_offset: usize = (1 - 1) * envelope_size;
11522
11523 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11525
11526 fidl::encoding::encode_in_envelope_optional::<i32, D>(
11531 self.result.as_ref().map(<i32 as fidl::encoding::ValueTypeMarker>::borrow),
11532 encoder,
11533 offset + cur_offset,
11534 depth,
11535 )?;
11536
11537 _prev_end_offset = cur_offset + envelope_size;
11538 if 2 > max_ordinal {
11539 return Ok(());
11540 }
11541
11542 let cur_offset: usize = (2 - 1) * envelope_size;
11545
11546 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11548
11549 fidl::encoding::encode_in_envelope_optional::<CisEstablishedParameters, D>(
11554 self.established_params
11555 .as_ref()
11556 .map(<CisEstablishedParameters as fidl::encoding::ValueTypeMarker>::borrow),
11557 encoder,
11558 offset + cur_offset,
11559 depth,
11560 )?;
11561
11562 _prev_end_offset = cur_offset + envelope_size;
11563
11564 Ok(())
11565 }
11566 }
11567
11568 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
11569 for IsochronousStreamOnEstablishedRequest
11570 {
11571 #[inline(always)]
11572 fn new_empty() -> Self {
11573 Self::default()
11574 }
11575
11576 unsafe fn decode(
11577 &mut self,
11578 decoder: &mut fidl::encoding::Decoder<'_, D>,
11579 offset: usize,
11580 mut depth: fidl::encoding::Depth,
11581 ) -> fidl::Result<()> {
11582 decoder.debug_check_bounds::<Self>(offset);
11583 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
11584 None => return Err(fidl::Error::NotNullable),
11585 Some(len) => len,
11586 };
11587 if len == 0 {
11589 return Ok(());
11590 };
11591 depth.increment()?;
11592 let envelope_size = 8;
11593 let bytes_len = len * envelope_size;
11594 let offset = decoder.out_of_line_offset(bytes_len)?;
11595 let mut _next_ordinal_to_read = 0;
11597 let mut next_offset = offset;
11598 let end_offset = offset + bytes_len;
11599 _next_ordinal_to_read += 1;
11600 if next_offset >= end_offset {
11601 return Ok(());
11602 }
11603
11604 while _next_ordinal_to_read < 1 {
11606 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11607 _next_ordinal_to_read += 1;
11608 next_offset += envelope_size;
11609 }
11610
11611 let next_out_of_line = decoder.next_out_of_line();
11612 let handles_before = decoder.remaining_handles();
11613 if let Some((inlined, num_bytes, num_handles)) =
11614 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11615 {
11616 let member_inline_size =
11617 <i32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
11618 if inlined != (member_inline_size <= 4) {
11619 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11620 }
11621 let inner_offset;
11622 let mut inner_depth = depth.clone();
11623 if inlined {
11624 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11625 inner_offset = next_offset;
11626 } else {
11627 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11628 inner_depth.increment()?;
11629 }
11630 let val_ref = self.result.get_or_insert_with(|| fidl::new_empty!(i32, D));
11631 fidl::decode!(i32, D, val_ref, decoder, inner_offset, inner_depth)?;
11632 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11633 {
11634 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11635 }
11636 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11637 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11638 }
11639 }
11640
11641 next_offset += envelope_size;
11642 _next_ordinal_to_read += 1;
11643 if next_offset >= end_offset {
11644 return Ok(());
11645 }
11646
11647 while _next_ordinal_to_read < 2 {
11649 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11650 _next_ordinal_to_read += 1;
11651 next_offset += envelope_size;
11652 }
11653
11654 let next_out_of_line = decoder.next_out_of_line();
11655 let handles_before = decoder.remaining_handles();
11656 if let Some((inlined, num_bytes, num_handles)) =
11657 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11658 {
11659 let member_inline_size =
11660 <CisEstablishedParameters as fidl::encoding::TypeMarker>::inline_size(
11661 decoder.context,
11662 );
11663 if inlined != (member_inline_size <= 4) {
11664 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11665 }
11666 let inner_offset;
11667 let mut inner_depth = depth.clone();
11668 if inlined {
11669 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11670 inner_offset = next_offset;
11671 } else {
11672 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11673 inner_depth.increment()?;
11674 }
11675 let val_ref = self
11676 .established_params
11677 .get_or_insert_with(|| fidl::new_empty!(CisEstablishedParameters, D));
11678 fidl::decode!(
11679 CisEstablishedParameters,
11680 D,
11681 val_ref,
11682 decoder,
11683 inner_offset,
11684 inner_depth
11685 )?;
11686 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11687 {
11688 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11689 }
11690 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11691 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11692 }
11693 }
11694
11695 next_offset += envelope_size;
11696
11697 while next_offset < end_offset {
11699 _next_ordinal_to_read += 1;
11700 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11701 next_offset += envelope_size;
11702 }
11703
11704 Ok(())
11705 }
11706 }
11707
11708 impl IsochronousStreamSetupDataPathRequest {
11709 #[inline(always)]
11710 fn max_ordinal_present(&self) -> u64 {
11711 if let Some(_) = self.controller_delay {
11712 return 3;
11713 }
11714 if let Some(_) = self.codec_attributes {
11715 return 2;
11716 }
11717 if let Some(_) = self.data_direction {
11718 return 1;
11719 }
11720 0
11721 }
11722 }
11723
11724 impl fidl::encoding::ValueTypeMarker for IsochronousStreamSetupDataPathRequest {
11725 type Borrowed<'a> = &'a Self;
11726 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
11727 value
11728 }
11729 }
11730
11731 unsafe impl fidl::encoding::TypeMarker for IsochronousStreamSetupDataPathRequest {
11732 type Owned = Self;
11733
11734 #[inline(always)]
11735 fn inline_align(_context: fidl::encoding::Context) -> usize {
11736 8
11737 }
11738
11739 #[inline(always)]
11740 fn inline_size(_context: fidl::encoding::Context) -> usize {
11741 16
11742 }
11743 }
11744
11745 unsafe impl<D: fidl::encoding::ResourceDialect>
11746 fidl::encoding::Encode<IsochronousStreamSetupDataPathRequest, D>
11747 for &IsochronousStreamSetupDataPathRequest
11748 {
11749 unsafe fn encode(
11750 self,
11751 encoder: &mut fidl::encoding::Encoder<'_, D>,
11752 offset: usize,
11753 mut depth: fidl::encoding::Depth,
11754 ) -> fidl::Result<()> {
11755 encoder.debug_check_bounds::<IsochronousStreamSetupDataPathRequest>(offset);
11756 let max_ordinal: u64 = self.max_ordinal_present();
11758 encoder.write_num(max_ordinal, offset);
11759 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
11760 if max_ordinal == 0 {
11762 return Ok(());
11763 }
11764 depth.increment()?;
11765 let envelope_size = 8;
11766 let bytes_len = max_ordinal as usize * envelope_size;
11767 #[allow(unused_variables)]
11768 let offset = encoder.out_of_line_offset(bytes_len);
11769 let mut _prev_end_offset: usize = 0;
11770 if 1 > max_ordinal {
11771 return Ok(());
11772 }
11773
11774 let cur_offset: usize = (1 - 1) * envelope_size;
11777
11778 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11780
11781 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_bluetooth__common::DataDirection, D>(
11786 self.data_direction.as_ref().map(<fidl_fuchsia_bluetooth__common::DataDirection as fidl::encoding::ValueTypeMarker>::borrow),
11787 encoder, offset + cur_offset, depth
11788 )?;
11789
11790 _prev_end_offset = cur_offset + envelope_size;
11791 if 2 > max_ordinal {
11792 return Ok(());
11793 }
11794
11795 let cur_offset: usize = (2 - 1) * envelope_size;
11798
11799 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11801
11802 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_bluetooth__common::CodecAttributes, D>(
11807 self.codec_attributes.as_ref().map(<fidl_fuchsia_bluetooth__common::CodecAttributes as fidl::encoding::ValueTypeMarker>::borrow),
11808 encoder, offset + cur_offset, depth
11809 )?;
11810
11811 _prev_end_offset = cur_offset + envelope_size;
11812 if 3 > max_ordinal {
11813 return Ok(());
11814 }
11815
11816 let cur_offset: usize = (3 - 1) * envelope_size;
11819
11820 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11822
11823 fidl::encoding::encode_in_envelope_optional::<i64, D>(
11828 self.controller_delay
11829 .as_ref()
11830 .map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
11831 encoder,
11832 offset + cur_offset,
11833 depth,
11834 )?;
11835
11836 _prev_end_offset = cur_offset + envelope_size;
11837
11838 Ok(())
11839 }
11840 }
11841
11842 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
11843 for IsochronousStreamSetupDataPathRequest
11844 {
11845 #[inline(always)]
11846 fn new_empty() -> Self {
11847 Self::default()
11848 }
11849
11850 unsafe fn decode(
11851 &mut self,
11852 decoder: &mut fidl::encoding::Decoder<'_, D>,
11853 offset: usize,
11854 mut depth: fidl::encoding::Depth,
11855 ) -> fidl::Result<()> {
11856 decoder.debug_check_bounds::<Self>(offset);
11857 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
11858 None => return Err(fidl::Error::NotNullable),
11859 Some(len) => len,
11860 };
11861 if len == 0 {
11863 return Ok(());
11864 };
11865 depth.increment()?;
11866 let envelope_size = 8;
11867 let bytes_len = len * envelope_size;
11868 let offset = decoder.out_of_line_offset(bytes_len)?;
11869 let mut _next_ordinal_to_read = 0;
11871 let mut next_offset = offset;
11872 let end_offset = offset + bytes_len;
11873 _next_ordinal_to_read += 1;
11874 if next_offset >= end_offset {
11875 return Ok(());
11876 }
11877
11878 while _next_ordinal_to_read < 1 {
11880 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11881 _next_ordinal_to_read += 1;
11882 next_offset += envelope_size;
11883 }
11884
11885 let next_out_of_line = decoder.next_out_of_line();
11886 let handles_before = decoder.remaining_handles();
11887 if let Some((inlined, num_bytes, num_handles)) =
11888 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11889 {
11890 let member_inline_size = <fidl_fuchsia_bluetooth__common::DataDirection as fidl::encoding::TypeMarker>::inline_size(decoder.context);
11891 if inlined != (member_inline_size <= 4) {
11892 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11893 }
11894 let inner_offset;
11895 let mut inner_depth = depth.clone();
11896 if inlined {
11897 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11898 inner_offset = next_offset;
11899 } else {
11900 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11901 inner_depth.increment()?;
11902 }
11903 let val_ref = self.data_direction.get_or_insert_with(|| {
11904 fidl::new_empty!(fidl_fuchsia_bluetooth__common::DataDirection, D)
11905 });
11906 fidl::decode!(
11907 fidl_fuchsia_bluetooth__common::DataDirection,
11908 D,
11909 val_ref,
11910 decoder,
11911 inner_offset,
11912 inner_depth
11913 )?;
11914 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11915 {
11916 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11917 }
11918 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11919 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11920 }
11921 }
11922
11923 next_offset += envelope_size;
11924 _next_ordinal_to_read += 1;
11925 if next_offset >= end_offset {
11926 return Ok(());
11927 }
11928
11929 while _next_ordinal_to_read < 2 {
11931 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11932 _next_ordinal_to_read += 1;
11933 next_offset += envelope_size;
11934 }
11935
11936 let next_out_of_line = decoder.next_out_of_line();
11937 let handles_before = decoder.remaining_handles();
11938 if let Some((inlined, num_bytes, num_handles)) =
11939 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11940 {
11941 let member_inline_size = <fidl_fuchsia_bluetooth__common::CodecAttributes as fidl::encoding::TypeMarker>::inline_size(decoder.context);
11942 if inlined != (member_inline_size <= 4) {
11943 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11944 }
11945 let inner_offset;
11946 let mut inner_depth = depth.clone();
11947 if inlined {
11948 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11949 inner_offset = next_offset;
11950 } else {
11951 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11952 inner_depth.increment()?;
11953 }
11954 let val_ref = self.codec_attributes.get_or_insert_with(|| {
11955 fidl::new_empty!(fidl_fuchsia_bluetooth__common::CodecAttributes, D)
11956 });
11957 fidl::decode!(
11958 fidl_fuchsia_bluetooth__common::CodecAttributes,
11959 D,
11960 val_ref,
11961 decoder,
11962 inner_offset,
11963 inner_depth
11964 )?;
11965 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11966 {
11967 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11968 }
11969 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11970 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11971 }
11972 }
11973
11974 next_offset += envelope_size;
11975 _next_ordinal_to_read += 1;
11976 if next_offset >= end_offset {
11977 return Ok(());
11978 }
11979
11980 while _next_ordinal_to_read < 3 {
11982 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11983 _next_ordinal_to_read += 1;
11984 next_offset += envelope_size;
11985 }
11986
11987 let next_out_of_line = decoder.next_out_of_line();
11988 let handles_before = decoder.remaining_handles();
11989 if let Some((inlined, num_bytes, num_handles)) =
11990 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11991 {
11992 let member_inline_size =
11993 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
11994 if inlined != (member_inline_size <= 4) {
11995 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11996 }
11997 let inner_offset;
11998 let mut inner_depth = depth.clone();
11999 if inlined {
12000 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12001 inner_offset = next_offset;
12002 } else {
12003 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12004 inner_depth.increment()?;
12005 }
12006 let val_ref = self.controller_delay.get_or_insert_with(|| fidl::new_empty!(i64, D));
12007 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
12008 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12009 {
12010 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12011 }
12012 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12013 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12014 }
12015 }
12016
12017 next_offset += envelope_size;
12018
12019 while next_offset < end_offset {
12021 _next_ordinal_to_read += 1;
12022 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12023 next_offset += envelope_size;
12024 }
12025
12026 Ok(())
12027 }
12028 }
12029
12030 impl IsochronousStreamWriteRequest {
12031 #[inline(always)]
12032 fn max_ordinal_present(&self) -> u64 {
12033 if let Some(_) = self.data {
12034 return 1;
12035 }
12036 0
12037 }
12038 }
12039
12040 impl fidl::encoding::ValueTypeMarker for IsochronousStreamWriteRequest {
12041 type Borrowed<'a> = &'a Self;
12042 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
12043 value
12044 }
12045 }
12046
12047 unsafe impl fidl::encoding::TypeMarker for IsochronousStreamWriteRequest {
12048 type Owned = Self;
12049
12050 #[inline(always)]
12051 fn inline_align(_context: fidl::encoding::Context) -> usize {
12052 8
12053 }
12054
12055 #[inline(always)]
12056 fn inline_size(_context: fidl::encoding::Context) -> usize {
12057 16
12058 }
12059 }
12060
12061 unsafe impl<D: fidl::encoding::ResourceDialect>
12062 fidl::encoding::Encode<IsochronousStreamWriteRequest, D>
12063 for &IsochronousStreamWriteRequest
12064 {
12065 unsafe fn encode(
12066 self,
12067 encoder: &mut fidl::encoding::Encoder<'_, D>,
12068 offset: usize,
12069 mut depth: fidl::encoding::Depth,
12070 ) -> fidl::Result<()> {
12071 encoder.debug_check_bounds::<IsochronousStreamWriteRequest>(offset);
12072 let max_ordinal: u64 = self.max_ordinal_present();
12074 encoder.write_num(max_ordinal, offset);
12075 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
12076 if max_ordinal == 0 {
12078 return Ok(());
12079 }
12080 depth.increment()?;
12081 let envelope_size = 8;
12082 let bytes_len = max_ordinal as usize * envelope_size;
12083 #[allow(unused_variables)]
12084 let offset = encoder.out_of_line_offset(bytes_len);
12085 let mut _prev_end_offset: usize = 0;
12086 if 1 > max_ordinal {
12087 return Ok(());
12088 }
12089
12090 let cur_offset: usize = (1 - 1) * envelope_size;
12093
12094 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12096
12097 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u8, 4095>, D>(
12102 self.data.as_ref().map(
12103 <fidl::encoding::Vector<u8, 4095> as fidl::encoding::ValueTypeMarker>::borrow,
12104 ),
12105 encoder,
12106 offset + cur_offset,
12107 depth,
12108 )?;
12109
12110 _prev_end_offset = cur_offset + envelope_size;
12111
12112 Ok(())
12113 }
12114 }
12115
12116 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
12117 for IsochronousStreamWriteRequest
12118 {
12119 #[inline(always)]
12120 fn new_empty() -> Self {
12121 Self::default()
12122 }
12123
12124 unsafe fn decode(
12125 &mut self,
12126 decoder: &mut fidl::encoding::Decoder<'_, D>,
12127 offset: usize,
12128 mut depth: fidl::encoding::Depth,
12129 ) -> fidl::Result<()> {
12130 decoder.debug_check_bounds::<Self>(offset);
12131 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
12132 None => return Err(fidl::Error::NotNullable),
12133 Some(len) => len,
12134 };
12135 if len == 0 {
12137 return Ok(());
12138 };
12139 depth.increment()?;
12140 let envelope_size = 8;
12141 let bytes_len = len * envelope_size;
12142 let offset = decoder.out_of_line_offset(bytes_len)?;
12143 let mut _next_ordinal_to_read = 0;
12145 let mut next_offset = offset;
12146 let end_offset = offset + bytes_len;
12147 _next_ordinal_to_read += 1;
12148 if next_offset >= end_offset {
12149 return Ok(());
12150 }
12151
12152 while _next_ordinal_to_read < 1 {
12154 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12155 _next_ordinal_to_read += 1;
12156 next_offset += envelope_size;
12157 }
12158
12159 let next_out_of_line = decoder.next_out_of_line();
12160 let handles_before = decoder.remaining_handles();
12161 if let Some((inlined, num_bytes, num_handles)) =
12162 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12163 {
12164 let member_inline_size =
12165 <fidl::encoding::Vector<u8, 4095> as fidl::encoding::TypeMarker>::inline_size(
12166 decoder.context,
12167 );
12168 if inlined != (member_inline_size <= 4) {
12169 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12170 }
12171 let inner_offset;
12172 let mut inner_depth = depth.clone();
12173 if inlined {
12174 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12175 inner_offset = next_offset;
12176 } else {
12177 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12178 inner_depth.increment()?;
12179 }
12180 let val_ref = self
12181 .data
12182 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u8, 4095>, D));
12183 fidl::decode!(fidl::encoding::Vector<u8, 4095>, D, val_ref, decoder, inner_offset, inner_depth)?;
12184 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12185 {
12186 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12187 }
12188 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12189 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12190 }
12191 }
12192
12193 next_offset += envelope_size;
12194
12195 while next_offset < end_offset {
12197 _next_ordinal_to_read += 1;
12198 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12199 next_offset += envelope_size;
12200 }
12201
12202 Ok(())
12203 }
12204 }
12205
12206 impl IsochronousStreamReadResponse {
12207 #[inline(always)]
12208 fn max_ordinal_present(&self) -> u64 {
12209 if let Some(_) = self.timestamp {
12210 return 4;
12211 }
12212 if let Some(_) = self.status_flag {
12213 return 3;
12214 }
12215 if let Some(_) = self.sequence_number {
12216 return 2;
12217 }
12218 if let Some(_) = self.data {
12219 return 1;
12220 }
12221 0
12222 }
12223 }
12224
12225 impl fidl::encoding::ValueTypeMarker for IsochronousStreamReadResponse {
12226 type Borrowed<'a> = &'a Self;
12227 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
12228 value
12229 }
12230 }
12231
12232 unsafe impl fidl::encoding::TypeMarker for IsochronousStreamReadResponse {
12233 type Owned = Self;
12234
12235 #[inline(always)]
12236 fn inline_align(_context: fidl::encoding::Context) -> usize {
12237 8
12238 }
12239
12240 #[inline(always)]
12241 fn inline_size(_context: fidl::encoding::Context) -> usize {
12242 16
12243 }
12244 }
12245
12246 unsafe impl<D: fidl::encoding::ResourceDialect>
12247 fidl::encoding::Encode<IsochronousStreamReadResponse, D>
12248 for &IsochronousStreamReadResponse
12249 {
12250 unsafe fn encode(
12251 self,
12252 encoder: &mut fidl::encoding::Encoder<'_, D>,
12253 offset: usize,
12254 mut depth: fidl::encoding::Depth,
12255 ) -> fidl::Result<()> {
12256 encoder.debug_check_bounds::<IsochronousStreamReadResponse>(offset);
12257 let max_ordinal: u64 = self.max_ordinal_present();
12259 encoder.write_num(max_ordinal, offset);
12260 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
12261 if max_ordinal == 0 {
12263 return Ok(());
12264 }
12265 depth.increment()?;
12266 let envelope_size = 8;
12267 let bytes_len = max_ordinal as usize * envelope_size;
12268 #[allow(unused_variables)]
12269 let offset = encoder.out_of_line_offset(bytes_len);
12270 let mut _prev_end_offset: usize = 0;
12271 if 1 > max_ordinal {
12272 return Ok(());
12273 }
12274
12275 let cur_offset: usize = (1 - 1) * envelope_size;
12278
12279 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12281
12282 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u8>, D>(
12287 self.data.as_ref().map(<fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow),
12288 encoder, offset + cur_offset, depth
12289 )?;
12290
12291 _prev_end_offset = cur_offset + envelope_size;
12292 if 2 > max_ordinal {
12293 return Ok(());
12294 }
12295
12296 let cur_offset: usize = (2 - 1) * envelope_size;
12299
12300 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12302
12303 fidl::encoding::encode_in_envelope_optional::<u16, D>(
12308 self.sequence_number.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
12309 encoder,
12310 offset + cur_offset,
12311 depth,
12312 )?;
12313
12314 _prev_end_offset = cur_offset + envelope_size;
12315 if 3 > max_ordinal {
12316 return Ok(());
12317 }
12318
12319 let cur_offset: usize = (3 - 1) * envelope_size;
12322
12323 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12325
12326 fidl::encoding::encode_in_envelope_optional::<IsoPacketStatusFlag, D>(
12331 self.status_flag
12332 .as_ref()
12333 .map(<IsoPacketStatusFlag as fidl::encoding::ValueTypeMarker>::borrow),
12334 encoder,
12335 offset + cur_offset,
12336 depth,
12337 )?;
12338
12339 _prev_end_offset = cur_offset + envelope_size;
12340 if 4 > max_ordinal {
12341 return Ok(());
12342 }
12343
12344 let cur_offset: usize = (4 - 1) * envelope_size;
12347
12348 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12350
12351 fidl::encoding::encode_in_envelope_optional::<i64, D>(
12356 self.timestamp.as_ref().map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
12357 encoder,
12358 offset + cur_offset,
12359 depth,
12360 )?;
12361
12362 _prev_end_offset = cur_offset + envelope_size;
12363
12364 Ok(())
12365 }
12366 }
12367
12368 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
12369 for IsochronousStreamReadResponse
12370 {
12371 #[inline(always)]
12372 fn new_empty() -> Self {
12373 Self::default()
12374 }
12375
12376 unsafe fn decode(
12377 &mut self,
12378 decoder: &mut fidl::encoding::Decoder<'_, D>,
12379 offset: usize,
12380 mut depth: fidl::encoding::Depth,
12381 ) -> fidl::Result<()> {
12382 decoder.debug_check_bounds::<Self>(offset);
12383 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
12384 None => return Err(fidl::Error::NotNullable),
12385 Some(len) => len,
12386 };
12387 if len == 0 {
12389 return Ok(());
12390 };
12391 depth.increment()?;
12392 let envelope_size = 8;
12393 let bytes_len = len * envelope_size;
12394 let offset = decoder.out_of_line_offset(bytes_len)?;
12395 let mut _next_ordinal_to_read = 0;
12397 let mut next_offset = offset;
12398 let end_offset = offset + bytes_len;
12399 _next_ordinal_to_read += 1;
12400 if next_offset >= end_offset {
12401 return Ok(());
12402 }
12403
12404 while _next_ordinal_to_read < 1 {
12406 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12407 _next_ordinal_to_read += 1;
12408 next_offset += envelope_size;
12409 }
12410
12411 let next_out_of_line = decoder.next_out_of_line();
12412 let handles_before = decoder.remaining_handles();
12413 if let Some((inlined, num_bytes, num_handles)) =
12414 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12415 {
12416 let member_inline_size = <fidl::encoding::UnboundedVector<u8> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
12417 if inlined != (member_inline_size <= 4) {
12418 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12419 }
12420 let inner_offset;
12421 let mut inner_depth = depth.clone();
12422 if inlined {
12423 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12424 inner_offset = next_offset;
12425 } else {
12426 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12427 inner_depth.increment()?;
12428 }
12429 let val_ref = self.data.get_or_insert_with(|| {
12430 fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D)
12431 });
12432 fidl::decode!(
12433 fidl::encoding::UnboundedVector<u8>,
12434 D,
12435 val_ref,
12436 decoder,
12437 inner_offset,
12438 inner_depth
12439 )?;
12440 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12441 {
12442 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12443 }
12444 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12445 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12446 }
12447 }
12448
12449 next_offset += envelope_size;
12450 _next_ordinal_to_read += 1;
12451 if next_offset >= end_offset {
12452 return Ok(());
12453 }
12454
12455 while _next_ordinal_to_read < 2 {
12457 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12458 _next_ordinal_to_read += 1;
12459 next_offset += envelope_size;
12460 }
12461
12462 let next_out_of_line = decoder.next_out_of_line();
12463 let handles_before = decoder.remaining_handles();
12464 if let Some((inlined, num_bytes, num_handles)) =
12465 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12466 {
12467 let member_inline_size =
12468 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
12469 if inlined != (member_inline_size <= 4) {
12470 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12471 }
12472 let inner_offset;
12473 let mut inner_depth = depth.clone();
12474 if inlined {
12475 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12476 inner_offset = next_offset;
12477 } else {
12478 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12479 inner_depth.increment()?;
12480 }
12481 let val_ref = self.sequence_number.get_or_insert_with(|| fidl::new_empty!(u16, D));
12482 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
12483 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12484 {
12485 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12486 }
12487 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12488 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12489 }
12490 }
12491
12492 next_offset += envelope_size;
12493 _next_ordinal_to_read += 1;
12494 if next_offset >= end_offset {
12495 return Ok(());
12496 }
12497
12498 while _next_ordinal_to_read < 3 {
12500 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12501 _next_ordinal_to_read += 1;
12502 next_offset += envelope_size;
12503 }
12504
12505 let next_out_of_line = decoder.next_out_of_line();
12506 let handles_before = decoder.remaining_handles();
12507 if let Some((inlined, num_bytes, num_handles)) =
12508 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12509 {
12510 let member_inline_size =
12511 <IsoPacketStatusFlag as fidl::encoding::TypeMarker>::inline_size(
12512 decoder.context,
12513 );
12514 if inlined != (member_inline_size <= 4) {
12515 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12516 }
12517 let inner_offset;
12518 let mut inner_depth = depth.clone();
12519 if inlined {
12520 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12521 inner_offset = next_offset;
12522 } else {
12523 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12524 inner_depth.increment()?;
12525 }
12526 let val_ref = self
12527 .status_flag
12528 .get_or_insert_with(|| fidl::new_empty!(IsoPacketStatusFlag, D));
12529 fidl::decode!(IsoPacketStatusFlag, D, val_ref, decoder, inner_offset, inner_depth)?;
12530 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12531 {
12532 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12533 }
12534 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12535 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12536 }
12537 }
12538
12539 next_offset += envelope_size;
12540 _next_ordinal_to_read += 1;
12541 if next_offset >= end_offset {
12542 return Ok(());
12543 }
12544
12545 while _next_ordinal_to_read < 4 {
12547 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12548 _next_ordinal_to_read += 1;
12549 next_offset += envelope_size;
12550 }
12551
12552 let next_out_of_line = decoder.next_out_of_line();
12553 let handles_before = decoder.remaining_handles();
12554 if let Some((inlined, num_bytes, num_handles)) =
12555 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12556 {
12557 let member_inline_size =
12558 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
12559 if inlined != (member_inline_size <= 4) {
12560 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12561 }
12562 let inner_offset;
12563 let mut inner_depth = depth.clone();
12564 if inlined {
12565 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12566 inner_offset = next_offset;
12567 } else {
12568 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12569 inner_depth.increment()?;
12570 }
12571 let val_ref = self.timestamp.get_or_insert_with(|| fidl::new_empty!(i64, D));
12572 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
12573 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12574 {
12575 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12576 }
12577 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12578 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12579 }
12580 }
12581
12582 next_offset += envelope_size;
12583
12584 while next_offset < end_offset {
12586 _next_ordinal_to_read += 1;
12587 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12588 next_offset += envelope_size;
12589 }
12590
12591 Ok(())
12592 }
12593 }
12594
12595 impl Legacy {
12596 #[inline(always)]
12597 fn max_ordinal_present(&self) -> u64 {
12598 0
12599 }
12600 }
12601
12602 impl fidl::encoding::ValueTypeMarker for Legacy {
12603 type Borrowed<'a> = &'a Self;
12604 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
12605 value
12606 }
12607 }
12608
12609 unsafe impl fidl::encoding::TypeMarker for Legacy {
12610 type Owned = Self;
12611
12612 #[inline(always)]
12613 fn inline_align(_context: fidl::encoding::Context) -> usize {
12614 8
12615 }
12616
12617 #[inline(always)]
12618 fn inline_size(_context: fidl::encoding::Context) -> usize {
12619 16
12620 }
12621 }
12622
12623 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Legacy, D> for &Legacy {
12624 unsafe fn encode(
12625 self,
12626 encoder: &mut fidl::encoding::Encoder<'_, D>,
12627 offset: usize,
12628 mut depth: fidl::encoding::Depth,
12629 ) -> fidl::Result<()> {
12630 encoder.debug_check_bounds::<Legacy>(offset);
12631 let max_ordinal: u64 = self.max_ordinal_present();
12633 encoder.write_num(max_ordinal, offset);
12634 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
12635 if max_ordinal == 0 {
12637 return Ok(());
12638 }
12639 depth.increment()?;
12640 let envelope_size = 8;
12641 let bytes_len = max_ordinal as usize * envelope_size;
12642 #[allow(unused_variables)]
12643 let offset = encoder.out_of_line_offset(bytes_len);
12644 let mut _prev_end_offset: usize = 0;
12645
12646 Ok(())
12647 }
12648 }
12649
12650 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Legacy {
12651 #[inline(always)]
12652 fn new_empty() -> Self {
12653 Self::default()
12654 }
12655
12656 unsafe fn decode(
12657 &mut self,
12658 decoder: &mut fidl::encoding::Decoder<'_, D>,
12659 offset: usize,
12660 mut depth: fidl::encoding::Depth,
12661 ) -> fidl::Result<()> {
12662 decoder.debug_check_bounds::<Self>(offset);
12663 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
12664 None => return Err(fidl::Error::NotNullable),
12665 Some(len) => len,
12666 };
12667 if len == 0 {
12669 return Ok(());
12670 };
12671 depth.increment()?;
12672 let envelope_size = 8;
12673 let bytes_len = len * envelope_size;
12674 let offset = decoder.out_of_line_offset(bytes_len)?;
12675 let mut _next_ordinal_to_read = 0;
12677 let mut next_offset = offset;
12678 let end_offset = offset + bytes_len;
12679
12680 while next_offset < end_offset {
12682 _next_ordinal_to_read += 1;
12683 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12684 next_offset += envelope_size;
12685 }
12686
12687 Ok(())
12688 }
12689 }
12690
12691 impl Peer {
12692 #[inline(always)]
12693 fn max_ordinal_present(&self) -> u64 {
12694 if let Some(_) = self.periodic_advertising_interval {
12695 return 10;
12696 }
12697 if let Some(_) = self.advertising_sid {
12698 return 9;
12699 }
12700 if let Some(_) = self.last_updated {
12701 return 8;
12702 }
12703 if let Some(_) = self.bonded {
12704 return 7;
12705 }
12706 if let Some(_) = self.data {
12707 return 6;
12708 }
12709 if let Some(_) = self.name {
12710 return 5;
12711 }
12712 if let Some(_) = self.advertising_data {
12713 return 4;
12714 }
12715 if let Some(_) = self.rssi {
12716 return 3;
12717 }
12718 if let Some(_) = self.connectable {
12719 return 2;
12720 }
12721 if let Some(_) = self.id {
12722 return 1;
12723 }
12724 0
12725 }
12726 }
12727
12728 impl fidl::encoding::ValueTypeMarker for Peer {
12729 type Borrowed<'a> = &'a Self;
12730 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
12731 value
12732 }
12733 }
12734
12735 unsafe impl fidl::encoding::TypeMarker for Peer {
12736 type Owned = Self;
12737
12738 #[inline(always)]
12739 fn inline_align(_context: fidl::encoding::Context) -> usize {
12740 8
12741 }
12742
12743 #[inline(always)]
12744 fn inline_size(_context: fidl::encoding::Context) -> usize {
12745 16
12746 }
12747 }
12748
12749 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Peer, D> for &Peer {
12750 unsafe fn encode(
12751 self,
12752 encoder: &mut fidl::encoding::Encoder<'_, D>,
12753 offset: usize,
12754 mut depth: fidl::encoding::Depth,
12755 ) -> fidl::Result<()> {
12756 encoder.debug_check_bounds::<Peer>(offset);
12757 let max_ordinal: u64 = self.max_ordinal_present();
12759 encoder.write_num(max_ordinal, offset);
12760 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
12761 if max_ordinal == 0 {
12763 return Ok(());
12764 }
12765 depth.increment()?;
12766 let envelope_size = 8;
12767 let bytes_len = max_ordinal as usize * envelope_size;
12768 #[allow(unused_variables)]
12769 let offset = encoder.out_of_line_offset(bytes_len);
12770 let mut _prev_end_offset: usize = 0;
12771 if 1 > max_ordinal {
12772 return Ok(());
12773 }
12774
12775 let cur_offset: usize = (1 - 1) * envelope_size;
12778
12779 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12781
12782 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_bluetooth__common::PeerId, D>(
12787 self.id.as_ref().map(<fidl_fuchsia_bluetooth__common::PeerId as fidl::encoding::ValueTypeMarker>::borrow),
12788 encoder, offset + cur_offset, depth
12789 )?;
12790
12791 _prev_end_offset = cur_offset + envelope_size;
12792 if 2 > max_ordinal {
12793 return Ok(());
12794 }
12795
12796 let cur_offset: usize = (2 - 1) * envelope_size;
12799
12800 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12802
12803 fidl::encoding::encode_in_envelope_optional::<bool, D>(
12808 self.connectable.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
12809 encoder,
12810 offset + cur_offset,
12811 depth,
12812 )?;
12813
12814 _prev_end_offset = cur_offset + envelope_size;
12815 if 3 > max_ordinal {
12816 return Ok(());
12817 }
12818
12819 let cur_offset: usize = (3 - 1) * envelope_size;
12822
12823 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12825
12826 fidl::encoding::encode_in_envelope_optional::<i8, D>(
12831 self.rssi.as_ref().map(<i8 as fidl::encoding::ValueTypeMarker>::borrow),
12832 encoder,
12833 offset + cur_offset,
12834 depth,
12835 )?;
12836
12837 _prev_end_offset = cur_offset + envelope_size;
12838 if 4 > max_ordinal {
12839 return Ok(());
12840 }
12841
12842 let cur_offset: usize = (4 - 1) * envelope_size;
12845
12846 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12848
12849 fidl::encoding::encode_in_envelope_optional::<AdvertisingData, D>(
12854 self.advertising_data
12855 .as_ref()
12856 .map(<AdvertisingData as fidl::encoding::ValueTypeMarker>::borrow),
12857 encoder,
12858 offset + cur_offset,
12859 depth,
12860 )?;
12861
12862 _prev_end_offset = cur_offset + envelope_size;
12863 if 5 > max_ordinal {
12864 return Ok(());
12865 }
12866
12867 let cur_offset: usize = (5 - 1) * envelope_size;
12870
12871 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12873
12874 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<248>, D>(
12879 self.name.as_ref().map(
12880 <fidl::encoding::BoundedString<248> as fidl::encoding::ValueTypeMarker>::borrow,
12881 ),
12882 encoder,
12883 offset + cur_offset,
12884 depth,
12885 )?;
12886
12887 _prev_end_offset = cur_offset + envelope_size;
12888 if 6 > max_ordinal {
12889 return Ok(());
12890 }
12891
12892 let cur_offset: usize = (6 - 1) * envelope_size;
12895
12896 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12898
12899 fidl::encoding::encode_in_envelope_optional::<ScanData, D>(
12904 self.data.as_ref().map(<ScanData as fidl::encoding::ValueTypeMarker>::borrow),
12905 encoder,
12906 offset + cur_offset,
12907 depth,
12908 )?;
12909
12910 _prev_end_offset = cur_offset + envelope_size;
12911 if 7 > max_ordinal {
12912 return Ok(());
12913 }
12914
12915 let cur_offset: usize = (7 - 1) * envelope_size;
12918
12919 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12921
12922 fidl::encoding::encode_in_envelope_optional::<bool, D>(
12927 self.bonded.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
12928 encoder,
12929 offset + cur_offset,
12930 depth,
12931 )?;
12932
12933 _prev_end_offset = cur_offset + envelope_size;
12934 if 8 > max_ordinal {
12935 return Ok(());
12936 }
12937
12938 let cur_offset: usize = (8 - 1) * envelope_size;
12941
12942 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12944
12945 fidl::encoding::encode_in_envelope_optional::<i64, D>(
12950 self.last_updated.as_ref().map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
12951 encoder,
12952 offset + cur_offset,
12953 depth,
12954 )?;
12955
12956 _prev_end_offset = cur_offset + envelope_size;
12957 if 9 > max_ordinal {
12958 return Ok(());
12959 }
12960
12961 let cur_offset: usize = (9 - 1) * envelope_size;
12964
12965 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12967
12968 fidl::encoding::encode_in_envelope_optional::<u8, D>(
12973 self.advertising_sid.as_ref().map(<u8 as fidl::encoding::ValueTypeMarker>::borrow),
12974 encoder,
12975 offset + cur_offset,
12976 depth,
12977 )?;
12978
12979 _prev_end_offset = cur_offset + envelope_size;
12980 if 10 > max_ordinal {
12981 return Ok(());
12982 }
12983
12984 let cur_offset: usize = (10 - 1) * envelope_size;
12987
12988 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12990
12991 fidl::encoding::encode_in_envelope_optional::<u16, D>(
12996 self.periodic_advertising_interval
12997 .as_ref()
12998 .map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
12999 encoder,
13000 offset + cur_offset,
13001 depth,
13002 )?;
13003
13004 _prev_end_offset = cur_offset + envelope_size;
13005
13006 Ok(())
13007 }
13008 }
13009
13010 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Peer {
13011 #[inline(always)]
13012 fn new_empty() -> Self {
13013 Self::default()
13014 }
13015
13016 unsafe fn decode(
13017 &mut self,
13018 decoder: &mut fidl::encoding::Decoder<'_, D>,
13019 offset: usize,
13020 mut depth: fidl::encoding::Depth,
13021 ) -> fidl::Result<()> {
13022 decoder.debug_check_bounds::<Self>(offset);
13023 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
13024 None => return Err(fidl::Error::NotNullable),
13025 Some(len) => len,
13026 };
13027 if len == 0 {
13029 return Ok(());
13030 };
13031 depth.increment()?;
13032 let envelope_size = 8;
13033 let bytes_len = len * envelope_size;
13034 let offset = decoder.out_of_line_offset(bytes_len)?;
13035 let mut _next_ordinal_to_read = 0;
13037 let mut next_offset = offset;
13038 let end_offset = offset + bytes_len;
13039 _next_ordinal_to_read += 1;
13040 if next_offset >= end_offset {
13041 return Ok(());
13042 }
13043
13044 while _next_ordinal_to_read < 1 {
13046 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13047 _next_ordinal_to_read += 1;
13048 next_offset += envelope_size;
13049 }
13050
13051 let next_out_of_line = decoder.next_out_of_line();
13052 let handles_before = decoder.remaining_handles();
13053 if let Some((inlined, num_bytes, num_handles)) =
13054 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13055 {
13056 let member_inline_size = <fidl_fuchsia_bluetooth__common::PeerId as fidl::encoding::TypeMarker>::inline_size(decoder.context);
13057 if inlined != (member_inline_size <= 4) {
13058 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13059 }
13060 let inner_offset;
13061 let mut inner_depth = depth.clone();
13062 if inlined {
13063 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13064 inner_offset = next_offset;
13065 } else {
13066 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13067 inner_depth.increment()?;
13068 }
13069 let val_ref = self.id.get_or_insert_with(|| {
13070 fidl::new_empty!(fidl_fuchsia_bluetooth__common::PeerId, D)
13071 });
13072 fidl::decode!(
13073 fidl_fuchsia_bluetooth__common::PeerId,
13074 D,
13075 val_ref,
13076 decoder,
13077 inner_offset,
13078 inner_depth
13079 )?;
13080 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13081 {
13082 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13083 }
13084 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13085 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13086 }
13087 }
13088
13089 next_offset += envelope_size;
13090 _next_ordinal_to_read += 1;
13091 if next_offset >= end_offset {
13092 return Ok(());
13093 }
13094
13095 while _next_ordinal_to_read < 2 {
13097 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13098 _next_ordinal_to_read += 1;
13099 next_offset += envelope_size;
13100 }
13101
13102 let next_out_of_line = decoder.next_out_of_line();
13103 let handles_before = decoder.remaining_handles();
13104 if let Some((inlined, num_bytes, num_handles)) =
13105 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13106 {
13107 let member_inline_size =
13108 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
13109 if inlined != (member_inline_size <= 4) {
13110 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13111 }
13112 let inner_offset;
13113 let mut inner_depth = depth.clone();
13114 if inlined {
13115 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13116 inner_offset = next_offset;
13117 } else {
13118 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13119 inner_depth.increment()?;
13120 }
13121 let val_ref = self.connectable.get_or_insert_with(|| fidl::new_empty!(bool, D));
13122 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
13123 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13124 {
13125 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13126 }
13127 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13128 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13129 }
13130 }
13131
13132 next_offset += envelope_size;
13133 _next_ordinal_to_read += 1;
13134 if next_offset >= end_offset {
13135 return Ok(());
13136 }
13137
13138 while _next_ordinal_to_read < 3 {
13140 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13141 _next_ordinal_to_read += 1;
13142 next_offset += envelope_size;
13143 }
13144
13145 let next_out_of_line = decoder.next_out_of_line();
13146 let handles_before = decoder.remaining_handles();
13147 if let Some((inlined, num_bytes, num_handles)) =
13148 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13149 {
13150 let member_inline_size =
13151 <i8 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
13152 if inlined != (member_inline_size <= 4) {
13153 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13154 }
13155 let inner_offset;
13156 let mut inner_depth = depth.clone();
13157 if inlined {
13158 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13159 inner_offset = next_offset;
13160 } else {
13161 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13162 inner_depth.increment()?;
13163 }
13164 let val_ref = self.rssi.get_or_insert_with(|| fidl::new_empty!(i8, D));
13165 fidl::decode!(i8, D, val_ref, decoder, inner_offset, inner_depth)?;
13166 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13167 {
13168 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13169 }
13170 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13171 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13172 }
13173 }
13174
13175 next_offset += envelope_size;
13176 _next_ordinal_to_read += 1;
13177 if next_offset >= end_offset {
13178 return Ok(());
13179 }
13180
13181 while _next_ordinal_to_read < 4 {
13183 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13184 _next_ordinal_to_read += 1;
13185 next_offset += envelope_size;
13186 }
13187
13188 let next_out_of_line = decoder.next_out_of_line();
13189 let handles_before = decoder.remaining_handles();
13190 if let Some((inlined, num_bytes, num_handles)) =
13191 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13192 {
13193 let member_inline_size =
13194 <AdvertisingData as fidl::encoding::TypeMarker>::inline_size(decoder.context);
13195 if inlined != (member_inline_size <= 4) {
13196 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13197 }
13198 let inner_offset;
13199 let mut inner_depth = depth.clone();
13200 if inlined {
13201 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13202 inner_offset = next_offset;
13203 } else {
13204 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13205 inner_depth.increment()?;
13206 }
13207 let val_ref = self
13208 .advertising_data
13209 .get_or_insert_with(|| fidl::new_empty!(AdvertisingData, D));
13210 fidl::decode!(AdvertisingData, D, val_ref, decoder, inner_offset, inner_depth)?;
13211 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13212 {
13213 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13214 }
13215 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13216 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13217 }
13218 }
13219
13220 next_offset += envelope_size;
13221 _next_ordinal_to_read += 1;
13222 if next_offset >= end_offset {
13223 return Ok(());
13224 }
13225
13226 while _next_ordinal_to_read < 5 {
13228 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13229 _next_ordinal_to_read += 1;
13230 next_offset += envelope_size;
13231 }
13232
13233 let next_out_of_line = decoder.next_out_of_line();
13234 let handles_before = decoder.remaining_handles();
13235 if let Some((inlined, num_bytes, num_handles)) =
13236 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13237 {
13238 let member_inline_size =
13239 <fidl::encoding::BoundedString<248> as fidl::encoding::TypeMarker>::inline_size(
13240 decoder.context,
13241 );
13242 if inlined != (member_inline_size <= 4) {
13243 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13244 }
13245 let inner_offset;
13246 let mut inner_depth = depth.clone();
13247 if inlined {
13248 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13249 inner_offset = next_offset;
13250 } else {
13251 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13252 inner_depth.increment()?;
13253 }
13254 let val_ref = self
13255 .name
13256 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<248>, D));
13257 fidl::decode!(
13258 fidl::encoding::BoundedString<248>,
13259 D,
13260 val_ref,
13261 decoder,
13262 inner_offset,
13263 inner_depth
13264 )?;
13265 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13266 {
13267 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13268 }
13269 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13270 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13271 }
13272 }
13273
13274 next_offset += envelope_size;
13275 _next_ordinal_to_read += 1;
13276 if next_offset >= end_offset {
13277 return Ok(());
13278 }
13279
13280 while _next_ordinal_to_read < 6 {
13282 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13283 _next_ordinal_to_read += 1;
13284 next_offset += envelope_size;
13285 }
13286
13287 let next_out_of_line = decoder.next_out_of_line();
13288 let handles_before = decoder.remaining_handles();
13289 if let Some((inlined, num_bytes, num_handles)) =
13290 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13291 {
13292 let member_inline_size =
13293 <ScanData as fidl::encoding::TypeMarker>::inline_size(decoder.context);
13294 if inlined != (member_inline_size <= 4) {
13295 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13296 }
13297 let inner_offset;
13298 let mut inner_depth = depth.clone();
13299 if inlined {
13300 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13301 inner_offset = next_offset;
13302 } else {
13303 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13304 inner_depth.increment()?;
13305 }
13306 let val_ref = self.data.get_or_insert_with(|| fidl::new_empty!(ScanData, D));
13307 fidl::decode!(ScanData, D, val_ref, decoder, inner_offset, inner_depth)?;
13308 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13309 {
13310 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13311 }
13312 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13313 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13314 }
13315 }
13316
13317 next_offset += envelope_size;
13318 _next_ordinal_to_read += 1;
13319 if next_offset >= end_offset {
13320 return Ok(());
13321 }
13322
13323 while _next_ordinal_to_read < 7 {
13325 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13326 _next_ordinal_to_read += 1;
13327 next_offset += envelope_size;
13328 }
13329
13330 let next_out_of_line = decoder.next_out_of_line();
13331 let handles_before = decoder.remaining_handles();
13332 if let Some((inlined, num_bytes, num_handles)) =
13333 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13334 {
13335 let member_inline_size =
13336 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
13337 if inlined != (member_inline_size <= 4) {
13338 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13339 }
13340 let inner_offset;
13341 let mut inner_depth = depth.clone();
13342 if inlined {
13343 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13344 inner_offset = next_offset;
13345 } else {
13346 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13347 inner_depth.increment()?;
13348 }
13349 let val_ref = self.bonded.get_or_insert_with(|| fidl::new_empty!(bool, D));
13350 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
13351 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13352 {
13353 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13354 }
13355 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13356 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13357 }
13358 }
13359
13360 next_offset += envelope_size;
13361 _next_ordinal_to_read += 1;
13362 if next_offset >= end_offset {
13363 return Ok(());
13364 }
13365
13366 while _next_ordinal_to_read < 8 {
13368 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13369 _next_ordinal_to_read += 1;
13370 next_offset += envelope_size;
13371 }
13372
13373 let next_out_of_line = decoder.next_out_of_line();
13374 let handles_before = decoder.remaining_handles();
13375 if let Some((inlined, num_bytes, num_handles)) =
13376 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13377 {
13378 let member_inline_size =
13379 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
13380 if inlined != (member_inline_size <= 4) {
13381 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13382 }
13383 let inner_offset;
13384 let mut inner_depth = depth.clone();
13385 if inlined {
13386 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13387 inner_offset = next_offset;
13388 } else {
13389 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13390 inner_depth.increment()?;
13391 }
13392 let val_ref = self.last_updated.get_or_insert_with(|| fidl::new_empty!(i64, D));
13393 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
13394 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13395 {
13396 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13397 }
13398 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13399 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13400 }
13401 }
13402
13403 next_offset += envelope_size;
13404 _next_ordinal_to_read += 1;
13405 if next_offset >= end_offset {
13406 return Ok(());
13407 }
13408
13409 while _next_ordinal_to_read < 9 {
13411 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13412 _next_ordinal_to_read += 1;
13413 next_offset += envelope_size;
13414 }
13415
13416 let next_out_of_line = decoder.next_out_of_line();
13417 let handles_before = decoder.remaining_handles();
13418 if let Some((inlined, num_bytes, num_handles)) =
13419 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13420 {
13421 let member_inline_size =
13422 <u8 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
13423 if inlined != (member_inline_size <= 4) {
13424 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13425 }
13426 let inner_offset;
13427 let mut inner_depth = depth.clone();
13428 if inlined {
13429 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13430 inner_offset = next_offset;
13431 } else {
13432 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13433 inner_depth.increment()?;
13434 }
13435 let val_ref = self.advertising_sid.get_or_insert_with(|| fidl::new_empty!(u8, D));
13436 fidl::decode!(u8, D, val_ref, decoder, inner_offset, inner_depth)?;
13437 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13438 {
13439 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13440 }
13441 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13442 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13443 }
13444 }
13445
13446 next_offset += envelope_size;
13447 _next_ordinal_to_read += 1;
13448 if next_offset >= end_offset {
13449 return Ok(());
13450 }
13451
13452 while _next_ordinal_to_read < 10 {
13454 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13455 _next_ordinal_to_read += 1;
13456 next_offset += envelope_size;
13457 }
13458
13459 let next_out_of_line = decoder.next_out_of_line();
13460 let handles_before = decoder.remaining_handles();
13461 if let Some((inlined, num_bytes, num_handles)) =
13462 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13463 {
13464 let member_inline_size =
13465 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
13466 if inlined != (member_inline_size <= 4) {
13467 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13468 }
13469 let inner_offset;
13470 let mut inner_depth = depth.clone();
13471 if inlined {
13472 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13473 inner_offset = next_offset;
13474 } else {
13475 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13476 inner_depth.increment()?;
13477 }
13478 let val_ref = self
13479 .periodic_advertising_interval
13480 .get_or_insert_with(|| fidl::new_empty!(u16, D));
13481 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
13482 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13483 {
13484 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13485 }
13486 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13487 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13488 }
13489 }
13490
13491 next_offset += envelope_size;
13492
13493 while next_offset < end_offset {
13495 _next_ordinal_to_read += 1;
13496 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13497 next_offset += envelope_size;
13498 }
13499
13500 Ok(())
13501 }
13502 }
13503
13504 impl PeriodicAdvertisingReport {
13505 #[inline(always)]
13506 fn max_ordinal_present(&self) -> u64 {
13507 if let Some(_) = self.timestamp {
13508 return 5;
13509 }
13510 if let Some(_) = self.subevent {
13511 return 4;
13512 }
13513 if let Some(_) = self.event_counter {
13514 return 3;
13515 }
13516 if let Some(_) = self.data {
13517 return 2;
13518 }
13519 if let Some(_) = self.rssi {
13520 return 1;
13521 }
13522 0
13523 }
13524 }
13525
13526 impl fidl::encoding::ValueTypeMarker for PeriodicAdvertisingReport {
13527 type Borrowed<'a> = &'a Self;
13528 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
13529 value
13530 }
13531 }
13532
13533 unsafe impl fidl::encoding::TypeMarker for PeriodicAdvertisingReport {
13534 type Owned = Self;
13535
13536 #[inline(always)]
13537 fn inline_align(_context: fidl::encoding::Context) -> usize {
13538 8
13539 }
13540
13541 #[inline(always)]
13542 fn inline_size(_context: fidl::encoding::Context) -> usize {
13543 16
13544 }
13545 }
13546
13547 unsafe impl<D: fidl::encoding::ResourceDialect>
13548 fidl::encoding::Encode<PeriodicAdvertisingReport, D> for &PeriodicAdvertisingReport
13549 {
13550 unsafe fn encode(
13551 self,
13552 encoder: &mut fidl::encoding::Encoder<'_, D>,
13553 offset: usize,
13554 mut depth: fidl::encoding::Depth,
13555 ) -> fidl::Result<()> {
13556 encoder.debug_check_bounds::<PeriodicAdvertisingReport>(offset);
13557 let max_ordinal: u64 = self.max_ordinal_present();
13559 encoder.write_num(max_ordinal, offset);
13560 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
13561 if max_ordinal == 0 {
13563 return Ok(());
13564 }
13565 depth.increment()?;
13566 let envelope_size = 8;
13567 let bytes_len = max_ordinal as usize * envelope_size;
13568 #[allow(unused_variables)]
13569 let offset = encoder.out_of_line_offset(bytes_len);
13570 let mut _prev_end_offset: usize = 0;
13571 if 1 > max_ordinal {
13572 return Ok(());
13573 }
13574
13575 let cur_offset: usize = (1 - 1) * envelope_size;
13578
13579 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13581
13582 fidl::encoding::encode_in_envelope_optional::<i8, D>(
13587 self.rssi.as_ref().map(<i8 as fidl::encoding::ValueTypeMarker>::borrow),
13588 encoder,
13589 offset + cur_offset,
13590 depth,
13591 )?;
13592
13593 _prev_end_offset = cur_offset + envelope_size;
13594 if 2 > max_ordinal {
13595 return Ok(());
13596 }
13597
13598 let cur_offset: usize = (2 - 1) * envelope_size;
13601
13602 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13604
13605 fidl::encoding::encode_in_envelope_optional::<ScanData, D>(
13610 self.data.as_ref().map(<ScanData as fidl::encoding::ValueTypeMarker>::borrow),
13611 encoder,
13612 offset + cur_offset,
13613 depth,
13614 )?;
13615
13616 _prev_end_offset = cur_offset + envelope_size;
13617 if 3 > max_ordinal {
13618 return Ok(());
13619 }
13620
13621 let cur_offset: usize = (3 - 1) * envelope_size;
13624
13625 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13627
13628 fidl::encoding::encode_in_envelope_optional::<u16, D>(
13633 self.event_counter.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
13634 encoder,
13635 offset + cur_offset,
13636 depth,
13637 )?;
13638
13639 _prev_end_offset = cur_offset + envelope_size;
13640 if 4 > max_ordinal {
13641 return Ok(());
13642 }
13643
13644 let cur_offset: usize = (4 - 1) * envelope_size;
13647
13648 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13650
13651 fidl::encoding::encode_in_envelope_optional::<u8, D>(
13656 self.subevent.as_ref().map(<u8 as fidl::encoding::ValueTypeMarker>::borrow),
13657 encoder,
13658 offset + cur_offset,
13659 depth,
13660 )?;
13661
13662 _prev_end_offset = cur_offset + envelope_size;
13663 if 5 > max_ordinal {
13664 return Ok(());
13665 }
13666
13667 let cur_offset: usize = (5 - 1) * envelope_size;
13670
13671 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13673
13674 fidl::encoding::encode_in_envelope_optional::<i64, D>(
13679 self.timestamp.as_ref().map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
13680 encoder,
13681 offset + cur_offset,
13682 depth,
13683 )?;
13684
13685 _prev_end_offset = cur_offset + envelope_size;
13686
13687 Ok(())
13688 }
13689 }
13690
13691 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
13692 for PeriodicAdvertisingReport
13693 {
13694 #[inline(always)]
13695 fn new_empty() -> Self {
13696 Self::default()
13697 }
13698
13699 unsafe fn decode(
13700 &mut self,
13701 decoder: &mut fidl::encoding::Decoder<'_, D>,
13702 offset: usize,
13703 mut depth: fidl::encoding::Depth,
13704 ) -> fidl::Result<()> {
13705 decoder.debug_check_bounds::<Self>(offset);
13706 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
13707 None => return Err(fidl::Error::NotNullable),
13708 Some(len) => len,
13709 };
13710 if len == 0 {
13712 return Ok(());
13713 };
13714 depth.increment()?;
13715 let envelope_size = 8;
13716 let bytes_len = len * envelope_size;
13717 let offset = decoder.out_of_line_offset(bytes_len)?;
13718 let mut _next_ordinal_to_read = 0;
13720 let mut next_offset = offset;
13721 let end_offset = offset + bytes_len;
13722 _next_ordinal_to_read += 1;
13723 if next_offset >= end_offset {
13724 return Ok(());
13725 }
13726
13727 while _next_ordinal_to_read < 1 {
13729 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13730 _next_ordinal_to_read += 1;
13731 next_offset += envelope_size;
13732 }
13733
13734 let next_out_of_line = decoder.next_out_of_line();
13735 let handles_before = decoder.remaining_handles();
13736 if let Some((inlined, num_bytes, num_handles)) =
13737 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13738 {
13739 let member_inline_size =
13740 <i8 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
13741 if inlined != (member_inline_size <= 4) {
13742 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13743 }
13744 let inner_offset;
13745 let mut inner_depth = depth.clone();
13746 if inlined {
13747 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13748 inner_offset = next_offset;
13749 } else {
13750 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13751 inner_depth.increment()?;
13752 }
13753 let val_ref = self.rssi.get_or_insert_with(|| fidl::new_empty!(i8, D));
13754 fidl::decode!(i8, D, val_ref, decoder, inner_offset, inner_depth)?;
13755 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13756 {
13757 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13758 }
13759 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13760 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13761 }
13762 }
13763
13764 next_offset += envelope_size;
13765 _next_ordinal_to_read += 1;
13766 if next_offset >= end_offset {
13767 return Ok(());
13768 }
13769
13770 while _next_ordinal_to_read < 2 {
13772 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13773 _next_ordinal_to_read += 1;
13774 next_offset += envelope_size;
13775 }
13776
13777 let next_out_of_line = decoder.next_out_of_line();
13778 let handles_before = decoder.remaining_handles();
13779 if let Some((inlined, num_bytes, num_handles)) =
13780 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13781 {
13782 let member_inline_size =
13783 <ScanData as fidl::encoding::TypeMarker>::inline_size(decoder.context);
13784 if inlined != (member_inline_size <= 4) {
13785 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13786 }
13787 let inner_offset;
13788 let mut inner_depth = depth.clone();
13789 if inlined {
13790 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13791 inner_offset = next_offset;
13792 } else {
13793 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13794 inner_depth.increment()?;
13795 }
13796 let val_ref = self.data.get_or_insert_with(|| fidl::new_empty!(ScanData, D));
13797 fidl::decode!(ScanData, D, val_ref, decoder, inner_offset, inner_depth)?;
13798 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13799 {
13800 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13801 }
13802 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13803 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13804 }
13805 }
13806
13807 next_offset += envelope_size;
13808 _next_ordinal_to_read += 1;
13809 if next_offset >= end_offset {
13810 return Ok(());
13811 }
13812
13813 while _next_ordinal_to_read < 3 {
13815 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13816 _next_ordinal_to_read += 1;
13817 next_offset += envelope_size;
13818 }
13819
13820 let next_out_of_line = decoder.next_out_of_line();
13821 let handles_before = decoder.remaining_handles();
13822 if let Some((inlined, num_bytes, num_handles)) =
13823 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13824 {
13825 let member_inline_size =
13826 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
13827 if inlined != (member_inline_size <= 4) {
13828 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13829 }
13830 let inner_offset;
13831 let mut inner_depth = depth.clone();
13832 if inlined {
13833 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13834 inner_offset = next_offset;
13835 } else {
13836 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13837 inner_depth.increment()?;
13838 }
13839 let val_ref = self.event_counter.get_or_insert_with(|| fidl::new_empty!(u16, D));
13840 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
13841 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13842 {
13843 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13844 }
13845 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13846 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13847 }
13848 }
13849
13850 next_offset += envelope_size;
13851 _next_ordinal_to_read += 1;
13852 if next_offset >= end_offset {
13853 return Ok(());
13854 }
13855
13856 while _next_ordinal_to_read < 4 {
13858 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13859 _next_ordinal_to_read += 1;
13860 next_offset += envelope_size;
13861 }
13862
13863 let next_out_of_line = decoder.next_out_of_line();
13864 let handles_before = decoder.remaining_handles();
13865 if let Some((inlined, num_bytes, num_handles)) =
13866 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13867 {
13868 let member_inline_size =
13869 <u8 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
13870 if inlined != (member_inline_size <= 4) {
13871 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13872 }
13873 let inner_offset;
13874 let mut inner_depth = depth.clone();
13875 if inlined {
13876 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13877 inner_offset = next_offset;
13878 } else {
13879 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13880 inner_depth.increment()?;
13881 }
13882 let val_ref = self.subevent.get_or_insert_with(|| fidl::new_empty!(u8, D));
13883 fidl::decode!(u8, D, val_ref, decoder, inner_offset, inner_depth)?;
13884 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13885 {
13886 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13887 }
13888 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13889 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13890 }
13891 }
13892
13893 next_offset += envelope_size;
13894 _next_ordinal_to_read += 1;
13895 if next_offset >= end_offset {
13896 return Ok(());
13897 }
13898
13899 while _next_ordinal_to_read < 5 {
13901 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13902 _next_ordinal_to_read += 1;
13903 next_offset += envelope_size;
13904 }
13905
13906 let next_out_of_line = decoder.next_out_of_line();
13907 let handles_before = decoder.remaining_handles();
13908 if let Some((inlined, num_bytes, num_handles)) =
13909 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13910 {
13911 let member_inline_size =
13912 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
13913 if inlined != (member_inline_size <= 4) {
13914 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13915 }
13916 let inner_offset;
13917 let mut inner_depth = depth.clone();
13918 if inlined {
13919 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13920 inner_offset = next_offset;
13921 } else {
13922 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13923 inner_depth.increment()?;
13924 }
13925 let val_ref = self.timestamp.get_or_insert_with(|| fidl::new_empty!(i64, D));
13926 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
13927 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13928 {
13929 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13930 }
13931 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13932 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13933 }
13934 }
13935
13936 next_offset += envelope_size;
13937
13938 while next_offset < end_offset {
13940 _next_ordinal_to_read += 1;
13941 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13942 next_offset += envelope_size;
13943 }
13944
13945 Ok(())
13946 }
13947 }
13948
13949 impl PeriodicAdvertisingSyncConfiguration {
13950 #[inline(always)]
13951 fn max_ordinal_present(&self) -> u64 {
13952 if let Some(_) = self.filter_duplicates {
13953 return 1;
13954 }
13955 0
13956 }
13957 }
13958
13959 impl fidl::encoding::ValueTypeMarker for PeriodicAdvertisingSyncConfiguration {
13960 type Borrowed<'a> = &'a Self;
13961 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
13962 value
13963 }
13964 }
13965
13966 unsafe impl fidl::encoding::TypeMarker for PeriodicAdvertisingSyncConfiguration {
13967 type Owned = Self;
13968
13969 #[inline(always)]
13970 fn inline_align(_context: fidl::encoding::Context) -> usize {
13971 8
13972 }
13973
13974 #[inline(always)]
13975 fn inline_size(_context: fidl::encoding::Context) -> usize {
13976 16
13977 }
13978 }
13979
13980 unsafe impl<D: fidl::encoding::ResourceDialect>
13981 fidl::encoding::Encode<PeriodicAdvertisingSyncConfiguration, D>
13982 for &PeriodicAdvertisingSyncConfiguration
13983 {
13984 unsafe fn encode(
13985 self,
13986 encoder: &mut fidl::encoding::Encoder<'_, D>,
13987 offset: usize,
13988 mut depth: fidl::encoding::Depth,
13989 ) -> fidl::Result<()> {
13990 encoder.debug_check_bounds::<PeriodicAdvertisingSyncConfiguration>(offset);
13991 let max_ordinal: u64 = self.max_ordinal_present();
13993 encoder.write_num(max_ordinal, offset);
13994 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
13995 if max_ordinal == 0 {
13997 return Ok(());
13998 }
13999 depth.increment()?;
14000 let envelope_size = 8;
14001 let bytes_len = max_ordinal as usize * envelope_size;
14002 #[allow(unused_variables)]
14003 let offset = encoder.out_of_line_offset(bytes_len);
14004 let mut _prev_end_offset: usize = 0;
14005 if 1 > max_ordinal {
14006 return Ok(());
14007 }
14008
14009 let cur_offset: usize = (1 - 1) * envelope_size;
14012
14013 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14015
14016 fidl::encoding::encode_in_envelope_optional::<bool, D>(
14021 self.filter_duplicates
14022 .as_ref()
14023 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
14024 encoder,
14025 offset + cur_offset,
14026 depth,
14027 )?;
14028
14029 _prev_end_offset = cur_offset + envelope_size;
14030
14031 Ok(())
14032 }
14033 }
14034
14035 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
14036 for PeriodicAdvertisingSyncConfiguration
14037 {
14038 #[inline(always)]
14039 fn new_empty() -> Self {
14040 Self::default()
14041 }
14042
14043 unsafe fn decode(
14044 &mut self,
14045 decoder: &mut fidl::encoding::Decoder<'_, D>,
14046 offset: usize,
14047 mut depth: fidl::encoding::Depth,
14048 ) -> fidl::Result<()> {
14049 decoder.debug_check_bounds::<Self>(offset);
14050 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
14051 None => return Err(fidl::Error::NotNullable),
14052 Some(len) => len,
14053 };
14054 if len == 0 {
14056 return Ok(());
14057 };
14058 depth.increment()?;
14059 let envelope_size = 8;
14060 let bytes_len = len * envelope_size;
14061 let offset = decoder.out_of_line_offset(bytes_len)?;
14062 let mut _next_ordinal_to_read = 0;
14064 let mut next_offset = offset;
14065 let end_offset = offset + bytes_len;
14066 _next_ordinal_to_read += 1;
14067 if next_offset >= end_offset {
14068 return Ok(());
14069 }
14070
14071 while _next_ordinal_to_read < 1 {
14073 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14074 _next_ordinal_to_read += 1;
14075 next_offset += envelope_size;
14076 }
14077
14078 let next_out_of_line = decoder.next_out_of_line();
14079 let handles_before = decoder.remaining_handles();
14080 if let Some((inlined, num_bytes, num_handles)) =
14081 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14082 {
14083 let member_inline_size =
14084 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
14085 if inlined != (member_inline_size <= 4) {
14086 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14087 }
14088 let inner_offset;
14089 let mut inner_depth = depth.clone();
14090 if inlined {
14091 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14092 inner_offset = next_offset;
14093 } else {
14094 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14095 inner_depth.increment()?;
14096 }
14097 let val_ref =
14098 self.filter_duplicates.get_or_insert_with(|| fidl::new_empty!(bool, D));
14099 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
14100 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14101 {
14102 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14103 }
14104 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14105 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14106 }
14107 }
14108
14109 next_offset += envelope_size;
14110
14111 while next_offset < end_offset {
14113 _next_ordinal_to_read += 1;
14114 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14115 next_offset += envelope_size;
14116 }
14117
14118 Ok(())
14119 }
14120 }
14121
14122 impl PeriodicAdvertisingSyncOnEstablishedRequest {
14123 #[inline(always)]
14124 fn max_ordinal_present(&self) -> u64 {
14125 if let Some(_) = self.periodic_advertising_interval {
14126 return 7;
14127 }
14128 if let Some(_) = self.phy {
14129 return 6;
14130 }
14131 if let Some(_) = self.advertising_sid {
14132 return 5;
14133 }
14134 if let Some(_) = self.service_data {
14135 return 4;
14136 }
14137 if let Some(_) = self.peer_id {
14138 return 3;
14139 }
14140 if let Some(_) = self.subevents_count {
14141 return 2;
14142 }
14143 if let Some(_) = self.id {
14144 return 1;
14145 }
14146 0
14147 }
14148 }
14149
14150 impl fidl::encoding::ValueTypeMarker for PeriodicAdvertisingSyncOnEstablishedRequest {
14151 type Borrowed<'a> = &'a Self;
14152 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
14153 value
14154 }
14155 }
14156
14157 unsafe impl fidl::encoding::TypeMarker for PeriodicAdvertisingSyncOnEstablishedRequest {
14158 type Owned = Self;
14159
14160 #[inline(always)]
14161 fn inline_align(_context: fidl::encoding::Context) -> usize {
14162 8
14163 }
14164
14165 #[inline(always)]
14166 fn inline_size(_context: fidl::encoding::Context) -> usize {
14167 16
14168 }
14169 }
14170
14171 unsafe impl<D: fidl::encoding::ResourceDialect>
14172 fidl::encoding::Encode<PeriodicAdvertisingSyncOnEstablishedRequest, D>
14173 for &PeriodicAdvertisingSyncOnEstablishedRequest
14174 {
14175 unsafe fn encode(
14176 self,
14177 encoder: &mut fidl::encoding::Encoder<'_, D>,
14178 offset: usize,
14179 mut depth: fidl::encoding::Depth,
14180 ) -> fidl::Result<()> {
14181 encoder.debug_check_bounds::<PeriodicAdvertisingSyncOnEstablishedRequest>(offset);
14182 let max_ordinal: u64 = self.max_ordinal_present();
14184 encoder.write_num(max_ordinal, offset);
14185 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
14186 if max_ordinal == 0 {
14188 return Ok(());
14189 }
14190 depth.increment()?;
14191 let envelope_size = 8;
14192 let bytes_len = max_ordinal as usize * envelope_size;
14193 #[allow(unused_variables)]
14194 let offset = encoder.out_of_line_offset(bytes_len);
14195 let mut _prev_end_offset: usize = 0;
14196 if 1 > max_ordinal {
14197 return Ok(());
14198 }
14199
14200 let cur_offset: usize = (1 - 1) * envelope_size;
14203
14204 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14206
14207 fidl::encoding::encode_in_envelope_optional::<PeriodicAdvertisingSyncId, D>(
14212 self.id
14213 .as_ref()
14214 .map(<PeriodicAdvertisingSyncId as fidl::encoding::ValueTypeMarker>::borrow),
14215 encoder,
14216 offset + cur_offset,
14217 depth,
14218 )?;
14219
14220 _prev_end_offset = cur_offset + envelope_size;
14221 if 2 > max_ordinal {
14222 return Ok(());
14223 }
14224
14225 let cur_offset: usize = (2 - 1) * envelope_size;
14228
14229 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14231
14232 fidl::encoding::encode_in_envelope_optional::<u8, D>(
14237 self.subevents_count.as_ref().map(<u8 as fidl::encoding::ValueTypeMarker>::borrow),
14238 encoder,
14239 offset + cur_offset,
14240 depth,
14241 )?;
14242
14243 _prev_end_offset = cur_offset + envelope_size;
14244 if 3 > max_ordinal {
14245 return Ok(());
14246 }
14247
14248 let cur_offset: usize = (3 - 1) * envelope_size;
14251
14252 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14254
14255 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_bluetooth__common::PeerId, D>(
14260 self.peer_id.as_ref().map(<fidl_fuchsia_bluetooth__common::PeerId as fidl::encoding::ValueTypeMarker>::borrow),
14261 encoder, offset + cur_offset, depth
14262 )?;
14263
14264 _prev_end_offset = cur_offset + envelope_size;
14265 if 4 > max_ordinal {
14266 return Ok(());
14267 }
14268
14269 let cur_offset: usize = (4 - 1) * envelope_size;
14272
14273 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14275
14276 fidl::encoding::encode_in_envelope_optional::<u16, D>(
14281 self.service_data.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
14282 encoder,
14283 offset + cur_offset,
14284 depth,
14285 )?;
14286
14287 _prev_end_offset = cur_offset + envelope_size;
14288 if 5 > max_ordinal {
14289 return Ok(());
14290 }
14291
14292 let cur_offset: usize = (5 - 1) * envelope_size;
14295
14296 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14298
14299 fidl::encoding::encode_in_envelope_optional::<u8, D>(
14304 self.advertising_sid.as_ref().map(<u8 as fidl::encoding::ValueTypeMarker>::borrow),
14305 encoder,
14306 offset + cur_offset,
14307 depth,
14308 )?;
14309
14310 _prev_end_offset = cur_offset + envelope_size;
14311 if 6 > max_ordinal {
14312 return Ok(());
14313 }
14314
14315 let cur_offset: usize = (6 - 1) * envelope_size;
14318
14319 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14321
14322 fidl::encoding::encode_in_envelope_optional::<PhysicalLayer, D>(
14327 self.phy.as_ref().map(<PhysicalLayer as fidl::encoding::ValueTypeMarker>::borrow),
14328 encoder,
14329 offset + cur_offset,
14330 depth,
14331 )?;
14332
14333 _prev_end_offset = cur_offset + envelope_size;
14334 if 7 > max_ordinal {
14335 return Ok(());
14336 }
14337
14338 let cur_offset: usize = (7 - 1) * envelope_size;
14341
14342 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14344
14345 fidl::encoding::encode_in_envelope_optional::<u16, D>(
14350 self.periodic_advertising_interval
14351 .as_ref()
14352 .map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
14353 encoder,
14354 offset + cur_offset,
14355 depth,
14356 )?;
14357
14358 _prev_end_offset = cur_offset + envelope_size;
14359
14360 Ok(())
14361 }
14362 }
14363
14364 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
14365 for PeriodicAdvertisingSyncOnEstablishedRequest
14366 {
14367 #[inline(always)]
14368 fn new_empty() -> Self {
14369 Self::default()
14370 }
14371
14372 unsafe fn decode(
14373 &mut self,
14374 decoder: &mut fidl::encoding::Decoder<'_, D>,
14375 offset: usize,
14376 mut depth: fidl::encoding::Depth,
14377 ) -> fidl::Result<()> {
14378 decoder.debug_check_bounds::<Self>(offset);
14379 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
14380 None => return Err(fidl::Error::NotNullable),
14381 Some(len) => len,
14382 };
14383 if len == 0 {
14385 return Ok(());
14386 };
14387 depth.increment()?;
14388 let envelope_size = 8;
14389 let bytes_len = len * envelope_size;
14390 let offset = decoder.out_of_line_offset(bytes_len)?;
14391 let mut _next_ordinal_to_read = 0;
14393 let mut next_offset = offset;
14394 let end_offset = offset + bytes_len;
14395 _next_ordinal_to_read += 1;
14396 if next_offset >= end_offset {
14397 return Ok(());
14398 }
14399
14400 while _next_ordinal_to_read < 1 {
14402 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14403 _next_ordinal_to_read += 1;
14404 next_offset += envelope_size;
14405 }
14406
14407 let next_out_of_line = decoder.next_out_of_line();
14408 let handles_before = decoder.remaining_handles();
14409 if let Some((inlined, num_bytes, num_handles)) =
14410 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14411 {
14412 let member_inline_size =
14413 <PeriodicAdvertisingSyncId as fidl::encoding::TypeMarker>::inline_size(
14414 decoder.context,
14415 );
14416 if inlined != (member_inline_size <= 4) {
14417 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14418 }
14419 let inner_offset;
14420 let mut inner_depth = depth.clone();
14421 if inlined {
14422 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14423 inner_offset = next_offset;
14424 } else {
14425 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14426 inner_depth.increment()?;
14427 }
14428 let val_ref =
14429 self.id.get_or_insert_with(|| fidl::new_empty!(PeriodicAdvertisingSyncId, D));
14430 fidl::decode!(
14431 PeriodicAdvertisingSyncId,
14432 D,
14433 val_ref,
14434 decoder,
14435 inner_offset,
14436 inner_depth
14437 )?;
14438 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14439 {
14440 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14441 }
14442 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14443 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14444 }
14445 }
14446
14447 next_offset += envelope_size;
14448 _next_ordinal_to_read += 1;
14449 if next_offset >= end_offset {
14450 return Ok(());
14451 }
14452
14453 while _next_ordinal_to_read < 2 {
14455 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14456 _next_ordinal_to_read += 1;
14457 next_offset += envelope_size;
14458 }
14459
14460 let next_out_of_line = decoder.next_out_of_line();
14461 let handles_before = decoder.remaining_handles();
14462 if let Some((inlined, num_bytes, num_handles)) =
14463 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14464 {
14465 let member_inline_size =
14466 <u8 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
14467 if inlined != (member_inline_size <= 4) {
14468 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14469 }
14470 let inner_offset;
14471 let mut inner_depth = depth.clone();
14472 if inlined {
14473 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14474 inner_offset = next_offset;
14475 } else {
14476 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14477 inner_depth.increment()?;
14478 }
14479 let val_ref = self.subevents_count.get_or_insert_with(|| fidl::new_empty!(u8, D));
14480 fidl::decode!(u8, D, val_ref, decoder, inner_offset, inner_depth)?;
14481 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14482 {
14483 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14484 }
14485 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14486 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14487 }
14488 }
14489
14490 next_offset += envelope_size;
14491 _next_ordinal_to_read += 1;
14492 if next_offset >= end_offset {
14493 return Ok(());
14494 }
14495
14496 while _next_ordinal_to_read < 3 {
14498 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14499 _next_ordinal_to_read += 1;
14500 next_offset += envelope_size;
14501 }
14502
14503 let next_out_of_line = decoder.next_out_of_line();
14504 let handles_before = decoder.remaining_handles();
14505 if let Some((inlined, num_bytes, num_handles)) =
14506 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14507 {
14508 let member_inline_size = <fidl_fuchsia_bluetooth__common::PeerId as fidl::encoding::TypeMarker>::inline_size(decoder.context);
14509 if inlined != (member_inline_size <= 4) {
14510 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14511 }
14512 let inner_offset;
14513 let mut inner_depth = depth.clone();
14514 if inlined {
14515 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14516 inner_offset = next_offset;
14517 } else {
14518 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14519 inner_depth.increment()?;
14520 }
14521 let val_ref = self.peer_id.get_or_insert_with(|| {
14522 fidl::new_empty!(fidl_fuchsia_bluetooth__common::PeerId, D)
14523 });
14524 fidl::decode!(
14525 fidl_fuchsia_bluetooth__common::PeerId,
14526 D,
14527 val_ref,
14528 decoder,
14529 inner_offset,
14530 inner_depth
14531 )?;
14532 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14533 {
14534 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14535 }
14536 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14537 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14538 }
14539 }
14540
14541 next_offset += envelope_size;
14542 _next_ordinal_to_read += 1;
14543 if next_offset >= end_offset {
14544 return Ok(());
14545 }
14546
14547 while _next_ordinal_to_read < 4 {
14549 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14550 _next_ordinal_to_read += 1;
14551 next_offset += envelope_size;
14552 }
14553
14554 let next_out_of_line = decoder.next_out_of_line();
14555 let handles_before = decoder.remaining_handles();
14556 if let Some((inlined, num_bytes, num_handles)) =
14557 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14558 {
14559 let member_inline_size =
14560 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
14561 if inlined != (member_inline_size <= 4) {
14562 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14563 }
14564 let inner_offset;
14565 let mut inner_depth = depth.clone();
14566 if inlined {
14567 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14568 inner_offset = next_offset;
14569 } else {
14570 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14571 inner_depth.increment()?;
14572 }
14573 let val_ref = self.service_data.get_or_insert_with(|| fidl::new_empty!(u16, D));
14574 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
14575 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14576 {
14577 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14578 }
14579 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14580 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14581 }
14582 }
14583
14584 next_offset += envelope_size;
14585 _next_ordinal_to_read += 1;
14586 if next_offset >= end_offset {
14587 return Ok(());
14588 }
14589
14590 while _next_ordinal_to_read < 5 {
14592 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14593 _next_ordinal_to_read += 1;
14594 next_offset += envelope_size;
14595 }
14596
14597 let next_out_of_line = decoder.next_out_of_line();
14598 let handles_before = decoder.remaining_handles();
14599 if let Some((inlined, num_bytes, num_handles)) =
14600 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14601 {
14602 let member_inline_size =
14603 <u8 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
14604 if inlined != (member_inline_size <= 4) {
14605 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14606 }
14607 let inner_offset;
14608 let mut inner_depth = depth.clone();
14609 if inlined {
14610 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14611 inner_offset = next_offset;
14612 } else {
14613 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14614 inner_depth.increment()?;
14615 }
14616 let val_ref = self.advertising_sid.get_or_insert_with(|| fidl::new_empty!(u8, D));
14617 fidl::decode!(u8, D, val_ref, decoder, inner_offset, inner_depth)?;
14618 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14619 {
14620 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14621 }
14622 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14623 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14624 }
14625 }
14626
14627 next_offset += envelope_size;
14628 _next_ordinal_to_read += 1;
14629 if next_offset >= end_offset {
14630 return Ok(());
14631 }
14632
14633 while _next_ordinal_to_read < 6 {
14635 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14636 _next_ordinal_to_read += 1;
14637 next_offset += envelope_size;
14638 }
14639
14640 let next_out_of_line = decoder.next_out_of_line();
14641 let handles_before = decoder.remaining_handles();
14642 if let Some((inlined, num_bytes, num_handles)) =
14643 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14644 {
14645 let member_inline_size =
14646 <PhysicalLayer as fidl::encoding::TypeMarker>::inline_size(decoder.context);
14647 if inlined != (member_inline_size <= 4) {
14648 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14649 }
14650 let inner_offset;
14651 let mut inner_depth = depth.clone();
14652 if inlined {
14653 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14654 inner_offset = next_offset;
14655 } else {
14656 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14657 inner_depth.increment()?;
14658 }
14659 let val_ref = self.phy.get_or_insert_with(|| fidl::new_empty!(PhysicalLayer, D));
14660 fidl::decode!(PhysicalLayer, D, val_ref, decoder, inner_offset, inner_depth)?;
14661 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14662 {
14663 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14664 }
14665 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14666 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14667 }
14668 }
14669
14670 next_offset += envelope_size;
14671 _next_ordinal_to_read += 1;
14672 if next_offset >= end_offset {
14673 return Ok(());
14674 }
14675
14676 while _next_ordinal_to_read < 7 {
14678 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14679 _next_ordinal_to_read += 1;
14680 next_offset += envelope_size;
14681 }
14682
14683 let next_out_of_line = decoder.next_out_of_line();
14684 let handles_before = decoder.remaining_handles();
14685 if let Some((inlined, num_bytes, num_handles)) =
14686 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14687 {
14688 let member_inline_size =
14689 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
14690 if inlined != (member_inline_size <= 4) {
14691 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14692 }
14693 let inner_offset;
14694 let mut inner_depth = depth.clone();
14695 if inlined {
14696 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14697 inner_offset = next_offset;
14698 } else {
14699 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14700 inner_depth.increment()?;
14701 }
14702 let val_ref = self
14703 .periodic_advertising_interval
14704 .get_or_insert_with(|| fidl::new_empty!(u16, D));
14705 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
14706 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14707 {
14708 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14709 }
14710 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14711 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14712 }
14713 }
14714
14715 next_offset += envelope_size;
14716
14717 while next_offset < end_offset {
14719 _next_ordinal_to_read += 1;
14720 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14721 next_offset += envelope_size;
14722 }
14723
14724 Ok(())
14725 }
14726 }
14727
14728 impl PeriodicAdvertisingSyncSyncToSubeventsRequest {
14729 #[inline(always)]
14730 fn max_ordinal_present(&self) -> u64 {
14731 if let Some(_) = self.subevents {
14732 return 1;
14733 }
14734 0
14735 }
14736 }
14737
14738 impl fidl::encoding::ValueTypeMarker for PeriodicAdvertisingSyncSyncToSubeventsRequest {
14739 type Borrowed<'a> = &'a Self;
14740 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
14741 value
14742 }
14743 }
14744
14745 unsafe impl fidl::encoding::TypeMarker for PeriodicAdvertisingSyncSyncToSubeventsRequest {
14746 type Owned = Self;
14747
14748 #[inline(always)]
14749 fn inline_align(_context: fidl::encoding::Context) -> usize {
14750 8
14751 }
14752
14753 #[inline(always)]
14754 fn inline_size(_context: fidl::encoding::Context) -> usize {
14755 16
14756 }
14757 }
14758
14759 unsafe impl<D: fidl::encoding::ResourceDialect>
14760 fidl::encoding::Encode<PeriodicAdvertisingSyncSyncToSubeventsRequest, D>
14761 for &PeriodicAdvertisingSyncSyncToSubeventsRequest
14762 {
14763 unsafe fn encode(
14764 self,
14765 encoder: &mut fidl::encoding::Encoder<'_, D>,
14766 offset: usize,
14767 mut depth: fidl::encoding::Depth,
14768 ) -> fidl::Result<()> {
14769 encoder.debug_check_bounds::<PeriodicAdvertisingSyncSyncToSubeventsRequest>(offset);
14770 let max_ordinal: u64 = self.max_ordinal_present();
14772 encoder.write_num(max_ordinal, offset);
14773 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
14774 if max_ordinal == 0 {
14776 return Ok(());
14777 }
14778 depth.increment()?;
14779 let envelope_size = 8;
14780 let bytes_len = max_ordinal as usize * envelope_size;
14781 #[allow(unused_variables)]
14782 let offset = encoder.out_of_line_offset(bytes_len);
14783 let mut _prev_end_offset: usize = 0;
14784 if 1 > max_ordinal {
14785 return Ok(());
14786 }
14787
14788 let cur_offset: usize = (1 - 1) * envelope_size;
14791
14792 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14794
14795 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u8, 128>, D>(
14800 self.subevents.as_ref().map(
14801 <fidl::encoding::Vector<u8, 128> as fidl::encoding::ValueTypeMarker>::borrow,
14802 ),
14803 encoder,
14804 offset + cur_offset,
14805 depth,
14806 )?;
14807
14808 _prev_end_offset = cur_offset + envelope_size;
14809
14810 Ok(())
14811 }
14812 }
14813
14814 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
14815 for PeriodicAdvertisingSyncSyncToSubeventsRequest
14816 {
14817 #[inline(always)]
14818 fn new_empty() -> Self {
14819 Self::default()
14820 }
14821
14822 unsafe fn decode(
14823 &mut self,
14824 decoder: &mut fidl::encoding::Decoder<'_, D>,
14825 offset: usize,
14826 mut depth: fidl::encoding::Depth,
14827 ) -> fidl::Result<()> {
14828 decoder.debug_check_bounds::<Self>(offset);
14829 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
14830 None => return Err(fidl::Error::NotNullable),
14831 Some(len) => len,
14832 };
14833 if len == 0 {
14835 return Ok(());
14836 };
14837 depth.increment()?;
14838 let envelope_size = 8;
14839 let bytes_len = len * envelope_size;
14840 let offset = decoder.out_of_line_offset(bytes_len)?;
14841 let mut _next_ordinal_to_read = 0;
14843 let mut next_offset = offset;
14844 let end_offset = offset + bytes_len;
14845 _next_ordinal_to_read += 1;
14846 if next_offset >= end_offset {
14847 return Ok(());
14848 }
14849
14850 while _next_ordinal_to_read < 1 {
14852 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14853 _next_ordinal_to_read += 1;
14854 next_offset += envelope_size;
14855 }
14856
14857 let next_out_of_line = decoder.next_out_of_line();
14858 let handles_before = decoder.remaining_handles();
14859 if let Some((inlined, num_bytes, num_handles)) =
14860 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14861 {
14862 let member_inline_size =
14863 <fidl::encoding::Vector<u8, 128> as fidl::encoding::TypeMarker>::inline_size(
14864 decoder.context,
14865 );
14866 if inlined != (member_inline_size <= 4) {
14867 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14868 }
14869 let inner_offset;
14870 let mut inner_depth = depth.clone();
14871 if inlined {
14872 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14873 inner_offset = next_offset;
14874 } else {
14875 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14876 inner_depth.increment()?;
14877 }
14878 let val_ref = self
14879 .subevents
14880 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u8, 128>, D));
14881 fidl::decode!(fidl::encoding::Vector<u8, 128>, D, val_ref, decoder, inner_offset, inner_depth)?;
14882 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14883 {
14884 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14885 }
14886 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14887 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14888 }
14889 }
14890
14891 next_offset += envelope_size;
14892
14893 while next_offset < end_offset {
14895 _next_ordinal_to_read += 1;
14896 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14897 next_offset += envelope_size;
14898 }
14899
14900 Ok(())
14901 }
14902 }
14903
14904 impl PeriodicAdvertisingSyncWatchAdvertisingReportResponse {
14905 #[inline(always)]
14906 fn max_ordinal_present(&self) -> u64 {
14907 if let Some(_) = self.reports {
14908 return 1;
14909 }
14910 0
14911 }
14912 }
14913
14914 impl fidl::encoding::ValueTypeMarker for PeriodicAdvertisingSyncWatchAdvertisingReportResponse {
14915 type Borrowed<'a> = &'a Self;
14916 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
14917 value
14918 }
14919 }
14920
14921 unsafe impl fidl::encoding::TypeMarker for PeriodicAdvertisingSyncWatchAdvertisingReportResponse {
14922 type Owned = Self;
14923
14924 #[inline(always)]
14925 fn inline_align(_context: fidl::encoding::Context) -> usize {
14926 8
14927 }
14928
14929 #[inline(always)]
14930 fn inline_size(_context: fidl::encoding::Context) -> usize {
14931 16
14932 }
14933 }
14934
14935 unsafe impl<D: fidl::encoding::ResourceDialect>
14936 fidl::encoding::Encode<PeriodicAdvertisingSyncWatchAdvertisingReportResponse, D>
14937 for &PeriodicAdvertisingSyncWatchAdvertisingReportResponse
14938 {
14939 unsafe fn encode(
14940 self,
14941 encoder: &mut fidl::encoding::Encoder<'_, D>,
14942 offset: usize,
14943 mut depth: fidl::encoding::Depth,
14944 ) -> fidl::Result<()> {
14945 encoder.debug_check_bounds::<PeriodicAdvertisingSyncWatchAdvertisingReportResponse>(
14946 offset,
14947 );
14948 let max_ordinal: u64 = self.max_ordinal_present();
14950 encoder.write_num(max_ordinal, offset);
14951 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
14952 if max_ordinal == 0 {
14954 return Ok(());
14955 }
14956 depth.increment()?;
14957 let envelope_size = 8;
14958 let bytes_len = max_ordinal as usize * envelope_size;
14959 #[allow(unused_variables)]
14960 let offset = encoder.out_of_line_offset(bytes_len);
14961 let mut _prev_end_offset: usize = 0;
14962 if 1 > max_ordinal {
14963 return Ok(());
14964 }
14965
14966 let cur_offset: usize = (1 - 1) * envelope_size;
14969
14970 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14972
14973 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<SyncReport>, D>(
14978 self.reports.as_ref().map(<fidl::encoding::UnboundedVector<SyncReport> as fidl::encoding::ValueTypeMarker>::borrow),
14979 encoder, offset + cur_offset, depth
14980 )?;
14981
14982 _prev_end_offset = cur_offset + envelope_size;
14983
14984 Ok(())
14985 }
14986 }
14987
14988 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
14989 for PeriodicAdvertisingSyncWatchAdvertisingReportResponse
14990 {
14991 #[inline(always)]
14992 fn new_empty() -> Self {
14993 Self::default()
14994 }
14995
14996 unsafe fn decode(
14997 &mut self,
14998 decoder: &mut fidl::encoding::Decoder<'_, D>,
14999 offset: usize,
15000 mut depth: fidl::encoding::Depth,
15001 ) -> fidl::Result<()> {
15002 decoder.debug_check_bounds::<Self>(offset);
15003 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
15004 None => return Err(fidl::Error::NotNullable),
15005 Some(len) => len,
15006 };
15007 if len == 0 {
15009 return Ok(());
15010 };
15011 depth.increment()?;
15012 let envelope_size = 8;
15013 let bytes_len = len * envelope_size;
15014 let offset = decoder.out_of_line_offset(bytes_len)?;
15015 let mut _next_ordinal_to_read = 0;
15017 let mut next_offset = offset;
15018 let end_offset = offset + bytes_len;
15019 _next_ordinal_to_read += 1;
15020 if next_offset >= end_offset {
15021 return Ok(());
15022 }
15023
15024 while _next_ordinal_to_read < 1 {
15026 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15027 _next_ordinal_to_read += 1;
15028 next_offset += envelope_size;
15029 }
15030
15031 let next_out_of_line = decoder.next_out_of_line();
15032 let handles_before = decoder.remaining_handles();
15033 if let Some((inlined, num_bytes, num_handles)) =
15034 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15035 {
15036 let member_inline_size = <fidl::encoding::UnboundedVector<SyncReport> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
15037 if inlined != (member_inline_size <= 4) {
15038 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15039 }
15040 let inner_offset;
15041 let mut inner_depth = depth.clone();
15042 if inlined {
15043 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15044 inner_offset = next_offset;
15045 } else {
15046 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15047 inner_depth.increment()?;
15048 }
15049 let val_ref = self.reports.get_or_insert_with(|| {
15050 fidl::new_empty!(fidl::encoding::UnboundedVector<SyncReport>, D)
15051 });
15052 fidl::decode!(
15053 fidl::encoding::UnboundedVector<SyncReport>,
15054 D,
15055 val_ref,
15056 decoder,
15057 inner_offset,
15058 inner_depth
15059 )?;
15060 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15061 {
15062 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15063 }
15064 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15065 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15066 }
15067 }
15068
15069 next_offset += envelope_size;
15070
15071 while next_offset < end_offset {
15073 _next_ordinal_to_read += 1;
15074 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15075 next_offset += envelope_size;
15076 }
15077
15078 Ok(())
15079 }
15080 }
15081
15082 impl ScanData {
15083 #[inline(always)]
15084 fn max_ordinal_present(&self) -> u64 {
15085 if let Some(_) = self.broadcast_name {
15086 return 9;
15087 }
15088 if let Some(_) = self.resolvable_set_identifier {
15089 return 8;
15090 }
15091 if let Some(_) = self.timestamp {
15092 return 7;
15093 }
15094 if let Some(_) = self.uris {
15095 return 6;
15096 }
15097 if let Some(_) = self.manufacturer_data {
15098 return 5;
15099 }
15100 if let Some(_) = self.service_data {
15101 return 4;
15102 }
15103 if let Some(_) = self.service_uuids {
15104 return 3;
15105 }
15106 if let Some(_) = self.appearance {
15107 return 2;
15108 }
15109 if let Some(_) = self.tx_power {
15110 return 1;
15111 }
15112 0
15113 }
15114 }
15115
15116 impl fidl::encoding::ValueTypeMarker for ScanData {
15117 type Borrowed<'a> = &'a Self;
15118 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
15119 value
15120 }
15121 }
15122
15123 unsafe impl fidl::encoding::TypeMarker for ScanData {
15124 type Owned = Self;
15125
15126 #[inline(always)]
15127 fn inline_align(_context: fidl::encoding::Context) -> usize {
15128 8
15129 }
15130
15131 #[inline(always)]
15132 fn inline_size(_context: fidl::encoding::Context) -> usize {
15133 16
15134 }
15135 }
15136
15137 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ScanData, D> for &ScanData {
15138 unsafe fn encode(
15139 self,
15140 encoder: &mut fidl::encoding::Encoder<'_, D>,
15141 offset: usize,
15142 mut depth: fidl::encoding::Depth,
15143 ) -> fidl::Result<()> {
15144 encoder.debug_check_bounds::<ScanData>(offset);
15145 let max_ordinal: u64 = self.max_ordinal_present();
15147 encoder.write_num(max_ordinal, offset);
15148 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
15149 if max_ordinal == 0 {
15151 return Ok(());
15152 }
15153 depth.increment()?;
15154 let envelope_size = 8;
15155 let bytes_len = max_ordinal as usize * envelope_size;
15156 #[allow(unused_variables)]
15157 let offset = encoder.out_of_line_offset(bytes_len);
15158 let mut _prev_end_offset: usize = 0;
15159 if 1 > max_ordinal {
15160 return Ok(());
15161 }
15162
15163 let cur_offset: usize = (1 - 1) * envelope_size;
15166
15167 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
15169
15170 fidl::encoding::encode_in_envelope_optional::<i8, D>(
15175 self.tx_power.as_ref().map(<i8 as fidl::encoding::ValueTypeMarker>::borrow),
15176 encoder,
15177 offset + cur_offset,
15178 depth,
15179 )?;
15180
15181 _prev_end_offset = cur_offset + envelope_size;
15182 if 2 > max_ordinal {
15183 return Ok(());
15184 }
15185
15186 let cur_offset: usize = (2 - 1) * envelope_size;
15189
15190 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
15192
15193 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_bluetooth__common::Appearance, D>(
15198 self.appearance.as_ref().map(<fidl_fuchsia_bluetooth__common::Appearance as fidl::encoding::ValueTypeMarker>::borrow),
15199 encoder, offset + cur_offset, depth
15200 )?;
15201
15202 _prev_end_offset = cur_offset + envelope_size;
15203 if 3 > max_ordinal {
15204 return Ok(());
15205 }
15206
15207 let cur_offset: usize = (3 - 1) * envelope_size;
15210
15211 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
15213
15214 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<fidl_fuchsia_bluetooth__common::Uuid>, D>(
15219 self.service_uuids.as_ref().map(<fidl::encoding::UnboundedVector<fidl_fuchsia_bluetooth__common::Uuid> as fidl::encoding::ValueTypeMarker>::borrow),
15220 encoder, offset + cur_offset, depth
15221 )?;
15222
15223 _prev_end_offset = cur_offset + envelope_size;
15224 if 4 > max_ordinal {
15225 return Ok(());
15226 }
15227
15228 let cur_offset: usize = (4 - 1) * envelope_size;
15231
15232 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
15234
15235 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<ServiceData>, D>(
15240 self.service_data.as_ref().map(<fidl::encoding::UnboundedVector<ServiceData> as fidl::encoding::ValueTypeMarker>::borrow),
15241 encoder, offset + cur_offset, depth
15242 )?;
15243
15244 _prev_end_offset = cur_offset + envelope_size;
15245 if 5 > max_ordinal {
15246 return Ok(());
15247 }
15248
15249 let cur_offset: usize = (5 - 1) * envelope_size;
15252
15253 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
15255
15256 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<ManufacturerData>, D>(
15261 self.manufacturer_data.as_ref().map(<fidl::encoding::UnboundedVector<ManufacturerData> as fidl::encoding::ValueTypeMarker>::borrow),
15262 encoder, offset + cur_offset, depth
15263 )?;
15264
15265 _prev_end_offset = cur_offset + envelope_size;
15266 if 6 > max_ordinal {
15267 return Ok(());
15268 }
15269
15270 let cur_offset: usize = (6 - 1) * envelope_size;
15273
15274 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
15276
15277 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<278>>, D>(
15282 self.uris.as_ref().map(<fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<278>> as fidl::encoding::ValueTypeMarker>::borrow),
15283 encoder, offset + cur_offset, depth
15284 )?;
15285
15286 _prev_end_offset = cur_offset + envelope_size;
15287 if 7 > max_ordinal {
15288 return Ok(());
15289 }
15290
15291 let cur_offset: usize = (7 - 1) * envelope_size;
15294
15295 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
15297
15298 fidl::encoding::encode_in_envelope_optional::<i64, D>(
15303 self.timestamp.as_ref().map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
15304 encoder,
15305 offset + cur_offset,
15306 depth,
15307 )?;
15308
15309 _prev_end_offset = cur_offset + envelope_size;
15310 if 8 > max_ordinal {
15311 return Ok(());
15312 }
15313
15314 let cur_offset: usize = (8 - 1) * envelope_size;
15317
15318 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
15320
15321 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u8, 6>, D>(
15326 self.resolvable_set_identifier
15327 .as_ref()
15328 .map(<fidl::encoding::Array<u8, 6> as fidl::encoding::ValueTypeMarker>::borrow),
15329 encoder,
15330 offset + cur_offset,
15331 depth,
15332 )?;
15333
15334 _prev_end_offset = cur_offset + envelope_size;
15335 if 9 > max_ordinal {
15336 return Ok(());
15337 }
15338
15339 let cur_offset: usize = (9 - 1) * envelope_size;
15342
15343 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
15345
15346 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<128>, D>(
15351 self.broadcast_name.as_ref().map(
15352 <fidl::encoding::BoundedString<128> as fidl::encoding::ValueTypeMarker>::borrow,
15353 ),
15354 encoder,
15355 offset + cur_offset,
15356 depth,
15357 )?;
15358
15359 _prev_end_offset = cur_offset + envelope_size;
15360
15361 Ok(())
15362 }
15363 }
15364
15365 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ScanData {
15366 #[inline(always)]
15367 fn new_empty() -> Self {
15368 Self::default()
15369 }
15370
15371 unsafe fn decode(
15372 &mut self,
15373 decoder: &mut fidl::encoding::Decoder<'_, D>,
15374 offset: usize,
15375 mut depth: fidl::encoding::Depth,
15376 ) -> fidl::Result<()> {
15377 decoder.debug_check_bounds::<Self>(offset);
15378 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
15379 None => return Err(fidl::Error::NotNullable),
15380 Some(len) => len,
15381 };
15382 if len == 0 {
15384 return Ok(());
15385 };
15386 depth.increment()?;
15387 let envelope_size = 8;
15388 let bytes_len = len * envelope_size;
15389 let offset = decoder.out_of_line_offset(bytes_len)?;
15390 let mut _next_ordinal_to_read = 0;
15392 let mut next_offset = offset;
15393 let end_offset = offset + bytes_len;
15394 _next_ordinal_to_read += 1;
15395 if next_offset >= end_offset {
15396 return Ok(());
15397 }
15398
15399 while _next_ordinal_to_read < 1 {
15401 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15402 _next_ordinal_to_read += 1;
15403 next_offset += envelope_size;
15404 }
15405
15406 let next_out_of_line = decoder.next_out_of_line();
15407 let handles_before = decoder.remaining_handles();
15408 if let Some((inlined, num_bytes, num_handles)) =
15409 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15410 {
15411 let member_inline_size =
15412 <i8 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
15413 if inlined != (member_inline_size <= 4) {
15414 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15415 }
15416 let inner_offset;
15417 let mut inner_depth = depth.clone();
15418 if inlined {
15419 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15420 inner_offset = next_offset;
15421 } else {
15422 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15423 inner_depth.increment()?;
15424 }
15425 let val_ref = self.tx_power.get_or_insert_with(|| fidl::new_empty!(i8, D));
15426 fidl::decode!(i8, D, val_ref, decoder, inner_offset, inner_depth)?;
15427 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15428 {
15429 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15430 }
15431 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15432 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15433 }
15434 }
15435
15436 next_offset += envelope_size;
15437 _next_ordinal_to_read += 1;
15438 if next_offset >= end_offset {
15439 return Ok(());
15440 }
15441
15442 while _next_ordinal_to_read < 2 {
15444 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15445 _next_ordinal_to_read += 1;
15446 next_offset += envelope_size;
15447 }
15448
15449 let next_out_of_line = decoder.next_out_of_line();
15450 let handles_before = decoder.remaining_handles();
15451 if let Some((inlined, num_bytes, num_handles)) =
15452 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15453 {
15454 let member_inline_size = <fidl_fuchsia_bluetooth__common::Appearance as fidl::encoding::TypeMarker>::inline_size(decoder.context);
15455 if inlined != (member_inline_size <= 4) {
15456 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15457 }
15458 let inner_offset;
15459 let mut inner_depth = depth.clone();
15460 if inlined {
15461 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15462 inner_offset = next_offset;
15463 } else {
15464 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15465 inner_depth.increment()?;
15466 }
15467 let val_ref = self.appearance.get_or_insert_with(|| {
15468 fidl::new_empty!(fidl_fuchsia_bluetooth__common::Appearance, D)
15469 });
15470 fidl::decode!(
15471 fidl_fuchsia_bluetooth__common::Appearance,
15472 D,
15473 val_ref,
15474 decoder,
15475 inner_offset,
15476 inner_depth
15477 )?;
15478 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15479 {
15480 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15481 }
15482 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15483 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15484 }
15485 }
15486
15487 next_offset += envelope_size;
15488 _next_ordinal_to_read += 1;
15489 if next_offset >= end_offset {
15490 return Ok(());
15491 }
15492
15493 while _next_ordinal_to_read < 3 {
15495 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15496 _next_ordinal_to_read += 1;
15497 next_offset += envelope_size;
15498 }
15499
15500 let next_out_of_line = decoder.next_out_of_line();
15501 let handles_before = decoder.remaining_handles();
15502 if let Some((inlined, num_bytes, num_handles)) =
15503 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15504 {
15505 let member_inline_size = <fidl::encoding::UnboundedVector<
15506 fidl_fuchsia_bluetooth__common::Uuid,
15507 > as fidl::encoding::TypeMarker>::inline_size(
15508 decoder.context
15509 );
15510 if inlined != (member_inline_size <= 4) {
15511 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15512 }
15513 let inner_offset;
15514 let mut inner_depth = depth.clone();
15515 if inlined {
15516 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15517 inner_offset = next_offset;
15518 } else {
15519 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15520 inner_depth.increment()?;
15521 }
15522 let val_ref = self.service_uuids.get_or_insert_with(|| {
15523 fidl::new_empty!(
15524 fidl::encoding::UnboundedVector<fidl_fuchsia_bluetooth__common::Uuid>,
15525 D
15526 )
15527 });
15528 fidl::decode!(
15529 fidl::encoding::UnboundedVector<fidl_fuchsia_bluetooth__common::Uuid>,
15530 D,
15531 val_ref,
15532 decoder,
15533 inner_offset,
15534 inner_depth
15535 )?;
15536 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15537 {
15538 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15539 }
15540 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15541 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15542 }
15543 }
15544
15545 next_offset += envelope_size;
15546 _next_ordinal_to_read += 1;
15547 if next_offset >= end_offset {
15548 return Ok(());
15549 }
15550
15551 while _next_ordinal_to_read < 4 {
15553 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15554 _next_ordinal_to_read += 1;
15555 next_offset += envelope_size;
15556 }
15557
15558 let next_out_of_line = decoder.next_out_of_line();
15559 let handles_before = decoder.remaining_handles();
15560 if let Some((inlined, num_bytes, num_handles)) =
15561 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15562 {
15563 let member_inline_size = <fidl::encoding::UnboundedVector<ServiceData> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
15564 if inlined != (member_inline_size <= 4) {
15565 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15566 }
15567 let inner_offset;
15568 let mut inner_depth = depth.clone();
15569 if inlined {
15570 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15571 inner_offset = next_offset;
15572 } else {
15573 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15574 inner_depth.increment()?;
15575 }
15576 let val_ref = self.service_data.get_or_insert_with(|| {
15577 fidl::new_empty!(fidl::encoding::UnboundedVector<ServiceData>, D)
15578 });
15579 fidl::decode!(
15580 fidl::encoding::UnboundedVector<ServiceData>,
15581 D,
15582 val_ref,
15583 decoder,
15584 inner_offset,
15585 inner_depth
15586 )?;
15587 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15588 {
15589 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15590 }
15591 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15592 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15593 }
15594 }
15595
15596 next_offset += envelope_size;
15597 _next_ordinal_to_read += 1;
15598 if next_offset >= end_offset {
15599 return Ok(());
15600 }
15601
15602 while _next_ordinal_to_read < 5 {
15604 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15605 _next_ordinal_to_read += 1;
15606 next_offset += envelope_size;
15607 }
15608
15609 let next_out_of_line = decoder.next_out_of_line();
15610 let handles_before = decoder.remaining_handles();
15611 if let Some((inlined, num_bytes, num_handles)) =
15612 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15613 {
15614 let member_inline_size = <fidl::encoding::UnboundedVector<ManufacturerData> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
15615 if inlined != (member_inline_size <= 4) {
15616 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15617 }
15618 let inner_offset;
15619 let mut inner_depth = depth.clone();
15620 if inlined {
15621 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15622 inner_offset = next_offset;
15623 } else {
15624 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15625 inner_depth.increment()?;
15626 }
15627 let val_ref = self.manufacturer_data.get_or_insert_with(|| {
15628 fidl::new_empty!(fidl::encoding::UnboundedVector<ManufacturerData>, D)
15629 });
15630 fidl::decode!(
15631 fidl::encoding::UnboundedVector<ManufacturerData>,
15632 D,
15633 val_ref,
15634 decoder,
15635 inner_offset,
15636 inner_depth
15637 )?;
15638 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15639 {
15640 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15641 }
15642 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15643 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15644 }
15645 }
15646
15647 next_offset += envelope_size;
15648 _next_ordinal_to_read += 1;
15649 if next_offset >= end_offset {
15650 return Ok(());
15651 }
15652
15653 while _next_ordinal_to_read < 6 {
15655 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15656 _next_ordinal_to_read += 1;
15657 next_offset += envelope_size;
15658 }
15659
15660 let next_out_of_line = decoder.next_out_of_line();
15661 let handles_before = decoder.remaining_handles();
15662 if let Some((inlined, num_bytes, num_handles)) =
15663 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15664 {
15665 let member_inline_size = <fidl::encoding::UnboundedVector<
15666 fidl::encoding::BoundedString<278>,
15667 > as fidl::encoding::TypeMarker>::inline_size(
15668 decoder.context
15669 );
15670 if inlined != (member_inline_size <= 4) {
15671 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15672 }
15673 let inner_offset;
15674 let mut inner_depth = depth.clone();
15675 if inlined {
15676 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15677 inner_offset = next_offset;
15678 } else {
15679 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15680 inner_depth.increment()?;
15681 }
15682 let val_ref = self.uris.get_or_insert_with(|| {
15683 fidl::new_empty!(
15684 fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<278>>,
15685 D
15686 )
15687 });
15688 fidl::decode!(
15689 fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<278>>,
15690 D,
15691 val_ref,
15692 decoder,
15693 inner_offset,
15694 inner_depth
15695 )?;
15696 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15697 {
15698 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15699 }
15700 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15701 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15702 }
15703 }
15704
15705 next_offset += envelope_size;
15706 _next_ordinal_to_read += 1;
15707 if next_offset >= end_offset {
15708 return Ok(());
15709 }
15710
15711 while _next_ordinal_to_read < 7 {
15713 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15714 _next_ordinal_to_read += 1;
15715 next_offset += envelope_size;
15716 }
15717
15718 let next_out_of_line = decoder.next_out_of_line();
15719 let handles_before = decoder.remaining_handles();
15720 if let Some((inlined, num_bytes, num_handles)) =
15721 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15722 {
15723 let member_inline_size =
15724 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
15725 if inlined != (member_inline_size <= 4) {
15726 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15727 }
15728 let inner_offset;
15729 let mut inner_depth = depth.clone();
15730 if inlined {
15731 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15732 inner_offset = next_offset;
15733 } else {
15734 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15735 inner_depth.increment()?;
15736 }
15737 let val_ref = self.timestamp.get_or_insert_with(|| fidl::new_empty!(i64, D));
15738 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
15739 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15740 {
15741 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15742 }
15743 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15744 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15745 }
15746 }
15747
15748 next_offset += envelope_size;
15749 _next_ordinal_to_read += 1;
15750 if next_offset >= end_offset {
15751 return Ok(());
15752 }
15753
15754 while _next_ordinal_to_read < 8 {
15756 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15757 _next_ordinal_to_read += 1;
15758 next_offset += envelope_size;
15759 }
15760
15761 let next_out_of_line = decoder.next_out_of_line();
15762 let handles_before = decoder.remaining_handles();
15763 if let Some((inlined, num_bytes, num_handles)) =
15764 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15765 {
15766 let member_inline_size =
15767 <fidl::encoding::Array<u8, 6> as fidl::encoding::TypeMarker>::inline_size(
15768 decoder.context,
15769 );
15770 if inlined != (member_inline_size <= 4) {
15771 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15772 }
15773 let inner_offset;
15774 let mut inner_depth = depth.clone();
15775 if inlined {
15776 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15777 inner_offset = next_offset;
15778 } else {
15779 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15780 inner_depth.increment()?;
15781 }
15782 let val_ref = self
15783 .resolvable_set_identifier
15784 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u8, 6>, D));
15785 fidl::decode!(fidl::encoding::Array<u8, 6>, D, val_ref, decoder, inner_offset, inner_depth)?;
15786 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15787 {
15788 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15789 }
15790 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15791 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15792 }
15793 }
15794
15795 next_offset += envelope_size;
15796 _next_ordinal_to_read += 1;
15797 if next_offset >= end_offset {
15798 return Ok(());
15799 }
15800
15801 while _next_ordinal_to_read < 9 {
15803 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15804 _next_ordinal_to_read += 1;
15805 next_offset += envelope_size;
15806 }
15807
15808 let next_out_of_line = decoder.next_out_of_line();
15809 let handles_before = decoder.remaining_handles();
15810 if let Some((inlined, num_bytes, num_handles)) =
15811 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15812 {
15813 let member_inline_size =
15814 <fidl::encoding::BoundedString<128> as fidl::encoding::TypeMarker>::inline_size(
15815 decoder.context,
15816 );
15817 if inlined != (member_inline_size <= 4) {
15818 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15819 }
15820 let inner_offset;
15821 let mut inner_depth = depth.clone();
15822 if inlined {
15823 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15824 inner_offset = next_offset;
15825 } else {
15826 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15827 inner_depth.increment()?;
15828 }
15829 let val_ref = self
15830 .broadcast_name
15831 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<128>, D));
15832 fidl::decode!(
15833 fidl::encoding::BoundedString<128>,
15834 D,
15835 val_ref,
15836 decoder,
15837 inner_offset,
15838 inner_depth
15839 )?;
15840 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15841 {
15842 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15843 }
15844 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15845 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15846 }
15847 }
15848
15849 next_offset += envelope_size;
15850
15851 while next_offset < end_offset {
15853 _next_ordinal_to_read += 1;
15854 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15855 next_offset += envelope_size;
15856 }
15857
15858 Ok(())
15859 }
15860 }
15861
15862 impl ScanOptions {
15863 #[inline(always)]
15864 fn max_ordinal_present(&self) -> u64 {
15865 if let Some(_) = self.filters {
15866 return 1;
15867 }
15868 0
15869 }
15870 }
15871
15872 impl fidl::encoding::ValueTypeMarker for ScanOptions {
15873 type Borrowed<'a> = &'a Self;
15874 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
15875 value
15876 }
15877 }
15878
15879 unsafe impl fidl::encoding::TypeMarker for ScanOptions {
15880 type Owned = Self;
15881
15882 #[inline(always)]
15883 fn inline_align(_context: fidl::encoding::Context) -> usize {
15884 8
15885 }
15886
15887 #[inline(always)]
15888 fn inline_size(_context: fidl::encoding::Context) -> usize {
15889 16
15890 }
15891 }
15892
15893 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ScanOptions, D>
15894 for &ScanOptions
15895 {
15896 unsafe fn encode(
15897 self,
15898 encoder: &mut fidl::encoding::Encoder<'_, D>,
15899 offset: usize,
15900 mut depth: fidl::encoding::Depth,
15901 ) -> fidl::Result<()> {
15902 encoder.debug_check_bounds::<ScanOptions>(offset);
15903 let max_ordinal: u64 = self.max_ordinal_present();
15905 encoder.write_num(max_ordinal, offset);
15906 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
15907 if max_ordinal == 0 {
15909 return Ok(());
15910 }
15911 depth.increment()?;
15912 let envelope_size = 8;
15913 let bytes_len = max_ordinal as usize * envelope_size;
15914 #[allow(unused_variables)]
15915 let offset = encoder.out_of_line_offset(bytes_len);
15916 let mut _prev_end_offset: usize = 0;
15917 if 1 > max_ordinal {
15918 return Ok(());
15919 }
15920
15921 let cur_offset: usize = (1 - 1) * envelope_size;
15924
15925 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
15927
15928 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<Filter>, D>(
15933 self.filters.as_ref().map(<fidl::encoding::UnboundedVector<Filter> as fidl::encoding::ValueTypeMarker>::borrow),
15934 encoder, offset + cur_offset, depth
15935 )?;
15936
15937 _prev_end_offset = cur_offset + envelope_size;
15938
15939 Ok(())
15940 }
15941 }
15942
15943 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ScanOptions {
15944 #[inline(always)]
15945 fn new_empty() -> Self {
15946 Self::default()
15947 }
15948
15949 unsafe fn decode(
15950 &mut self,
15951 decoder: &mut fidl::encoding::Decoder<'_, D>,
15952 offset: usize,
15953 mut depth: fidl::encoding::Depth,
15954 ) -> fidl::Result<()> {
15955 decoder.debug_check_bounds::<Self>(offset);
15956 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
15957 None => return Err(fidl::Error::NotNullable),
15958 Some(len) => len,
15959 };
15960 if len == 0 {
15962 return Ok(());
15963 };
15964 depth.increment()?;
15965 let envelope_size = 8;
15966 let bytes_len = len * envelope_size;
15967 let offset = decoder.out_of_line_offset(bytes_len)?;
15968 let mut _next_ordinal_to_read = 0;
15970 let mut next_offset = offset;
15971 let end_offset = offset + bytes_len;
15972 _next_ordinal_to_read += 1;
15973 if next_offset >= end_offset {
15974 return Ok(());
15975 }
15976
15977 while _next_ordinal_to_read < 1 {
15979 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15980 _next_ordinal_to_read += 1;
15981 next_offset += envelope_size;
15982 }
15983
15984 let next_out_of_line = decoder.next_out_of_line();
15985 let handles_before = decoder.remaining_handles();
15986 if let Some((inlined, num_bytes, num_handles)) =
15987 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15988 {
15989 let member_inline_size = <fidl::encoding::UnboundedVector<Filter> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
15990 if inlined != (member_inline_size <= 4) {
15991 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15992 }
15993 let inner_offset;
15994 let mut inner_depth = depth.clone();
15995 if inlined {
15996 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15997 inner_offset = next_offset;
15998 } else {
15999 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
16000 inner_depth.increment()?;
16001 }
16002 let val_ref = self.filters.get_or_insert_with(|| {
16003 fidl::new_empty!(fidl::encoding::UnboundedVector<Filter>, D)
16004 });
16005 fidl::decode!(
16006 fidl::encoding::UnboundedVector<Filter>,
16007 D,
16008 val_ref,
16009 decoder,
16010 inner_offset,
16011 inner_depth
16012 )?;
16013 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
16014 {
16015 return Err(fidl::Error::InvalidNumBytesInEnvelope);
16016 }
16017 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
16018 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
16019 }
16020 }
16021
16022 next_offset += envelope_size;
16023
16024 while next_offset < end_offset {
16026 _next_ordinal_to_read += 1;
16027 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
16028 next_offset += envelope_size;
16029 }
16030
16031 Ok(())
16032 }
16033 }
16034
16035 impl fidl::encoding::ValueTypeMarker for AdvertisingProcedure {
16036 type Borrowed<'a> = &'a Self;
16037 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
16038 value
16039 }
16040 }
16041
16042 unsafe impl fidl::encoding::TypeMarker for AdvertisingProcedure {
16043 type Owned = Self;
16044
16045 #[inline(always)]
16046 fn inline_align(_context: fidl::encoding::Context) -> usize {
16047 8
16048 }
16049
16050 #[inline(always)]
16051 fn inline_size(_context: fidl::encoding::Context) -> usize {
16052 16
16053 }
16054 }
16055
16056 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<AdvertisingProcedure, D>
16057 for &AdvertisingProcedure
16058 {
16059 #[inline]
16060 unsafe fn encode(
16061 self,
16062 encoder: &mut fidl::encoding::Encoder<'_, D>,
16063 offset: usize,
16064 _depth: fidl::encoding::Depth,
16065 ) -> fidl::Result<()> {
16066 encoder.debug_check_bounds::<AdvertisingProcedure>(offset);
16067 encoder.write_num::<u64>(self.ordinal(), offset);
16068 match self {
16069 AdvertisingProcedure::Legacy(ref val) => {
16070 fidl::encoding::encode_in_envelope::<Legacy, D>(
16071 <Legacy as fidl::encoding::ValueTypeMarker>::borrow(val),
16072 encoder,
16073 offset + 8,
16074 _depth,
16075 )
16076 }
16077 AdvertisingProcedure::Extended(ref val) => {
16078 fidl::encoding::encode_in_envelope::<Extended, D>(
16079 <Extended as fidl::encoding::ValueTypeMarker>::borrow(val),
16080 encoder,
16081 offset + 8,
16082 _depth,
16083 )
16084 }
16085 AdvertisingProcedure::__SourceBreaking { .. } => Err(fidl::Error::UnknownUnionTag),
16086 }
16087 }
16088 }
16089
16090 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for AdvertisingProcedure {
16091 #[inline(always)]
16092 fn new_empty() -> Self {
16093 Self::__SourceBreaking { unknown_ordinal: 0 }
16094 }
16095
16096 #[inline]
16097 unsafe fn decode(
16098 &mut self,
16099 decoder: &mut fidl::encoding::Decoder<'_, D>,
16100 offset: usize,
16101 mut depth: fidl::encoding::Depth,
16102 ) -> fidl::Result<()> {
16103 decoder.debug_check_bounds::<Self>(offset);
16104 #[allow(unused_variables)]
16105 let next_out_of_line = decoder.next_out_of_line();
16106 let handles_before = decoder.remaining_handles();
16107 let (ordinal, inlined, num_bytes, num_handles) =
16108 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
16109
16110 let member_inline_size = match ordinal {
16111 1 => <Legacy as fidl::encoding::TypeMarker>::inline_size(decoder.context),
16112 2 => <Extended as fidl::encoding::TypeMarker>::inline_size(decoder.context),
16113 0 => return Err(fidl::Error::UnknownUnionTag),
16114 _ => num_bytes as usize,
16115 };
16116
16117 if inlined != (member_inline_size <= 4) {
16118 return Err(fidl::Error::InvalidInlineBitInEnvelope);
16119 }
16120 let _inner_offset;
16121 if inlined {
16122 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
16123 _inner_offset = offset + 8;
16124 } else {
16125 depth.increment()?;
16126 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
16127 }
16128 match ordinal {
16129 1 => {
16130 #[allow(irrefutable_let_patterns)]
16131 if let AdvertisingProcedure::Legacy(_) = self {
16132 } else {
16134 *self = AdvertisingProcedure::Legacy(fidl::new_empty!(Legacy, D));
16136 }
16137 #[allow(irrefutable_let_patterns)]
16138 if let AdvertisingProcedure::Legacy(ref mut val) = self {
16139 fidl::decode!(Legacy, D, val, decoder, _inner_offset, depth)?;
16140 } else {
16141 unreachable!()
16142 }
16143 }
16144 2 => {
16145 #[allow(irrefutable_let_patterns)]
16146 if let AdvertisingProcedure::Extended(_) = self {
16147 } else {
16149 *self = AdvertisingProcedure::Extended(fidl::new_empty!(Extended, D));
16151 }
16152 #[allow(irrefutable_let_patterns)]
16153 if let AdvertisingProcedure::Extended(ref mut val) = self {
16154 fidl::decode!(Extended, D, val, decoder, _inner_offset, depth)?;
16155 } else {
16156 unreachable!()
16157 }
16158 }
16159 #[allow(deprecated)]
16160 ordinal => {
16161 for _ in 0..num_handles {
16162 decoder.drop_next_handle()?;
16163 }
16164 *self = AdvertisingProcedure::__SourceBreaking { unknown_ordinal: ordinal };
16165 }
16166 }
16167 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
16168 return Err(fidl::Error::InvalidNumBytesInEnvelope);
16169 }
16170 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
16171 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
16172 }
16173 Ok(())
16174 }
16175 }
16176
16177 impl fidl::encoding::ValueTypeMarker for SyncReport {
16178 type Borrowed<'a> = &'a Self;
16179 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
16180 value
16181 }
16182 }
16183
16184 unsafe impl fidl::encoding::TypeMarker for SyncReport {
16185 type Owned = Self;
16186
16187 #[inline(always)]
16188 fn inline_align(_context: fidl::encoding::Context) -> usize {
16189 8
16190 }
16191
16192 #[inline(always)]
16193 fn inline_size(_context: fidl::encoding::Context) -> usize {
16194 16
16195 }
16196 }
16197
16198 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<SyncReport, D>
16199 for &SyncReport
16200 {
16201 #[inline]
16202 unsafe fn encode(
16203 self,
16204 encoder: &mut fidl::encoding::Encoder<'_, D>,
16205 offset: usize,
16206 _depth: fidl::encoding::Depth,
16207 ) -> fidl::Result<()> {
16208 encoder.debug_check_bounds::<SyncReport>(offset);
16209 encoder.write_num::<u64>(self.ordinal(), offset);
16210 match self {
16211 SyncReport::PeriodicAdvertisingReport(ref val) => {
16212 fidl::encoding::encode_in_envelope::<PeriodicAdvertisingReport, D>(
16213 <PeriodicAdvertisingReport as fidl::encoding::ValueTypeMarker>::borrow(val),
16214 encoder, offset + 8, _depth
16215 )
16216 }
16217 SyncReport::BroadcastIsochronousGroupInfoReport(ref val) => {
16218 fidl::encoding::encode_in_envelope::<BroadcastIsochronousGroupInfoReport, D>(
16219 <BroadcastIsochronousGroupInfoReport as fidl::encoding::ValueTypeMarker>::borrow(val),
16220 encoder, offset + 8, _depth
16221 )
16222 }
16223 SyncReport::__SourceBreaking { .. } => Err(fidl::Error::UnknownUnionTag),
16224 }
16225 }
16226 }
16227
16228 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for SyncReport {
16229 #[inline(always)]
16230 fn new_empty() -> Self {
16231 Self::__SourceBreaking { unknown_ordinal: 0 }
16232 }
16233
16234 #[inline]
16235 unsafe fn decode(
16236 &mut self,
16237 decoder: &mut fidl::encoding::Decoder<'_, D>,
16238 offset: usize,
16239 mut depth: fidl::encoding::Depth,
16240 ) -> fidl::Result<()> {
16241 decoder.debug_check_bounds::<Self>(offset);
16242 #[allow(unused_variables)]
16243 let next_out_of_line = decoder.next_out_of_line();
16244 let handles_before = decoder.remaining_handles();
16245 let (ordinal, inlined, num_bytes, num_handles) =
16246 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
16247
16248 let member_inline_size = match ordinal {
16249 1 => <PeriodicAdvertisingReport as fidl::encoding::TypeMarker>::inline_size(
16250 decoder.context,
16251 ),
16252 2 => {
16253 <BroadcastIsochronousGroupInfoReport as fidl::encoding::TypeMarker>::inline_size(
16254 decoder.context,
16255 )
16256 }
16257 0 => return Err(fidl::Error::UnknownUnionTag),
16258 _ => num_bytes as usize,
16259 };
16260
16261 if inlined != (member_inline_size <= 4) {
16262 return Err(fidl::Error::InvalidInlineBitInEnvelope);
16263 }
16264 let _inner_offset;
16265 if inlined {
16266 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
16267 _inner_offset = offset + 8;
16268 } else {
16269 depth.increment()?;
16270 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
16271 }
16272 match ordinal {
16273 1 => {
16274 #[allow(irrefutable_let_patterns)]
16275 if let SyncReport::PeriodicAdvertisingReport(_) = self {
16276 } else {
16278 *self = SyncReport::PeriodicAdvertisingReport(fidl::new_empty!(
16280 PeriodicAdvertisingReport,
16281 D
16282 ));
16283 }
16284 #[allow(irrefutable_let_patterns)]
16285 if let SyncReport::PeriodicAdvertisingReport(ref mut val) = self {
16286 fidl::decode!(
16287 PeriodicAdvertisingReport,
16288 D,
16289 val,
16290 decoder,
16291 _inner_offset,
16292 depth
16293 )?;
16294 } else {
16295 unreachable!()
16296 }
16297 }
16298 2 => {
16299 #[allow(irrefutable_let_patterns)]
16300 if let SyncReport::BroadcastIsochronousGroupInfoReport(_) = self {
16301 } else {
16303 *self = SyncReport::BroadcastIsochronousGroupInfoReport(fidl::new_empty!(
16305 BroadcastIsochronousGroupInfoReport,
16306 D
16307 ));
16308 }
16309 #[allow(irrefutable_let_patterns)]
16310 if let SyncReport::BroadcastIsochronousGroupInfoReport(ref mut val) = self {
16311 fidl::decode!(
16312 BroadcastIsochronousGroupInfoReport,
16313 D,
16314 val,
16315 decoder,
16316 _inner_offset,
16317 depth
16318 )?;
16319 } else {
16320 unreachable!()
16321 }
16322 }
16323 #[allow(deprecated)]
16324 ordinal => {
16325 for _ in 0..num_handles {
16326 decoder.drop_next_handle()?;
16327 }
16328 *self = SyncReport::__SourceBreaking { unknown_ordinal: ordinal };
16329 }
16330 }
16331 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
16332 return Err(fidl::Error::InvalidNumBytesInEnvelope);
16333 }
16334 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
16335 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
16336 }
16337 Ok(())
16338 }
16339 }
16340}