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 LocalKey = Key;
13
14pub const MAX_PEER_SERVICES: u16 = 65535;
17
18#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
21#[repr(u32)]
22pub enum BondableMode {
23 Bondable = 1,
25 NonBondable = 2,
27}
28
29impl BondableMode {
30 #[inline]
31 pub fn from_primitive(prim: u32) -> Option<Self> {
32 match prim {
33 1 => Some(Self::Bondable),
34 2 => Some(Self::NonBondable),
35 _ => None,
36 }
37 }
38
39 #[inline]
40 pub const fn into_primitive(self) -> u32 {
41 self as u32
42 }
43}
44
45#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
46#[repr(u32)]
47pub enum BootstrapError {
48 InvalidHostIdentity = 1,
49 WriteFailure = 2,
50}
51
52impl BootstrapError {
53 #[inline]
54 pub fn from_primitive(prim: u32) -> Option<Self> {
55 match prim {
56 1 => Some(Self::InvalidHostIdentity),
57 2 => Some(Self::WriteFailure),
58 _ => None,
59 }
60 }
61
62 #[inline]
63 pub const fn into_primitive(self) -> u32 {
64 self as u32
65 }
66}
67
68#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
73#[repr(u32)]
74pub enum BrEdrSecurityMode {
75 Mode4 = 1,
80 SecureConnectionsOnly = 2,
86}
87
88impl BrEdrSecurityMode {
89 #[inline]
90 pub fn from_primitive(prim: u32) -> Option<Self> {
91 match prim {
92 1 => Some(Self::Mode4),
93 2 => Some(Self::SecureConnectionsOnly),
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 Error {
107 Failed = 1,
109 PeerNotFound = 2,
111 TimedOut = 3,
113 Canceled = 4,
115 InProgress = 5,
117 NotSupported = 6,
119 InvalidArguments = 7,
121}
122
123impl Error {
124 #[inline]
125 pub fn from_primitive(prim: u32) -> Option<Self> {
126 match prim {
127 1 => Some(Self::Failed),
128 2 => Some(Self::PeerNotFound),
129 3 => Some(Self::TimedOut),
130 4 => Some(Self::Canceled),
131 5 => Some(Self::InProgress),
132 6 => Some(Self::NotSupported),
133 7 => Some(Self::InvalidArguments),
134 _ => None,
135 }
136 }
137
138 #[inline]
139 pub const fn into_primitive(self) -> u32 {
140 self as u32
141 }
142}
143
144#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
149#[repr(u32)]
150pub enum InputCapability {
151 None = 1,
156 Confirmation = 2,
158 Keyboard = 3,
161}
162
163impl InputCapability {
164 #[inline]
165 pub fn from_primitive(prim: u32) -> Option<Self> {
166 match prim {
167 1 => Some(Self::None),
168 2 => Some(Self::Confirmation),
169 3 => Some(Self::Keyboard),
170 _ => None,
171 }
172 }
173
174 #[inline]
175 pub const fn into_primitive(self) -> u32 {
176 self as u32
177 }
178}
179
180#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
185#[repr(u32)]
186pub enum LeSecurityMode {
187 Mode1 = 1,
191 SecureConnectionsOnly = 2,
197}
198
199impl LeSecurityMode {
200 #[inline]
201 pub fn from_primitive(prim: u32) -> Option<Self> {
202 match prim {
203 1 => Some(Self::Mode1),
204 2 => Some(Self::SecureConnectionsOnly),
205 _ => None,
206 }
207 }
208
209 #[inline]
210 pub const fn into_primitive(self) -> u32 {
211 self as u32
212 }
213}
214
215#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
216pub enum LookupError {
217 NotFound,
218 MissingArgument,
219 #[doc(hidden)]
220 __SourceBreaking {
221 unknown_ordinal: u32,
222 },
223}
224
225#[macro_export]
227macro_rules! LookupErrorUnknown {
228 () => {
229 _
230 };
231}
232
233impl LookupError {
234 #[inline]
235 pub fn from_primitive(prim: u32) -> Option<Self> {
236 match prim {
237 0 => Some(Self::NotFound),
238 1 => Some(Self::MissingArgument),
239 _ => None,
240 }
241 }
242
243 #[inline]
244 pub fn from_primitive_allow_unknown(prim: u32) -> Self {
245 match prim {
246 0 => Self::NotFound,
247 1 => Self::MissingArgument,
248 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
249 }
250 }
251
252 #[inline]
253 pub fn unknown() -> Self {
254 Self::__SourceBreaking { unknown_ordinal: 0xffffffff }
255 }
256
257 #[inline]
258 pub const fn into_primitive(self) -> u32 {
259 match self {
260 Self::NotFound => 0,
261 Self::MissingArgument => 1,
262 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
263 }
264 }
265
266 #[inline]
267 pub fn is_unknown(&self) -> bool {
268 match self {
269 Self::__SourceBreaking { unknown_ordinal: _ } => true,
270 _ => false,
271 }
272 }
273}
274
275#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
280#[repr(u32)]
281pub enum OutputCapability {
282 None = 1,
284 Display = 2,
286}
287
288impl OutputCapability {
289 #[inline]
290 pub fn from_primitive(prim: u32) -> Option<Self> {
291 match prim {
292 1 => Some(Self::None),
293 2 => Some(Self::Display),
294 _ => None,
295 }
296 }
297
298 #[inline]
299 pub const fn into_primitive(self) -> u32 {
300 self as u32
301 }
302}
303
304#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
308#[repr(u32)]
309pub enum PairingKeypress {
310 DigitEntered = 1,
312 DigitErased = 2,
314 PasskeyCleared = 3,
316 PasskeyEntered = 4,
318}
319
320impl PairingKeypress {
321 #[inline]
322 pub fn from_primitive(prim: u32) -> Option<Self> {
323 match prim {
324 1 => Some(Self::DigitEntered),
325 2 => Some(Self::DigitErased),
326 3 => Some(Self::PasskeyCleared),
327 4 => Some(Self::PasskeyEntered),
328 _ => None,
329 }
330 }
331
332 #[inline]
333 pub const fn into_primitive(self) -> u32 {
334 self as u32
335 }
336}
337
338#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
341#[repr(u32)]
342pub enum PairingMethod {
343 Consent = 1,
348 PasskeyDisplay = 2,
351 PasskeyComparison = 3,
355 PasskeyEntry = 4,
358}
359
360impl PairingMethod {
361 #[inline]
362 pub fn from_primitive(prim: u32) -> Option<Self> {
363 match prim {
364 1 => Some(Self::Consent),
365 2 => Some(Self::PasskeyDisplay),
366 3 => Some(Self::PasskeyComparison),
367 4 => Some(Self::PasskeyEntry),
368 _ => None,
369 }
370 }
371
372 #[inline]
373 pub const fn into_primitive(self) -> u32 {
374 self as u32
375 }
376}
377
378#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
381#[repr(u32)]
382pub enum PairingSecurityLevel {
383 Encrypted = 1,
385 Authenticated = 2,
388}
389
390impl PairingSecurityLevel {
391 #[inline]
392 pub fn from_primitive(prim: u32) -> Option<Self> {
393 match prim {
394 1 => Some(Self::Encrypted),
395 2 => Some(Self::Authenticated),
396 _ => None,
397 }
398 }
399
400 #[inline]
401 pub const fn into_primitive(self) -> u32 {
402 self as u32
403 }
404}
405
406#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
407#[repr(u32)]
408pub enum TechnologyType {
409 LowEnergy = 1,
410 Classic = 2,
411 DualMode = 3,
412}
413
414impl TechnologyType {
415 #[inline]
416 pub fn from_primitive(prim: u32) -> Option<Self> {
417 match prim {
418 1 => Some(Self::LowEnergy),
419 2 => Some(Self::Classic),
420 3 => Some(Self::DualMode),
421 _ => None,
422 }
423 }
424
425 #[inline]
426 pub const fn into_primitive(self) -> u32 {
427 self as u32
428 }
429}
430
431#[derive(Clone, Debug, PartialEq)]
432pub struct AccessConnectRequest {
433 pub id: fidl_fuchsia_bluetooth__common::PeerId,
434}
435
436impl fidl::Persistable for AccessConnectRequest {}
437
438#[derive(Clone, Debug, PartialEq)]
439pub struct AccessDisconnectRequest {
440 pub id: fidl_fuchsia_bluetooth__common::PeerId,
441}
442
443impl fidl::Persistable for AccessDisconnectRequest {}
444
445#[derive(Clone, Debug, PartialEq)]
446pub struct AccessForgetRequest {
447 pub id: fidl_fuchsia_bluetooth__common::PeerId,
448}
449
450impl fidl::Persistable for AccessForgetRequest {}
451
452#[derive(Clone, Debug, PartialEq)]
453pub struct AccessPairRequest {
454 pub id: fidl_fuchsia_bluetooth__common::PeerId,
455 pub options: PairingOptions,
456}
457
458impl fidl::Persistable for AccessPairRequest {}
459
460#[derive(Clone, Debug, PartialEq)]
461pub struct AccessSetDeviceClassRequest {
462 pub device_class: fidl_fuchsia_bluetooth__common::DeviceClass,
463}
464
465impl fidl::Persistable for AccessSetDeviceClassRequest {}
466
467#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
468pub struct AccessSetLocalNameRequest {
469 pub name: String,
470}
471
472impl fidl::Persistable for AccessSetLocalNameRequest {}
473
474#[derive(Clone, Debug, PartialEq)]
475pub struct AccessWatchPeersResponse {
476 pub updated: Vec<Peer>,
477 pub removed: Vec<fidl_fuchsia_bluetooth__common::PeerId>,
478}
479
480impl fidl::Persistable for AccessWatchPeersResponse {}
481
482#[derive(Clone, Debug, PartialEq)]
483pub struct AddressLookupLookupResponse {
484 pub bd_addr: fidl_fuchsia_bluetooth__common::Address,
485}
486
487impl fidl::Persistable for AddressLookupLookupResponse {}
488
489#[derive(Clone, Debug, PartialEq)]
490pub struct BootstrapAddIdentitiesRequest {
491 pub identities: Vec<Identity>,
492}
493
494impl fidl::Persistable for BootstrapAddIdentitiesRequest {}
495
496#[derive(Clone, Debug, PartialEq)]
497pub struct ConfigurationUpdateRequest {
498 pub settings: Settings,
499}
500
501impl fidl::Persistable for ConfigurationUpdateRequest {}
502
503#[derive(Clone, Debug, PartialEq)]
504pub struct ConfigurationUpdateResponse {
505 pub result: Settings,
506}
507
508impl fidl::Persistable for ConfigurationUpdateResponse {}
509
510#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
511pub struct Consent;
512
513impl fidl::Persistable for Consent {}
514
515#[derive(Clone, Debug, PartialEq)]
516pub struct HostWatcherSetActiveRequest {
517 pub id: fidl_fuchsia_bluetooth__common::HostId,
518}
519
520impl fidl::Persistable for HostWatcherSetActiveRequest {}
521
522#[derive(Clone, Debug, PartialEq)]
523pub struct HostWatcherWatchResponse {
524 pub hosts: Vec<HostInfo>,
525}
526
527impl fidl::Persistable for HostWatcherWatchResponse {}
528
529#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
531#[repr(C)]
532pub struct Key {
533 pub value: [u8; 16],
534}
535
536impl fidl::Persistable for Key {}
537
538#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
540#[repr(C)]
541pub struct LeConnectionParameters {
542 pub connection_interval: u16,
543 pub connection_latency: u16,
544 pub supervision_timeout: u16,
545}
546
547impl fidl::Persistable for LeConnectionParameters {}
548
549#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
552pub struct Ltk {
553 pub key: PeerKey,
554 pub ediv: u16,
555 pub rand: u64,
556}
557
558impl fidl::Persistable for Ltk {}
559
560#[derive(Clone, Debug, PartialEq)]
561pub struct PairingDelegate2RequestCompleteRequest {
562 pub id: fidl_fuchsia_bluetooth__common::PeerId,
563 pub success: bool,
564}
565
566impl fidl::Persistable for PairingDelegate2RequestCompleteRequest {}
567
568#[derive(Clone, Debug, PartialEq)]
569pub struct PairingDelegateOnLocalKeypressRequest {
570 pub id: fidl_fuchsia_bluetooth__common::PeerId,
571 pub keypress: PairingKeypress,
572}
573
574impl fidl::Persistable for PairingDelegateOnLocalKeypressRequest {}
575
576#[derive(Clone, Debug, PartialEq)]
577pub struct PairingDelegateOnPairingCompleteRequest {
578 pub id: fidl_fuchsia_bluetooth__common::PeerId,
579 pub success: bool,
580}
581
582impl fidl::Persistable for PairingDelegateOnPairingCompleteRequest {}
583
584#[derive(Clone, Debug, PartialEq)]
585pub struct PairingDelegateOnPairingRequestRequest {
586 pub peer: Peer,
587 pub method: PairingMethod,
588 pub displayed_passkey: u32,
589}
590
591impl fidl::Persistable for PairingDelegateOnPairingRequestRequest {}
592
593#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
594pub struct PairingDelegateOnPairingRequestResponse {
595 pub accept: bool,
596 pub entered_passkey: u32,
597}
598
599impl fidl::Persistable for PairingDelegateOnPairingRequestResponse {}
600
601#[derive(Clone, Debug, PartialEq)]
602pub struct PairingDelegateOnRemoteKeypressRequest {
603 pub id: fidl_fuchsia_bluetooth__common::PeerId,
604 pub keypress: PairingKeypress,
605}
606
607impl fidl::Persistable for PairingDelegateOnRemoteKeypressRequest {}
608
609#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
610pub struct PairingRequestKeypressRequest {
611 pub keypress: PairingKeypress,
612}
613
614impl fidl::Persistable for PairingRequestKeypressRequest {}
615
616#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
617pub struct PairingRequestOnCompleteRequest {
618 pub success: bool,
619}
620
621impl fidl::Persistable for PairingRequestOnCompleteRequest {}
622
623#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
624pub struct PairingRequestOnKeypressRequest {
625 pub keypress: PairingKeypress,
626}
627
628impl fidl::Persistable for PairingRequestOnKeypressRequest {}
629
630#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
631pub struct PasskeyEntry;
632
633impl fidl::Persistable for PasskeyEntry {}
634
635#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
637pub struct PeerKey {
638 pub security: SecurityProperties,
640 pub data: Key,
642}
643
644impl fidl::Persistable for PeerKey {}
645
646#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
647pub struct SecurityProperties {
648 pub authenticated: bool,
649 pub secure_connections: bool,
650 pub encryption_key_size: u8,
651}
652
653impl fidl::Persistable for SecurityProperties {}
654
655#[derive(Clone, Debug, Default, PartialEq)]
656pub struct AddressLookupLookupRequest {
657 pub peer_id: Option<fidl_fuchsia_bluetooth__common::PeerId>,
658 #[doc(hidden)]
659 pub __source_breaking: fidl::marker::SourceBreaking,
660}
661
662impl fidl::Persistable for AddressLookupLookupRequest {}
663
664#[derive(Clone, Debug, Default, PartialEq)]
666pub struct BondingData {
667 pub identifier: Option<fidl_fuchsia_bluetooth__common::PeerId>,
669 pub local_address: Option<fidl_fuchsia_bluetooth__common::Address>,
671 pub name: Option<String>,
673 pub address: Option<fidl_fuchsia_bluetooth__common::Address>,
675 pub le_bond: Option<LeBondData>,
677 pub bredr_bond: Option<BredrBondData>,
679 pub device_class: Option<fidl_fuchsia_bluetooth__common::DeviceClass>,
681 #[doc(hidden)]
682 pub __source_breaking: fidl::marker::SourceBreaking,
683}
684
685impl fidl::Persistable for BondingData {}
686
687#[derive(Clone, Debug, Default, PartialEq)]
688pub struct BredrBondData {
689 pub role_preference: Option<fidl_fuchsia_bluetooth__common::ConnectionRole>,
693 pub services: Option<Vec<fidl_fuchsia_bluetooth__common::Uuid>>,
695 pub link_key: Option<PeerKey>,
698 #[doc(hidden)]
699 pub __source_breaking: fidl::marker::SourceBreaking,
700}
701
702impl fidl::Persistable for BredrBondData {}
703
704#[derive(Clone, Debug, Default, PartialEq)]
706pub struct HostData {
707 pub irk: Option<Key>,
716 #[doc(hidden)]
717 pub __source_breaking: fidl::marker::SourceBreaking,
718}
719
720impl fidl::Persistable for HostData {}
721
722#[derive(Clone, Debug, Default, PartialEq)]
724pub struct HostInfo {
725 pub id: Option<fidl_fuchsia_bluetooth__common::HostId>,
729 pub technology: Option<TechnologyType>,
733 pub active: Option<bool>,
736 pub local_name: Option<String>,
739 pub discoverable: Option<bool>,
742 pub discovering: Option<bool>,
744 pub addresses: Option<Vec<fidl_fuchsia_bluetooth__common::Address>>,
750 #[doc(hidden)]
751 pub __source_breaking: fidl::marker::SourceBreaking,
752}
753
754impl fidl::Persistable for HostInfo {}
755
756#[derive(Clone, Debug, Default, PartialEq)]
766pub struct Identity {
767 pub host: Option<HostData>,
768 pub bonds: Option<Vec<BondingData>>,
770 #[doc(hidden)]
771 pub __source_breaking: fidl::marker::SourceBreaking,
772}
773
774impl fidl::Persistable for Identity {}
775
776#[derive(Clone, Debug, Default, PartialEq)]
777pub struct LeBondData {
778 pub connection_parameters: Option<LeConnectionParameters>,
780 pub services: Option<Vec<fidl_fuchsia_bluetooth__common::Uuid>>,
782 pub irk: Option<PeerKey>,
784 pub csrk: Option<PeerKey>,
786 pub peer_ltk: Option<Ltk>,
792 pub local_ltk: Option<Ltk>,
798 #[doc(hidden)]
799 pub __source_breaking: fidl::marker::SourceBreaking,
800}
801
802impl fidl::Persistable for LeBondData {}
803
804#[derive(Clone, Debug, Default, PartialEq)]
807pub struct PairingOptions {
808 pub le_security_level: Option<PairingSecurityLevel>,
811 pub bondable_mode: Option<BondableMode>,
817 pub transport: Option<TechnologyType>,
822 #[doc(hidden)]
823 pub __source_breaking: fidl::marker::SourceBreaking,
824}
825
826impl fidl::Persistable for PairingOptions {}
827
828#[derive(Clone, Debug, Default, PartialEq)]
829pub struct PairingRequestAcceptRequest {
830 pub entered_passkey: Option<u32>,
831 #[doc(hidden)]
832 pub __source_breaking: fidl::marker::SourceBreaking,
833}
834
835impl fidl::Persistable for PairingRequestAcceptRequest {}
836
837#[derive(Clone, Debug, Default, PartialEq)]
839pub struct Peer {
840 pub id: Option<fidl_fuchsia_bluetooth__common::PeerId>,
844 pub address: Option<fidl_fuchsia_bluetooth__common::Address>,
852 pub technology: Option<TechnologyType>,
856 pub connected: Option<bool>,
860 pub bonded: Option<bool>,
864 pub name: Option<String>,
866 pub appearance: Option<fidl_fuchsia_bluetooth__common::Appearance>,
869 pub device_class: Option<fidl_fuchsia_bluetooth__common::DeviceClass>,
871 pub rssi: Option<i8>,
873 pub tx_power: Option<i8>,
875 pub services: Option<Vec<fidl_fuchsia_bluetooth__common::Uuid>>,
879 pub le_services: Option<Vec<fidl_fuchsia_bluetooth__common::Uuid>>,
883 pub bredr_services: Option<Vec<fidl_fuchsia_bluetooth__common::Uuid>>,
890 #[doc(hidden)]
891 pub __source_breaking: fidl::marker::SourceBreaking,
892}
893
894impl fidl::Persistable for Peer {}
895
896#[derive(Clone, Debug, Default, PartialEq)]
900pub struct Settings {
901 pub le_privacy: Option<bool>,
909 pub le_background_scan: Option<bool>,
914 pub bredr_connectable_mode: Option<bool>,
918 pub le_security_mode: Option<LeSecurityMode>,
923 pub bredr_security_mode: Option<BrEdrSecurityMode>,
928 #[doc(hidden)]
929 pub __source_breaking: fidl::marker::SourceBreaking,
930}
931
932impl fidl::Persistable for Settings {}
933
934#[derive(Clone, Debug)]
935pub enum PairingProperties {
936 Consent(Consent),
941 PasskeyDisplay(u32),
945 PasskeyConfirmation(u32),
950 PasskeyEntry(PasskeyEntry),
953 #[doc(hidden)]
954 __SourceBreaking { unknown_ordinal: u64 },
955}
956
957#[macro_export]
959macro_rules! PairingPropertiesUnknown {
960 () => {
961 _
962 };
963}
964
965impl PartialEq for PairingProperties {
967 fn eq(&self, other: &Self) -> bool {
968 match (self, other) {
969 (Self::Consent(x), Self::Consent(y)) => *x == *y,
970 (Self::PasskeyDisplay(x), Self::PasskeyDisplay(y)) => *x == *y,
971 (Self::PasskeyConfirmation(x), Self::PasskeyConfirmation(y)) => *x == *y,
972 (Self::PasskeyEntry(x), Self::PasskeyEntry(y)) => *x == *y,
973 _ => false,
974 }
975 }
976}
977
978impl PairingProperties {
979 #[inline]
980 pub fn ordinal(&self) -> u64 {
981 match *self {
982 Self::Consent(_) => 1,
983 Self::PasskeyDisplay(_) => 2,
984 Self::PasskeyConfirmation(_) => 3,
985 Self::PasskeyEntry(_) => 4,
986 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
987 }
988 }
989
990 #[inline]
991 pub fn unknown_variant_for_testing() -> Self {
992 Self::__SourceBreaking { unknown_ordinal: 0 }
993 }
994
995 #[inline]
996 pub fn is_unknown(&self) -> bool {
997 match self {
998 Self::__SourceBreaking { .. } => true,
999 _ => false,
1000 }
1001 }
1002}
1003
1004impl fidl::Persistable for PairingProperties {}
1005
1006pub mod access_ordinals {
1007 pub const SET_PAIRING_DELEGATE: u64 = 0x4af398e1f4cdb40b;
1008 pub const SET_LOCAL_NAME: u64 = 0x7d12cd2d902206eb;
1009 pub const SET_DEVICE_CLASS: u64 = 0x58dd8f65f589035d;
1010 pub const MAKE_DISCOVERABLE: u64 = 0x747cadf609c96fb1;
1011 pub const SET_CONNECTION_POLICY: u64 = 0x8e8c7354932fb5a;
1012 pub const START_DISCOVERY: u64 = 0x6907100d9b99439;
1013 pub const WATCH_PEERS: u64 = 0x1921fe1ed8e6eb7c;
1014 pub const CONNECT: u64 = 0x1734199789fe7667;
1015 pub const DISCONNECT: u64 = 0x3a4e06d0c6185a5;
1016 pub const PAIR: u64 = 0x1d08ea19db327779;
1017 pub const FORGET: u64 = 0x1fd8e27202854c0;
1018}
1019
1020pub mod address_lookup_ordinals {
1021 pub const LOOKUP: u64 = 0x65d2ae252ec22587;
1022}
1023
1024pub mod bootstrap_ordinals {
1025 pub const ADD_IDENTITIES: u64 = 0x92d7c849de29bb0;
1026 pub const COMMIT: u64 = 0x5288006c9c7db6b7;
1027}
1028
1029pub mod configuration_ordinals {
1030 pub const UPDATE: u64 = 0x27e9cfb72e7c6d01;
1031}
1032
1033pub mod host_watcher_ordinals {
1034 pub const WATCH: u64 = 0x4e2c2972a5b16f9c;
1035 pub const SET_ACTIVE: u64 = 0x83f311ecaf0ddf3;
1036}
1037
1038pub mod pairing_ordinals {
1039 pub const SET_PAIRING_DELEGATE: u64 = 0x19721a12cb80212c;
1040 pub const SET_DELEGATE: u64 = 0x1da0568d2582a9a5;
1041}
1042
1043pub mod pairing_delegate_ordinals {
1044 pub const ON_PAIRING_REQUEST: u64 = 0x5c483a8f97b226b3;
1045 pub const ON_PAIRING_COMPLETE: u64 = 0x5ad8fc9864eba757;
1046 pub const ON_REMOTE_KEYPRESS: u64 = 0x4e341e41c604c724;
1047 pub const ON_LOCAL_KEYPRESS: u64 = 0x1a764c0428878889;
1048}
1049
1050pub mod pairing_delegate2_ordinals {
1051 pub const START_REQUEST: u64 = 0x2a5ab8092a961a01;
1052 pub const REQUEST_COMPLETE: u64 = 0x4b63b44d5dbca192;
1053}
1054
1055pub mod pairing_request_ordinals {
1056 pub const ACCEPT: u64 = 0x67278857ae043a5;
1057 pub const REJECT: u64 = 0x550414aec8155cf5;
1058 pub const KEYPRESS: u64 = 0x53948ecc921fbe9b;
1059 pub const ON_KEYPRESS: u64 = 0x71a4802e6a5d1aca;
1060 pub const ON_COMPLETE: u64 = 0xd38d3220987bc79;
1061}
1062
1063pub mod procedure_token_ordinals {}
1064
1065mod internal {
1066 use super::*;
1067 unsafe impl fidl::encoding::TypeMarker for BondableMode {
1068 type Owned = Self;
1069
1070 #[inline(always)]
1071 fn inline_align(_context: fidl::encoding::Context) -> usize {
1072 std::mem::align_of::<u32>()
1073 }
1074
1075 #[inline(always)]
1076 fn inline_size(_context: fidl::encoding::Context) -> usize {
1077 std::mem::size_of::<u32>()
1078 }
1079
1080 #[inline(always)]
1081 fn encode_is_copy() -> bool {
1082 true
1083 }
1084
1085 #[inline(always)]
1086 fn decode_is_copy() -> bool {
1087 false
1088 }
1089 }
1090
1091 impl fidl::encoding::ValueTypeMarker for BondableMode {
1092 type Borrowed<'a> = Self;
1093 #[inline(always)]
1094 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1095 *value
1096 }
1097 }
1098
1099 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for BondableMode {
1100 #[inline]
1101 unsafe fn encode(
1102 self,
1103 encoder: &mut fidl::encoding::Encoder<'_, D>,
1104 offset: usize,
1105 _depth: fidl::encoding::Depth,
1106 ) -> fidl::Result<()> {
1107 encoder.debug_check_bounds::<Self>(offset);
1108 encoder.write_num(self.into_primitive(), offset);
1109 Ok(())
1110 }
1111 }
1112
1113 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for BondableMode {
1114 #[inline(always)]
1115 fn new_empty() -> Self {
1116 Self::Bondable
1117 }
1118
1119 #[inline]
1120 unsafe fn decode(
1121 &mut self,
1122 decoder: &mut fidl::encoding::Decoder<'_, D>,
1123 offset: usize,
1124 _depth: fidl::encoding::Depth,
1125 ) -> fidl::Result<()> {
1126 decoder.debug_check_bounds::<Self>(offset);
1127 let prim = decoder.read_num::<u32>(offset);
1128
1129 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
1130 Ok(())
1131 }
1132 }
1133 unsafe impl fidl::encoding::TypeMarker for BootstrapError {
1134 type Owned = Self;
1135
1136 #[inline(always)]
1137 fn inline_align(_context: fidl::encoding::Context) -> usize {
1138 std::mem::align_of::<u32>()
1139 }
1140
1141 #[inline(always)]
1142 fn inline_size(_context: fidl::encoding::Context) -> usize {
1143 std::mem::size_of::<u32>()
1144 }
1145
1146 #[inline(always)]
1147 fn encode_is_copy() -> bool {
1148 true
1149 }
1150
1151 #[inline(always)]
1152 fn decode_is_copy() -> bool {
1153 false
1154 }
1155 }
1156
1157 impl fidl::encoding::ValueTypeMarker for BootstrapError {
1158 type Borrowed<'a> = Self;
1159 #[inline(always)]
1160 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1161 *value
1162 }
1163 }
1164
1165 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for BootstrapError {
1166 #[inline]
1167 unsafe fn encode(
1168 self,
1169 encoder: &mut fidl::encoding::Encoder<'_, D>,
1170 offset: usize,
1171 _depth: fidl::encoding::Depth,
1172 ) -> fidl::Result<()> {
1173 encoder.debug_check_bounds::<Self>(offset);
1174 encoder.write_num(self.into_primitive(), offset);
1175 Ok(())
1176 }
1177 }
1178
1179 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for BootstrapError {
1180 #[inline(always)]
1181 fn new_empty() -> Self {
1182 Self::InvalidHostIdentity
1183 }
1184
1185 #[inline]
1186 unsafe fn decode(
1187 &mut self,
1188 decoder: &mut fidl::encoding::Decoder<'_, D>,
1189 offset: usize,
1190 _depth: fidl::encoding::Depth,
1191 ) -> fidl::Result<()> {
1192 decoder.debug_check_bounds::<Self>(offset);
1193 let prim = decoder.read_num::<u32>(offset);
1194
1195 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
1196 Ok(())
1197 }
1198 }
1199 unsafe impl fidl::encoding::TypeMarker for BrEdrSecurityMode {
1200 type Owned = Self;
1201
1202 #[inline(always)]
1203 fn inline_align(_context: fidl::encoding::Context) -> usize {
1204 std::mem::align_of::<u32>()
1205 }
1206
1207 #[inline(always)]
1208 fn inline_size(_context: fidl::encoding::Context) -> usize {
1209 std::mem::size_of::<u32>()
1210 }
1211
1212 #[inline(always)]
1213 fn encode_is_copy() -> bool {
1214 true
1215 }
1216
1217 #[inline(always)]
1218 fn decode_is_copy() -> bool {
1219 false
1220 }
1221 }
1222
1223 impl fidl::encoding::ValueTypeMarker for BrEdrSecurityMode {
1224 type Borrowed<'a> = Self;
1225 #[inline(always)]
1226 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1227 *value
1228 }
1229 }
1230
1231 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
1232 for BrEdrSecurityMode
1233 {
1234 #[inline]
1235 unsafe fn encode(
1236 self,
1237 encoder: &mut fidl::encoding::Encoder<'_, D>,
1238 offset: usize,
1239 _depth: fidl::encoding::Depth,
1240 ) -> fidl::Result<()> {
1241 encoder.debug_check_bounds::<Self>(offset);
1242 encoder.write_num(self.into_primitive(), offset);
1243 Ok(())
1244 }
1245 }
1246
1247 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for BrEdrSecurityMode {
1248 #[inline(always)]
1249 fn new_empty() -> Self {
1250 Self::Mode4
1251 }
1252
1253 #[inline]
1254 unsafe fn decode(
1255 &mut self,
1256 decoder: &mut fidl::encoding::Decoder<'_, D>,
1257 offset: usize,
1258 _depth: fidl::encoding::Depth,
1259 ) -> fidl::Result<()> {
1260 decoder.debug_check_bounds::<Self>(offset);
1261 let prim = decoder.read_num::<u32>(offset);
1262
1263 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
1264 Ok(())
1265 }
1266 }
1267 unsafe impl fidl::encoding::TypeMarker for Error {
1268 type Owned = Self;
1269
1270 #[inline(always)]
1271 fn inline_align(_context: fidl::encoding::Context) -> usize {
1272 std::mem::align_of::<u32>()
1273 }
1274
1275 #[inline(always)]
1276 fn inline_size(_context: fidl::encoding::Context) -> usize {
1277 std::mem::size_of::<u32>()
1278 }
1279
1280 #[inline(always)]
1281 fn encode_is_copy() -> bool {
1282 true
1283 }
1284
1285 #[inline(always)]
1286 fn decode_is_copy() -> bool {
1287 false
1288 }
1289 }
1290
1291 impl fidl::encoding::ValueTypeMarker for Error {
1292 type Borrowed<'a> = Self;
1293 #[inline(always)]
1294 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1295 *value
1296 }
1297 }
1298
1299 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for Error {
1300 #[inline]
1301 unsafe fn encode(
1302 self,
1303 encoder: &mut fidl::encoding::Encoder<'_, D>,
1304 offset: usize,
1305 _depth: fidl::encoding::Depth,
1306 ) -> fidl::Result<()> {
1307 encoder.debug_check_bounds::<Self>(offset);
1308 encoder.write_num(self.into_primitive(), offset);
1309 Ok(())
1310 }
1311 }
1312
1313 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Error {
1314 #[inline(always)]
1315 fn new_empty() -> Self {
1316 Self::Failed
1317 }
1318
1319 #[inline]
1320 unsafe fn decode(
1321 &mut self,
1322 decoder: &mut fidl::encoding::Decoder<'_, D>,
1323 offset: usize,
1324 _depth: fidl::encoding::Depth,
1325 ) -> fidl::Result<()> {
1326 decoder.debug_check_bounds::<Self>(offset);
1327 let prim = decoder.read_num::<u32>(offset);
1328
1329 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
1330 Ok(())
1331 }
1332 }
1333 unsafe impl fidl::encoding::TypeMarker for InputCapability {
1334 type Owned = Self;
1335
1336 #[inline(always)]
1337 fn inline_align(_context: fidl::encoding::Context) -> usize {
1338 std::mem::align_of::<u32>()
1339 }
1340
1341 #[inline(always)]
1342 fn inline_size(_context: fidl::encoding::Context) -> usize {
1343 std::mem::size_of::<u32>()
1344 }
1345
1346 #[inline(always)]
1347 fn encode_is_copy() -> bool {
1348 true
1349 }
1350
1351 #[inline(always)]
1352 fn decode_is_copy() -> bool {
1353 false
1354 }
1355 }
1356
1357 impl fidl::encoding::ValueTypeMarker for InputCapability {
1358 type Borrowed<'a> = Self;
1359 #[inline(always)]
1360 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1361 *value
1362 }
1363 }
1364
1365 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
1366 for InputCapability
1367 {
1368 #[inline]
1369 unsafe fn encode(
1370 self,
1371 encoder: &mut fidl::encoding::Encoder<'_, D>,
1372 offset: usize,
1373 _depth: fidl::encoding::Depth,
1374 ) -> fidl::Result<()> {
1375 encoder.debug_check_bounds::<Self>(offset);
1376 encoder.write_num(self.into_primitive(), offset);
1377 Ok(())
1378 }
1379 }
1380
1381 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for InputCapability {
1382 #[inline(always)]
1383 fn new_empty() -> Self {
1384 Self::None
1385 }
1386
1387 #[inline]
1388 unsafe fn decode(
1389 &mut self,
1390 decoder: &mut fidl::encoding::Decoder<'_, D>,
1391 offset: usize,
1392 _depth: fidl::encoding::Depth,
1393 ) -> fidl::Result<()> {
1394 decoder.debug_check_bounds::<Self>(offset);
1395 let prim = decoder.read_num::<u32>(offset);
1396
1397 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
1398 Ok(())
1399 }
1400 }
1401 unsafe impl fidl::encoding::TypeMarker for LeSecurityMode {
1402 type Owned = Self;
1403
1404 #[inline(always)]
1405 fn inline_align(_context: fidl::encoding::Context) -> usize {
1406 std::mem::align_of::<u32>()
1407 }
1408
1409 #[inline(always)]
1410 fn inline_size(_context: fidl::encoding::Context) -> usize {
1411 std::mem::size_of::<u32>()
1412 }
1413
1414 #[inline(always)]
1415 fn encode_is_copy() -> bool {
1416 true
1417 }
1418
1419 #[inline(always)]
1420 fn decode_is_copy() -> bool {
1421 false
1422 }
1423 }
1424
1425 impl fidl::encoding::ValueTypeMarker for LeSecurityMode {
1426 type Borrowed<'a> = Self;
1427 #[inline(always)]
1428 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1429 *value
1430 }
1431 }
1432
1433 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for LeSecurityMode {
1434 #[inline]
1435 unsafe fn encode(
1436 self,
1437 encoder: &mut fidl::encoding::Encoder<'_, D>,
1438 offset: usize,
1439 _depth: fidl::encoding::Depth,
1440 ) -> fidl::Result<()> {
1441 encoder.debug_check_bounds::<Self>(offset);
1442 encoder.write_num(self.into_primitive(), offset);
1443 Ok(())
1444 }
1445 }
1446
1447 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for LeSecurityMode {
1448 #[inline(always)]
1449 fn new_empty() -> Self {
1450 Self::Mode1
1451 }
1452
1453 #[inline]
1454 unsafe fn decode(
1455 &mut self,
1456 decoder: &mut fidl::encoding::Decoder<'_, D>,
1457 offset: usize,
1458 _depth: fidl::encoding::Depth,
1459 ) -> fidl::Result<()> {
1460 decoder.debug_check_bounds::<Self>(offset);
1461 let prim = decoder.read_num::<u32>(offset);
1462
1463 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
1464 Ok(())
1465 }
1466 }
1467 unsafe impl fidl::encoding::TypeMarker for LookupError {
1468 type Owned = Self;
1469
1470 #[inline(always)]
1471 fn inline_align(_context: fidl::encoding::Context) -> usize {
1472 std::mem::align_of::<u32>()
1473 }
1474
1475 #[inline(always)]
1476 fn inline_size(_context: fidl::encoding::Context) -> usize {
1477 std::mem::size_of::<u32>()
1478 }
1479
1480 #[inline(always)]
1481 fn encode_is_copy() -> bool {
1482 false
1483 }
1484
1485 #[inline(always)]
1486 fn decode_is_copy() -> bool {
1487 false
1488 }
1489 }
1490
1491 impl fidl::encoding::ValueTypeMarker for LookupError {
1492 type Borrowed<'a> = Self;
1493 #[inline(always)]
1494 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1495 *value
1496 }
1497 }
1498
1499 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for LookupError {
1500 #[inline]
1501 unsafe fn encode(
1502 self,
1503 encoder: &mut fidl::encoding::Encoder<'_, D>,
1504 offset: usize,
1505 _depth: fidl::encoding::Depth,
1506 ) -> fidl::Result<()> {
1507 encoder.debug_check_bounds::<Self>(offset);
1508 encoder.write_num(self.into_primitive(), offset);
1509 Ok(())
1510 }
1511 }
1512
1513 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for LookupError {
1514 #[inline(always)]
1515 fn new_empty() -> Self {
1516 Self::unknown()
1517 }
1518
1519 #[inline]
1520 unsafe fn decode(
1521 &mut self,
1522 decoder: &mut fidl::encoding::Decoder<'_, D>,
1523 offset: usize,
1524 _depth: fidl::encoding::Depth,
1525 ) -> fidl::Result<()> {
1526 decoder.debug_check_bounds::<Self>(offset);
1527 let prim = decoder.read_num::<u32>(offset);
1528
1529 *self = Self::from_primitive_allow_unknown(prim);
1530 Ok(())
1531 }
1532 }
1533 unsafe impl fidl::encoding::TypeMarker for OutputCapability {
1534 type Owned = Self;
1535
1536 #[inline(always)]
1537 fn inline_align(_context: fidl::encoding::Context) -> usize {
1538 std::mem::align_of::<u32>()
1539 }
1540
1541 #[inline(always)]
1542 fn inline_size(_context: fidl::encoding::Context) -> usize {
1543 std::mem::size_of::<u32>()
1544 }
1545
1546 #[inline(always)]
1547 fn encode_is_copy() -> bool {
1548 true
1549 }
1550
1551 #[inline(always)]
1552 fn decode_is_copy() -> bool {
1553 false
1554 }
1555 }
1556
1557 impl fidl::encoding::ValueTypeMarker for OutputCapability {
1558 type Borrowed<'a> = Self;
1559 #[inline(always)]
1560 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1561 *value
1562 }
1563 }
1564
1565 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
1566 for OutputCapability
1567 {
1568 #[inline]
1569 unsafe fn encode(
1570 self,
1571 encoder: &mut fidl::encoding::Encoder<'_, D>,
1572 offset: usize,
1573 _depth: fidl::encoding::Depth,
1574 ) -> fidl::Result<()> {
1575 encoder.debug_check_bounds::<Self>(offset);
1576 encoder.write_num(self.into_primitive(), offset);
1577 Ok(())
1578 }
1579 }
1580
1581 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for OutputCapability {
1582 #[inline(always)]
1583 fn new_empty() -> Self {
1584 Self::None
1585 }
1586
1587 #[inline]
1588 unsafe fn decode(
1589 &mut self,
1590 decoder: &mut fidl::encoding::Decoder<'_, D>,
1591 offset: usize,
1592 _depth: fidl::encoding::Depth,
1593 ) -> fidl::Result<()> {
1594 decoder.debug_check_bounds::<Self>(offset);
1595 let prim = decoder.read_num::<u32>(offset);
1596
1597 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
1598 Ok(())
1599 }
1600 }
1601 unsafe impl fidl::encoding::TypeMarker for PairingKeypress {
1602 type Owned = Self;
1603
1604 #[inline(always)]
1605 fn inline_align(_context: fidl::encoding::Context) -> usize {
1606 std::mem::align_of::<u32>()
1607 }
1608
1609 #[inline(always)]
1610 fn inline_size(_context: fidl::encoding::Context) -> usize {
1611 std::mem::size_of::<u32>()
1612 }
1613
1614 #[inline(always)]
1615 fn encode_is_copy() -> bool {
1616 true
1617 }
1618
1619 #[inline(always)]
1620 fn decode_is_copy() -> bool {
1621 false
1622 }
1623 }
1624
1625 impl fidl::encoding::ValueTypeMarker for PairingKeypress {
1626 type Borrowed<'a> = Self;
1627 #[inline(always)]
1628 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1629 *value
1630 }
1631 }
1632
1633 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
1634 for PairingKeypress
1635 {
1636 #[inline]
1637 unsafe fn encode(
1638 self,
1639 encoder: &mut fidl::encoding::Encoder<'_, D>,
1640 offset: usize,
1641 _depth: fidl::encoding::Depth,
1642 ) -> fidl::Result<()> {
1643 encoder.debug_check_bounds::<Self>(offset);
1644 encoder.write_num(self.into_primitive(), offset);
1645 Ok(())
1646 }
1647 }
1648
1649 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for PairingKeypress {
1650 #[inline(always)]
1651 fn new_empty() -> Self {
1652 Self::DigitEntered
1653 }
1654
1655 #[inline]
1656 unsafe fn decode(
1657 &mut self,
1658 decoder: &mut fidl::encoding::Decoder<'_, D>,
1659 offset: usize,
1660 _depth: fidl::encoding::Depth,
1661 ) -> fidl::Result<()> {
1662 decoder.debug_check_bounds::<Self>(offset);
1663 let prim = decoder.read_num::<u32>(offset);
1664
1665 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
1666 Ok(())
1667 }
1668 }
1669 unsafe impl fidl::encoding::TypeMarker for PairingMethod {
1670 type Owned = Self;
1671
1672 #[inline(always)]
1673 fn inline_align(_context: fidl::encoding::Context) -> usize {
1674 std::mem::align_of::<u32>()
1675 }
1676
1677 #[inline(always)]
1678 fn inline_size(_context: fidl::encoding::Context) -> usize {
1679 std::mem::size_of::<u32>()
1680 }
1681
1682 #[inline(always)]
1683 fn encode_is_copy() -> bool {
1684 true
1685 }
1686
1687 #[inline(always)]
1688 fn decode_is_copy() -> bool {
1689 false
1690 }
1691 }
1692
1693 impl fidl::encoding::ValueTypeMarker for PairingMethod {
1694 type Borrowed<'a> = Self;
1695 #[inline(always)]
1696 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1697 *value
1698 }
1699 }
1700
1701 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for PairingMethod {
1702 #[inline]
1703 unsafe fn encode(
1704 self,
1705 encoder: &mut fidl::encoding::Encoder<'_, D>,
1706 offset: usize,
1707 _depth: fidl::encoding::Depth,
1708 ) -> fidl::Result<()> {
1709 encoder.debug_check_bounds::<Self>(offset);
1710 encoder.write_num(self.into_primitive(), offset);
1711 Ok(())
1712 }
1713 }
1714
1715 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for PairingMethod {
1716 #[inline(always)]
1717 fn new_empty() -> Self {
1718 Self::Consent
1719 }
1720
1721 #[inline]
1722 unsafe fn decode(
1723 &mut self,
1724 decoder: &mut fidl::encoding::Decoder<'_, D>,
1725 offset: usize,
1726 _depth: fidl::encoding::Depth,
1727 ) -> fidl::Result<()> {
1728 decoder.debug_check_bounds::<Self>(offset);
1729 let prim = decoder.read_num::<u32>(offset);
1730
1731 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
1732 Ok(())
1733 }
1734 }
1735 unsafe impl fidl::encoding::TypeMarker for PairingSecurityLevel {
1736 type Owned = Self;
1737
1738 #[inline(always)]
1739 fn inline_align(_context: fidl::encoding::Context) -> usize {
1740 std::mem::align_of::<u32>()
1741 }
1742
1743 #[inline(always)]
1744 fn inline_size(_context: fidl::encoding::Context) -> usize {
1745 std::mem::size_of::<u32>()
1746 }
1747
1748 #[inline(always)]
1749 fn encode_is_copy() -> bool {
1750 true
1751 }
1752
1753 #[inline(always)]
1754 fn decode_is_copy() -> bool {
1755 false
1756 }
1757 }
1758
1759 impl fidl::encoding::ValueTypeMarker for PairingSecurityLevel {
1760 type Borrowed<'a> = Self;
1761 #[inline(always)]
1762 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1763 *value
1764 }
1765 }
1766
1767 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
1768 for PairingSecurityLevel
1769 {
1770 #[inline]
1771 unsafe fn encode(
1772 self,
1773 encoder: &mut fidl::encoding::Encoder<'_, D>,
1774 offset: usize,
1775 _depth: fidl::encoding::Depth,
1776 ) -> fidl::Result<()> {
1777 encoder.debug_check_bounds::<Self>(offset);
1778 encoder.write_num(self.into_primitive(), offset);
1779 Ok(())
1780 }
1781 }
1782
1783 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for PairingSecurityLevel {
1784 #[inline(always)]
1785 fn new_empty() -> Self {
1786 Self::Encrypted
1787 }
1788
1789 #[inline]
1790 unsafe fn decode(
1791 &mut self,
1792 decoder: &mut fidl::encoding::Decoder<'_, D>,
1793 offset: usize,
1794 _depth: fidl::encoding::Depth,
1795 ) -> fidl::Result<()> {
1796 decoder.debug_check_bounds::<Self>(offset);
1797 let prim = decoder.read_num::<u32>(offset);
1798
1799 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
1800 Ok(())
1801 }
1802 }
1803 unsafe impl fidl::encoding::TypeMarker for TechnologyType {
1804 type Owned = Self;
1805
1806 #[inline(always)]
1807 fn inline_align(_context: fidl::encoding::Context) -> usize {
1808 std::mem::align_of::<u32>()
1809 }
1810
1811 #[inline(always)]
1812 fn inline_size(_context: fidl::encoding::Context) -> usize {
1813 std::mem::size_of::<u32>()
1814 }
1815
1816 #[inline(always)]
1817 fn encode_is_copy() -> bool {
1818 true
1819 }
1820
1821 #[inline(always)]
1822 fn decode_is_copy() -> bool {
1823 false
1824 }
1825 }
1826
1827 impl fidl::encoding::ValueTypeMarker for TechnologyType {
1828 type Borrowed<'a> = Self;
1829 #[inline(always)]
1830 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1831 *value
1832 }
1833 }
1834
1835 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for TechnologyType {
1836 #[inline]
1837 unsafe fn encode(
1838 self,
1839 encoder: &mut fidl::encoding::Encoder<'_, D>,
1840 offset: usize,
1841 _depth: fidl::encoding::Depth,
1842 ) -> fidl::Result<()> {
1843 encoder.debug_check_bounds::<Self>(offset);
1844 encoder.write_num(self.into_primitive(), offset);
1845 Ok(())
1846 }
1847 }
1848
1849 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for TechnologyType {
1850 #[inline(always)]
1851 fn new_empty() -> Self {
1852 Self::LowEnergy
1853 }
1854
1855 #[inline]
1856 unsafe fn decode(
1857 &mut self,
1858 decoder: &mut fidl::encoding::Decoder<'_, D>,
1859 offset: usize,
1860 _depth: fidl::encoding::Depth,
1861 ) -> fidl::Result<()> {
1862 decoder.debug_check_bounds::<Self>(offset);
1863 let prim = decoder.read_num::<u32>(offset);
1864
1865 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
1866 Ok(())
1867 }
1868 }
1869
1870 impl fidl::encoding::ValueTypeMarker for AccessConnectRequest {
1871 type Borrowed<'a> = &'a Self;
1872 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1873 value
1874 }
1875 }
1876
1877 unsafe impl fidl::encoding::TypeMarker for AccessConnectRequest {
1878 type Owned = Self;
1879
1880 #[inline(always)]
1881 fn inline_align(_context: fidl::encoding::Context) -> usize {
1882 8
1883 }
1884
1885 #[inline(always)]
1886 fn inline_size(_context: fidl::encoding::Context) -> usize {
1887 8
1888 }
1889 }
1890
1891 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<AccessConnectRequest, D>
1892 for &AccessConnectRequest
1893 {
1894 #[inline]
1895 unsafe fn encode(
1896 self,
1897 encoder: &mut fidl::encoding::Encoder<'_, D>,
1898 offset: usize,
1899 _depth: fidl::encoding::Depth,
1900 ) -> fidl::Result<()> {
1901 encoder.debug_check_bounds::<AccessConnectRequest>(offset);
1902 fidl::encoding::Encode::<AccessConnectRequest, D>::encode(
1904 (
1905 <fidl_fuchsia_bluetooth__common::PeerId as fidl::encoding::ValueTypeMarker>::borrow(&self.id),
1906 ),
1907 encoder, offset, _depth
1908 )
1909 }
1910 }
1911 unsafe impl<
1912 D: fidl::encoding::ResourceDialect,
1913 T0: fidl::encoding::Encode<fidl_fuchsia_bluetooth__common::PeerId, D>,
1914 > fidl::encoding::Encode<AccessConnectRequest, D> for (T0,)
1915 {
1916 #[inline]
1917 unsafe fn encode(
1918 self,
1919 encoder: &mut fidl::encoding::Encoder<'_, D>,
1920 offset: usize,
1921 depth: fidl::encoding::Depth,
1922 ) -> fidl::Result<()> {
1923 encoder.debug_check_bounds::<AccessConnectRequest>(offset);
1924 self.0.encode(encoder, offset + 0, depth)?;
1928 Ok(())
1929 }
1930 }
1931
1932 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for AccessConnectRequest {
1933 #[inline(always)]
1934 fn new_empty() -> Self {
1935 Self { id: fidl::new_empty!(fidl_fuchsia_bluetooth__common::PeerId, D) }
1936 }
1937
1938 #[inline]
1939 unsafe fn decode(
1940 &mut self,
1941 decoder: &mut fidl::encoding::Decoder<'_, D>,
1942 offset: usize,
1943 _depth: fidl::encoding::Depth,
1944 ) -> fidl::Result<()> {
1945 decoder.debug_check_bounds::<Self>(offset);
1946 fidl::decode!(
1948 fidl_fuchsia_bluetooth__common::PeerId,
1949 D,
1950 &mut self.id,
1951 decoder,
1952 offset + 0,
1953 _depth
1954 )?;
1955 Ok(())
1956 }
1957 }
1958
1959 impl fidl::encoding::ValueTypeMarker for AccessDisconnectRequest {
1960 type Borrowed<'a> = &'a Self;
1961 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1962 value
1963 }
1964 }
1965
1966 unsafe impl fidl::encoding::TypeMarker for AccessDisconnectRequest {
1967 type Owned = Self;
1968
1969 #[inline(always)]
1970 fn inline_align(_context: fidl::encoding::Context) -> usize {
1971 8
1972 }
1973
1974 #[inline(always)]
1975 fn inline_size(_context: fidl::encoding::Context) -> usize {
1976 8
1977 }
1978 }
1979
1980 unsafe impl<D: fidl::encoding::ResourceDialect>
1981 fidl::encoding::Encode<AccessDisconnectRequest, D> for &AccessDisconnectRequest
1982 {
1983 #[inline]
1984 unsafe fn encode(
1985 self,
1986 encoder: &mut fidl::encoding::Encoder<'_, D>,
1987 offset: usize,
1988 _depth: fidl::encoding::Depth,
1989 ) -> fidl::Result<()> {
1990 encoder.debug_check_bounds::<AccessDisconnectRequest>(offset);
1991 fidl::encoding::Encode::<AccessDisconnectRequest, D>::encode(
1993 (
1994 <fidl_fuchsia_bluetooth__common::PeerId as fidl::encoding::ValueTypeMarker>::borrow(&self.id),
1995 ),
1996 encoder, offset, _depth
1997 )
1998 }
1999 }
2000 unsafe impl<
2001 D: fidl::encoding::ResourceDialect,
2002 T0: fidl::encoding::Encode<fidl_fuchsia_bluetooth__common::PeerId, D>,
2003 > fidl::encoding::Encode<AccessDisconnectRequest, D> for (T0,)
2004 {
2005 #[inline]
2006 unsafe fn encode(
2007 self,
2008 encoder: &mut fidl::encoding::Encoder<'_, D>,
2009 offset: usize,
2010 depth: fidl::encoding::Depth,
2011 ) -> fidl::Result<()> {
2012 encoder.debug_check_bounds::<AccessDisconnectRequest>(offset);
2013 self.0.encode(encoder, offset + 0, depth)?;
2017 Ok(())
2018 }
2019 }
2020
2021 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2022 for AccessDisconnectRequest
2023 {
2024 #[inline(always)]
2025 fn new_empty() -> Self {
2026 Self { id: fidl::new_empty!(fidl_fuchsia_bluetooth__common::PeerId, D) }
2027 }
2028
2029 #[inline]
2030 unsafe fn decode(
2031 &mut self,
2032 decoder: &mut fidl::encoding::Decoder<'_, D>,
2033 offset: usize,
2034 _depth: fidl::encoding::Depth,
2035 ) -> fidl::Result<()> {
2036 decoder.debug_check_bounds::<Self>(offset);
2037 fidl::decode!(
2039 fidl_fuchsia_bluetooth__common::PeerId,
2040 D,
2041 &mut self.id,
2042 decoder,
2043 offset + 0,
2044 _depth
2045 )?;
2046 Ok(())
2047 }
2048 }
2049
2050 impl fidl::encoding::ValueTypeMarker for AccessForgetRequest {
2051 type Borrowed<'a> = &'a Self;
2052 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2053 value
2054 }
2055 }
2056
2057 unsafe impl fidl::encoding::TypeMarker for AccessForgetRequest {
2058 type Owned = Self;
2059
2060 #[inline(always)]
2061 fn inline_align(_context: fidl::encoding::Context) -> usize {
2062 8
2063 }
2064
2065 #[inline(always)]
2066 fn inline_size(_context: fidl::encoding::Context) -> usize {
2067 8
2068 }
2069 }
2070
2071 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<AccessForgetRequest, D>
2072 for &AccessForgetRequest
2073 {
2074 #[inline]
2075 unsafe fn encode(
2076 self,
2077 encoder: &mut fidl::encoding::Encoder<'_, D>,
2078 offset: usize,
2079 _depth: fidl::encoding::Depth,
2080 ) -> fidl::Result<()> {
2081 encoder.debug_check_bounds::<AccessForgetRequest>(offset);
2082 fidl::encoding::Encode::<AccessForgetRequest, D>::encode(
2084 (
2085 <fidl_fuchsia_bluetooth__common::PeerId as fidl::encoding::ValueTypeMarker>::borrow(&self.id),
2086 ),
2087 encoder, offset, _depth
2088 )
2089 }
2090 }
2091 unsafe impl<
2092 D: fidl::encoding::ResourceDialect,
2093 T0: fidl::encoding::Encode<fidl_fuchsia_bluetooth__common::PeerId, D>,
2094 > fidl::encoding::Encode<AccessForgetRequest, D> for (T0,)
2095 {
2096 #[inline]
2097 unsafe fn encode(
2098 self,
2099 encoder: &mut fidl::encoding::Encoder<'_, D>,
2100 offset: usize,
2101 depth: fidl::encoding::Depth,
2102 ) -> fidl::Result<()> {
2103 encoder.debug_check_bounds::<AccessForgetRequest>(offset);
2104 self.0.encode(encoder, offset + 0, depth)?;
2108 Ok(())
2109 }
2110 }
2111
2112 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for AccessForgetRequest {
2113 #[inline(always)]
2114 fn new_empty() -> Self {
2115 Self { id: fidl::new_empty!(fidl_fuchsia_bluetooth__common::PeerId, D) }
2116 }
2117
2118 #[inline]
2119 unsafe fn decode(
2120 &mut self,
2121 decoder: &mut fidl::encoding::Decoder<'_, D>,
2122 offset: usize,
2123 _depth: fidl::encoding::Depth,
2124 ) -> fidl::Result<()> {
2125 decoder.debug_check_bounds::<Self>(offset);
2126 fidl::decode!(
2128 fidl_fuchsia_bluetooth__common::PeerId,
2129 D,
2130 &mut self.id,
2131 decoder,
2132 offset + 0,
2133 _depth
2134 )?;
2135 Ok(())
2136 }
2137 }
2138
2139 impl fidl::encoding::ValueTypeMarker for AccessPairRequest {
2140 type Borrowed<'a> = &'a Self;
2141 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2142 value
2143 }
2144 }
2145
2146 unsafe impl fidl::encoding::TypeMarker for AccessPairRequest {
2147 type Owned = Self;
2148
2149 #[inline(always)]
2150 fn inline_align(_context: fidl::encoding::Context) -> usize {
2151 8
2152 }
2153
2154 #[inline(always)]
2155 fn inline_size(_context: fidl::encoding::Context) -> usize {
2156 24
2157 }
2158 }
2159
2160 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<AccessPairRequest, D>
2161 for &AccessPairRequest
2162 {
2163 #[inline]
2164 unsafe fn encode(
2165 self,
2166 encoder: &mut fidl::encoding::Encoder<'_, D>,
2167 offset: usize,
2168 _depth: fidl::encoding::Depth,
2169 ) -> fidl::Result<()> {
2170 encoder.debug_check_bounds::<AccessPairRequest>(offset);
2171 fidl::encoding::Encode::<AccessPairRequest, D>::encode(
2173 (
2174 <fidl_fuchsia_bluetooth__common::PeerId as fidl::encoding::ValueTypeMarker>::borrow(&self.id),
2175 <PairingOptions as fidl::encoding::ValueTypeMarker>::borrow(&self.options),
2176 ),
2177 encoder, offset, _depth
2178 )
2179 }
2180 }
2181 unsafe impl<
2182 D: fidl::encoding::ResourceDialect,
2183 T0: fidl::encoding::Encode<fidl_fuchsia_bluetooth__common::PeerId, D>,
2184 T1: fidl::encoding::Encode<PairingOptions, D>,
2185 > fidl::encoding::Encode<AccessPairRequest, D> for (T0, T1)
2186 {
2187 #[inline]
2188 unsafe fn encode(
2189 self,
2190 encoder: &mut fidl::encoding::Encoder<'_, D>,
2191 offset: usize,
2192 depth: fidl::encoding::Depth,
2193 ) -> fidl::Result<()> {
2194 encoder.debug_check_bounds::<AccessPairRequest>(offset);
2195 self.0.encode(encoder, offset + 0, depth)?;
2199 self.1.encode(encoder, offset + 8, depth)?;
2200 Ok(())
2201 }
2202 }
2203
2204 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for AccessPairRequest {
2205 #[inline(always)]
2206 fn new_empty() -> Self {
2207 Self {
2208 id: fidl::new_empty!(fidl_fuchsia_bluetooth__common::PeerId, D),
2209 options: fidl::new_empty!(PairingOptions, D),
2210 }
2211 }
2212
2213 #[inline]
2214 unsafe fn decode(
2215 &mut self,
2216 decoder: &mut fidl::encoding::Decoder<'_, D>,
2217 offset: usize,
2218 _depth: fidl::encoding::Depth,
2219 ) -> fidl::Result<()> {
2220 decoder.debug_check_bounds::<Self>(offset);
2221 fidl::decode!(
2223 fidl_fuchsia_bluetooth__common::PeerId,
2224 D,
2225 &mut self.id,
2226 decoder,
2227 offset + 0,
2228 _depth
2229 )?;
2230 fidl::decode!(PairingOptions, D, &mut self.options, decoder, offset + 8, _depth)?;
2231 Ok(())
2232 }
2233 }
2234
2235 impl fidl::encoding::ValueTypeMarker for AccessSetDeviceClassRequest {
2236 type Borrowed<'a> = &'a Self;
2237 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2238 value
2239 }
2240 }
2241
2242 unsafe impl fidl::encoding::TypeMarker for AccessSetDeviceClassRequest {
2243 type Owned = Self;
2244
2245 #[inline(always)]
2246 fn inline_align(_context: fidl::encoding::Context) -> usize {
2247 4
2248 }
2249
2250 #[inline(always)]
2251 fn inline_size(_context: fidl::encoding::Context) -> usize {
2252 4
2253 }
2254 }
2255
2256 unsafe impl<D: fidl::encoding::ResourceDialect>
2257 fidl::encoding::Encode<AccessSetDeviceClassRequest, D> for &AccessSetDeviceClassRequest
2258 {
2259 #[inline]
2260 unsafe fn encode(
2261 self,
2262 encoder: &mut fidl::encoding::Encoder<'_, D>,
2263 offset: usize,
2264 _depth: fidl::encoding::Depth,
2265 ) -> fidl::Result<()> {
2266 encoder.debug_check_bounds::<AccessSetDeviceClassRequest>(offset);
2267 fidl::encoding::Encode::<AccessSetDeviceClassRequest, D>::encode(
2269 (
2270 <fidl_fuchsia_bluetooth__common::DeviceClass as fidl::encoding::ValueTypeMarker>::borrow(&self.device_class),
2271 ),
2272 encoder, offset, _depth
2273 )
2274 }
2275 }
2276 unsafe impl<
2277 D: fidl::encoding::ResourceDialect,
2278 T0: fidl::encoding::Encode<fidl_fuchsia_bluetooth__common::DeviceClass, D>,
2279 > fidl::encoding::Encode<AccessSetDeviceClassRequest, D> for (T0,)
2280 {
2281 #[inline]
2282 unsafe fn encode(
2283 self,
2284 encoder: &mut fidl::encoding::Encoder<'_, D>,
2285 offset: usize,
2286 depth: fidl::encoding::Depth,
2287 ) -> fidl::Result<()> {
2288 encoder.debug_check_bounds::<AccessSetDeviceClassRequest>(offset);
2289 self.0.encode(encoder, offset + 0, depth)?;
2293 Ok(())
2294 }
2295 }
2296
2297 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2298 for AccessSetDeviceClassRequest
2299 {
2300 #[inline(always)]
2301 fn new_empty() -> Self {
2302 Self { device_class: fidl::new_empty!(fidl_fuchsia_bluetooth__common::DeviceClass, D) }
2303 }
2304
2305 #[inline]
2306 unsafe fn decode(
2307 &mut self,
2308 decoder: &mut fidl::encoding::Decoder<'_, D>,
2309 offset: usize,
2310 _depth: fidl::encoding::Depth,
2311 ) -> fidl::Result<()> {
2312 decoder.debug_check_bounds::<Self>(offset);
2313 fidl::decode!(
2315 fidl_fuchsia_bluetooth__common::DeviceClass,
2316 D,
2317 &mut self.device_class,
2318 decoder,
2319 offset + 0,
2320 _depth
2321 )?;
2322 Ok(())
2323 }
2324 }
2325
2326 impl fidl::encoding::ValueTypeMarker for AccessSetLocalNameRequest {
2327 type Borrowed<'a> = &'a Self;
2328 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2329 value
2330 }
2331 }
2332
2333 unsafe impl fidl::encoding::TypeMarker for AccessSetLocalNameRequest {
2334 type Owned = Self;
2335
2336 #[inline(always)]
2337 fn inline_align(_context: fidl::encoding::Context) -> usize {
2338 8
2339 }
2340
2341 #[inline(always)]
2342 fn inline_size(_context: fidl::encoding::Context) -> usize {
2343 16
2344 }
2345 }
2346
2347 unsafe impl<D: fidl::encoding::ResourceDialect>
2348 fidl::encoding::Encode<AccessSetLocalNameRequest, D> for &AccessSetLocalNameRequest
2349 {
2350 #[inline]
2351 unsafe fn encode(
2352 self,
2353 encoder: &mut fidl::encoding::Encoder<'_, D>,
2354 offset: usize,
2355 _depth: fidl::encoding::Depth,
2356 ) -> fidl::Result<()> {
2357 encoder.debug_check_bounds::<AccessSetLocalNameRequest>(offset);
2358 fidl::encoding::Encode::<AccessSetLocalNameRequest, D>::encode(
2360 (<fidl::encoding::BoundedString<248> as fidl::encoding::ValueTypeMarker>::borrow(
2361 &self.name,
2362 ),),
2363 encoder,
2364 offset,
2365 _depth,
2366 )
2367 }
2368 }
2369 unsafe impl<
2370 D: fidl::encoding::ResourceDialect,
2371 T0: fidl::encoding::Encode<fidl::encoding::BoundedString<248>, D>,
2372 > fidl::encoding::Encode<AccessSetLocalNameRequest, D> for (T0,)
2373 {
2374 #[inline]
2375 unsafe fn encode(
2376 self,
2377 encoder: &mut fidl::encoding::Encoder<'_, D>,
2378 offset: usize,
2379 depth: fidl::encoding::Depth,
2380 ) -> fidl::Result<()> {
2381 encoder.debug_check_bounds::<AccessSetLocalNameRequest>(offset);
2382 self.0.encode(encoder, offset + 0, depth)?;
2386 Ok(())
2387 }
2388 }
2389
2390 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2391 for AccessSetLocalNameRequest
2392 {
2393 #[inline(always)]
2394 fn new_empty() -> Self {
2395 Self { name: fidl::new_empty!(fidl::encoding::BoundedString<248>, D) }
2396 }
2397
2398 #[inline]
2399 unsafe fn decode(
2400 &mut self,
2401 decoder: &mut fidl::encoding::Decoder<'_, D>,
2402 offset: usize,
2403 _depth: fidl::encoding::Depth,
2404 ) -> fidl::Result<()> {
2405 decoder.debug_check_bounds::<Self>(offset);
2406 fidl::decode!(
2408 fidl::encoding::BoundedString<248>,
2409 D,
2410 &mut self.name,
2411 decoder,
2412 offset + 0,
2413 _depth
2414 )?;
2415 Ok(())
2416 }
2417 }
2418
2419 impl fidl::encoding::ValueTypeMarker for AccessWatchPeersResponse {
2420 type Borrowed<'a> = &'a Self;
2421 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2422 value
2423 }
2424 }
2425
2426 unsafe impl fidl::encoding::TypeMarker for AccessWatchPeersResponse {
2427 type Owned = Self;
2428
2429 #[inline(always)]
2430 fn inline_align(_context: fidl::encoding::Context) -> usize {
2431 8
2432 }
2433
2434 #[inline(always)]
2435 fn inline_size(_context: fidl::encoding::Context) -> usize {
2436 32
2437 }
2438 }
2439
2440 unsafe impl<D: fidl::encoding::ResourceDialect>
2441 fidl::encoding::Encode<AccessWatchPeersResponse, D> for &AccessWatchPeersResponse
2442 {
2443 #[inline]
2444 unsafe fn encode(
2445 self,
2446 encoder: &mut fidl::encoding::Encoder<'_, D>,
2447 offset: usize,
2448 _depth: fidl::encoding::Depth,
2449 ) -> fidl::Result<()> {
2450 encoder.debug_check_bounds::<AccessWatchPeersResponse>(offset);
2451 fidl::encoding::Encode::<AccessWatchPeersResponse, D>::encode(
2453 (
2454 <fidl::encoding::UnboundedVector<Peer> as fidl::encoding::ValueTypeMarker>::borrow(&self.updated),
2455 <fidl::encoding::UnboundedVector<fidl_fuchsia_bluetooth__common::PeerId> as fidl::encoding::ValueTypeMarker>::borrow(&self.removed),
2456 ),
2457 encoder, offset, _depth
2458 )
2459 }
2460 }
2461 unsafe impl<
2462 D: fidl::encoding::ResourceDialect,
2463 T0: fidl::encoding::Encode<fidl::encoding::UnboundedVector<Peer>, D>,
2464 T1: fidl::encoding::Encode<
2465 fidl::encoding::UnboundedVector<fidl_fuchsia_bluetooth__common::PeerId>,
2466 D,
2467 >,
2468 > fidl::encoding::Encode<AccessWatchPeersResponse, D> for (T0, T1)
2469 {
2470 #[inline]
2471 unsafe fn encode(
2472 self,
2473 encoder: &mut fidl::encoding::Encoder<'_, D>,
2474 offset: usize,
2475 depth: fidl::encoding::Depth,
2476 ) -> fidl::Result<()> {
2477 encoder.debug_check_bounds::<AccessWatchPeersResponse>(offset);
2478 self.0.encode(encoder, offset + 0, depth)?;
2482 self.1.encode(encoder, offset + 16, depth)?;
2483 Ok(())
2484 }
2485 }
2486
2487 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2488 for AccessWatchPeersResponse
2489 {
2490 #[inline(always)]
2491 fn new_empty() -> Self {
2492 Self {
2493 updated: fidl::new_empty!(fidl::encoding::UnboundedVector<Peer>, D),
2494 removed: fidl::new_empty!(
2495 fidl::encoding::UnboundedVector<fidl_fuchsia_bluetooth__common::PeerId>,
2496 D
2497 ),
2498 }
2499 }
2500
2501 #[inline]
2502 unsafe fn decode(
2503 &mut self,
2504 decoder: &mut fidl::encoding::Decoder<'_, D>,
2505 offset: usize,
2506 _depth: fidl::encoding::Depth,
2507 ) -> fidl::Result<()> {
2508 decoder.debug_check_bounds::<Self>(offset);
2509 fidl::decode!(
2511 fidl::encoding::UnboundedVector<Peer>,
2512 D,
2513 &mut self.updated,
2514 decoder,
2515 offset + 0,
2516 _depth
2517 )?;
2518 fidl::decode!(
2519 fidl::encoding::UnboundedVector<fidl_fuchsia_bluetooth__common::PeerId>,
2520 D,
2521 &mut self.removed,
2522 decoder,
2523 offset + 16,
2524 _depth
2525 )?;
2526 Ok(())
2527 }
2528 }
2529
2530 impl fidl::encoding::ValueTypeMarker for AddressLookupLookupResponse {
2531 type Borrowed<'a> = &'a Self;
2532 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2533 value
2534 }
2535 }
2536
2537 unsafe impl fidl::encoding::TypeMarker for AddressLookupLookupResponse {
2538 type Owned = Self;
2539
2540 #[inline(always)]
2541 fn inline_align(_context: fidl::encoding::Context) -> usize {
2542 1
2543 }
2544
2545 #[inline(always)]
2546 fn inline_size(_context: fidl::encoding::Context) -> usize {
2547 7
2548 }
2549 }
2550
2551 unsafe impl<D: fidl::encoding::ResourceDialect>
2552 fidl::encoding::Encode<AddressLookupLookupResponse, D> for &AddressLookupLookupResponse
2553 {
2554 #[inline]
2555 unsafe fn encode(
2556 self,
2557 encoder: &mut fidl::encoding::Encoder<'_, D>,
2558 offset: usize,
2559 _depth: fidl::encoding::Depth,
2560 ) -> fidl::Result<()> {
2561 encoder.debug_check_bounds::<AddressLookupLookupResponse>(offset);
2562 fidl::encoding::Encode::<AddressLookupLookupResponse, D>::encode(
2564 (
2565 <fidl_fuchsia_bluetooth__common::Address as fidl::encoding::ValueTypeMarker>::borrow(&self.bd_addr),
2566 ),
2567 encoder, offset, _depth
2568 )
2569 }
2570 }
2571 unsafe impl<
2572 D: fidl::encoding::ResourceDialect,
2573 T0: fidl::encoding::Encode<fidl_fuchsia_bluetooth__common::Address, D>,
2574 > fidl::encoding::Encode<AddressLookupLookupResponse, D> for (T0,)
2575 {
2576 #[inline]
2577 unsafe fn encode(
2578 self,
2579 encoder: &mut fidl::encoding::Encoder<'_, D>,
2580 offset: usize,
2581 depth: fidl::encoding::Depth,
2582 ) -> fidl::Result<()> {
2583 encoder.debug_check_bounds::<AddressLookupLookupResponse>(offset);
2584 self.0.encode(encoder, offset + 0, depth)?;
2588 Ok(())
2589 }
2590 }
2591
2592 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2593 for AddressLookupLookupResponse
2594 {
2595 #[inline(always)]
2596 fn new_empty() -> Self {
2597 Self { bd_addr: fidl::new_empty!(fidl_fuchsia_bluetooth__common::Address, D) }
2598 }
2599
2600 #[inline]
2601 unsafe fn decode(
2602 &mut self,
2603 decoder: &mut fidl::encoding::Decoder<'_, D>,
2604 offset: usize,
2605 _depth: fidl::encoding::Depth,
2606 ) -> fidl::Result<()> {
2607 decoder.debug_check_bounds::<Self>(offset);
2608 fidl::decode!(
2610 fidl_fuchsia_bluetooth__common::Address,
2611 D,
2612 &mut self.bd_addr,
2613 decoder,
2614 offset + 0,
2615 _depth
2616 )?;
2617 Ok(())
2618 }
2619 }
2620
2621 impl fidl::encoding::ValueTypeMarker for BootstrapAddIdentitiesRequest {
2622 type Borrowed<'a> = &'a Self;
2623 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2624 value
2625 }
2626 }
2627
2628 unsafe impl fidl::encoding::TypeMarker for BootstrapAddIdentitiesRequest {
2629 type Owned = Self;
2630
2631 #[inline(always)]
2632 fn inline_align(_context: fidl::encoding::Context) -> usize {
2633 8
2634 }
2635
2636 #[inline(always)]
2637 fn inline_size(_context: fidl::encoding::Context) -> usize {
2638 16
2639 }
2640 }
2641
2642 unsafe impl<D: fidl::encoding::ResourceDialect>
2643 fidl::encoding::Encode<BootstrapAddIdentitiesRequest, D>
2644 for &BootstrapAddIdentitiesRequest
2645 {
2646 #[inline]
2647 unsafe fn encode(
2648 self,
2649 encoder: &mut fidl::encoding::Encoder<'_, D>,
2650 offset: usize,
2651 _depth: fidl::encoding::Depth,
2652 ) -> fidl::Result<()> {
2653 encoder.debug_check_bounds::<BootstrapAddIdentitiesRequest>(offset);
2654 fidl::encoding::Encode::<BootstrapAddIdentitiesRequest, D>::encode(
2656 (
2657 <fidl::encoding::UnboundedVector<Identity> as fidl::encoding::ValueTypeMarker>::borrow(&self.identities),
2658 ),
2659 encoder, offset, _depth
2660 )
2661 }
2662 }
2663 unsafe impl<
2664 D: fidl::encoding::ResourceDialect,
2665 T0: fidl::encoding::Encode<fidl::encoding::UnboundedVector<Identity>, D>,
2666 > fidl::encoding::Encode<BootstrapAddIdentitiesRequest, D> for (T0,)
2667 {
2668 #[inline]
2669 unsafe fn encode(
2670 self,
2671 encoder: &mut fidl::encoding::Encoder<'_, D>,
2672 offset: usize,
2673 depth: fidl::encoding::Depth,
2674 ) -> fidl::Result<()> {
2675 encoder.debug_check_bounds::<BootstrapAddIdentitiesRequest>(offset);
2676 self.0.encode(encoder, offset + 0, depth)?;
2680 Ok(())
2681 }
2682 }
2683
2684 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2685 for BootstrapAddIdentitiesRequest
2686 {
2687 #[inline(always)]
2688 fn new_empty() -> Self {
2689 Self { identities: fidl::new_empty!(fidl::encoding::UnboundedVector<Identity>, D) }
2690 }
2691
2692 #[inline]
2693 unsafe fn decode(
2694 &mut self,
2695 decoder: &mut fidl::encoding::Decoder<'_, D>,
2696 offset: usize,
2697 _depth: fidl::encoding::Depth,
2698 ) -> fidl::Result<()> {
2699 decoder.debug_check_bounds::<Self>(offset);
2700 fidl::decode!(
2702 fidl::encoding::UnboundedVector<Identity>,
2703 D,
2704 &mut self.identities,
2705 decoder,
2706 offset + 0,
2707 _depth
2708 )?;
2709 Ok(())
2710 }
2711 }
2712
2713 impl fidl::encoding::ValueTypeMarker for ConfigurationUpdateRequest {
2714 type Borrowed<'a> = &'a Self;
2715 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2716 value
2717 }
2718 }
2719
2720 unsafe impl fidl::encoding::TypeMarker for ConfigurationUpdateRequest {
2721 type Owned = Self;
2722
2723 #[inline(always)]
2724 fn inline_align(_context: fidl::encoding::Context) -> usize {
2725 8
2726 }
2727
2728 #[inline(always)]
2729 fn inline_size(_context: fidl::encoding::Context) -> usize {
2730 16
2731 }
2732 }
2733
2734 unsafe impl<D: fidl::encoding::ResourceDialect>
2735 fidl::encoding::Encode<ConfigurationUpdateRequest, D> for &ConfigurationUpdateRequest
2736 {
2737 #[inline]
2738 unsafe fn encode(
2739 self,
2740 encoder: &mut fidl::encoding::Encoder<'_, D>,
2741 offset: usize,
2742 _depth: fidl::encoding::Depth,
2743 ) -> fidl::Result<()> {
2744 encoder.debug_check_bounds::<ConfigurationUpdateRequest>(offset);
2745 fidl::encoding::Encode::<ConfigurationUpdateRequest, D>::encode(
2747 (<Settings as fidl::encoding::ValueTypeMarker>::borrow(&self.settings),),
2748 encoder,
2749 offset,
2750 _depth,
2751 )
2752 }
2753 }
2754 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<Settings, D>>
2755 fidl::encoding::Encode<ConfigurationUpdateRequest, D> for (T0,)
2756 {
2757 #[inline]
2758 unsafe fn encode(
2759 self,
2760 encoder: &mut fidl::encoding::Encoder<'_, D>,
2761 offset: usize,
2762 depth: fidl::encoding::Depth,
2763 ) -> fidl::Result<()> {
2764 encoder.debug_check_bounds::<ConfigurationUpdateRequest>(offset);
2765 self.0.encode(encoder, offset + 0, depth)?;
2769 Ok(())
2770 }
2771 }
2772
2773 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2774 for ConfigurationUpdateRequest
2775 {
2776 #[inline(always)]
2777 fn new_empty() -> Self {
2778 Self { settings: fidl::new_empty!(Settings, D) }
2779 }
2780
2781 #[inline]
2782 unsafe fn decode(
2783 &mut self,
2784 decoder: &mut fidl::encoding::Decoder<'_, D>,
2785 offset: usize,
2786 _depth: fidl::encoding::Depth,
2787 ) -> fidl::Result<()> {
2788 decoder.debug_check_bounds::<Self>(offset);
2789 fidl::decode!(Settings, D, &mut self.settings, decoder, offset + 0, _depth)?;
2791 Ok(())
2792 }
2793 }
2794
2795 impl fidl::encoding::ValueTypeMarker for ConfigurationUpdateResponse {
2796 type Borrowed<'a> = &'a Self;
2797 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2798 value
2799 }
2800 }
2801
2802 unsafe impl fidl::encoding::TypeMarker for ConfigurationUpdateResponse {
2803 type Owned = Self;
2804
2805 #[inline(always)]
2806 fn inline_align(_context: fidl::encoding::Context) -> usize {
2807 8
2808 }
2809
2810 #[inline(always)]
2811 fn inline_size(_context: fidl::encoding::Context) -> usize {
2812 16
2813 }
2814 }
2815
2816 unsafe impl<D: fidl::encoding::ResourceDialect>
2817 fidl::encoding::Encode<ConfigurationUpdateResponse, D> for &ConfigurationUpdateResponse
2818 {
2819 #[inline]
2820 unsafe fn encode(
2821 self,
2822 encoder: &mut fidl::encoding::Encoder<'_, D>,
2823 offset: usize,
2824 _depth: fidl::encoding::Depth,
2825 ) -> fidl::Result<()> {
2826 encoder.debug_check_bounds::<ConfigurationUpdateResponse>(offset);
2827 fidl::encoding::Encode::<ConfigurationUpdateResponse, D>::encode(
2829 (<Settings as fidl::encoding::ValueTypeMarker>::borrow(&self.result),),
2830 encoder,
2831 offset,
2832 _depth,
2833 )
2834 }
2835 }
2836 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<Settings, D>>
2837 fidl::encoding::Encode<ConfigurationUpdateResponse, D> for (T0,)
2838 {
2839 #[inline]
2840 unsafe fn encode(
2841 self,
2842 encoder: &mut fidl::encoding::Encoder<'_, D>,
2843 offset: usize,
2844 depth: fidl::encoding::Depth,
2845 ) -> fidl::Result<()> {
2846 encoder.debug_check_bounds::<ConfigurationUpdateResponse>(offset);
2847 self.0.encode(encoder, offset + 0, depth)?;
2851 Ok(())
2852 }
2853 }
2854
2855 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2856 for ConfigurationUpdateResponse
2857 {
2858 #[inline(always)]
2859 fn new_empty() -> Self {
2860 Self { result: fidl::new_empty!(Settings, D) }
2861 }
2862
2863 #[inline]
2864 unsafe fn decode(
2865 &mut self,
2866 decoder: &mut fidl::encoding::Decoder<'_, D>,
2867 offset: usize,
2868 _depth: fidl::encoding::Depth,
2869 ) -> fidl::Result<()> {
2870 decoder.debug_check_bounds::<Self>(offset);
2871 fidl::decode!(Settings, D, &mut self.result, decoder, offset + 0, _depth)?;
2873 Ok(())
2874 }
2875 }
2876
2877 impl fidl::encoding::ValueTypeMarker for Consent {
2878 type Borrowed<'a> = &'a Self;
2879 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2880 value
2881 }
2882 }
2883
2884 unsafe impl fidl::encoding::TypeMarker for Consent {
2885 type Owned = Self;
2886
2887 #[inline(always)]
2888 fn inline_align(_context: fidl::encoding::Context) -> usize {
2889 1
2890 }
2891
2892 #[inline(always)]
2893 fn inline_size(_context: fidl::encoding::Context) -> usize {
2894 1
2895 }
2896 }
2897
2898 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Consent, D> for &Consent {
2899 #[inline]
2900 unsafe fn encode(
2901 self,
2902 encoder: &mut fidl::encoding::Encoder<'_, D>,
2903 offset: usize,
2904 _depth: fidl::encoding::Depth,
2905 ) -> fidl::Result<()> {
2906 encoder.debug_check_bounds::<Consent>(offset);
2907 encoder.write_num(0u8, offset);
2908 Ok(())
2909 }
2910 }
2911
2912 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Consent {
2913 #[inline(always)]
2914 fn new_empty() -> Self {
2915 Self
2916 }
2917
2918 #[inline]
2919 unsafe fn decode(
2920 &mut self,
2921 decoder: &mut fidl::encoding::Decoder<'_, D>,
2922 offset: usize,
2923 _depth: fidl::encoding::Depth,
2924 ) -> fidl::Result<()> {
2925 decoder.debug_check_bounds::<Self>(offset);
2926 match decoder.read_num::<u8>(offset) {
2927 0 => Ok(()),
2928 _ => Err(fidl::Error::Invalid),
2929 }
2930 }
2931 }
2932
2933 impl fidl::encoding::ValueTypeMarker for HostWatcherSetActiveRequest {
2934 type Borrowed<'a> = &'a Self;
2935 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2936 value
2937 }
2938 }
2939
2940 unsafe impl fidl::encoding::TypeMarker for HostWatcherSetActiveRequest {
2941 type Owned = Self;
2942
2943 #[inline(always)]
2944 fn inline_align(_context: fidl::encoding::Context) -> usize {
2945 8
2946 }
2947
2948 #[inline(always)]
2949 fn inline_size(_context: fidl::encoding::Context) -> usize {
2950 8
2951 }
2952 }
2953
2954 unsafe impl<D: fidl::encoding::ResourceDialect>
2955 fidl::encoding::Encode<HostWatcherSetActiveRequest, D> for &HostWatcherSetActiveRequest
2956 {
2957 #[inline]
2958 unsafe fn encode(
2959 self,
2960 encoder: &mut fidl::encoding::Encoder<'_, D>,
2961 offset: usize,
2962 _depth: fidl::encoding::Depth,
2963 ) -> fidl::Result<()> {
2964 encoder.debug_check_bounds::<HostWatcherSetActiveRequest>(offset);
2965 fidl::encoding::Encode::<HostWatcherSetActiveRequest, D>::encode(
2967 (
2968 <fidl_fuchsia_bluetooth__common::HostId as fidl::encoding::ValueTypeMarker>::borrow(&self.id),
2969 ),
2970 encoder, offset, _depth
2971 )
2972 }
2973 }
2974 unsafe impl<
2975 D: fidl::encoding::ResourceDialect,
2976 T0: fidl::encoding::Encode<fidl_fuchsia_bluetooth__common::HostId, D>,
2977 > fidl::encoding::Encode<HostWatcherSetActiveRequest, D> for (T0,)
2978 {
2979 #[inline]
2980 unsafe fn encode(
2981 self,
2982 encoder: &mut fidl::encoding::Encoder<'_, D>,
2983 offset: usize,
2984 depth: fidl::encoding::Depth,
2985 ) -> fidl::Result<()> {
2986 encoder.debug_check_bounds::<HostWatcherSetActiveRequest>(offset);
2987 self.0.encode(encoder, offset + 0, depth)?;
2991 Ok(())
2992 }
2993 }
2994
2995 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2996 for HostWatcherSetActiveRequest
2997 {
2998 #[inline(always)]
2999 fn new_empty() -> Self {
3000 Self { id: fidl::new_empty!(fidl_fuchsia_bluetooth__common::HostId, D) }
3001 }
3002
3003 #[inline]
3004 unsafe fn decode(
3005 &mut self,
3006 decoder: &mut fidl::encoding::Decoder<'_, D>,
3007 offset: usize,
3008 _depth: fidl::encoding::Depth,
3009 ) -> fidl::Result<()> {
3010 decoder.debug_check_bounds::<Self>(offset);
3011 fidl::decode!(
3013 fidl_fuchsia_bluetooth__common::HostId,
3014 D,
3015 &mut self.id,
3016 decoder,
3017 offset + 0,
3018 _depth
3019 )?;
3020 Ok(())
3021 }
3022 }
3023
3024 impl fidl::encoding::ValueTypeMarker for HostWatcherWatchResponse {
3025 type Borrowed<'a> = &'a Self;
3026 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3027 value
3028 }
3029 }
3030
3031 unsafe impl fidl::encoding::TypeMarker for HostWatcherWatchResponse {
3032 type Owned = Self;
3033
3034 #[inline(always)]
3035 fn inline_align(_context: fidl::encoding::Context) -> usize {
3036 8
3037 }
3038
3039 #[inline(always)]
3040 fn inline_size(_context: fidl::encoding::Context) -> usize {
3041 16
3042 }
3043 }
3044
3045 unsafe impl<D: fidl::encoding::ResourceDialect>
3046 fidl::encoding::Encode<HostWatcherWatchResponse, D> for &HostWatcherWatchResponse
3047 {
3048 #[inline]
3049 unsafe fn encode(
3050 self,
3051 encoder: &mut fidl::encoding::Encoder<'_, D>,
3052 offset: usize,
3053 _depth: fidl::encoding::Depth,
3054 ) -> fidl::Result<()> {
3055 encoder.debug_check_bounds::<HostWatcherWatchResponse>(offset);
3056 fidl::encoding::Encode::<HostWatcherWatchResponse, D>::encode(
3058 (
3059 <fidl::encoding::UnboundedVector<HostInfo> as fidl::encoding::ValueTypeMarker>::borrow(&self.hosts),
3060 ),
3061 encoder, offset, _depth
3062 )
3063 }
3064 }
3065 unsafe impl<
3066 D: fidl::encoding::ResourceDialect,
3067 T0: fidl::encoding::Encode<fidl::encoding::UnboundedVector<HostInfo>, D>,
3068 > fidl::encoding::Encode<HostWatcherWatchResponse, D> for (T0,)
3069 {
3070 #[inline]
3071 unsafe fn encode(
3072 self,
3073 encoder: &mut fidl::encoding::Encoder<'_, D>,
3074 offset: usize,
3075 depth: fidl::encoding::Depth,
3076 ) -> fidl::Result<()> {
3077 encoder.debug_check_bounds::<HostWatcherWatchResponse>(offset);
3078 self.0.encode(encoder, offset + 0, depth)?;
3082 Ok(())
3083 }
3084 }
3085
3086 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3087 for HostWatcherWatchResponse
3088 {
3089 #[inline(always)]
3090 fn new_empty() -> Self {
3091 Self { hosts: fidl::new_empty!(fidl::encoding::UnboundedVector<HostInfo>, D) }
3092 }
3093
3094 #[inline]
3095 unsafe fn decode(
3096 &mut self,
3097 decoder: &mut fidl::encoding::Decoder<'_, D>,
3098 offset: usize,
3099 _depth: fidl::encoding::Depth,
3100 ) -> fidl::Result<()> {
3101 decoder.debug_check_bounds::<Self>(offset);
3102 fidl::decode!(
3104 fidl::encoding::UnboundedVector<HostInfo>,
3105 D,
3106 &mut self.hosts,
3107 decoder,
3108 offset + 0,
3109 _depth
3110 )?;
3111 Ok(())
3112 }
3113 }
3114
3115 impl fidl::encoding::ValueTypeMarker for Key {
3116 type Borrowed<'a> = &'a Self;
3117 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3118 value
3119 }
3120 }
3121
3122 unsafe impl fidl::encoding::TypeMarker for Key {
3123 type Owned = Self;
3124
3125 #[inline(always)]
3126 fn inline_align(_context: fidl::encoding::Context) -> usize {
3127 1
3128 }
3129
3130 #[inline(always)]
3131 fn inline_size(_context: fidl::encoding::Context) -> usize {
3132 16
3133 }
3134 #[inline(always)]
3135 fn encode_is_copy() -> bool {
3136 true
3137 }
3138
3139 #[inline(always)]
3140 fn decode_is_copy() -> bool {
3141 true
3142 }
3143 }
3144
3145 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Key, D> for &Key {
3146 #[inline]
3147 unsafe fn encode(
3148 self,
3149 encoder: &mut fidl::encoding::Encoder<'_, D>,
3150 offset: usize,
3151 _depth: fidl::encoding::Depth,
3152 ) -> fidl::Result<()> {
3153 encoder.debug_check_bounds::<Key>(offset);
3154 unsafe {
3155 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
3157 (buf_ptr as *mut Key).write_unaligned((self as *const Key).read());
3158 }
3161 Ok(())
3162 }
3163 }
3164 unsafe impl<
3165 D: fidl::encoding::ResourceDialect,
3166 T0: fidl::encoding::Encode<fidl::encoding::Array<u8, 16>, D>,
3167 > fidl::encoding::Encode<Key, D> for (T0,)
3168 {
3169 #[inline]
3170 unsafe fn encode(
3171 self,
3172 encoder: &mut fidl::encoding::Encoder<'_, D>,
3173 offset: usize,
3174 depth: fidl::encoding::Depth,
3175 ) -> fidl::Result<()> {
3176 encoder.debug_check_bounds::<Key>(offset);
3177 self.0.encode(encoder, offset + 0, depth)?;
3181 Ok(())
3182 }
3183 }
3184
3185 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Key {
3186 #[inline(always)]
3187 fn new_empty() -> Self {
3188 Self { value: fidl::new_empty!(fidl::encoding::Array<u8, 16>, D) }
3189 }
3190
3191 #[inline]
3192 unsafe fn decode(
3193 &mut self,
3194 decoder: &mut fidl::encoding::Decoder<'_, D>,
3195 offset: usize,
3196 _depth: fidl::encoding::Depth,
3197 ) -> fidl::Result<()> {
3198 decoder.debug_check_bounds::<Self>(offset);
3199 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
3200 unsafe {
3203 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 16);
3204 }
3205 Ok(())
3206 }
3207 }
3208
3209 impl fidl::encoding::ValueTypeMarker for LeConnectionParameters {
3210 type Borrowed<'a> = &'a Self;
3211 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3212 value
3213 }
3214 }
3215
3216 unsafe impl fidl::encoding::TypeMarker for LeConnectionParameters {
3217 type Owned = Self;
3218
3219 #[inline(always)]
3220 fn inline_align(_context: fidl::encoding::Context) -> usize {
3221 2
3222 }
3223
3224 #[inline(always)]
3225 fn inline_size(_context: fidl::encoding::Context) -> usize {
3226 6
3227 }
3228 #[inline(always)]
3229 fn encode_is_copy() -> bool {
3230 true
3231 }
3232
3233 #[inline(always)]
3234 fn decode_is_copy() -> bool {
3235 true
3236 }
3237 }
3238
3239 unsafe impl<D: fidl::encoding::ResourceDialect>
3240 fidl::encoding::Encode<LeConnectionParameters, D> for &LeConnectionParameters
3241 {
3242 #[inline]
3243 unsafe fn encode(
3244 self,
3245 encoder: &mut fidl::encoding::Encoder<'_, D>,
3246 offset: usize,
3247 _depth: fidl::encoding::Depth,
3248 ) -> fidl::Result<()> {
3249 encoder.debug_check_bounds::<LeConnectionParameters>(offset);
3250 unsafe {
3251 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
3253 (buf_ptr as *mut LeConnectionParameters)
3254 .write_unaligned((self as *const LeConnectionParameters).read());
3255 }
3258 Ok(())
3259 }
3260 }
3261 unsafe impl<
3262 D: fidl::encoding::ResourceDialect,
3263 T0: fidl::encoding::Encode<u16, D>,
3264 T1: fidl::encoding::Encode<u16, D>,
3265 T2: fidl::encoding::Encode<u16, D>,
3266 > fidl::encoding::Encode<LeConnectionParameters, D> for (T0, T1, T2)
3267 {
3268 #[inline]
3269 unsafe fn encode(
3270 self,
3271 encoder: &mut fidl::encoding::Encoder<'_, D>,
3272 offset: usize,
3273 depth: fidl::encoding::Depth,
3274 ) -> fidl::Result<()> {
3275 encoder.debug_check_bounds::<LeConnectionParameters>(offset);
3276 self.0.encode(encoder, offset + 0, depth)?;
3280 self.1.encode(encoder, offset + 2, depth)?;
3281 self.2.encode(encoder, offset + 4, depth)?;
3282 Ok(())
3283 }
3284 }
3285
3286 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3287 for LeConnectionParameters
3288 {
3289 #[inline(always)]
3290 fn new_empty() -> Self {
3291 Self {
3292 connection_interval: fidl::new_empty!(u16, D),
3293 connection_latency: fidl::new_empty!(u16, D),
3294 supervision_timeout: fidl::new_empty!(u16, D),
3295 }
3296 }
3297
3298 #[inline]
3299 unsafe fn decode(
3300 &mut self,
3301 decoder: &mut fidl::encoding::Decoder<'_, D>,
3302 offset: usize,
3303 _depth: fidl::encoding::Depth,
3304 ) -> fidl::Result<()> {
3305 decoder.debug_check_bounds::<Self>(offset);
3306 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
3307 unsafe {
3310 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 6);
3311 }
3312 Ok(())
3313 }
3314 }
3315
3316 impl fidl::encoding::ValueTypeMarker for Ltk {
3317 type Borrowed<'a> = &'a Self;
3318 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3319 value
3320 }
3321 }
3322
3323 unsafe impl fidl::encoding::TypeMarker for Ltk {
3324 type Owned = Self;
3325
3326 #[inline(always)]
3327 fn inline_align(_context: fidl::encoding::Context) -> usize {
3328 8
3329 }
3330
3331 #[inline(always)]
3332 fn inline_size(_context: fidl::encoding::Context) -> usize {
3333 32
3334 }
3335 }
3336
3337 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Ltk, D> for &Ltk {
3338 #[inline]
3339 unsafe fn encode(
3340 self,
3341 encoder: &mut fidl::encoding::Encoder<'_, D>,
3342 offset: usize,
3343 _depth: fidl::encoding::Depth,
3344 ) -> fidl::Result<()> {
3345 encoder.debug_check_bounds::<Ltk>(offset);
3346 fidl::encoding::Encode::<Ltk, D>::encode(
3348 (
3349 <PeerKey as fidl::encoding::ValueTypeMarker>::borrow(&self.key),
3350 <u16 as fidl::encoding::ValueTypeMarker>::borrow(&self.ediv),
3351 <u64 as fidl::encoding::ValueTypeMarker>::borrow(&self.rand),
3352 ),
3353 encoder,
3354 offset,
3355 _depth,
3356 )
3357 }
3358 }
3359 unsafe impl<
3360 D: fidl::encoding::ResourceDialect,
3361 T0: fidl::encoding::Encode<PeerKey, D>,
3362 T1: fidl::encoding::Encode<u16, D>,
3363 T2: fidl::encoding::Encode<u64, D>,
3364 > fidl::encoding::Encode<Ltk, D> for (T0, T1, T2)
3365 {
3366 #[inline]
3367 unsafe fn encode(
3368 self,
3369 encoder: &mut fidl::encoding::Encoder<'_, D>,
3370 offset: usize,
3371 depth: fidl::encoding::Depth,
3372 ) -> fidl::Result<()> {
3373 encoder.debug_check_bounds::<Ltk>(offset);
3374 unsafe {
3377 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(16);
3378 (ptr as *mut u64).write_unaligned(0);
3379 }
3380 self.0.encode(encoder, offset + 0, depth)?;
3382 self.1.encode(encoder, offset + 20, depth)?;
3383 self.2.encode(encoder, offset + 24, depth)?;
3384 Ok(())
3385 }
3386 }
3387
3388 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Ltk {
3389 #[inline(always)]
3390 fn new_empty() -> Self {
3391 Self {
3392 key: fidl::new_empty!(PeerKey, D),
3393 ediv: fidl::new_empty!(u16, D),
3394 rand: fidl::new_empty!(u64, D),
3395 }
3396 }
3397
3398 #[inline]
3399 unsafe fn decode(
3400 &mut self,
3401 decoder: &mut fidl::encoding::Decoder<'_, D>,
3402 offset: usize,
3403 _depth: fidl::encoding::Depth,
3404 ) -> fidl::Result<()> {
3405 decoder.debug_check_bounds::<Self>(offset);
3406 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(16) };
3408 let padval = unsafe { (ptr as *const u64).read_unaligned() };
3409 let mask = 0xffff0000ff000000u64;
3410 let maskedval = padval & mask;
3411 if maskedval != 0 {
3412 return Err(fidl::Error::NonZeroPadding {
3413 padding_start: offset + 16 + ((mask as u64).trailing_zeros() / 8) as usize,
3414 });
3415 }
3416 fidl::decode!(PeerKey, D, &mut self.key, decoder, offset + 0, _depth)?;
3417 fidl::decode!(u16, D, &mut self.ediv, decoder, offset + 20, _depth)?;
3418 fidl::decode!(u64, D, &mut self.rand, decoder, offset + 24, _depth)?;
3419 Ok(())
3420 }
3421 }
3422
3423 impl fidl::encoding::ValueTypeMarker for PairingDelegate2RequestCompleteRequest {
3424 type Borrowed<'a> = &'a Self;
3425 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3426 value
3427 }
3428 }
3429
3430 unsafe impl fidl::encoding::TypeMarker for PairingDelegate2RequestCompleteRequest {
3431 type Owned = Self;
3432
3433 #[inline(always)]
3434 fn inline_align(_context: fidl::encoding::Context) -> usize {
3435 8
3436 }
3437
3438 #[inline(always)]
3439 fn inline_size(_context: fidl::encoding::Context) -> usize {
3440 16
3441 }
3442 }
3443
3444 unsafe impl<D: fidl::encoding::ResourceDialect>
3445 fidl::encoding::Encode<PairingDelegate2RequestCompleteRequest, D>
3446 for &PairingDelegate2RequestCompleteRequest
3447 {
3448 #[inline]
3449 unsafe fn encode(
3450 self,
3451 encoder: &mut fidl::encoding::Encoder<'_, D>,
3452 offset: usize,
3453 _depth: fidl::encoding::Depth,
3454 ) -> fidl::Result<()> {
3455 encoder.debug_check_bounds::<PairingDelegate2RequestCompleteRequest>(offset);
3456 fidl::encoding::Encode::<PairingDelegate2RequestCompleteRequest, D>::encode(
3458 (
3459 <fidl_fuchsia_bluetooth__common::PeerId as fidl::encoding::ValueTypeMarker>::borrow(&self.id),
3460 <bool as fidl::encoding::ValueTypeMarker>::borrow(&self.success),
3461 ),
3462 encoder, offset, _depth
3463 )
3464 }
3465 }
3466 unsafe impl<
3467 D: fidl::encoding::ResourceDialect,
3468 T0: fidl::encoding::Encode<fidl_fuchsia_bluetooth__common::PeerId, D>,
3469 T1: fidl::encoding::Encode<bool, D>,
3470 > fidl::encoding::Encode<PairingDelegate2RequestCompleteRequest, D> for (T0, T1)
3471 {
3472 #[inline]
3473 unsafe fn encode(
3474 self,
3475 encoder: &mut fidl::encoding::Encoder<'_, D>,
3476 offset: usize,
3477 depth: fidl::encoding::Depth,
3478 ) -> fidl::Result<()> {
3479 encoder.debug_check_bounds::<PairingDelegate2RequestCompleteRequest>(offset);
3480 unsafe {
3483 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(8);
3484 (ptr as *mut u64).write_unaligned(0);
3485 }
3486 self.0.encode(encoder, offset + 0, depth)?;
3488 self.1.encode(encoder, offset + 8, depth)?;
3489 Ok(())
3490 }
3491 }
3492
3493 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3494 for PairingDelegate2RequestCompleteRequest
3495 {
3496 #[inline(always)]
3497 fn new_empty() -> Self {
3498 Self {
3499 id: fidl::new_empty!(fidl_fuchsia_bluetooth__common::PeerId, D),
3500 success: fidl::new_empty!(bool, D),
3501 }
3502 }
3503
3504 #[inline]
3505 unsafe fn decode(
3506 &mut self,
3507 decoder: &mut fidl::encoding::Decoder<'_, D>,
3508 offset: usize,
3509 _depth: fidl::encoding::Depth,
3510 ) -> fidl::Result<()> {
3511 decoder.debug_check_bounds::<Self>(offset);
3512 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(8) };
3514 let padval = unsafe { (ptr as *const u64).read_unaligned() };
3515 let mask = 0xffffffffffffff00u64;
3516 let maskedval = padval & mask;
3517 if maskedval != 0 {
3518 return Err(fidl::Error::NonZeroPadding {
3519 padding_start: offset + 8 + ((mask as u64).trailing_zeros() / 8) as usize,
3520 });
3521 }
3522 fidl::decode!(
3523 fidl_fuchsia_bluetooth__common::PeerId,
3524 D,
3525 &mut self.id,
3526 decoder,
3527 offset + 0,
3528 _depth
3529 )?;
3530 fidl::decode!(bool, D, &mut self.success, decoder, offset + 8, _depth)?;
3531 Ok(())
3532 }
3533 }
3534
3535 impl fidl::encoding::ValueTypeMarker for PairingDelegateOnLocalKeypressRequest {
3536 type Borrowed<'a> = &'a Self;
3537 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3538 value
3539 }
3540 }
3541
3542 unsafe impl fidl::encoding::TypeMarker for PairingDelegateOnLocalKeypressRequest {
3543 type Owned = Self;
3544
3545 #[inline(always)]
3546 fn inline_align(_context: fidl::encoding::Context) -> usize {
3547 8
3548 }
3549
3550 #[inline(always)]
3551 fn inline_size(_context: fidl::encoding::Context) -> usize {
3552 16
3553 }
3554 }
3555
3556 unsafe impl<D: fidl::encoding::ResourceDialect>
3557 fidl::encoding::Encode<PairingDelegateOnLocalKeypressRequest, D>
3558 for &PairingDelegateOnLocalKeypressRequest
3559 {
3560 #[inline]
3561 unsafe fn encode(
3562 self,
3563 encoder: &mut fidl::encoding::Encoder<'_, D>,
3564 offset: usize,
3565 _depth: fidl::encoding::Depth,
3566 ) -> fidl::Result<()> {
3567 encoder.debug_check_bounds::<PairingDelegateOnLocalKeypressRequest>(offset);
3568 fidl::encoding::Encode::<PairingDelegateOnLocalKeypressRequest, D>::encode(
3570 (
3571 <fidl_fuchsia_bluetooth__common::PeerId as fidl::encoding::ValueTypeMarker>::borrow(&self.id),
3572 <PairingKeypress as fidl::encoding::ValueTypeMarker>::borrow(&self.keypress),
3573 ),
3574 encoder, offset, _depth
3575 )
3576 }
3577 }
3578 unsafe impl<
3579 D: fidl::encoding::ResourceDialect,
3580 T0: fidl::encoding::Encode<fidl_fuchsia_bluetooth__common::PeerId, D>,
3581 T1: fidl::encoding::Encode<PairingKeypress, D>,
3582 > fidl::encoding::Encode<PairingDelegateOnLocalKeypressRequest, D> for (T0, T1)
3583 {
3584 #[inline]
3585 unsafe fn encode(
3586 self,
3587 encoder: &mut fidl::encoding::Encoder<'_, D>,
3588 offset: usize,
3589 depth: fidl::encoding::Depth,
3590 ) -> fidl::Result<()> {
3591 encoder.debug_check_bounds::<PairingDelegateOnLocalKeypressRequest>(offset);
3592 unsafe {
3595 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(8);
3596 (ptr as *mut u64).write_unaligned(0);
3597 }
3598 self.0.encode(encoder, offset + 0, depth)?;
3600 self.1.encode(encoder, offset + 8, depth)?;
3601 Ok(())
3602 }
3603 }
3604
3605 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3606 for PairingDelegateOnLocalKeypressRequest
3607 {
3608 #[inline(always)]
3609 fn new_empty() -> Self {
3610 Self {
3611 id: fidl::new_empty!(fidl_fuchsia_bluetooth__common::PeerId, D),
3612 keypress: fidl::new_empty!(PairingKeypress, D),
3613 }
3614 }
3615
3616 #[inline]
3617 unsafe fn decode(
3618 &mut self,
3619 decoder: &mut fidl::encoding::Decoder<'_, D>,
3620 offset: usize,
3621 _depth: fidl::encoding::Depth,
3622 ) -> fidl::Result<()> {
3623 decoder.debug_check_bounds::<Self>(offset);
3624 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(8) };
3626 let padval = unsafe { (ptr as *const u64).read_unaligned() };
3627 let mask = 0xffffffff00000000u64;
3628 let maskedval = padval & mask;
3629 if maskedval != 0 {
3630 return Err(fidl::Error::NonZeroPadding {
3631 padding_start: offset + 8 + ((mask as u64).trailing_zeros() / 8) as usize,
3632 });
3633 }
3634 fidl::decode!(
3635 fidl_fuchsia_bluetooth__common::PeerId,
3636 D,
3637 &mut self.id,
3638 decoder,
3639 offset + 0,
3640 _depth
3641 )?;
3642 fidl::decode!(PairingKeypress, D, &mut self.keypress, decoder, offset + 8, _depth)?;
3643 Ok(())
3644 }
3645 }
3646
3647 impl fidl::encoding::ValueTypeMarker for PairingDelegateOnPairingCompleteRequest {
3648 type Borrowed<'a> = &'a Self;
3649 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3650 value
3651 }
3652 }
3653
3654 unsafe impl fidl::encoding::TypeMarker for PairingDelegateOnPairingCompleteRequest {
3655 type Owned = Self;
3656
3657 #[inline(always)]
3658 fn inline_align(_context: fidl::encoding::Context) -> usize {
3659 8
3660 }
3661
3662 #[inline(always)]
3663 fn inline_size(_context: fidl::encoding::Context) -> usize {
3664 16
3665 }
3666 }
3667
3668 unsafe impl<D: fidl::encoding::ResourceDialect>
3669 fidl::encoding::Encode<PairingDelegateOnPairingCompleteRequest, D>
3670 for &PairingDelegateOnPairingCompleteRequest
3671 {
3672 #[inline]
3673 unsafe fn encode(
3674 self,
3675 encoder: &mut fidl::encoding::Encoder<'_, D>,
3676 offset: usize,
3677 _depth: fidl::encoding::Depth,
3678 ) -> fidl::Result<()> {
3679 encoder.debug_check_bounds::<PairingDelegateOnPairingCompleteRequest>(offset);
3680 fidl::encoding::Encode::<PairingDelegateOnPairingCompleteRequest, D>::encode(
3682 (
3683 <fidl_fuchsia_bluetooth__common::PeerId as fidl::encoding::ValueTypeMarker>::borrow(&self.id),
3684 <bool as fidl::encoding::ValueTypeMarker>::borrow(&self.success),
3685 ),
3686 encoder, offset, _depth
3687 )
3688 }
3689 }
3690 unsafe impl<
3691 D: fidl::encoding::ResourceDialect,
3692 T0: fidl::encoding::Encode<fidl_fuchsia_bluetooth__common::PeerId, D>,
3693 T1: fidl::encoding::Encode<bool, D>,
3694 > fidl::encoding::Encode<PairingDelegateOnPairingCompleteRequest, D> for (T0, T1)
3695 {
3696 #[inline]
3697 unsafe fn encode(
3698 self,
3699 encoder: &mut fidl::encoding::Encoder<'_, D>,
3700 offset: usize,
3701 depth: fidl::encoding::Depth,
3702 ) -> fidl::Result<()> {
3703 encoder.debug_check_bounds::<PairingDelegateOnPairingCompleteRequest>(offset);
3704 unsafe {
3707 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(8);
3708 (ptr as *mut u64).write_unaligned(0);
3709 }
3710 self.0.encode(encoder, offset + 0, depth)?;
3712 self.1.encode(encoder, offset + 8, depth)?;
3713 Ok(())
3714 }
3715 }
3716
3717 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3718 for PairingDelegateOnPairingCompleteRequest
3719 {
3720 #[inline(always)]
3721 fn new_empty() -> Self {
3722 Self {
3723 id: fidl::new_empty!(fidl_fuchsia_bluetooth__common::PeerId, D),
3724 success: fidl::new_empty!(bool, D),
3725 }
3726 }
3727
3728 #[inline]
3729 unsafe fn decode(
3730 &mut self,
3731 decoder: &mut fidl::encoding::Decoder<'_, D>,
3732 offset: usize,
3733 _depth: fidl::encoding::Depth,
3734 ) -> fidl::Result<()> {
3735 decoder.debug_check_bounds::<Self>(offset);
3736 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(8) };
3738 let padval = unsafe { (ptr as *const u64).read_unaligned() };
3739 let mask = 0xffffffffffffff00u64;
3740 let maskedval = padval & mask;
3741 if maskedval != 0 {
3742 return Err(fidl::Error::NonZeroPadding {
3743 padding_start: offset + 8 + ((mask as u64).trailing_zeros() / 8) as usize,
3744 });
3745 }
3746 fidl::decode!(
3747 fidl_fuchsia_bluetooth__common::PeerId,
3748 D,
3749 &mut self.id,
3750 decoder,
3751 offset + 0,
3752 _depth
3753 )?;
3754 fidl::decode!(bool, D, &mut self.success, decoder, offset + 8, _depth)?;
3755 Ok(())
3756 }
3757 }
3758
3759 impl fidl::encoding::ValueTypeMarker for PairingDelegateOnPairingRequestRequest {
3760 type Borrowed<'a> = &'a Self;
3761 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3762 value
3763 }
3764 }
3765
3766 unsafe impl fidl::encoding::TypeMarker for PairingDelegateOnPairingRequestRequest {
3767 type Owned = Self;
3768
3769 #[inline(always)]
3770 fn inline_align(_context: fidl::encoding::Context) -> usize {
3771 8
3772 }
3773
3774 #[inline(always)]
3775 fn inline_size(_context: fidl::encoding::Context) -> usize {
3776 24
3777 }
3778 }
3779
3780 unsafe impl<D: fidl::encoding::ResourceDialect>
3781 fidl::encoding::Encode<PairingDelegateOnPairingRequestRequest, D>
3782 for &PairingDelegateOnPairingRequestRequest
3783 {
3784 #[inline]
3785 unsafe fn encode(
3786 self,
3787 encoder: &mut fidl::encoding::Encoder<'_, D>,
3788 offset: usize,
3789 _depth: fidl::encoding::Depth,
3790 ) -> fidl::Result<()> {
3791 encoder.debug_check_bounds::<PairingDelegateOnPairingRequestRequest>(offset);
3792 fidl::encoding::Encode::<PairingDelegateOnPairingRequestRequest, D>::encode(
3794 (
3795 <Peer as fidl::encoding::ValueTypeMarker>::borrow(&self.peer),
3796 <PairingMethod as fidl::encoding::ValueTypeMarker>::borrow(&self.method),
3797 <u32 as fidl::encoding::ValueTypeMarker>::borrow(&self.displayed_passkey),
3798 ),
3799 encoder,
3800 offset,
3801 _depth,
3802 )
3803 }
3804 }
3805 unsafe impl<
3806 D: fidl::encoding::ResourceDialect,
3807 T0: fidl::encoding::Encode<Peer, D>,
3808 T1: fidl::encoding::Encode<PairingMethod, D>,
3809 T2: fidl::encoding::Encode<u32, D>,
3810 > fidl::encoding::Encode<PairingDelegateOnPairingRequestRequest, D> for (T0, T1, T2)
3811 {
3812 #[inline]
3813 unsafe fn encode(
3814 self,
3815 encoder: &mut fidl::encoding::Encoder<'_, D>,
3816 offset: usize,
3817 depth: fidl::encoding::Depth,
3818 ) -> fidl::Result<()> {
3819 encoder.debug_check_bounds::<PairingDelegateOnPairingRequestRequest>(offset);
3820 self.0.encode(encoder, offset + 0, depth)?;
3824 self.1.encode(encoder, offset + 16, depth)?;
3825 self.2.encode(encoder, offset + 20, depth)?;
3826 Ok(())
3827 }
3828 }
3829
3830 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3831 for PairingDelegateOnPairingRequestRequest
3832 {
3833 #[inline(always)]
3834 fn new_empty() -> Self {
3835 Self {
3836 peer: fidl::new_empty!(Peer, D),
3837 method: fidl::new_empty!(PairingMethod, D),
3838 displayed_passkey: fidl::new_empty!(u32, D),
3839 }
3840 }
3841
3842 #[inline]
3843 unsafe fn decode(
3844 &mut self,
3845 decoder: &mut fidl::encoding::Decoder<'_, D>,
3846 offset: usize,
3847 _depth: fidl::encoding::Depth,
3848 ) -> fidl::Result<()> {
3849 decoder.debug_check_bounds::<Self>(offset);
3850 fidl::decode!(Peer, D, &mut self.peer, decoder, offset + 0, _depth)?;
3852 fidl::decode!(PairingMethod, D, &mut self.method, decoder, offset + 16, _depth)?;
3853 fidl::decode!(u32, D, &mut self.displayed_passkey, decoder, offset + 20, _depth)?;
3854 Ok(())
3855 }
3856 }
3857
3858 impl fidl::encoding::ValueTypeMarker for PairingDelegateOnPairingRequestResponse {
3859 type Borrowed<'a> = &'a Self;
3860 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3861 value
3862 }
3863 }
3864
3865 unsafe impl fidl::encoding::TypeMarker for PairingDelegateOnPairingRequestResponse {
3866 type Owned = Self;
3867
3868 #[inline(always)]
3869 fn inline_align(_context: fidl::encoding::Context) -> usize {
3870 4
3871 }
3872
3873 #[inline(always)]
3874 fn inline_size(_context: fidl::encoding::Context) -> usize {
3875 8
3876 }
3877 }
3878
3879 unsafe impl<D: fidl::encoding::ResourceDialect>
3880 fidl::encoding::Encode<PairingDelegateOnPairingRequestResponse, D>
3881 for &PairingDelegateOnPairingRequestResponse
3882 {
3883 #[inline]
3884 unsafe fn encode(
3885 self,
3886 encoder: &mut fidl::encoding::Encoder<'_, D>,
3887 offset: usize,
3888 _depth: fidl::encoding::Depth,
3889 ) -> fidl::Result<()> {
3890 encoder.debug_check_bounds::<PairingDelegateOnPairingRequestResponse>(offset);
3891 fidl::encoding::Encode::<PairingDelegateOnPairingRequestResponse, D>::encode(
3893 (
3894 <bool as fidl::encoding::ValueTypeMarker>::borrow(&self.accept),
3895 <u32 as fidl::encoding::ValueTypeMarker>::borrow(&self.entered_passkey),
3896 ),
3897 encoder,
3898 offset,
3899 _depth,
3900 )
3901 }
3902 }
3903 unsafe impl<
3904 D: fidl::encoding::ResourceDialect,
3905 T0: fidl::encoding::Encode<bool, D>,
3906 T1: fidl::encoding::Encode<u32, D>,
3907 > fidl::encoding::Encode<PairingDelegateOnPairingRequestResponse, D> for (T0, T1)
3908 {
3909 #[inline]
3910 unsafe fn encode(
3911 self,
3912 encoder: &mut fidl::encoding::Encoder<'_, D>,
3913 offset: usize,
3914 depth: fidl::encoding::Depth,
3915 ) -> fidl::Result<()> {
3916 encoder.debug_check_bounds::<PairingDelegateOnPairingRequestResponse>(offset);
3917 unsafe {
3920 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(0);
3921 (ptr as *mut u32).write_unaligned(0);
3922 }
3923 self.0.encode(encoder, offset + 0, depth)?;
3925 self.1.encode(encoder, offset + 4, depth)?;
3926 Ok(())
3927 }
3928 }
3929
3930 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3931 for PairingDelegateOnPairingRequestResponse
3932 {
3933 #[inline(always)]
3934 fn new_empty() -> Self {
3935 Self { accept: fidl::new_empty!(bool, D), entered_passkey: fidl::new_empty!(u32, D) }
3936 }
3937
3938 #[inline]
3939 unsafe fn decode(
3940 &mut self,
3941 decoder: &mut fidl::encoding::Decoder<'_, D>,
3942 offset: usize,
3943 _depth: fidl::encoding::Depth,
3944 ) -> fidl::Result<()> {
3945 decoder.debug_check_bounds::<Self>(offset);
3946 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(0) };
3948 let padval = unsafe { (ptr as *const u32).read_unaligned() };
3949 let mask = 0xffffff00u32;
3950 let maskedval = padval & mask;
3951 if maskedval != 0 {
3952 return Err(fidl::Error::NonZeroPadding {
3953 padding_start: offset + 0 + ((mask as u64).trailing_zeros() / 8) as usize,
3954 });
3955 }
3956 fidl::decode!(bool, D, &mut self.accept, decoder, offset + 0, _depth)?;
3957 fidl::decode!(u32, D, &mut self.entered_passkey, decoder, offset + 4, _depth)?;
3958 Ok(())
3959 }
3960 }
3961
3962 impl fidl::encoding::ValueTypeMarker for PairingDelegateOnRemoteKeypressRequest {
3963 type Borrowed<'a> = &'a Self;
3964 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3965 value
3966 }
3967 }
3968
3969 unsafe impl fidl::encoding::TypeMarker for PairingDelegateOnRemoteKeypressRequest {
3970 type Owned = Self;
3971
3972 #[inline(always)]
3973 fn inline_align(_context: fidl::encoding::Context) -> usize {
3974 8
3975 }
3976
3977 #[inline(always)]
3978 fn inline_size(_context: fidl::encoding::Context) -> usize {
3979 16
3980 }
3981 }
3982
3983 unsafe impl<D: fidl::encoding::ResourceDialect>
3984 fidl::encoding::Encode<PairingDelegateOnRemoteKeypressRequest, D>
3985 for &PairingDelegateOnRemoteKeypressRequest
3986 {
3987 #[inline]
3988 unsafe fn encode(
3989 self,
3990 encoder: &mut fidl::encoding::Encoder<'_, D>,
3991 offset: usize,
3992 _depth: fidl::encoding::Depth,
3993 ) -> fidl::Result<()> {
3994 encoder.debug_check_bounds::<PairingDelegateOnRemoteKeypressRequest>(offset);
3995 fidl::encoding::Encode::<PairingDelegateOnRemoteKeypressRequest, D>::encode(
3997 (
3998 <fidl_fuchsia_bluetooth__common::PeerId as fidl::encoding::ValueTypeMarker>::borrow(&self.id),
3999 <PairingKeypress as fidl::encoding::ValueTypeMarker>::borrow(&self.keypress),
4000 ),
4001 encoder, offset, _depth
4002 )
4003 }
4004 }
4005 unsafe impl<
4006 D: fidl::encoding::ResourceDialect,
4007 T0: fidl::encoding::Encode<fidl_fuchsia_bluetooth__common::PeerId, D>,
4008 T1: fidl::encoding::Encode<PairingKeypress, D>,
4009 > fidl::encoding::Encode<PairingDelegateOnRemoteKeypressRequest, D> for (T0, T1)
4010 {
4011 #[inline]
4012 unsafe fn encode(
4013 self,
4014 encoder: &mut fidl::encoding::Encoder<'_, D>,
4015 offset: usize,
4016 depth: fidl::encoding::Depth,
4017 ) -> fidl::Result<()> {
4018 encoder.debug_check_bounds::<PairingDelegateOnRemoteKeypressRequest>(offset);
4019 unsafe {
4022 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(8);
4023 (ptr as *mut u64).write_unaligned(0);
4024 }
4025 self.0.encode(encoder, offset + 0, depth)?;
4027 self.1.encode(encoder, offset + 8, depth)?;
4028 Ok(())
4029 }
4030 }
4031
4032 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
4033 for PairingDelegateOnRemoteKeypressRequest
4034 {
4035 #[inline(always)]
4036 fn new_empty() -> Self {
4037 Self {
4038 id: fidl::new_empty!(fidl_fuchsia_bluetooth__common::PeerId, D),
4039 keypress: fidl::new_empty!(PairingKeypress, D),
4040 }
4041 }
4042
4043 #[inline]
4044 unsafe fn decode(
4045 &mut self,
4046 decoder: &mut fidl::encoding::Decoder<'_, D>,
4047 offset: usize,
4048 _depth: fidl::encoding::Depth,
4049 ) -> fidl::Result<()> {
4050 decoder.debug_check_bounds::<Self>(offset);
4051 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(8) };
4053 let padval = unsafe { (ptr as *const u64).read_unaligned() };
4054 let mask = 0xffffffff00000000u64;
4055 let maskedval = padval & mask;
4056 if maskedval != 0 {
4057 return Err(fidl::Error::NonZeroPadding {
4058 padding_start: offset + 8 + ((mask as u64).trailing_zeros() / 8) as usize,
4059 });
4060 }
4061 fidl::decode!(
4062 fidl_fuchsia_bluetooth__common::PeerId,
4063 D,
4064 &mut self.id,
4065 decoder,
4066 offset + 0,
4067 _depth
4068 )?;
4069 fidl::decode!(PairingKeypress, D, &mut self.keypress, decoder, offset + 8, _depth)?;
4070 Ok(())
4071 }
4072 }
4073
4074 impl fidl::encoding::ValueTypeMarker for PairingRequestKeypressRequest {
4075 type Borrowed<'a> = &'a Self;
4076 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4077 value
4078 }
4079 }
4080
4081 unsafe impl fidl::encoding::TypeMarker for PairingRequestKeypressRequest {
4082 type Owned = Self;
4083
4084 #[inline(always)]
4085 fn inline_align(_context: fidl::encoding::Context) -> usize {
4086 4
4087 }
4088
4089 #[inline(always)]
4090 fn inline_size(_context: fidl::encoding::Context) -> usize {
4091 4
4092 }
4093 }
4094
4095 unsafe impl<D: fidl::encoding::ResourceDialect>
4096 fidl::encoding::Encode<PairingRequestKeypressRequest, D>
4097 for &PairingRequestKeypressRequest
4098 {
4099 #[inline]
4100 unsafe fn encode(
4101 self,
4102 encoder: &mut fidl::encoding::Encoder<'_, D>,
4103 offset: usize,
4104 _depth: fidl::encoding::Depth,
4105 ) -> fidl::Result<()> {
4106 encoder.debug_check_bounds::<PairingRequestKeypressRequest>(offset);
4107 fidl::encoding::Encode::<PairingRequestKeypressRequest, D>::encode(
4109 (<PairingKeypress as fidl::encoding::ValueTypeMarker>::borrow(&self.keypress),),
4110 encoder,
4111 offset,
4112 _depth,
4113 )
4114 }
4115 }
4116 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<PairingKeypress, D>>
4117 fidl::encoding::Encode<PairingRequestKeypressRequest, D> for (T0,)
4118 {
4119 #[inline]
4120 unsafe fn encode(
4121 self,
4122 encoder: &mut fidl::encoding::Encoder<'_, D>,
4123 offset: usize,
4124 depth: fidl::encoding::Depth,
4125 ) -> fidl::Result<()> {
4126 encoder.debug_check_bounds::<PairingRequestKeypressRequest>(offset);
4127 self.0.encode(encoder, offset + 0, depth)?;
4131 Ok(())
4132 }
4133 }
4134
4135 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
4136 for PairingRequestKeypressRequest
4137 {
4138 #[inline(always)]
4139 fn new_empty() -> Self {
4140 Self { keypress: fidl::new_empty!(PairingKeypress, D) }
4141 }
4142
4143 #[inline]
4144 unsafe fn decode(
4145 &mut self,
4146 decoder: &mut fidl::encoding::Decoder<'_, D>,
4147 offset: usize,
4148 _depth: fidl::encoding::Depth,
4149 ) -> fidl::Result<()> {
4150 decoder.debug_check_bounds::<Self>(offset);
4151 fidl::decode!(PairingKeypress, D, &mut self.keypress, decoder, offset + 0, _depth)?;
4153 Ok(())
4154 }
4155 }
4156
4157 impl fidl::encoding::ValueTypeMarker for PairingRequestOnCompleteRequest {
4158 type Borrowed<'a> = &'a Self;
4159 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4160 value
4161 }
4162 }
4163
4164 unsafe impl fidl::encoding::TypeMarker for PairingRequestOnCompleteRequest {
4165 type Owned = Self;
4166
4167 #[inline(always)]
4168 fn inline_align(_context: fidl::encoding::Context) -> usize {
4169 1
4170 }
4171
4172 #[inline(always)]
4173 fn inline_size(_context: fidl::encoding::Context) -> usize {
4174 1
4175 }
4176 }
4177
4178 unsafe impl<D: fidl::encoding::ResourceDialect>
4179 fidl::encoding::Encode<PairingRequestOnCompleteRequest, D>
4180 for &PairingRequestOnCompleteRequest
4181 {
4182 #[inline]
4183 unsafe fn encode(
4184 self,
4185 encoder: &mut fidl::encoding::Encoder<'_, D>,
4186 offset: usize,
4187 _depth: fidl::encoding::Depth,
4188 ) -> fidl::Result<()> {
4189 encoder.debug_check_bounds::<PairingRequestOnCompleteRequest>(offset);
4190 fidl::encoding::Encode::<PairingRequestOnCompleteRequest, D>::encode(
4192 (<bool as fidl::encoding::ValueTypeMarker>::borrow(&self.success),),
4193 encoder,
4194 offset,
4195 _depth,
4196 )
4197 }
4198 }
4199 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<bool, D>>
4200 fidl::encoding::Encode<PairingRequestOnCompleteRequest, D> for (T0,)
4201 {
4202 #[inline]
4203 unsafe fn encode(
4204 self,
4205 encoder: &mut fidl::encoding::Encoder<'_, D>,
4206 offset: usize,
4207 depth: fidl::encoding::Depth,
4208 ) -> fidl::Result<()> {
4209 encoder.debug_check_bounds::<PairingRequestOnCompleteRequest>(offset);
4210 self.0.encode(encoder, offset + 0, depth)?;
4214 Ok(())
4215 }
4216 }
4217
4218 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
4219 for PairingRequestOnCompleteRequest
4220 {
4221 #[inline(always)]
4222 fn new_empty() -> Self {
4223 Self { success: fidl::new_empty!(bool, D) }
4224 }
4225
4226 #[inline]
4227 unsafe fn decode(
4228 &mut self,
4229 decoder: &mut fidl::encoding::Decoder<'_, D>,
4230 offset: usize,
4231 _depth: fidl::encoding::Depth,
4232 ) -> fidl::Result<()> {
4233 decoder.debug_check_bounds::<Self>(offset);
4234 fidl::decode!(bool, D, &mut self.success, decoder, offset + 0, _depth)?;
4236 Ok(())
4237 }
4238 }
4239
4240 impl fidl::encoding::ValueTypeMarker for PairingRequestOnKeypressRequest {
4241 type Borrowed<'a> = &'a Self;
4242 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4243 value
4244 }
4245 }
4246
4247 unsafe impl fidl::encoding::TypeMarker for PairingRequestOnKeypressRequest {
4248 type Owned = Self;
4249
4250 #[inline(always)]
4251 fn inline_align(_context: fidl::encoding::Context) -> usize {
4252 4
4253 }
4254
4255 #[inline(always)]
4256 fn inline_size(_context: fidl::encoding::Context) -> usize {
4257 4
4258 }
4259 }
4260
4261 unsafe impl<D: fidl::encoding::ResourceDialect>
4262 fidl::encoding::Encode<PairingRequestOnKeypressRequest, D>
4263 for &PairingRequestOnKeypressRequest
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::<PairingRequestOnKeypressRequest>(offset);
4273 fidl::encoding::Encode::<PairingRequestOnKeypressRequest, D>::encode(
4275 (<PairingKeypress as fidl::encoding::ValueTypeMarker>::borrow(&self.keypress),),
4276 encoder,
4277 offset,
4278 _depth,
4279 )
4280 }
4281 }
4282 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<PairingKeypress, D>>
4283 fidl::encoding::Encode<PairingRequestOnKeypressRequest, D> for (T0,)
4284 {
4285 #[inline]
4286 unsafe fn encode(
4287 self,
4288 encoder: &mut fidl::encoding::Encoder<'_, D>,
4289 offset: usize,
4290 depth: fidl::encoding::Depth,
4291 ) -> fidl::Result<()> {
4292 encoder.debug_check_bounds::<PairingRequestOnKeypressRequest>(offset);
4293 self.0.encode(encoder, offset + 0, depth)?;
4297 Ok(())
4298 }
4299 }
4300
4301 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
4302 for PairingRequestOnKeypressRequest
4303 {
4304 #[inline(always)]
4305 fn new_empty() -> Self {
4306 Self { keypress: fidl::new_empty!(PairingKeypress, D) }
4307 }
4308
4309 #[inline]
4310 unsafe fn decode(
4311 &mut self,
4312 decoder: &mut fidl::encoding::Decoder<'_, D>,
4313 offset: usize,
4314 _depth: fidl::encoding::Depth,
4315 ) -> fidl::Result<()> {
4316 decoder.debug_check_bounds::<Self>(offset);
4317 fidl::decode!(PairingKeypress, D, &mut self.keypress, decoder, offset + 0, _depth)?;
4319 Ok(())
4320 }
4321 }
4322
4323 impl fidl::encoding::ValueTypeMarker for PasskeyEntry {
4324 type Borrowed<'a> = &'a Self;
4325 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4326 value
4327 }
4328 }
4329
4330 unsafe impl fidl::encoding::TypeMarker for PasskeyEntry {
4331 type Owned = Self;
4332
4333 #[inline(always)]
4334 fn inline_align(_context: fidl::encoding::Context) -> usize {
4335 1
4336 }
4337
4338 #[inline(always)]
4339 fn inline_size(_context: fidl::encoding::Context) -> usize {
4340 1
4341 }
4342 }
4343
4344 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<PasskeyEntry, D>
4345 for &PasskeyEntry
4346 {
4347 #[inline]
4348 unsafe fn encode(
4349 self,
4350 encoder: &mut fidl::encoding::Encoder<'_, D>,
4351 offset: usize,
4352 _depth: fidl::encoding::Depth,
4353 ) -> fidl::Result<()> {
4354 encoder.debug_check_bounds::<PasskeyEntry>(offset);
4355 encoder.write_num(0u8, offset);
4356 Ok(())
4357 }
4358 }
4359
4360 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for PasskeyEntry {
4361 #[inline(always)]
4362 fn new_empty() -> Self {
4363 Self
4364 }
4365
4366 #[inline]
4367 unsafe fn decode(
4368 &mut self,
4369 decoder: &mut fidl::encoding::Decoder<'_, D>,
4370 offset: usize,
4371 _depth: fidl::encoding::Depth,
4372 ) -> fidl::Result<()> {
4373 decoder.debug_check_bounds::<Self>(offset);
4374 match decoder.read_num::<u8>(offset) {
4375 0 => Ok(()),
4376 _ => Err(fidl::Error::Invalid),
4377 }
4378 }
4379 }
4380
4381 impl fidl::encoding::ValueTypeMarker for PeerKey {
4382 type Borrowed<'a> = &'a Self;
4383 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4384 value
4385 }
4386 }
4387
4388 unsafe impl fidl::encoding::TypeMarker for PeerKey {
4389 type Owned = Self;
4390
4391 #[inline(always)]
4392 fn inline_align(_context: fidl::encoding::Context) -> usize {
4393 1
4394 }
4395
4396 #[inline(always)]
4397 fn inline_size(_context: fidl::encoding::Context) -> usize {
4398 19
4399 }
4400 }
4401
4402 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<PeerKey, D> for &PeerKey {
4403 #[inline]
4404 unsafe fn encode(
4405 self,
4406 encoder: &mut fidl::encoding::Encoder<'_, D>,
4407 offset: usize,
4408 _depth: fidl::encoding::Depth,
4409 ) -> fidl::Result<()> {
4410 encoder.debug_check_bounds::<PeerKey>(offset);
4411 fidl::encoding::Encode::<PeerKey, D>::encode(
4413 (
4414 <SecurityProperties as fidl::encoding::ValueTypeMarker>::borrow(&self.security),
4415 <Key as fidl::encoding::ValueTypeMarker>::borrow(&self.data),
4416 ),
4417 encoder,
4418 offset,
4419 _depth,
4420 )
4421 }
4422 }
4423 unsafe impl<
4424 D: fidl::encoding::ResourceDialect,
4425 T0: fidl::encoding::Encode<SecurityProperties, D>,
4426 T1: fidl::encoding::Encode<Key, D>,
4427 > fidl::encoding::Encode<PeerKey, D> for (T0, T1)
4428 {
4429 #[inline]
4430 unsafe fn encode(
4431 self,
4432 encoder: &mut fidl::encoding::Encoder<'_, D>,
4433 offset: usize,
4434 depth: fidl::encoding::Depth,
4435 ) -> fidl::Result<()> {
4436 encoder.debug_check_bounds::<PeerKey>(offset);
4437 self.0.encode(encoder, offset + 0, depth)?;
4441 self.1.encode(encoder, offset + 3, depth)?;
4442 Ok(())
4443 }
4444 }
4445
4446 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for PeerKey {
4447 #[inline(always)]
4448 fn new_empty() -> Self {
4449 Self {
4450 security: fidl::new_empty!(SecurityProperties, D),
4451 data: fidl::new_empty!(Key, D),
4452 }
4453 }
4454
4455 #[inline]
4456 unsafe fn decode(
4457 &mut self,
4458 decoder: &mut fidl::encoding::Decoder<'_, D>,
4459 offset: usize,
4460 _depth: fidl::encoding::Depth,
4461 ) -> fidl::Result<()> {
4462 decoder.debug_check_bounds::<Self>(offset);
4463 fidl::decode!(SecurityProperties, D, &mut self.security, decoder, offset + 0, _depth)?;
4465 fidl::decode!(Key, D, &mut self.data, decoder, offset + 3, _depth)?;
4466 Ok(())
4467 }
4468 }
4469
4470 impl fidl::encoding::ValueTypeMarker for SecurityProperties {
4471 type Borrowed<'a> = &'a Self;
4472 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4473 value
4474 }
4475 }
4476
4477 unsafe impl fidl::encoding::TypeMarker for SecurityProperties {
4478 type Owned = Self;
4479
4480 #[inline(always)]
4481 fn inline_align(_context: fidl::encoding::Context) -> usize {
4482 1
4483 }
4484
4485 #[inline(always)]
4486 fn inline_size(_context: fidl::encoding::Context) -> usize {
4487 3
4488 }
4489 }
4490
4491 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<SecurityProperties, D>
4492 for &SecurityProperties
4493 {
4494 #[inline]
4495 unsafe fn encode(
4496 self,
4497 encoder: &mut fidl::encoding::Encoder<'_, D>,
4498 offset: usize,
4499 _depth: fidl::encoding::Depth,
4500 ) -> fidl::Result<()> {
4501 encoder.debug_check_bounds::<SecurityProperties>(offset);
4502 fidl::encoding::Encode::<SecurityProperties, D>::encode(
4504 (
4505 <bool as fidl::encoding::ValueTypeMarker>::borrow(&self.authenticated),
4506 <bool as fidl::encoding::ValueTypeMarker>::borrow(&self.secure_connections),
4507 <u8 as fidl::encoding::ValueTypeMarker>::borrow(&self.encryption_key_size),
4508 ),
4509 encoder,
4510 offset,
4511 _depth,
4512 )
4513 }
4514 }
4515 unsafe impl<
4516 D: fidl::encoding::ResourceDialect,
4517 T0: fidl::encoding::Encode<bool, D>,
4518 T1: fidl::encoding::Encode<bool, D>,
4519 T2: fidl::encoding::Encode<u8, D>,
4520 > fidl::encoding::Encode<SecurityProperties, D> for (T0, T1, T2)
4521 {
4522 #[inline]
4523 unsafe fn encode(
4524 self,
4525 encoder: &mut fidl::encoding::Encoder<'_, D>,
4526 offset: usize,
4527 depth: fidl::encoding::Depth,
4528 ) -> fidl::Result<()> {
4529 encoder.debug_check_bounds::<SecurityProperties>(offset);
4530 self.0.encode(encoder, offset + 0, depth)?;
4534 self.1.encode(encoder, offset + 1, depth)?;
4535 self.2.encode(encoder, offset + 2, depth)?;
4536 Ok(())
4537 }
4538 }
4539
4540 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for SecurityProperties {
4541 #[inline(always)]
4542 fn new_empty() -> Self {
4543 Self {
4544 authenticated: fidl::new_empty!(bool, D),
4545 secure_connections: fidl::new_empty!(bool, D),
4546 encryption_key_size: fidl::new_empty!(u8, D),
4547 }
4548 }
4549
4550 #[inline]
4551 unsafe fn decode(
4552 &mut self,
4553 decoder: &mut fidl::encoding::Decoder<'_, D>,
4554 offset: usize,
4555 _depth: fidl::encoding::Depth,
4556 ) -> fidl::Result<()> {
4557 decoder.debug_check_bounds::<Self>(offset);
4558 fidl::decode!(bool, D, &mut self.authenticated, decoder, offset + 0, _depth)?;
4560 fidl::decode!(bool, D, &mut self.secure_connections, decoder, offset + 1, _depth)?;
4561 fidl::decode!(u8, D, &mut self.encryption_key_size, decoder, offset + 2, _depth)?;
4562 Ok(())
4563 }
4564 }
4565
4566 impl AddressLookupLookupRequest {
4567 #[inline(always)]
4568 fn max_ordinal_present(&self) -> u64 {
4569 if let Some(_) = self.peer_id {
4570 return 1;
4571 }
4572 0
4573 }
4574 }
4575
4576 impl fidl::encoding::ValueTypeMarker for AddressLookupLookupRequest {
4577 type Borrowed<'a> = &'a Self;
4578 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4579 value
4580 }
4581 }
4582
4583 unsafe impl fidl::encoding::TypeMarker for AddressLookupLookupRequest {
4584 type Owned = Self;
4585
4586 #[inline(always)]
4587 fn inline_align(_context: fidl::encoding::Context) -> usize {
4588 8
4589 }
4590
4591 #[inline(always)]
4592 fn inline_size(_context: fidl::encoding::Context) -> usize {
4593 16
4594 }
4595 }
4596
4597 unsafe impl<D: fidl::encoding::ResourceDialect>
4598 fidl::encoding::Encode<AddressLookupLookupRequest, D> for &AddressLookupLookupRequest
4599 {
4600 unsafe fn encode(
4601 self,
4602 encoder: &mut fidl::encoding::Encoder<'_, D>,
4603 offset: usize,
4604 mut depth: fidl::encoding::Depth,
4605 ) -> fidl::Result<()> {
4606 encoder.debug_check_bounds::<AddressLookupLookupRequest>(offset);
4607 let max_ordinal: u64 = self.max_ordinal_present();
4609 encoder.write_num(max_ordinal, offset);
4610 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
4611 if max_ordinal == 0 {
4613 return Ok(());
4614 }
4615 depth.increment()?;
4616 let envelope_size = 8;
4617 let bytes_len = max_ordinal as usize * envelope_size;
4618 #[allow(unused_variables)]
4619 let offset = encoder.out_of_line_offset(bytes_len);
4620 let mut _prev_end_offset: usize = 0;
4621 if 1 > max_ordinal {
4622 return Ok(());
4623 }
4624
4625 let cur_offset: usize = (1 - 1) * envelope_size;
4628
4629 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4631
4632 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_bluetooth__common::PeerId, D>(
4637 self.peer_id.as_ref().map(<fidl_fuchsia_bluetooth__common::PeerId as fidl::encoding::ValueTypeMarker>::borrow),
4638 encoder, offset + cur_offset, depth
4639 )?;
4640
4641 _prev_end_offset = cur_offset + envelope_size;
4642
4643 Ok(())
4644 }
4645 }
4646
4647 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
4648 for AddressLookupLookupRequest
4649 {
4650 #[inline(always)]
4651 fn new_empty() -> Self {
4652 Self::default()
4653 }
4654
4655 unsafe fn decode(
4656 &mut self,
4657 decoder: &mut fidl::encoding::Decoder<'_, D>,
4658 offset: usize,
4659 mut depth: fidl::encoding::Depth,
4660 ) -> fidl::Result<()> {
4661 decoder.debug_check_bounds::<Self>(offset);
4662 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
4663 None => return Err(fidl::Error::NotNullable),
4664 Some(len) => len,
4665 };
4666 if len == 0 {
4668 return Ok(());
4669 };
4670 depth.increment()?;
4671 let envelope_size = 8;
4672 let bytes_len = len * envelope_size;
4673 let offset = decoder.out_of_line_offset(bytes_len)?;
4674 let mut _next_ordinal_to_read = 0;
4676 let mut next_offset = offset;
4677 let end_offset = offset + bytes_len;
4678 _next_ordinal_to_read += 1;
4679 if next_offset >= end_offset {
4680 return Ok(());
4681 }
4682
4683 while _next_ordinal_to_read < 1 {
4685 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4686 _next_ordinal_to_read += 1;
4687 next_offset += envelope_size;
4688 }
4689
4690 let next_out_of_line = decoder.next_out_of_line();
4691 let handles_before = decoder.remaining_handles();
4692 if let Some((inlined, num_bytes, num_handles)) =
4693 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4694 {
4695 let member_inline_size = <fidl_fuchsia_bluetooth__common::PeerId as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4696 if inlined != (member_inline_size <= 4) {
4697 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4698 }
4699 let inner_offset;
4700 let mut inner_depth = depth.clone();
4701 if inlined {
4702 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4703 inner_offset = next_offset;
4704 } else {
4705 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4706 inner_depth.increment()?;
4707 }
4708 let val_ref = self.peer_id.get_or_insert_with(|| {
4709 fidl::new_empty!(fidl_fuchsia_bluetooth__common::PeerId, D)
4710 });
4711 fidl::decode!(
4712 fidl_fuchsia_bluetooth__common::PeerId,
4713 D,
4714 val_ref,
4715 decoder,
4716 inner_offset,
4717 inner_depth
4718 )?;
4719 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4720 {
4721 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4722 }
4723 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4724 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4725 }
4726 }
4727
4728 next_offset += envelope_size;
4729
4730 while next_offset < end_offset {
4732 _next_ordinal_to_read += 1;
4733 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4734 next_offset += envelope_size;
4735 }
4736
4737 Ok(())
4738 }
4739 }
4740
4741 impl BondingData {
4742 #[inline(always)]
4743 fn max_ordinal_present(&self) -> u64 {
4744 if let Some(_) = self.device_class {
4745 return 9;
4746 }
4747 if let Some(_) = self.bredr_bond {
4748 return 8;
4749 }
4750 if let Some(_) = self.le_bond {
4751 return 7;
4752 }
4753 if let Some(_) = self.address {
4754 return 6;
4755 }
4756 if let Some(_) = self.name {
4757 return 3;
4758 }
4759 if let Some(_) = self.local_address {
4760 return 2;
4761 }
4762 if let Some(_) = self.identifier {
4763 return 1;
4764 }
4765 0
4766 }
4767 }
4768
4769 impl fidl::encoding::ValueTypeMarker for BondingData {
4770 type Borrowed<'a> = &'a Self;
4771 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4772 value
4773 }
4774 }
4775
4776 unsafe impl fidl::encoding::TypeMarker for BondingData {
4777 type Owned = Self;
4778
4779 #[inline(always)]
4780 fn inline_align(_context: fidl::encoding::Context) -> usize {
4781 8
4782 }
4783
4784 #[inline(always)]
4785 fn inline_size(_context: fidl::encoding::Context) -> usize {
4786 16
4787 }
4788 }
4789
4790 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<BondingData, D>
4791 for &BondingData
4792 {
4793 unsafe fn encode(
4794 self,
4795 encoder: &mut fidl::encoding::Encoder<'_, D>,
4796 offset: usize,
4797 mut depth: fidl::encoding::Depth,
4798 ) -> fidl::Result<()> {
4799 encoder.debug_check_bounds::<BondingData>(offset);
4800 let max_ordinal: u64 = self.max_ordinal_present();
4802 encoder.write_num(max_ordinal, offset);
4803 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
4804 if max_ordinal == 0 {
4806 return Ok(());
4807 }
4808 depth.increment()?;
4809 let envelope_size = 8;
4810 let bytes_len = max_ordinal as usize * envelope_size;
4811 #[allow(unused_variables)]
4812 let offset = encoder.out_of_line_offset(bytes_len);
4813 let mut _prev_end_offset: usize = 0;
4814 if 1 > max_ordinal {
4815 return Ok(());
4816 }
4817
4818 let cur_offset: usize = (1 - 1) * envelope_size;
4821
4822 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4824
4825 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_bluetooth__common::PeerId, D>(
4830 self.identifier.as_ref().map(<fidl_fuchsia_bluetooth__common::PeerId as fidl::encoding::ValueTypeMarker>::borrow),
4831 encoder, offset + cur_offset, depth
4832 )?;
4833
4834 _prev_end_offset = cur_offset + envelope_size;
4835 if 2 > max_ordinal {
4836 return Ok(());
4837 }
4838
4839 let cur_offset: usize = (2 - 1) * envelope_size;
4842
4843 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4845
4846 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_bluetooth__common::Address, D>(
4851 self.local_address.as_ref().map(<fidl_fuchsia_bluetooth__common::Address as fidl::encoding::ValueTypeMarker>::borrow),
4852 encoder, offset + cur_offset, depth
4853 )?;
4854
4855 _prev_end_offset = cur_offset + envelope_size;
4856 if 3 > max_ordinal {
4857 return Ok(());
4858 }
4859
4860 let cur_offset: usize = (3 - 1) * envelope_size;
4863
4864 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4866
4867 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<248>, D>(
4872 self.name.as_ref().map(
4873 <fidl::encoding::BoundedString<248> as fidl::encoding::ValueTypeMarker>::borrow,
4874 ),
4875 encoder,
4876 offset + cur_offset,
4877 depth,
4878 )?;
4879
4880 _prev_end_offset = cur_offset + envelope_size;
4881 if 6 > max_ordinal {
4882 return Ok(());
4883 }
4884
4885 let cur_offset: usize = (6 - 1) * envelope_size;
4888
4889 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4891
4892 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_bluetooth__common::Address, D>(
4897 self.address.as_ref().map(<fidl_fuchsia_bluetooth__common::Address as fidl::encoding::ValueTypeMarker>::borrow),
4898 encoder, offset + cur_offset, depth
4899 )?;
4900
4901 _prev_end_offset = cur_offset + envelope_size;
4902 if 7 > max_ordinal {
4903 return Ok(());
4904 }
4905
4906 let cur_offset: usize = (7 - 1) * envelope_size;
4909
4910 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4912
4913 fidl::encoding::encode_in_envelope_optional::<LeBondData, D>(
4918 self.le_bond.as_ref().map(<LeBondData as fidl::encoding::ValueTypeMarker>::borrow),
4919 encoder,
4920 offset + cur_offset,
4921 depth,
4922 )?;
4923
4924 _prev_end_offset = cur_offset + envelope_size;
4925 if 8 > max_ordinal {
4926 return Ok(());
4927 }
4928
4929 let cur_offset: usize = (8 - 1) * envelope_size;
4932
4933 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4935
4936 fidl::encoding::encode_in_envelope_optional::<BredrBondData, D>(
4941 self.bredr_bond
4942 .as_ref()
4943 .map(<BredrBondData as fidl::encoding::ValueTypeMarker>::borrow),
4944 encoder,
4945 offset + cur_offset,
4946 depth,
4947 )?;
4948
4949 _prev_end_offset = cur_offset + envelope_size;
4950 if 9 > max_ordinal {
4951 return Ok(());
4952 }
4953
4954 let cur_offset: usize = (9 - 1) * envelope_size;
4957
4958 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4960
4961 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_bluetooth__common::DeviceClass, D>(
4966 self.device_class.as_ref().map(<fidl_fuchsia_bluetooth__common::DeviceClass as fidl::encoding::ValueTypeMarker>::borrow),
4967 encoder, offset + cur_offset, depth
4968 )?;
4969
4970 _prev_end_offset = cur_offset + envelope_size;
4971
4972 Ok(())
4973 }
4974 }
4975
4976 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for BondingData {
4977 #[inline(always)]
4978 fn new_empty() -> Self {
4979 Self::default()
4980 }
4981
4982 unsafe fn decode(
4983 &mut self,
4984 decoder: &mut fidl::encoding::Decoder<'_, D>,
4985 offset: usize,
4986 mut depth: fidl::encoding::Depth,
4987 ) -> fidl::Result<()> {
4988 decoder.debug_check_bounds::<Self>(offset);
4989 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
4990 None => return Err(fidl::Error::NotNullable),
4991 Some(len) => len,
4992 };
4993 if len == 0 {
4995 return Ok(());
4996 };
4997 depth.increment()?;
4998 let envelope_size = 8;
4999 let bytes_len = len * envelope_size;
5000 let offset = decoder.out_of_line_offset(bytes_len)?;
5001 let mut _next_ordinal_to_read = 0;
5003 let mut next_offset = offset;
5004 let end_offset = offset + bytes_len;
5005 _next_ordinal_to_read += 1;
5006 if next_offset >= end_offset {
5007 return Ok(());
5008 }
5009
5010 while _next_ordinal_to_read < 1 {
5012 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5013 _next_ordinal_to_read += 1;
5014 next_offset += envelope_size;
5015 }
5016
5017 let next_out_of_line = decoder.next_out_of_line();
5018 let handles_before = decoder.remaining_handles();
5019 if let Some((inlined, num_bytes, num_handles)) =
5020 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5021 {
5022 let member_inline_size = <fidl_fuchsia_bluetooth__common::PeerId as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5023 if inlined != (member_inline_size <= 4) {
5024 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5025 }
5026 let inner_offset;
5027 let mut inner_depth = depth.clone();
5028 if inlined {
5029 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5030 inner_offset = next_offset;
5031 } else {
5032 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5033 inner_depth.increment()?;
5034 }
5035 let val_ref = self.identifier.get_or_insert_with(|| {
5036 fidl::new_empty!(fidl_fuchsia_bluetooth__common::PeerId, D)
5037 });
5038 fidl::decode!(
5039 fidl_fuchsia_bluetooth__common::PeerId,
5040 D,
5041 val_ref,
5042 decoder,
5043 inner_offset,
5044 inner_depth
5045 )?;
5046 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5047 {
5048 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5049 }
5050 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5051 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5052 }
5053 }
5054
5055 next_offset += envelope_size;
5056 _next_ordinal_to_read += 1;
5057 if next_offset >= end_offset {
5058 return Ok(());
5059 }
5060
5061 while _next_ordinal_to_read < 2 {
5063 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5064 _next_ordinal_to_read += 1;
5065 next_offset += envelope_size;
5066 }
5067
5068 let next_out_of_line = decoder.next_out_of_line();
5069 let handles_before = decoder.remaining_handles();
5070 if let Some((inlined, num_bytes, num_handles)) =
5071 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5072 {
5073 let member_inline_size = <fidl_fuchsia_bluetooth__common::Address as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5074 if inlined != (member_inline_size <= 4) {
5075 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5076 }
5077 let inner_offset;
5078 let mut inner_depth = depth.clone();
5079 if inlined {
5080 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5081 inner_offset = next_offset;
5082 } else {
5083 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5084 inner_depth.increment()?;
5085 }
5086 let val_ref = self.local_address.get_or_insert_with(|| {
5087 fidl::new_empty!(fidl_fuchsia_bluetooth__common::Address, D)
5088 });
5089 fidl::decode!(
5090 fidl_fuchsia_bluetooth__common::Address,
5091 D,
5092 val_ref,
5093 decoder,
5094 inner_offset,
5095 inner_depth
5096 )?;
5097 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5098 {
5099 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5100 }
5101 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5102 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5103 }
5104 }
5105
5106 next_offset += envelope_size;
5107 _next_ordinal_to_read += 1;
5108 if next_offset >= end_offset {
5109 return Ok(());
5110 }
5111
5112 while _next_ordinal_to_read < 3 {
5114 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5115 _next_ordinal_to_read += 1;
5116 next_offset += envelope_size;
5117 }
5118
5119 let next_out_of_line = decoder.next_out_of_line();
5120 let handles_before = decoder.remaining_handles();
5121 if let Some((inlined, num_bytes, num_handles)) =
5122 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5123 {
5124 let member_inline_size =
5125 <fidl::encoding::BoundedString<248> as fidl::encoding::TypeMarker>::inline_size(
5126 decoder.context,
5127 );
5128 if inlined != (member_inline_size <= 4) {
5129 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5130 }
5131 let inner_offset;
5132 let mut inner_depth = depth.clone();
5133 if inlined {
5134 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5135 inner_offset = next_offset;
5136 } else {
5137 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5138 inner_depth.increment()?;
5139 }
5140 let val_ref = self
5141 .name
5142 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<248>, D));
5143 fidl::decode!(
5144 fidl::encoding::BoundedString<248>,
5145 D,
5146 val_ref,
5147 decoder,
5148 inner_offset,
5149 inner_depth
5150 )?;
5151 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5152 {
5153 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5154 }
5155 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5156 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5157 }
5158 }
5159
5160 next_offset += envelope_size;
5161 _next_ordinal_to_read += 1;
5162 if next_offset >= end_offset {
5163 return Ok(());
5164 }
5165
5166 while _next_ordinal_to_read < 6 {
5168 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5169 _next_ordinal_to_read += 1;
5170 next_offset += envelope_size;
5171 }
5172
5173 let next_out_of_line = decoder.next_out_of_line();
5174 let handles_before = decoder.remaining_handles();
5175 if let Some((inlined, num_bytes, num_handles)) =
5176 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5177 {
5178 let member_inline_size = <fidl_fuchsia_bluetooth__common::Address as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5179 if inlined != (member_inline_size <= 4) {
5180 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5181 }
5182 let inner_offset;
5183 let mut inner_depth = depth.clone();
5184 if inlined {
5185 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5186 inner_offset = next_offset;
5187 } else {
5188 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5189 inner_depth.increment()?;
5190 }
5191 let val_ref = self.address.get_or_insert_with(|| {
5192 fidl::new_empty!(fidl_fuchsia_bluetooth__common::Address, D)
5193 });
5194 fidl::decode!(
5195 fidl_fuchsia_bluetooth__common::Address,
5196 D,
5197 val_ref,
5198 decoder,
5199 inner_offset,
5200 inner_depth
5201 )?;
5202 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5203 {
5204 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5205 }
5206 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5207 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5208 }
5209 }
5210
5211 next_offset += envelope_size;
5212 _next_ordinal_to_read += 1;
5213 if next_offset >= end_offset {
5214 return Ok(());
5215 }
5216
5217 while _next_ordinal_to_read < 7 {
5219 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5220 _next_ordinal_to_read += 1;
5221 next_offset += envelope_size;
5222 }
5223
5224 let next_out_of_line = decoder.next_out_of_line();
5225 let handles_before = decoder.remaining_handles();
5226 if let Some((inlined, num_bytes, num_handles)) =
5227 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5228 {
5229 let member_inline_size =
5230 <LeBondData as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5231 if inlined != (member_inline_size <= 4) {
5232 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5233 }
5234 let inner_offset;
5235 let mut inner_depth = depth.clone();
5236 if inlined {
5237 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5238 inner_offset = next_offset;
5239 } else {
5240 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5241 inner_depth.increment()?;
5242 }
5243 let val_ref = self.le_bond.get_or_insert_with(|| fidl::new_empty!(LeBondData, D));
5244 fidl::decode!(LeBondData, D, val_ref, decoder, inner_offset, inner_depth)?;
5245 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5246 {
5247 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5248 }
5249 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5250 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5251 }
5252 }
5253
5254 next_offset += envelope_size;
5255 _next_ordinal_to_read += 1;
5256 if next_offset >= end_offset {
5257 return Ok(());
5258 }
5259
5260 while _next_ordinal_to_read < 8 {
5262 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5263 _next_ordinal_to_read += 1;
5264 next_offset += envelope_size;
5265 }
5266
5267 let next_out_of_line = decoder.next_out_of_line();
5268 let handles_before = decoder.remaining_handles();
5269 if let Some((inlined, num_bytes, num_handles)) =
5270 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5271 {
5272 let member_inline_size =
5273 <BredrBondData as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5274 if inlined != (member_inline_size <= 4) {
5275 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5276 }
5277 let inner_offset;
5278 let mut inner_depth = depth.clone();
5279 if inlined {
5280 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5281 inner_offset = next_offset;
5282 } else {
5283 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5284 inner_depth.increment()?;
5285 }
5286 let val_ref =
5287 self.bredr_bond.get_or_insert_with(|| fidl::new_empty!(BredrBondData, D));
5288 fidl::decode!(BredrBondData, D, val_ref, decoder, inner_offset, inner_depth)?;
5289 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5290 {
5291 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5292 }
5293 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5294 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5295 }
5296 }
5297
5298 next_offset += envelope_size;
5299 _next_ordinal_to_read += 1;
5300 if next_offset >= end_offset {
5301 return Ok(());
5302 }
5303
5304 while _next_ordinal_to_read < 9 {
5306 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5307 _next_ordinal_to_read += 1;
5308 next_offset += envelope_size;
5309 }
5310
5311 let next_out_of_line = decoder.next_out_of_line();
5312 let handles_before = decoder.remaining_handles();
5313 if let Some((inlined, num_bytes, num_handles)) =
5314 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5315 {
5316 let member_inline_size = <fidl_fuchsia_bluetooth__common::DeviceClass as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5317 if inlined != (member_inline_size <= 4) {
5318 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5319 }
5320 let inner_offset;
5321 let mut inner_depth = depth.clone();
5322 if inlined {
5323 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5324 inner_offset = next_offset;
5325 } else {
5326 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5327 inner_depth.increment()?;
5328 }
5329 let val_ref = self.device_class.get_or_insert_with(|| {
5330 fidl::new_empty!(fidl_fuchsia_bluetooth__common::DeviceClass, D)
5331 });
5332 fidl::decode!(
5333 fidl_fuchsia_bluetooth__common::DeviceClass,
5334 D,
5335 val_ref,
5336 decoder,
5337 inner_offset,
5338 inner_depth
5339 )?;
5340 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5341 {
5342 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5343 }
5344 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5345 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5346 }
5347 }
5348
5349 next_offset += envelope_size;
5350
5351 while next_offset < end_offset {
5353 _next_ordinal_to_read += 1;
5354 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5355 next_offset += envelope_size;
5356 }
5357
5358 Ok(())
5359 }
5360 }
5361
5362 impl BredrBondData {
5363 #[inline(always)]
5364 fn max_ordinal_present(&self) -> u64 {
5365 if let Some(_) = self.link_key {
5366 return 3;
5367 }
5368 if let Some(_) = self.services {
5369 return 2;
5370 }
5371 if let Some(_) = self.role_preference {
5372 return 1;
5373 }
5374 0
5375 }
5376 }
5377
5378 impl fidl::encoding::ValueTypeMarker for BredrBondData {
5379 type Borrowed<'a> = &'a Self;
5380 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5381 value
5382 }
5383 }
5384
5385 unsafe impl fidl::encoding::TypeMarker for BredrBondData {
5386 type Owned = Self;
5387
5388 #[inline(always)]
5389 fn inline_align(_context: fidl::encoding::Context) -> usize {
5390 8
5391 }
5392
5393 #[inline(always)]
5394 fn inline_size(_context: fidl::encoding::Context) -> usize {
5395 16
5396 }
5397 }
5398
5399 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<BredrBondData, D>
5400 for &BredrBondData
5401 {
5402 unsafe fn encode(
5403 self,
5404 encoder: &mut fidl::encoding::Encoder<'_, D>,
5405 offset: usize,
5406 mut depth: fidl::encoding::Depth,
5407 ) -> fidl::Result<()> {
5408 encoder.debug_check_bounds::<BredrBondData>(offset);
5409 let max_ordinal: u64 = self.max_ordinal_present();
5411 encoder.write_num(max_ordinal, offset);
5412 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
5413 if max_ordinal == 0 {
5415 return Ok(());
5416 }
5417 depth.increment()?;
5418 let envelope_size = 8;
5419 let bytes_len = max_ordinal as usize * envelope_size;
5420 #[allow(unused_variables)]
5421 let offset = encoder.out_of_line_offset(bytes_len);
5422 let mut _prev_end_offset: usize = 0;
5423 if 1 > max_ordinal {
5424 return Ok(());
5425 }
5426
5427 let cur_offset: usize = (1 - 1) * envelope_size;
5430
5431 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5433
5434 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_bluetooth__common::ConnectionRole, D>(
5439 self.role_preference.as_ref().map(<fidl_fuchsia_bluetooth__common::ConnectionRole as fidl::encoding::ValueTypeMarker>::borrow),
5440 encoder, offset + cur_offset, depth
5441 )?;
5442
5443 _prev_end_offset = cur_offset + envelope_size;
5444 if 2 > max_ordinal {
5445 return Ok(());
5446 }
5447
5448 let cur_offset: usize = (2 - 1) * envelope_size;
5451
5452 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5454
5455 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<fidl_fuchsia_bluetooth__common::Uuid, 65535>, D>(
5460 self.services.as_ref().map(<fidl::encoding::Vector<fidl_fuchsia_bluetooth__common::Uuid, 65535> as fidl::encoding::ValueTypeMarker>::borrow),
5461 encoder, offset + cur_offset, depth
5462 )?;
5463
5464 _prev_end_offset = cur_offset + envelope_size;
5465 if 3 > max_ordinal {
5466 return Ok(());
5467 }
5468
5469 let cur_offset: usize = (3 - 1) * envelope_size;
5472
5473 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5475
5476 fidl::encoding::encode_in_envelope_optional::<PeerKey, D>(
5481 self.link_key.as_ref().map(<PeerKey as fidl::encoding::ValueTypeMarker>::borrow),
5482 encoder,
5483 offset + cur_offset,
5484 depth,
5485 )?;
5486
5487 _prev_end_offset = cur_offset + envelope_size;
5488
5489 Ok(())
5490 }
5491 }
5492
5493 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for BredrBondData {
5494 #[inline(always)]
5495 fn new_empty() -> Self {
5496 Self::default()
5497 }
5498
5499 unsafe fn decode(
5500 &mut self,
5501 decoder: &mut fidl::encoding::Decoder<'_, D>,
5502 offset: usize,
5503 mut depth: fidl::encoding::Depth,
5504 ) -> fidl::Result<()> {
5505 decoder.debug_check_bounds::<Self>(offset);
5506 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
5507 None => return Err(fidl::Error::NotNullable),
5508 Some(len) => len,
5509 };
5510 if len == 0 {
5512 return Ok(());
5513 };
5514 depth.increment()?;
5515 let envelope_size = 8;
5516 let bytes_len = len * envelope_size;
5517 let offset = decoder.out_of_line_offset(bytes_len)?;
5518 let mut _next_ordinal_to_read = 0;
5520 let mut next_offset = offset;
5521 let end_offset = offset + bytes_len;
5522 _next_ordinal_to_read += 1;
5523 if next_offset >= end_offset {
5524 return Ok(());
5525 }
5526
5527 while _next_ordinal_to_read < 1 {
5529 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5530 _next_ordinal_to_read += 1;
5531 next_offset += envelope_size;
5532 }
5533
5534 let next_out_of_line = decoder.next_out_of_line();
5535 let handles_before = decoder.remaining_handles();
5536 if let Some((inlined, num_bytes, num_handles)) =
5537 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5538 {
5539 let member_inline_size = <fidl_fuchsia_bluetooth__common::ConnectionRole as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5540 if inlined != (member_inline_size <= 4) {
5541 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5542 }
5543 let inner_offset;
5544 let mut inner_depth = depth.clone();
5545 if inlined {
5546 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5547 inner_offset = next_offset;
5548 } else {
5549 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5550 inner_depth.increment()?;
5551 }
5552 let val_ref = self.role_preference.get_or_insert_with(|| {
5553 fidl::new_empty!(fidl_fuchsia_bluetooth__common::ConnectionRole, D)
5554 });
5555 fidl::decode!(
5556 fidl_fuchsia_bluetooth__common::ConnectionRole,
5557 D,
5558 val_ref,
5559 decoder,
5560 inner_offset,
5561 inner_depth
5562 )?;
5563 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5564 {
5565 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5566 }
5567 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5568 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5569 }
5570 }
5571
5572 next_offset += envelope_size;
5573 _next_ordinal_to_read += 1;
5574 if next_offset >= end_offset {
5575 return Ok(());
5576 }
5577
5578 while _next_ordinal_to_read < 2 {
5580 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5581 _next_ordinal_to_read += 1;
5582 next_offset += envelope_size;
5583 }
5584
5585 let next_out_of_line = decoder.next_out_of_line();
5586 let handles_before = decoder.remaining_handles();
5587 if let Some((inlined, num_bytes, num_handles)) =
5588 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5589 {
5590 let member_inline_size = <fidl::encoding::Vector<
5591 fidl_fuchsia_bluetooth__common::Uuid,
5592 65535,
5593 > as fidl::encoding::TypeMarker>::inline_size(
5594 decoder.context
5595 );
5596 if inlined != (member_inline_size <= 4) {
5597 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5598 }
5599 let inner_offset;
5600 let mut inner_depth = depth.clone();
5601 if inlined {
5602 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5603 inner_offset = next_offset;
5604 } else {
5605 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5606 inner_depth.increment()?;
5607 }
5608 let val_ref =
5609 self.services.get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<fidl_fuchsia_bluetooth__common::Uuid, 65535>, D));
5610 fidl::decode!(fidl::encoding::Vector<fidl_fuchsia_bluetooth__common::Uuid, 65535>, D, val_ref, decoder, inner_offset, inner_depth)?;
5611 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5612 {
5613 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5614 }
5615 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5616 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5617 }
5618 }
5619
5620 next_offset += envelope_size;
5621 _next_ordinal_to_read += 1;
5622 if next_offset >= end_offset {
5623 return Ok(());
5624 }
5625
5626 while _next_ordinal_to_read < 3 {
5628 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5629 _next_ordinal_to_read += 1;
5630 next_offset += envelope_size;
5631 }
5632
5633 let next_out_of_line = decoder.next_out_of_line();
5634 let handles_before = decoder.remaining_handles();
5635 if let Some((inlined, num_bytes, num_handles)) =
5636 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5637 {
5638 let member_inline_size =
5639 <PeerKey as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5640 if inlined != (member_inline_size <= 4) {
5641 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5642 }
5643 let inner_offset;
5644 let mut inner_depth = depth.clone();
5645 if inlined {
5646 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5647 inner_offset = next_offset;
5648 } else {
5649 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5650 inner_depth.increment()?;
5651 }
5652 let val_ref = self.link_key.get_or_insert_with(|| fidl::new_empty!(PeerKey, D));
5653 fidl::decode!(PeerKey, D, val_ref, decoder, inner_offset, inner_depth)?;
5654 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5655 {
5656 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5657 }
5658 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5659 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5660 }
5661 }
5662
5663 next_offset += envelope_size;
5664
5665 while next_offset < end_offset {
5667 _next_ordinal_to_read += 1;
5668 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5669 next_offset += envelope_size;
5670 }
5671
5672 Ok(())
5673 }
5674 }
5675
5676 impl HostData {
5677 #[inline(always)]
5678 fn max_ordinal_present(&self) -> u64 {
5679 if let Some(_) = self.irk {
5680 return 1;
5681 }
5682 0
5683 }
5684 }
5685
5686 impl fidl::encoding::ValueTypeMarker for HostData {
5687 type Borrowed<'a> = &'a Self;
5688 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5689 value
5690 }
5691 }
5692
5693 unsafe impl fidl::encoding::TypeMarker for HostData {
5694 type Owned = Self;
5695
5696 #[inline(always)]
5697 fn inline_align(_context: fidl::encoding::Context) -> usize {
5698 8
5699 }
5700
5701 #[inline(always)]
5702 fn inline_size(_context: fidl::encoding::Context) -> usize {
5703 16
5704 }
5705 }
5706
5707 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<HostData, D> for &HostData {
5708 unsafe fn encode(
5709 self,
5710 encoder: &mut fidl::encoding::Encoder<'_, D>,
5711 offset: usize,
5712 mut depth: fidl::encoding::Depth,
5713 ) -> fidl::Result<()> {
5714 encoder.debug_check_bounds::<HostData>(offset);
5715 let max_ordinal: u64 = self.max_ordinal_present();
5717 encoder.write_num(max_ordinal, offset);
5718 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
5719 if max_ordinal == 0 {
5721 return Ok(());
5722 }
5723 depth.increment()?;
5724 let envelope_size = 8;
5725 let bytes_len = max_ordinal as usize * envelope_size;
5726 #[allow(unused_variables)]
5727 let offset = encoder.out_of_line_offset(bytes_len);
5728 let mut _prev_end_offset: usize = 0;
5729 if 1 > max_ordinal {
5730 return Ok(());
5731 }
5732
5733 let cur_offset: usize = (1 - 1) * envelope_size;
5736
5737 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5739
5740 fidl::encoding::encode_in_envelope_optional::<Key, D>(
5745 self.irk.as_ref().map(<Key as fidl::encoding::ValueTypeMarker>::borrow),
5746 encoder,
5747 offset + cur_offset,
5748 depth,
5749 )?;
5750
5751 _prev_end_offset = cur_offset + envelope_size;
5752
5753 Ok(())
5754 }
5755 }
5756
5757 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for HostData {
5758 #[inline(always)]
5759 fn new_empty() -> Self {
5760 Self::default()
5761 }
5762
5763 unsafe fn decode(
5764 &mut self,
5765 decoder: &mut fidl::encoding::Decoder<'_, D>,
5766 offset: usize,
5767 mut depth: fidl::encoding::Depth,
5768 ) -> fidl::Result<()> {
5769 decoder.debug_check_bounds::<Self>(offset);
5770 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
5771 None => return Err(fidl::Error::NotNullable),
5772 Some(len) => len,
5773 };
5774 if len == 0 {
5776 return Ok(());
5777 };
5778 depth.increment()?;
5779 let envelope_size = 8;
5780 let bytes_len = len * envelope_size;
5781 let offset = decoder.out_of_line_offset(bytes_len)?;
5782 let mut _next_ordinal_to_read = 0;
5784 let mut next_offset = offset;
5785 let end_offset = offset + bytes_len;
5786 _next_ordinal_to_read += 1;
5787 if next_offset >= end_offset {
5788 return Ok(());
5789 }
5790
5791 while _next_ordinal_to_read < 1 {
5793 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5794 _next_ordinal_to_read += 1;
5795 next_offset += envelope_size;
5796 }
5797
5798 let next_out_of_line = decoder.next_out_of_line();
5799 let handles_before = decoder.remaining_handles();
5800 if let Some((inlined, num_bytes, num_handles)) =
5801 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5802 {
5803 let member_inline_size =
5804 <Key as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5805 if inlined != (member_inline_size <= 4) {
5806 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5807 }
5808 let inner_offset;
5809 let mut inner_depth = depth.clone();
5810 if inlined {
5811 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5812 inner_offset = next_offset;
5813 } else {
5814 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5815 inner_depth.increment()?;
5816 }
5817 let val_ref = self.irk.get_or_insert_with(|| fidl::new_empty!(Key, D));
5818 fidl::decode!(Key, D, val_ref, decoder, inner_offset, inner_depth)?;
5819 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5820 {
5821 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5822 }
5823 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5824 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5825 }
5826 }
5827
5828 next_offset += envelope_size;
5829
5830 while next_offset < end_offset {
5832 _next_ordinal_to_read += 1;
5833 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5834 next_offset += envelope_size;
5835 }
5836
5837 Ok(())
5838 }
5839 }
5840
5841 impl HostInfo {
5842 #[inline(always)]
5843 fn max_ordinal_present(&self) -> u64 {
5844 if let Some(_) = self.addresses {
5845 return 8;
5846 }
5847 if let Some(_) = self.discovering {
5848 return 7;
5849 }
5850 if let Some(_) = self.discoverable {
5851 return 6;
5852 }
5853 if let Some(_) = self.local_name {
5854 return 5;
5855 }
5856 if let Some(_) = self.active {
5857 return 4;
5858 }
5859 if let Some(_) = self.technology {
5860 return 2;
5861 }
5862 if let Some(_) = self.id {
5863 return 1;
5864 }
5865 0
5866 }
5867 }
5868
5869 impl fidl::encoding::ValueTypeMarker for HostInfo {
5870 type Borrowed<'a> = &'a Self;
5871 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5872 value
5873 }
5874 }
5875
5876 unsafe impl fidl::encoding::TypeMarker for HostInfo {
5877 type Owned = Self;
5878
5879 #[inline(always)]
5880 fn inline_align(_context: fidl::encoding::Context) -> usize {
5881 8
5882 }
5883
5884 #[inline(always)]
5885 fn inline_size(_context: fidl::encoding::Context) -> usize {
5886 16
5887 }
5888 }
5889
5890 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<HostInfo, D> for &HostInfo {
5891 unsafe fn encode(
5892 self,
5893 encoder: &mut fidl::encoding::Encoder<'_, D>,
5894 offset: usize,
5895 mut depth: fidl::encoding::Depth,
5896 ) -> fidl::Result<()> {
5897 encoder.debug_check_bounds::<HostInfo>(offset);
5898 let max_ordinal: u64 = self.max_ordinal_present();
5900 encoder.write_num(max_ordinal, offset);
5901 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
5902 if max_ordinal == 0 {
5904 return Ok(());
5905 }
5906 depth.increment()?;
5907 let envelope_size = 8;
5908 let bytes_len = max_ordinal as usize * envelope_size;
5909 #[allow(unused_variables)]
5910 let offset = encoder.out_of_line_offset(bytes_len);
5911 let mut _prev_end_offset: usize = 0;
5912 if 1 > max_ordinal {
5913 return Ok(());
5914 }
5915
5916 let cur_offset: usize = (1 - 1) * envelope_size;
5919
5920 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5922
5923 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_bluetooth__common::HostId, D>(
5928 self.id.as_ref().map(<fidl_fuchsia_bluetooth__common::HostId as fidl::encoding::ValueTypeMarker>::borrow),
5929 encoder, offset + cur_offset, depth
5930 )?;
5931
5932 _prev_end_offset = cur_offset + envelope_size;
5933 if 2 > max_ordinal {
5934 return Ok(());
5935 }
5936
5937 let cur_offset: usize = (2 - 1) * envelope_size;
5940
5941 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5943
5944 fidl::encoding::encode_in_envelope_optional::<TechnologyType, D>(
5949 self.technology
5950 .as_ref()
5951 .map(<TechnologyType as fidl::encoding::ValueTypeMarker>::borrow),
5952 encoder,
5953 offset + cur_offset,
5954 depth,
5955 )?;
5956
5957 _prev_end_offset = cur_offset + envelope_size;
5958 if 4 > max_ordinal {
5959 return Ok(());
5960 }
5961
5962 let cur_offset: usize = (4 - 1) * envelope_size;
5965
5966 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5968
5969 fidl::encoding::encode_in_envelope_optional::<bool, D>(
5974 self.active.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
5975 encoder,
5976 offset + cur_offset,
5977 depth,
5978 )?;
5979
5980 _prev_end_offset = cur_offset + envelope_size;
5981 if 5 > max_ordinal {
5982 return Ok(());
5983 }
5984
5985 let cur_offset: usize = (5 - 1) * envelope_size;
5988
5989 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5991
5992 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<248>, D>(
5997 self.local_name.as_ref().map(
5998 <fidl::encoding::BoundedString<248> as fidl::encoding::ValueTypeMarker>::borrow,
5999 ),
6000 encoder,
6001 offset + cur_offset,
6002 depth,
6003 )?;
6004
6005 _prev_end_offset = cur_offset + envelope_size;
6006 if 6 > max_ordinal {
6007 return Ok(());
6008 }
6009
6010 let cur_offset: usize = (6 - 1) * envelope_size;
6013
6014 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6016
6017 fidl::encoding::encode_in_envelope_optional::<bool, D>(
6022 self.discoverable.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
6023 encoder,
6024 offset + cur_offset,
6025 depth,
6026 )?;
6027
6028 _prev_end_offset = cur_offset + envelope_size;
6029 if 7 > max_ordinal {
6030 return Ok(());
6031 }
6032
6033 let cur_offset: usize = (7 - 1) * envelope_size;
6036
6037 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6039
6040 fidl::encoding::encode_in_envelope_optional::<bool, D>(
6045 self.discovering.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
6046 encoder,
6047 offset + cur_offset,
6048 depth,
6049 )?;
6050
6051 _prev_end_offset = cur_offset + envelope_size;
6052 if 8 > max_ordinal {
6053 return Ok(());
6054 }
6055
6056 let cur_offset: usize = (8 - 1) * envelope_size;
6059
6060 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6062
6063 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<fidl_fuchsia_bluetooth__common::Address>, D>(
6068 self.addresses.as_ref().map(<fidl::encoding::UnboundedVector<fidl_fuchsia_bluetooth__common::Address> as fidl::encoding::ValueTypeMarker>::borrow),
6069 encoder, offset + cur_offset, depth
6070 )?;
6071
6072 _prev_end_offset = cur_offset + envelope_size;
6073
6074 Ok(())
6075 }
6076 }
6077
6078 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for HostInfo {
6079 #[inline(always)]
6080 fn new_empty() -> Self {
6081 Self::default()
6082 }
6083
6084 unsafe fn decode(
6085 &mut self,
6086 decoder: &mut fidl::encoding::Decoder<'_, D>,
6087 offset: usize,
6088 mut depth: fidl::encoding::Depth,
6089 ) -> fidl::Result<()> {
6090 decoder.debug_check_bounds::<Self>(offset);
6091 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
6092 None => return Err(fidl::Error::NotNullable),
6093 Some(len) => len,
6094 };
6095 if len == 0 {
6097 return Ok(());
6098 };
6099 depth.increment()?;
6100 let envelope_size = 8;
6101 let bytes_len = len * envelope_size;
6102 let offset = decoder.out_of_line_offset(bytes_len)?;
6103 let mut _next_ordinal_to_read = 0;
6105 let mut next_offset = offset;
6106 let end_offset = offset + bytes_len;
6107 _next_ordinal_to_read += 1;
6108 if next_offset >= end_offset {
6109 return Ok(());
6110 }
6111
6112 while _next_ordinal_to_read < 1 {
6114 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6115 _next_ordinal_to_read += 1;
6116 next_offset += envelope_size;
6117 }
6118
6119 let next_out_of_line = decoder.next_out_of_line();
6120 let handles_before = decoder.remaining_handles();
6121 if let Some((inlined, num_bytes, num_handles)) =
6122 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6123 {
6124 let member_inline_size = <fidl_fuchsia_bluetooth__common::HostId as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6125 if inlined != (member_inline_size <= 4) {
6126 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6127 }
6128 let inner_offset;
6129 let mut inner_depth = depth.clone();
6130 if inlined {
6131 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6132 inner_offset = next_offset;
6133 } else {
6134 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6135 inner_depth.increment()?;
6136 }
6137 let val_ref = self.id.get_or_insert_with(|| {
6138 fidl::new_empty!(fidl_fuchsia_bluetooth__common::HostId, D)
6139 });
6140 fidl::decode!(
6141 fidl_fuchsia_bluetooth__common::HostId,
6142 D,
6143 val_ref,
6144 decoder,
6145 inner_offset,
6146 inner_depth
6147 )?;
6148 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6149 {
6150 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6151 }
6152 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6153 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6154 }
6155 }
6156
6157 next_offset += envelope_size;
6158 _next_ordinal_to_read += 1;
6159 if next_offset >= end_offset {
6160 return Ok(());
6161 }
6162
6163 while _next_ordinal_to_read < 2 {
6165 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6166 _next_ordinal_to_read += 1;
6167 next_offset += envelope_size;
6168 }
6169
6170 let next_out_of_line = decoder.next_out_of_line();
6171 let handles_before = decoder.remaining_handles();
6172 if let Some((inlined, num_bytes, num_handles)) =
6173 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6174 {
6175 let member_inline_size =
6176 <TechnologyType as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6177 if inlined != (member_inline_size <= 4) {
6178 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6179 }
6180 let inner_offset;
6181 let mut inner_depth = depth.clone();
6182 if inlined {
6183 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6184 inner_offset = next_offset;
6185 } else {
6186 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6187 inner_depth.increment()?;
6188 }
6189 let val_ref =
6190 self.technology.get_or_insert_with(|| fidl::new_empty!(TechnologyType, D));
6191 fidl::decode!(TechnologyType, D, val_ref, decoder, inner_offset, inner_depth)?;
6192 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6193 {
6194 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6195 }
6196 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6197 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6198 }
6199 }
6200
6201 next_offset += envelope_size;
6202 _next_ordinal_to_read += 1;
6203 if next_offset >= end_offset {
6204 return Ok(());
6205 }
6206
6207 while _next_ordinal_to_read < 4 {
6209 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6210 _next_ordinal_to_read += 1;
6211 next_offset += envelope_size;
6212 }
6213
6214 let next_out_of_line = decoder.next_out_of_line();
6215 let handles_before = decoder.remaining_handles();
6216 if let Some((inlined, num_bytes, num_handles)) =
6217 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6218 {
6219 let member_inline_size =
6220 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6221 if inlined != (member_inline_size <= 4) {
6222 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6223 }
6224 let inner_offset;
6225 let mut inner_depth = depth.clone();
6226 if inlined {
6227 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6228 inner_offset = next_offset;
6229 } else {
6230 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6231 inner_depth.increment()?;
6232 }
6233 let val_ref = self.active.get_or_insert_with(|| fidl::new_empty!(bool, D));
6234 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
6235 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6236 {
6237 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6238 }
6239 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6240 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6241 }
6242 }
6243
6244 next_offset += envelope_size;
6245 _next_ordinal_to_read += 1;
6246 if next_offset >= end_offset {
6247 return Ok(());
6248 }
6249
6250 while _next_ordinal_to_read < 5 {
6252 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6253 _next_ordinal_to_read += 1;
6254 next_offset += envelope_size;
6255 }
6256
6257 let next_out_of_line = decoder.next_out_of_line();
6258 let handles_before = decoder.remaining_handles();
6259 if let Some((inlined, num_bytes, num_handles)) =
6260 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6261 {
6262 let member_inline_size =
6263 <fidl::encoding::BoundedString<248> as fidl::encoding::TypeMarker>::inline_size(
6264 decoder.context,
6265 );
6266 if inlined != (member_inline_size <= 4) {
6267 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6268 }
6269 let inner_offset;
6270 let mut inner_depth = depth.clone();
6271 if inlined {
6272 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6273 inner_offset = next_offset;
6274 } else {
6275 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6276 inner_depth.increment()?;
6277 }
6278 let val_ref = self
6279 .local_name
6280 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<248>, D));
6281 fidl::decode!(
6282 fidl::encoding::BoundedString<248>,
6283 D,
6284 val_ref,
6285 decoder,
6286 inner_offset,
6287 inner_depth
6288 )?;
6289 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6290 {
6291 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6292 }
6293 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6294 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6295 }
6296 }
6297
6298 next_offset += envelope_size;
6299 _next_ordinal_to_read += 1;
6300 if next_offset >= end_offset {
6301 return Ok(());
6302 }
6303
6304 while _next_ordinal_to_read < 6 {
6306 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6307 _next_ordinal_to_read += 1;
6308 next_offset += envelope_size;
6309 }
6310
6311 let next_out_of_line = decoder.next_out_of_line();
6312 let handles_before = decoder.remaining_handles();
6313 if let Some((inlined, num_bytes, num_handles)) =
6314 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6315 {
6316 let member_inline_size =
6317 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6318 if inlined != (member_inline_size <= 4) {
6319 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6320 }
6321 let inner_offset;
6322 let mut inner_depth = depth.clone();
6323 if inlined {
6324 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6325 inner_offset = next_offset;
6326 } else {
6327 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6328 inner_depth.increment()?;
6329 }
6330 let val_ref = self.discoverable.get_or_insert_with(|| fidl::new_empty!(bool, D));
6331 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
6332 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6333 {
6334 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6335 }
6336 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6337 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6338 }
6339 }
6340
6341 next_offset += envelope_size;
6342 _next_ordinal_to_read += 1;
6343 if next_offset >= end_offset {
6344 return Ok(());
6345 }
6346
6347 while _next_ordinal_to_read < 7 {
6349 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6350 _next_ordinal_to_read += 1;
6351 next_offset += envelope_size;
6352 }
6353
6354 let next_out_of_line = decoder.next_out_of_line();
6355 let handles_before = decoder.remaining_handles();
6356 if let Some((inlined, num_bytes, num_handles)) =
6357 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6358 {
6359 let member_inline_size =
6360 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6361 if inlined != (member_inline_size <= 4) {
6362 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6363 }
6364 let inner_offset;
6365 let mut inner_depth = depth.clone();
6366 if inlined {
6367 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6368 inner_offset = next_offset;
6369 } else {
6370 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6371 inner_depth.increment()?;
6372 }
6373 let val_ref = self.discovering.get_or_insert_with(|| fidl::new_empty!(bool, D));
6374 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
6375 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6376 {
6377 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6378 }
6379 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6380 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6381 }
6382 }
6383
6384 next_offset += envelope_size;
6385 _next_ordinal_to_read += 1;
6386 if next_offset >= end_offset {
6387 return Ok(());
6388 }
6389
6390 while _next_ordinal_to_read < 8 {
6392 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6393 _next_ordinal_to_read += 1;
6394 next_offset += envelope_size;
6395 }
6396
6397 let next_out_of_line = decoder.next_out_of_line();
6398 let handles_before = decoder.remaining_handles();
6399 if let Some((inlined, num_bytes, num_handles)) =
6400 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6401 {
6402 let member_inline_size = <fidl::encoding::UnboundedVector<
6403 fidl_fuchsia_bluetooth__common::Address,
6404 > as fidl::encoding::TypeMarker>::inline_size(
6405 decoder.context
6406 );
6407 if inlined != (member_inline_size <= 4) {
6408 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6409 }
6410 let inner_offset;
6411 let mut inner_depth = depth.clone();
6412 if inlined {
6413 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6414 inner_offset = next_offset;
6415 } else {
6416 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6417 inner_depth.increment()?;
6418 }
6419 let val_ref = self.addresses.get_or_insert_with(|| {
6420 fidl::new_empty!(
6421 fidl::encoding::UnboundedVector<fidl_fuchsia_bluetooth__common::Address>,
6422 D
6423 )
6424 });
6425 fidl::decode!(
6426 fidl::encoding::UnboundedVector<fidl_fuchsia_bluetooth__common::Address>,
6427 D,
6428 val_ref,
6429 decoder,
6430 inner_offset,
6431 inner_depth
6432 )?;
6433 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6434 {
6435 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6436 }
6437 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6438 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6439 }
6440 }
6441
6442 next_offset += envelope_size;
6443
6444 while next_offset < end_offset {
6446 _next_ordinal_to_read += 1;
6447 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6448 next_offset += envelope_size;
6449 }
6450
6451 Ok(())
6452 }
6453 }
6454
6455 impl Identity {
6456 #[inline(always)]
6457 fn max_ordinal_present(&self) -> u64 {
6458 if let Some(_) = self.bonds {
6459 return 2;
6460 }
6461 if let Some(_) = self.host {
6462 return 1;
6463 }
6464 0
6465 }
6466 }
6467
6468 impl fidl::encoding::ValueTypeMarker for Identity {
6469 type Borrowed<'a> = &'a Self;
6470 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6471 value
6472 }
6473 }
6474
6475 unsafe impl fidl::encoding::TypeMarker for Identity {
6476 type Owned = Self;
6477
6478 #[inline(always)]
6479 fn inline_align(_context: fidl::encoding::Context) -> usize {
6480 8
6481 }
6482
6483 #[inline(always)]
6484 fn inline_size(_context: fidl::encoding::Context) -> usize {
6485 16
6486 }
6487 }
6488
6489 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Identity, D> for &Identity {
6490 unsafe fn encode(
6491 self,
6492 encoder: &mut fidl::encoding::Encoder<'_, D>,
6493 offset: usize,
6494 mut depth: fidl::encoding::Depth,
6495 ) -> fidl::Result<()> {
6496 encoder.debug_check_bounds::<Identity>(offset);
6497 let max_ordinal: u64 = self.max_ordinal_present();
6499 encoder.write_num(max_ordinal, offset);
6500 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
6501 if max_ordinal == 0 {
6503 return Ok(());
6504 }
6505 depth.increment()?;
6506 let envelope_size = 8;
6507 let bytes_len = max_ordinal as usize * envelope_size;
6508 #[allow(unused_variables)]
6509 let offset = encoder.out_of_line_offset(bytes_len);
6510 let mut _prev_end_offset: usize = 0;
6511 if 1 > max_ordinal {
6512 return Ok(());
6513 }
6514
6515 let cur_offset: usize = (1 - 1) * envelope_size;
6518
6519 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6521
6522 fidl::encoding::encode_in_envelope_optional::<HostData, D>(
6527 self.host.as_ref().map(<HostData as fidl::encoding::ValueTypeMarker>::borrow),
6528 encoder,
6529 offset + cur_offset,
6530 depth,
6531 )?;
6532
6533 _prev_end_offset = cur_offset + envelope_size;
6534 if 2 > max_ordinal {
6535 return Ok(());
6536 }
6537
6538 let cur_offset: usize = (2 - 1) * envelope_size;
6541
6542 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6544
6545 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<BondingData>, D>(
6550 self.bonds.as_ref().map(<fidl::encoding::UnboundedVector<BondingData> as fidl::encoding::ValueTypeMarker>::borrow),
6551 encoder, offset + cur_offset, depth
6552 )?;
6553
6554 _prev_end_offset = cur_offset + envelope_size;
6555
6556 Ok(())
6557 }
6558 }
6559
6560 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Identity {
6561 #[inline(always)]
6562 fn new_empty() -> Self {
6563 Self::default()
6564 }
6565
6566 unsafe fn decode(
6567 &mut self,
6568 decoder: &mut fidl::encoding::Decoder<'_, D>,
6569 offset: usize,
6570 mut depth: fidl::encoding::Depth,
6571 ) -> fidl::Result<()> {
6572 decoder.debug_check_bounds::<Self>(offset);
6573 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
6574 None => return Err(fidl::Error::NotNullable),
6575 Some(len) => len,
6576 };
6577 if len == 0 {
6579 return Ok(());
6580 };
6581 depth.increment()?;
6582 let envelope_size = 8;
6583 let bytes_len = len * envelope_size;
6584 let offset = decoder.out_of_line_offset(bytes_len)?;
6585 let mut _next_ordinal_to_read = 0;
6587 let mut next_offset = offset;
6588 let end_offset = offset + bytes_len;
6589 _next_ordinal_to_read += 1;
6590 if next_offset >= end_offset {
6591 return Ok(());
6592 }
6593
6594 while _next_ordinal_to_read < 1 {
6596 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6597 _next_ordinal_to_read += 1;
6598 next_offset += envelope_size;
6599 }
6600
6601 let next_out_of_line = decoder.next_out_of_line();
6602 let handles_before = decoder.remaining_handles();
6603 if let Some((inlined, num_bytes, num_handles)) =
6604 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6605 {
6606 let member_inline_size =
6607 <HostData as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6608 if inlined != (member_inline_size <= 4) {
6609 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6610 }
6611 let inner_offset;
6612 let mut inner_depth = depth.clone();
6613 if inlined {
6614 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6615 inner_offset = next_offset;
6616 } else {
6617 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6618 inner_depth.increment()?;
6619 }
6620 let val_ref = self.host.get_or_insert_with(|| fidl::new_empty!(HostData, D));
6621 fidl::decode!(HostData, D, val_ref, decoder, inner_offset, inner_depth)?;
6622 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6623 {
6624 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6625 }
6626 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6627 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6628 }
6629 }
6630
6631 next_offset += envelope_size;
6632 _next_ordinal_to_read += 1;
6633 if next_offset >= end_offset {
6634 return Ok(());
6635 }
6636
6637 while _next_ordinal_to_read < 2 {
6639 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6640 _next_ordinal_to_read += 1;
6641 next_offset += envelope_size;
6642 }
6643
6644 let next_out_of_line = decoder.next_out_of_line();
6645 let handles_before = decoder.remaining_handles();
6646 if let Some((inlined, num_bytes, num_handles)) =
6647 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6648 {
6649 let member_inline_size = <fidl::encoding::UnboundedVector<BondingData> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6650 if inlined != (member_inline_size <= 4) {
6651 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6652 }
6653 let inner_offset;
6654 let mut inner_depth = depth.clone();
6655 if inlined {
6656 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6657 inner_offset = next_offset;
6658 } else {
6659 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6660 inner_depth.increment()?;
6661 }
6662 let val_ref = self.bonds.get_or_insert_with(|| {
6663 fidl::new_empty!(fidl::encoding::UnboundedVector<BondingData>, D)
6664 });
6665 fidl::decode!(
6666 fidl::encoding::UnboundedVector<BondingData>,
6667 D,
6668 val_ref,
6669 decoder,
6670 inner_offset,
6671 inner_depth
6672 )?;
6673 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6674 {
6675 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6676 }
6677 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6678 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6679 }
6680 }
6681
6682 next_offset += envelope_size;
6683
6684 while next_offset < end_offset {
6686 _next_ordinal_to_read += 1;
6687 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6688 next_offset += envelope_size;
6689 }
6690
6691 Ok(())
6692 }
6693 }
6694
6695 impl LeBondData {
6696 #[inline(always)]
6697 fn max_ordinal_present(&self) -> u64 {
6698 if let Some(_) = self.local_ltk {
6699 return 6;
6700 }
6701 if let Some(_) = self.peer_ltk {
6702 return 5;
6703 }
6704 if let Some(_) = self.csrk {
6705 return 4;
6706 }
6707 if let Some(_) = self.irk {
6708 return 3;
6709 }
6710 if let Some(_) = self.services {
6711 return 2;
6712 }
6713 if let Some(_) = self.connection_parameters {
6714 return 1;
6715 }
6716 0
6717 }
6718 }
6719
6720 impl fidl::encoding::ValueTypeMarker for LeBondData {
6721 type Borrowed<'a> = &'a Self;
6722 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6723 value
6724 }
6725 }
6726
6727 unsafe impl fidl::encoding::TypeMarker for LeBondData {
6728 type Owned = Self;
6729
6730 #[inline(always)]
6731 fn inline_align(_context: fidl::encoding::Context) -> usize {
6732 8
6733 }
6734
6735 #[inline(always)]
6736 fn inline_size(_context: fidl::encoding::Context) -> usize {
6737 16
6738 }
6739 }
6740
6741 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<LeBondData, D>
6742 for &LeBondData
6743 {
6744 unsafe fn encode(
6745 self,
6746 encoder: &mut fidl::encoding::Encoder<'_, D>,
6747 offset: usize,
6748 mut depth: fidl::encoding::Depth,
6749 ) -> fidl::Result<()> {
6750 encoder.debug_check_bounds::<LeBondData>(offset);
6751 let max_ordinal: u64 = self.max_ordinal_present();
6753 encoder.write_num(max_ordinal, offset);
6754 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
6755 if max_ordinal == 0 {
6757 return Ok(());
6758 }
6759 depth.increment()?;
6760 let envelope_size = 8;
6761 let bytes_len = max_ordinal as usize * envelope_size;
6762 #[allow(unused_variables)]
6763 let offset = encoder.out_of_line_offset(bytes_len);
6764 let mut _prev_end_offset: usize = 0;
6765 if 1 > max_ordinal {
6766 return Ok(());
6767 }
6768
6769 let cur_offset: usize = (1 - 1) * envelope_size;
6772
6773 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6775
6776 fidl::encoding::encode_in_envelope_optional::<LeConnectionParameters, D>(
6781 self.connection_parameters
6782 .as_ref()
6783 .map(<LeConnectionParameters as fidl::encoding::ValueTypeMarker>::borrow),
6784 encoder,
6785 offset + cur_offset,
6786 depth,
6787 )?;
6788
6789 _prev_end_offset = cur_offset + envelope_size;
6790 if 2 > max_ordinal {
6791 return Ok(());
6792 }
6793
6794 let cur_offset: usize = (2 - 1) * envelope_size;
6797
6798 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6800
6801 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<fidl_fuchsia_bluetooth__common::Uuid, 65535>, D>(
6806 self.services.as_ref().map(<fidl::encoding::Vector<fidl_fuchsia_bluetooth__common::Uuid, 65535> as fidl::encoding::ValueTypeMarker>::borrow),
6807 encoder, offset + cur_offset, depth
6808 )?;
6809
6810 _prev_end_offset = cur_offset + envelope_size;
6811 if 3 > max_ordinal {
6812 return Ok(());
6813 }
6814
6815 let cur_offset: usize = (3 - 1) * envelope_size;
6818
6819 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6821
6822 fidl::encoding::encode_in_envelope_optional::<PeerKey, D>(
6827 self.irk.as_ref().map(<PeerKey as fidl::encoding::ValueTypeMarker>::borrow),
6828 encoder,
6829 offset + cur_offset,
6830 depth,
6831 )?;
6832
6833 _prev_end_offset = cur_offset + envelope_size;
6834 if 4 > max_ordinal {
6835 return Ok(());
6836 }
6837
6838 let cur_offset: usize = (4 - 1) * envelope_size;
6841
6842 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6844
6845 fidl::encoding::encode_in_envelope_optional::<PeerKey, D>(
6850 self.csrk.as_ref().map(<PeerKey as fidl::encoding::ValueTypeMarker>::borrow),
6851 encoder,
6852 offset + cur_offset,
6853 depth,
6854 )?;
6855
6856 _prev_end_offset = cur_offset + envelope_size;
6857 if 5 > max_ordinal {
6858 return Ok(());
6859 }
6860
6861 let cur_offset: usize = (5 - 1) * envelope_size;
6864
6865 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6867
6868 fidl::encoding::encode_in_envelope_optional::<Ltk, D>(
6873 self.peer_ltk.as_ref().map(<Ltk as fidl::encoding::ValueTypeMarker>::borrow),
6874 encoder,
6875 offset + cur_offset,
6876 depth,
6877 )?;
6878
6879 _prev_end_offset = cur_offset + envelope_size;
6880 if 6 > max_ordinal {
6881 return Ok(());
6882 }
6883
6884 let cur_offset: usize = (6 - 1) * envelope_size;
6887
6888 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6890
6891 fidl::encoding::encode_in_envelope_optional::<Ltk, D>(
6896 self.local_ltk.as_ref().map(<Ltk as fidl::encoding::ValueTypeMarker>::borrow),
6897 encoder,
6898 offset + cur_offset,
6899 depth,
6900 )?;
6901
6902 _prev_end_offset = cur_offset + envelope_size;
6903
6904 Ok(())
6905 }
6906 }
6907
6908 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for LeBondData {
6909 #[inline(always)]
6910 fn new_empty() -> Self {
6911 Self::default()
6912 }
6913
6914 unsafe fn decode(
6915 &mut self,
6916 decoder: &mut fidl::encoding::Decoder<'_, D>,
6917 offset: usize,
6918 mut depth: fidl::encoding::Depth,
6919 ) -> fidl::Result<()> {
6920 decoder.debug_check_bounds::<Self>(offset);
6921 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
6922 None => return Err(fidl::Error::NotNullable),
6923 Some(len) => len,
6924 };
6925 if len == 0 {
6927 return Ok(());
6928 };
6929 depth.increment()?;
6930 let envelope_size = 8;
6931 let bytes_len = len * envelope_size;
6932 let offset = decoder.out_of_line_offset(bytes_len)?;
6933 let mut _next_ordinal_to_read = 0;
6935 let mut next_offset = offset;
6936 let end_offset = offset + bytes_len;
6937 _next_ordinal_to_read += 1;
6938 if next_offset >= end_offset {
6939 return Ok(());
6940 }
6941
6942 while _next_ordinal_to_read < 1 {
6944 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6945 _next_ordinal_to_read += 1;
6946 next_offset += envelope_size;
6947 }
6948
6949 let next_out_of_line = decoder.next_out_of_line();
6950 let handles_before = decoder.remaining_handles();
6951 if let Some((inlined, num_bytes, num_handles)) =
6952 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6953 {
6954 let member_inline_size =
6955 <LeConnectionParameters as fidl::encoding::TypeMarker>::inline_size(
6956 decoder.context,
6957 );
6958 if inlined != (member_inline_size <= 4) {
6959 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6960 }
6961 let inner_offset;
6962 let mut inner_depth = depth.clone();
6963 if inlined {
6964 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6965 inner_offset = next_offset;
6966 } else {
6967 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6968 inner_depth.increment()?;
6969 }
6970 let val_ref = self
6971 .connection_parameters
6972 .get_or_insert_with(|| fidl::new_empty!(LeConnectionParameters, D));
6973 fidl::decode!(
6974 LeConnectionParameters,
6975 D,
6976 val_ref,
6977 decoder,
6978 inner_offset,
6979 inner_depth
6980 )?;
6981 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6982 {
6983 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6984 }
6985 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6986 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6987 }
6988 }
6989
6990 next_offset += envelope_size;
6991 _next_ordinal_to_read += 1;
6992 if next_offset >= end_offset {
6993 return Ok(());
6994 }
6995
6996 while _next_ordinal_to_read < 2 {
6998 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6999 _next_ordinal_to_read += 1;
7000 next_offset += envelope_size;
7001 }
7002
7003 let next_out_of_line = decoder.next_out_of_line();
7004 let handles_before = decoder.remaining_handles();
7005 if let Some((inlined, num_bytes, num_handles)) =
7006 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7007 {
7008 let member_inline_size = <fidl::encoding::Vector<
7009 fidl_fuchsia_bluetooth__common::Uuid,
7010 65535,
7011 > as fidl::encoding::TypeMarker>::inline_size(
7012 decoder.context
7013 );
7014 if inlined != (member_inline_size <= 4) {
7015 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7016 }
7017 let inner_offset;
7018 let mut inner_depth = depth.clone();
7019 if inlined {
7020 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7021 inner_offset = next_offset;
7022 } else {
7023 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7024 inner_depth.increment()?;
7025 }
7026 let val_ref =
7027 self.services.get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<fidl_fuchsia_bluetooth__common::Uuid, 65535>, D));
7028 fidl::decode!(fidl::encoding::Vector<fidl_fuchsia_bluetooth__common::Uuid, 65535>, D, val_ref, decoder, inner_offset, inner_depth)?;
7029 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7030 {
7031 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7032 }
7033 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7034 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7035 }
7036 }
7037
7038 next_offset += envelope_size;
7039 _next_ordinal_to_read += 1;
7040 if next_offset >= end_offset {
7041 return Ok(());
7042 }
7043
7044 while _next_ordinal_to_read < 3 {
7046 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7047 _next_ordinal_to_read += 1;
7048 next_offset += envelope_size;
7049 }
7050
7051 let next_out_of_line = decoder.next_out_of_line();
7052 let handles_before = decoder.remaining_handles();
7053 if let Some((inlined, num_bytes, num_handles)) =
7054 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7055 {
7056 let member_inline_size =
7057 <PeerKey as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7058 if inlined != (member_inline_size <= 4) {
7059 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7060 }
7061 let inner_offset;
7062 let mut inner_depth = depth.clone();
7063 if inlined {
7064 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7065 inner_offset = next_offset;
7066 } else {
7067 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7068 inner_depth.increment()?;
7069 }
7070 let val_ref = self.irk.get_or_insert_with(|| fidl::new_empty!(PeerKey, D));
7071 fidl::decode!(PeerKey, D, val_ref, decoder, inner_offset, inner_depth)?;
7072 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7073 {
7074 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7075 }
7076 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7077 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7078 }
7079 }
7080
7081 next_offset += envelope_size;
7082 _next_ordinal_to_read += 1;
7083 if next_offset >= end_offset {
7084 return Ok(());
7085 }
7086
7087 while _next_ordinal_to_read < 4 {
7089 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7090 _next_ordinal_to_read += 1;
7091 next_offset += envelope_size;
7092 }
7093
7094 let next_out_of_line = decoder.next_out_of_line();
7095 let handles_before = decoder.remaining_handles();
7096 if let Some((inlined, num_bytes, num_handles)) =
7097 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7098 {
7099 let member_inline_size =
7100 <PeerKey as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7101 if inlined != (member_inline_size <= 4) {
7102 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7103 }
7104 let inner_offset;
7105 let mut inner_depth = depth.clone();
7106 if inlined {
7107 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7108 inner_offset = next_offset;
7109 } else {
7110 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7111 inner_depth.increment()?;
7112 }
7113 let val_ref = self.csrk.get_or_insert_with(|| fidl::new_empty!(PeerKey, D));
7114 fidl::decode!(PeerKey, D, val_ref, decoder, inner_offset, inner_depth)?;
7115 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7116 {
7117 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7118 }
7119 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7120 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7121 }
7122 }
7123
7124 next_offset += envelope_size;
7125 _next_ordinal_to_read += 1;
7126 if next_offset >= end_offset {
7127 return Ok(());
7128 }
7129
7130 while _next_ordinal_to_read < 5 {
7132 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7133 _next_ordinal_to_read += 1;
7134 next_offset += envelope_size;
7135 }
7136
7137 let next_out_of_line = decoder.next_out_of_line();
7138 let handles_before = decoder.remaining_handles();
7139 if let Some((inlined, num_bytes, num_handles)) =
7140 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7141 {
7142 let member_inline_size =
7143 <Ltk as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7144 if inlined != (member_inline_size <= 4) {
7145 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7146 }
7147 let inner_offset;
7148 let mut inner_depth = depth.clone();
7149 if inlined {
7150 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7151 inner_offset = next_offset;
7152 } else {
7153 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7154 inner_depth.increment()?;
7155 }
7156 let val_ref = self.peer_ltk.get_or_insert_with(|| fidl::new_empty!(Ltk, D));
7157 fidl::decode!(Ltk, D, val_ref, decoder, inner_offset, inner_depth)?;
7158 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7159 {
7160 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7161 }
7162 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7163 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7164 }
7165 }
7166
7167 next_offset += envelope_size;
7168 _next_ordinal_to_read += 1;
7169 if next_offset >= end_offset {
7170 return Ok(());
7171 }
7172
7173 while _next_ordinal_to_read < 6 {
7175 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7176 _next_ordinal_to_read += 1;
7177 next_offset += envelope_size;
7178 }
7179
7180 let next_out_of_line = decoder.next_out_of_line();
7181 let handles_before = decoder.remaining_handles();
7182 if let Some((inlined, num_bytes, num_handles)) =
7183 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7184 {
7185 let member_inline_size =
7186 <Ltk as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7187 if inlined != (member_inline_size <= 4) {
7188 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7189 }
7190 let inner_offset;
7191 let mut inner_depth = depth.clone();
7192 if inlined {
7193 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7194 inner_offset = next_offset;
7195 } else {
7196 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7197 inner_depth.increment()?;
7198 }
7199 let val_ref = self.local_ltk.get_or_insert_with(|| fidl::new_empty!(Ltk, D));
7200 fidl::decode!(Ltk, D, val_ref, decoder, inner_offset, inner_depth)?;
7201 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7202 {
7203 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7204 }
7205 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7206 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7207 }
7208 }
7209
7210 next_offset += envelope_size;
7211
7212 while next_offset < end_offset {
7214 _next_ordinal_to_read += 1;
7215 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7216 next_offset += envelope_size;
7217 }
7218
7219 Ok(())
7220 }
7221 }
7222
7223 impl PairingOptions {
7224 #[inline(always)]
7225 fn max_ordinal_present(&self) -> u64 {
7226 if let Some(_) = self.transport {
7227 return 3;
7228 }
7229 if let Some(_) = self.bondable_mode {
7230 return 2;
7231 }
7232 if let Some(_) = self.le_security_level {
7233 return 1;
7234 }
7235 0
7236 }
7237 }
7238
7239 impl fidl::encoding::ValueTypeMarker for PairingOptions {
7240 type Borrowed<'a> = &'a Self;
7241 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7242 value
7243 }
7244 }
7245
7246 unsafe impl fidl::encoding::TypeMarker for PairingOptions {
7247 type Owned = Self;
7248
7249 #[inline(always)]
7250 fn inline_align(_context: fidl::encoding::Context) -> usize {
7251 8
7252 }
7253
7254 #[inline(always)]
7255 fn inline_size(_context: fidl::encoding::Context) -> usize {
7256 16
7257 }
7258 }
7259
7260 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<PairingOptions, D>
7261 for &PairingOptions
7262 {
7263 unsafe fn encode(
7264 self,
7265 encoder: &mut fidl::encoding::Encoder<'_, D>,
7266 offset: usize,
7267 mut depth: fidl::encoding::Depth,
7268 ) -> fidl::Result<()> {
7269 encoder.debug_check_bounds::<PairingOptions>(offset);
7270 let max_ordinal: u64 = self.max_ordinal_present();
7272 encoder.write_num(max_ordinal, offset);
7273 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
7274 if max_ordinal == 0 {
7276 return Ok(());
7277 }
7278 depth.increment()?;
7279 let envelope_size = 8;
7280 let bytes_len = max_ordinal as usize * envelope_size;
7281 #[allow(unused_variables)]
7282 let offset = encoder.out_of_line_offset(bytes_len);
7283 let mut _prev_end_offset: usize = 0;
7284 if 1 > max_ordinal {
7285 return Ok(());
7286 }
7287
7288 let cur_offset: usize = (1 - 1) * envelope_size;
7291
7292 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7294
7295 fidl::encoding::encode_in_envelope_optional::<PairingSecurityLevel, D>(
7300 self.le_security_level
7301 .as_ref()
7302 .map(<PairingSecurityLevel as fidl::encoding::ValueTypeMarker>::borrow),
7303 encoder,
7304 offset + cur_offset,
7305 depth,
7306 )?;
7307
7308 _prev_end_offset = cur_offset + envelope_size;
7309 if 2 > max_ordinal {
7310 return Ok(());
7311 }
7312
7313 let cur_offset: usize = (2 - 1) * envelope_size;
7316
7317 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7319
7320 fidl::encoding::encode_in_envelope_optional::<BondableMode, D>(
7325 self.bondable_mode
7326 .as_ref()
7327 .map(<BondableMode as fidl::encoding::ValueTypeMarker>::borrow),
7328 encoder,
7329 offset + cur_offset,
7330 depth,
7331 )?;
7332
7333 _prev_end_offset = cur_offset + envelope_size;
7334 if 3 > max_ordinal {
7335 return Ok(());
7336 }
7337
7338 let cur_offset: usize = (3 - 1) * envelope_size;
7341
7342 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7344
7345 fidl::encoding::encode_in_envelope_optional::<TechnologyType, D>(
7350 self.transport
7351 .as_ref()
7352 .map(<TechnologyType as fidl::encoding::ValueTypeMarker>::borrow),
7353 encoder,
7354 offset + cur_offset,
7355 depth,
7356 )?;
7357
7358 _prev_end_offset = cur_offset + envelope_size;
7359
7360 Ok(())
7361 }
7362 }
7363
7364 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for PairingOptions {
7365 #[inline(always)]
7366 fn new_empty() -> Self {
7367 Self::default()
7368 }
7369
7370 unsafe fn decode(
7371 &mut self,
7372 decoder: &mut fidl::encoding::Decoder<'_, D>,
7373 offset: usize,
7374 mut depth: fidl::encoding::Depth,
7375 ) -> fidl::Result<()> {
7376 decoder.debug_check_bounds::<Self>(offset);
7377 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
7378 None => return Err(fidl::Error::NotNullable),
7379 Some(len) => len,
7380 };
7381 if len == 0 {
7383 return Ok(());
7384 };
7385 depth.increment()?;
7386 let envelope_size = 8;
7387 let bytes_len = len * envelope_size;
7388 let offset = decoder.out_of_line_offset(bytes_len)?;
7389 let mut _next_ordinal_to_read = 0;
7391 let mut next_offset = offset;
7392 let end_offset = offset + bytes_len;
7393 _next_ordinal_to_read += 1;
7394 if next_offset >= end_offset {
7395 return Ok(());
7396 }
7397
7398 while _next_ordinal_to_read < 1 {
7400 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7401 _next_ordinal_to_read += 1;
7402 next_offset += envelope_size;
7403 }
7404
7405 let next_out_of_line = decoder.next_out_of_line();
7406 let handles_before = decoder.remaining_handles();
7407 if let Some((inlined, num_bytes, num_handles)) =
7408 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7409 {
7410 let member_inline_size =
7411 <PairingSecurityLevel as fidl::encoding::TypeMarker>::inline_size(
7412 decoder.context,
7413 );
7414 if inlined != (member_inline_size <= 4) {
7415 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7416 }
7417 let inner_offset;
7418 let mut inner_depth = depth.clone();
7419 if inlined {
7420 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7421 inner_offset = next_offset;
7422 } else {
7423 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7424 inner_depth.increment()?;
7425 }
7426 let val_ref = self
7427 .le_security_level
7428 .get_or_insert_with(|| fidl::new_empty!(PairingSecurityLevel, D));
7429 fidl::decode!(
7430 PairingSecurityLevel,
7431 D,
7432 val_ref,
7433 decoder,
7434 inner_offset,
7435 inner_depth
7436 )?;
7437 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7438 {
7439 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7440 }
7441 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7442 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7443 }
7444 }
7445
7446 next_offset += envelope_size;
7447 _next_ordinal_to_read += 1;
7448 if next_offset >= end_offset {
7449 return Ok(());
7450 }
7451
7452 while _next_ordinal_to_read < 2 {
7454 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7455 _next_ordinal_to_read += 1;
7456 next_offset += envelope_size;
7457 }
7458
7459 let next_out_of_line = decoder.next_out_of_line();
7460 let handles_before = decoder.remaining_handles();
7461 if let Some((inlined, num_bytes, num_handles)) =
7462 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7463 {
7464 let member_inline_size =
7465 <BondableMode as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7466 if inlined != (member_inline_size <= 4) {
7467 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7468 }
7469 let inner_offset;
7470 let mut inner_depth = depth.clone();
7471 if inlined {
7472 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7473 inner_offset = next_offset;
7474 } else {
7475 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7476 inner_depth.increment()?;
7477 }
7478 let val_ref =
7479 self.bondable_mode.get_or_insert_with(|| fidl::new_empty!(BondableMode, D));
7480 fidl::decode!(BondableMode, D, val_ref, decoder, inner_offset, inner_depth)?;
7481 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7482 {
7483 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7484 }
7485 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7486 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7487 }
7488 }
7489
7490 next_offset += envelope_size;
7491 _next_ordinal_to_read += 1;
7492 if next_offset >= end_offset {
7493 return Ok(());
7494 }
7495
7496 while _next_ordinal_to_read < 3 {
7498 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7499 _next_ordinal_to_read += 1;
7500 next_offset += envelope_size;
7501 }
7502
7503 let next_out_of_line = decoder.next_out_of_line();
7504 let handles_before = decoder.remaining_handles();
7505 if let Some((inlined, num_bytes, num_handles)) =
7506 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7507 {
7508 let member_inline_size =
7509 <TechnologyType as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7510 if inlined != (member_inline_size <= 4) {
7511 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7512 }
7513 let inner_offset;
7514 let mut inner_depth = depth.clone();
7515 if inlined {
7516 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7517 inner_offset = next_offset;
7518 } else {
7519 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7520 inner_depth.increment()?;
7521 }
7522 let val_ref =
7523 self.transport.get_or_insert_with(|| fidl::new_empty!(TechnologyType, D));
7524 fidl::decode!(TechnologyType, D, val_ref, decoder, inner_offset, inner_depth)?;
7525 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7526 {
7527 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7528 }
7529 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7530 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7531 }
7532 }
7533
7534 next_offset += envelope_size;
7535
7536 while next_offset < end_offset {
7538 _next_ordinal_to_read += 1;
7539 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7540 next_offset += envelope_size;
7541 }
7542
7543 Ok(())
7544 }
7545 }
7546
7547 impl PairingRequestAcceptRequest {
7548 #[inline(always)]
7549 fn max_ordinal_present(&self) -> u64 {
7550 if let Some(_) = self.entered_passkey {
7551 return 1;
7552 }
7553 0
7554 }
7555 }
7556
7557 impl fidl::encoding::ValueTypeMarker for PairingRequestAcceptRequest {
7558 type Borrowed<'a> = &'a Self;
7559 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7560 value
7561 }
7562 }
7563
7564 unsafe impl fidl::encoding::TypeMarker for PairingRequestAcceptRequest {
7565 type Owned = Self;
7566
7567 #[inline(always)]
7568 fn inline_align(_context: fidl::encoding::Context) -> usize {
7569 8
7570 }
7571
7572 #[inline(always)]
7573 fn inline_size(_context: fidl::encoding::Context) -> usize {
7574 16
7575 }
7576 }
7577
7578 unsafe impl<D: fidl::encoding::ResourceDialect>
7579 fidl::encoding::Encode<PairingRequestAcceptRequest, D> for &PairingRequestAcceptRequest
7580 {
7581 unsafe fn encode(
7582 self,
7583 encoder: &mut fidl::encoding::Encoder<'_, D>,
7584 offset: usize,
7585 mut depth: fidl::encoding::Depth,
7586 ) -> fidl::Result<()> {
7587 encoder.debug_check_bounds::<PairingRequestAcceptRequest>(offset);
7588 let max_ordinal: u64 = self.max_ordinal_present();
7590 encoder.write_num(max_ordinal, offset);
7591 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
7592 if max_ordinal == 0 {
7594 return Ok(());
7595 }
7596 depth.increment()?;
7597 let envelope_size = 8;
7598 let bytes_len = max_ordinal as usize * envelope_size;
7599 #[allow(unused_variables)]
7600 let offset = encoder.out_of_line_offset(bytes_len);
7601 let mut _prev_end_offset: usize = 0;
7602 if 1 > max_ordinal {
7603 return Ok(());
7604 }
7605
7606 let cur_offset: usize = (1 - 1) * envelope_size;
7609
7610 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7612
7613 fidl::encoding::encode_in_envelope_optional::<u32, D>(
7618 self.entered_passkey.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
7619 encoder,
7620 offset + cur_offset,
7621 depth,
7622 )?;
7623
7624 _prev_end_offset = cur_offset + envelope_size;
7625
7626 Ok(())
7627 }
7628 }
7629
7630 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
7631 for PairingRequestAcceptRequest
7632 {
7633 #[inline(always)]
7634 fn new_empty() -> Self {
7635 Self::default()
7636 }
7637
7638 unsafe fn decode(
7639 &mut self,
7640 decoder: &mut fidl::encoding::Decoder<'_, D>,
7641 offset: usize,
7642 mut depth: fidl::encoding::Depth,
7643 ) -> fidl::Result<()> {
7644 decoder.debug_check_bounds::<Self>(offset);
7645 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
7646 None => return Err(fidl::Error::NotNullable),
7647 Some(len) => len,
7648 };
7649 if len == 0 {
7651 return Ok(());
7652 };
7653 depth.increment()?;
7654 let envelope_size = 8;
7655 let bytes_len = len * envelope_size;
7656 let offset = decoder.out_of_line_offset(bytes_len)?;
7657 let mut _next_ordinal_to_read = 0;
7659 let mut next_offset = offset;
7660 let end_offset = offset + bytes_len;
7661 _next_ordinal_to_read += 1;
7662 if next_offset >= end_offset {
7663 return Ok(());
7664 }
7665
7666 while _next_ordinal_to_read < 1 {
7668 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7669 _next_ordinal_to_read += 1;
7670 next_offset += envelope_size;
7671 }
7672
7673 let next_out_of_line = decoder.next_out_of_line();
7674 let handles_before = decoder.remaining_handles();
7675 if let Some((inlined, num_bytes, num_handles)) =
7676 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7677 {
7678 let member_inline_size =
7679 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7680 if inlined != (member_inline_size <= 4) {
7681 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7682 }
7683 let inner_offset;
7684 let mut inner_depth = depth.clone();
7685 if inlined {
7686 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7687 inner_offset = next_offset;
7688 } else {
7689 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7690 inner_depth.increment()?;
7691 }
7692 let val_ref = self.entered_passkey.get_or_insert_with(|| fidl::new_empty!(u32, D));
7693 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
7694 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7695 {
7696 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7697 }
7698 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7699 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7700 }
7701 }
7702
7703 next_offset += envelope_size;
7704
7705 while next_offset < end_offset {
7707 _next_ordinal_to_read += 1;
7708 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7709 next_offset += envelope_size;
7710 }
7711
7712 Ok(())
7713 }
7714 }
7715
7716 impl Peer {
7717 #[inline(always)]
7718 fn max_ordinal_present(&self) -> u64 {
7719 if let Some(_) = self.bredr_services {
7720 return 13;
7721 }
7722 if let Some(_) = self.le_services {
7723 return 12;
7724 }
7725 if let Some(_) = self.services {
7726 return 11;
7727 }
7728 if let Some(_) = self.tx_power {
7729 return 10;
7730 }
7731 if let Some(_) = self.rssi {
7732 return 9;
7733 }
7734 if let Some(_) = self.device_class {
7735 return 8;
7736 }
7737 if let Some(_) = self.appearance {
7738 return 7;
7739 }
7740 if let Some(_) = self.name {
7741 return 6;
7742 }
7743 if let Some(_) = self.bonded {
7744 return 5;
7745 }
7746 if let Some(_) = self.connected {
7747 return 4;
7748 }
7749 if let Some(_) = self.technology {
7750 return 3;
7751 }
7752 if let Some(_) = self.address {
7753 return 2;
7754 }
7755 if let Some(_) = self.id {
7756 return 1;
7757 }
7758 0
7759 }
7760 }
7761
7762 impl fidl::encoding::ValueTypeMarker for Peer {
7763 type Borrowed<'a> = &'a Self;
7764 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7765 value
7766 }
7767 }
7768
7769 unsafe impl fidl::encoding::TypeMarker for Peer {
7770 type Owned = Self;
7771
7772 #[inline(always)]
7773 fn inline_align(_context: fidl::encoding::Context) -> usize {
7774 8
7775 }
7776
7777 #[inline(always)]
7778 fn inline_size(_context: fidl::encoding::Context) -> usize {
7779 16
7780 }
7781 }
7782
7783 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Peer, D> for &Peer {
7784 unsafe fn encode(
7785 self,
7786 encoder: &mut fidl::encoding::Encoder<'_, D>,
7787 offset: usize,
7788 mut depth: fidl::encoding::Depth,
7789 ) -> fidl::Result<()> {
7790 encoder.debug_check_bounds::<Peer>(offset);
7791 let max_ordinal: u64 = self.max_ordinal_present();
7793 encoder.write_num(max_ordinal, offset);
7794 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
7795 if max_ordinal == 0 {
7797 return Ok(());
7798 }
7799 depth.increment()?;
7800 let envelope_size = 8;
7801 let bytes_len = max_ordinal as usize * envelope_size;
7802 #[allow(unused_variables)]
7803 let offset = encoder.out_of_line_offset(bytes_len);
7804 let mut _prev_end_offset: usize = 0;
7805 if 1 > max_ordinal {
7806 return Ok(());
7807 }
7808
7809 let cur_offset: usize = (1 - 1) * envelope_size;
7812
7813 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7815
7816 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_bluetooth__common::PeerId, D>(
7821 self.id.as_ref().map(<fidl_fuchsia_bluetooth__common::PeerId as fidl::encoding::ValueTypeMarker>::borrow),
7822 encoder, offset + cur_offset, depth
7823 )?;
7824
7825 _prev_end_offset = cur_offset + envelope_size;
7826 if 2 > max_ordinal {
7827 return Ok(());
7828 }
7829
7830 let cur_offset: usize = (2 - 1) * envelope_size;
7833
7834 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7836
7837 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_bluetooth__common::Address, D>(
7842 self.address.as_ref().map(<fidl_fuchsia_bluetooth__common::Address as fidl::encoding::ValueTypeMarker>::borrow),
7843 encoder, offset + cur_offset, depth
7844 )?;
7845
7846 _prev_end_offset = cur_offset + envelope_size;
7847 if 3 > max_ordinal {
7848 return Ok(());
7849 }
7850
7851 let cur_offset: usize = (3 - 1) * envelope_size;
7854
7855 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7857
7858 fidl::encoding::encode_in_envelope_optional::<TechnologyType, D>(
7863 self.technology
7864 .as_ref()
7865 .map(<TechnologyType as fidl::encoding::ValueTypeMarker>::borrow),
7866 encoder,
7867 offset + cur_offset,
7868 depth,
7869 )?;
7870
7871 _prev_end_offset = cur_offset + envelope_size;
7872 if 4 > max_ordinal {
7873 return Ok(());
7874 }
7875
7876 let cur_offset: usize = (4 - 1) * envelope_size;
7879
7880 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7882
7883 fidl::encoding::encode_in_envelope_optional::<bool, D>(
7888 self.connected.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
7889 encoder,
7890 offset + cur_offset,
7891 depth,
7892 )?;
7893
7894 _prev_end_offset = cur_offset + envelope_size;
7895 if 5 > max_ordinal {
7896 return Ok(());
7897 }
7898
7899 let cur_offset: usize = (5 - 1) * envelope_size;
7902
7903 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7905
7906 fidl::encoding::encode_in_envelope_optional::<bool, D>(
7911 self.bonded.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
7912 encoder,
7913 offset + cur_offset,
7914 depth,
7915 )?;
7916
7917 _prev_end_offset = cur_offset + envelope_size;
7918 if 6 > max_ordinal {
7919 return Ok(());
7920 }
7921
7922 let cur_offset: usize = (6 - 1) * envelope_size;
7925
7926 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7928
7929 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<248>, D>(
7934 self.name.as_ref().map(
7935 <fidl::encoding::BoundedString<248> as fidl::encoding::ValueTypeMarker>::borrow,
7936 ),
7937 encoder,
7938 offset + cur_offset,
7939 depth,
7940 )?;
7941
7942 _prev_end_offset = cur_offset + envelope_size;
7943 if 7 > max_ordinal {
7944 return Ok(());
7945 }
7946
7947 let cur_offset: usize = (7 - 1) * envelope_size;
7950
7951 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7953
7954 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_bluetooth__common::Appearance, D>(
7959 self.appearance.as_ref().map(<fidl_fuchsia_bluetooth__common::Appearance as fidl::encoding::ValueTypeMarker>::borrow),
7960 encoder, offset + cur_offset, depth
7961 )?;
7962
7963 _prev_end_offset = cur_offset + envelope_size;
7964 if 8 > max_ordinal {
7965 return Ok(());
7966 }
7967
7968 let cur_offset: usize = (8 - 1) * envelope_size;
7971
7972 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7974
7975 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_bluetooth__common::DeviceClass, D>(
7980 self.device_class.as_ref().map(<fidl_fuchsia_bluetooth__common::DeviceClass as fidl::encoding::ValueTypeMarker>::borrow),
7981 encoder, offset + cur_offset, depth
7982 )?;
7983
7984 _prev_end_offset = cur_offset + envelope_size;
7985 if 9 > max_ordinal {
7986 return Ok(());
7987 }
7988
7989 let cur_offset: usize = (9 - 1) * envelope_size;
7992
7993 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7995
7996 fidl::encoding::encode_in_envelope_optional::<i8, D>(
8001 self.rssi.as_ref().map(<i8 as fidl::encoding::ValueTypeMarker>::borrow),
8002 encoder,
8003 offset + cur_offset,
8004 depth,
8005 )?;
8006
8007 _prev_end_offset = cur_offset + envelope_size;
8008 if 10 > max_ordinal {
8009 return Ok(());
8010 }
8011
8012 let cur_offset: usize = (10 - 1) * envelope_size;
8015
8016 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8018
8019 fidl::encoding::encode_in_envelope_optional::<i8, D>(
8024 self.tx_power.as_ref().map(<i8 as fidl::encoding::ValueTypeMarker>::borrow),
8025 encoder,
8026 offset + cur_offset,
8027 depth,
8028 )?;
8029
8030 _prev_end_offset = cur_offset + envelope_size;
8031 if 11 > max_ordinal {
8032 return Ok(());
8033 }
8034
8035 let cur_offset: usize = (11 - 1) * envelope_size;
8038
8039 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8041
8042 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<fidl_fuchsia_bluetooth__common::Uuid, 65535>, D>(
8047 self.services.as_ref().map(<fidl::encoding::Vector<fidl_fuchsia_bluetooth__common::Uuid, 65535> as fidl::encoding::ValueTypeMarker>::borrow),
8048 encoder, offset + cur_offset, depth
8049 )?;
8050
8051 _prev_end_offset = cur_offset + envelope_size;
8052 if 12 > max_ordinal {
8053 return Ok(());
8054 }
8055
8056 let cur_offset: usize = (12 - 1) * envelope_size;
8059
8060 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8062
8063 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<fidl_fuchsia_bluetooth__common::Uuid, 65535>, D>(
8068 self.le_services.as_ref().map(<fidl::encoding::Vector<fidl_fuchsia_bluetooth__common::Uuid, 65535> as fidl::encoding::ValueTypeMarker>::borrow),
8069 encoder, offset + cur_offset, depth
8070 )?;
8071
8072 _prev_end_offset = cur_offset + envelope_size;
8073 if 13 > max_ordinal {
8074 return Ok(());
8075 }
8076
8077 let cur_offset: usize = (13 - 1) * envelope_size;
8080
8081 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8083
8084 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<fidl_fuchsia_bluetooth__common::Uuid, 65535>, D>(
8089 self.bredr_services.as_ref().map(<fidl::encoding::Vector<fidl_fuchsia_bluetooth__common::Uuid, 65535> as fidl::encoding::ValueTypeMarker>::borrow),
8090 encoder, offset + cur_offset, depth
8091 )?;
8092
8093 _prev_end_offset = cur_offset + envelope_size;
8094
8095 Ok(())
8096 }
8097 }
8098
8099 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Peer {
8100 #[inline(always)]
8101 fn new_empty() -> Self {
8102 Self::default()
8103 }
8104
8105 unsafe fn decode(
8106 &mut self,
8107 decoder: &mut fidl::encoding::Decoder<'_, D>,
8108 offset: usize,
8109 mut depth: fidl::encoding::Depth,
8110 ) -> fidl::Result<()> {
8111 decoder.debug_check_bounds::<Self>(offset);
8112 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
8113 None => return Err(fidl::Error::NotNullable),
8114 Some(len) => len,
8115 };
8116 if len == 0 {
8118 return Ok(());
8119 };
8120 depth.increment()?;
8121 let envelope_size = 8;
8122 let bytes_len = len * envelope_size;
8123 let offset = decoder.out_of_line_offset(bytes_len)?;
8124 let mut _next_ordinal_to_read = 0;
8126 let mut next_offset = offset;
8127 let end_offset = offset + bytes_len;
8128 _next_ordinal_to_read += 1;
8129 if next_offset >= end_offset {
8130 return Ok(());
8131 }
8132
8133 while _next_ordinal_to_read < 1 {
8135 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8136 _next_ordinal_to_read += 1;
8137 next_offset += envelope_size;
8138 }
8139
8140 let next_out_of_line = decoder.next_out_of_line();
8141 let handles_before = decoder.remaining_handles();
8142 if let Some((inlined, num_bytes, num_handles)) =
8143 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8144 {
8145 let member_inline_size = <fidl_fuchsia_bluetooth__common::PeerId as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8146 if inlined != (member_inline_size <= 4) {
8147 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8148 }
8149 let inner_offset;
8150 let mut inner_depth = depth.clone();
8151 if inlined {
8152 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8153 inner_offset = next_offset;
8154 } else {
8155 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8156 inner_depth.increment()?;
8157 }
8158 let val_ref = self.id.get_or_insert_with(|| {
8159 fidl::new_empty!(fidl_fuchsia_bluetooth__common::PeerId, D)
8160 });
8161 fidl::decode!(
8162 fidl_fuchsia_bluetooth__common::PeerId,
8163 D,
8164 val_ref,
8165 decoder,
8166 inner_offset,
8167 inner_depth
8168 )?;
8169 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8170 {
8171 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8172 }
8173 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8174 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8175 }
8176 }
8177
8178 next_offset += envelope_size;
8179 _next_ordinal_to_read += 1;
8180 if next_offset >= end_offset {
8181 return Ok(());
8182 }
8183
8184 while _next_ordinal_to_read < 2 {
8186 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8187 _next_ordinal_to_read += 1;
8188 next_offset += envelope_size;
8189 }
8190
8191 let next_out_of_line = decoder.next_out_of_line();
8192 let handles_before = decoder.remaining_handles();
8193 if let Some((inlined, num_bytes, num_handles)) =
8194 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8195 {
8196 let member_inline_size = <fidl_fuchsia_bluetooth__common::Address as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8197 if inlined != (member_inline_size <= 4) {
8198 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8199 }
8200 let inner_offset;
8201 let mut inner_depth = depth.clone();
8202 if inlined {
8203 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8204 inner_offset = next_offset;
8205 } else {
8206 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8207 inner_depth.increment()?;
8208 }
8209 let val_ref = self.address.get_or_insert_with(|| {
8210 fidl::new_empty!(fidl_fuchsia_bluetooth__common::Address, D)
8211 });
8212 fidl::decode!(
8213 fidl_fuchsia_bluetooth__common::Address,
8214 D,
8215 val_ref,
8216 decoder,
8217 inner_offset,
8218 inner_depth
8219 )?;
8220 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8221 {
8222 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8223 }
8224 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8225 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8226 }
8227 }
8228
8229 next_offset += envelope_size;
8230 _next_ordinal_to_read += 1;
8231 if next_offset >= end_offset {
8232 return Ok(());
8233 }
8234
8235 while _next_ordinal_to_read < 3 {
8237 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8238 _next_ordinal_to_read += 1;
8239 next_offset += envelope_size;
8240 }
8241
8242 let next_out_of_line = decoder.next_out_of_line();
8243 let handles_before = decoder.remaining_handles();
8244 if let Some((inlined, num_bytes, num_handles)) =
8245 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8246 {
8247 let member_inline_size =
8248 <TechnologyType as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8249 if inlined != (member_inline_size <= 4) {
8250 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8251 }
8252 let inner_offset;
8253 let mut inner_depth = depth.clone();
8254 if inlined {
8255 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8256 inner_offset = next_offset;
8257 } else {
8258 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8259 inner_depth.increment()?;
8260 }
8261 let val_ref =
8262 self.technology.get_or_insert_with(|| fidl::new_empty!(TechnologyType, D));
8263 fidl::decode!(TechnologyType, D, val_ref, decoder, inner_offset, inner_depth)?;
8264 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8265 {
8266 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8267 }
8268 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8269 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8270 }
8271 }
8272
8273 next_offset += envelope_size;
8274 _next_ordinal_to_read += 1;
8275 if next_offset >= end_offset {
8276 return Ok(());
8277 }
8278
8279 while _next_ordinal_to_read < 4 {
8281 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8282 _next_ordinal_to_read += 1;
8283 next_offset += envelope_size;
8284 }
8285
8286 let next_out_of_line = decoder.next_out_of_line();
8287 let handles_before = decoder.remaining_handles();
8288 if let Some((inlined, num_bytes, num_handles)) =
8289 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8290 {
8291 let member_inline_size =
8292 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8293 if inlined != (member_inline_size <= 4) {
8294 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8295 }
8296 let inner_offset;
8297 let mut inner_depth = depth.clone();
8298 if inlined {
8299 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8300 inner_offset = next_offset;
8301 } else {
8302 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8303 inner_depth.increment()?;
8304 }
8305 let val_ref = self.connected.get_or_insert_with(|| fidl::new_empty!(bool, D));
8306 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
8307 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8308 {
8309 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8310 }
8311 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8312 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8313 }
8314 }
8315
8316 next_offset += envelope_size;
8317 _next_ordinal_to_read += 1;
8318 if next_offset >= end_offset {
8319 return Ok(());
8320 }
8321
8322 while _next_ordinal_to_read < 5 {
8324 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8325 _next_ordinal_to_read += 1;
8326 next_offset += envelope_size;
8327 }
8328
8329 let next_out_of_line = decoder.next_out_of_line();
8330 let handles_before = decoder.remaining_handles();
8331 if let Some((inlined, num_bytes, num_handles)) =
8332 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8333 {
8334 let member_inline_size =
8335 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8336 if inlined != (member_inline_size <= 4) {
8337 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8338 }
8339 let inner_offset;
8340 let mut inner_depth = depth.clone();
8341 if inlined {
8342 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8343 inner_offset = next_offset;
8344 } else {
8345 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8346 inner_depth.increment()?;
8347 }
8348 let val_ref = self.bonded.get_or_insert_with(|| fidl::new_empty!(bool, D));
8349 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
8350 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8351 {
8352 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8353 }
8354 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8355 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8356 }
8357 }
8358
8359 next_offset += envelope_size;
8360 _next_ordinal_to_read += 1;
8361 if next_offset >= end_offset {
8362 return Ok(());
8363 }
8364
8365 while _next_ordinal_to_read < 6 {
8367 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8368 _next_ordinal_to_read += 1;
8369 next_offset += envelope_size;
8370 }
8371
8372 let next_out_of_line = decoder.next_out_of_line();
8373 let handles_before = decoder.remaining_handles();
8374 if let Some((inlined, num_bytes, num_handles)) =
8375 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8376 {
8377 let member_inline_size =
8378 <fidl::encoding::BoundedString<248> as fidl::encoding::TypeMarker>::inline_size(
8379 decoder.context,
8380 );
8381 if inlined != (member_inline_size <= 4) {
8382 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8383 }
8384 let inner_offset;
8385 let mut inner_depth = depth.clone();
8386 if inlined {
8387 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8388 inner_offset = next_offset;
8389 } else {
8390 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8391 inner_depth.increment()?;
8392 }
8393 let val_ref = self
8394 .name
8395 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<248>, D));
8396 fidl::decode!(
8397 fidl::encoding::BoundedString<248>,
8398 D,
8399 val_ref,
8400 decoder,
8401 inner_offset,
8402 inner_depth
8403 )?;
8404 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8405 {
8406 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8407 }
8408 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8409 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8410 }
8411 }
8412
8413 next_offset += envelope_size;
8414 _next_ordinal_to_read += 1;
8415 if next_offset >= end_offset {
8416 return Ok(());
8417 }
8418
8419 while _next_ordinal_to_read < 7 {
8421 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8422 _next_ordinal_to_read += 1;
8423 next_offset += envelope_size;
8424 }
8425
8426 let next_out_of_line = decoder.next_out_of_line();
8427 let handles_before = decoder.remaining_handles();
8428 if let Some((inlined, num_bytes, num_handles)) =
8429 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8430 {
8431 let member_inline_size = <fidl_fuchsia_bluetooth__common::Appearance as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8432 if inlined != (member_inline_size <= 4) {
8433 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8434 }
8435 let inner_offset;
8436 let mut inner_depth = depth.clone();
8437 if inlined {
8438 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8439 inner_offset = next_offset;
8440 } else {
8441 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8442 inner_depth.increment()?;
8443 }
8444 let val_ref = self.appearance.get_or_insert_with(|| {
8445 fidl::new_empty!(fidl_fuchsia_bluetooth__common::Appearance, D)
8446 });
8447 fidl::decode!(
8448 fidl_fuchsia_bluetooth__common::Appearance,
8449 D,
8450 val_ref,
8451 decoder,
8452 inner_offset,
8453 inner_depth
8454 )?;
8455 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8456 {
8457 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8458 }
8459 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8460 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8461 }
8462 }
8463
8464 next_offset += envelope_size;
8465 _next_ordinal_to_read += 1;
8466 if next_offset >= end_offset {
8467 return Ok(());
8468 }
8469
8470 while _next_ordinal_to_read < 8 {
8472 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8473 _next_ordinal_to_read += 1;
8474 next_offset += envelope_size;
8475 }
8476
8477 let next_out_of_line = decoder.next_out_of_line();
8478 let handles_before = decoder.remaining_handles();
8479 if let Some((inlined, num_bytes, num_handles)) =
8480 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8481 {
8482 let member_inline_size = <fidl_fuchsia_bluetooth__common::DeviceClass as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8483 if inlined != (member_inline_size <= 4) {
8484 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8485 }
8486 let inner_offset;
8487 let mut inner_depth = depth.clone();
8488 if inlined {
8489 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8490 inner_offset = next_offset;
8491 } else {
8492 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8493 inner_depth.increment()?;
8494 }
8495 let val_ref = self.device_class.get_or_insert_with(|| {
8496 fidl::new_empty!(fidl_fuchsia_bluetooth__common::DeviceClass, D)
8497 });
8498 fidl::decode!(
8499 fidl_fuchsia_bluetooth__common::DeviceClass,
8500 D,
8501 val_ref,
8502 decoder,
8503 inner_offset,
8504 inner_depth
8505 )?;
8506 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8507 {
8508 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8509 }
8510 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8511 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8512 }
8513 }
8514
8515 next_offset += envelope_size;
8516 _next_ordinal_to_read += 1;
8517 if next_offset >= end_offset {
8518 return Ok(());
8519 }
8520
8521 while _next_ordinal_to_read < 9 {
8523 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8524 _next_ordinal_to_read += 1;
8525 next_offset += envelope_size;
8526 }
8527
8528 let next_out_of_line = decoder.next_out_of_line();
8529 let handles_before = decoder.remaining_handles();
8530 if let Some((inlined, num_bytes, num_handles)) =
8531 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8532 {
8533 let member_inline_size =
8534 <i8 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8535 if inlined != (member_inline_size <= 4) {
8536 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8537 }
8538 let inner_offset;
8539 let mut inner_depth = depth.clone();
8540 if inlined {
8541 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8542 inner_offset = next_offset;
8543 } else {
8544 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8545 inner_depth.increment()?;
8546 }
8547 let val_ref = self.rssi.get_or_insert_with(|| fidl::new_empty!(i8, D));
8548 fidl::decode!(i8, D, val_ref, decoder, inner_offset, inner_depth)?;
8549 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8550 {
8551 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8552 }
8553 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8554 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8555 }
8556 }
8557
8558 next_offset += envelope_size;
8559 _next_ordinal_to_read += 1;
8560 if next_offset >= end_offset {
8561 return Ok(());
8562 }
8563
8564 while _next_ordinal_to_read < 10 {
8566 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8567 _next_ordinal_to_read += 1;
8568 next_offset += envelope_size;
8569 }
8570
8571 let next_out_of_line = decoder.next_out_of_line();
8572 let handles_before = decoder.remaining_handles();
8573 if let Some((inlined, num_bytes, num_handles)) =
8574 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8575 {
8576 let member_inline_size =
8577 <i8 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8578 if inlined != (member_inline_size <= 4) {
8579 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8580 }
8581 let inner_offset;
8582 let mut inner_depth = depth.clone();
8583 if inlined {
8584 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8585 inner_offset = next_offset;
8586 } else {
8587 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8588 inner_depth.increment()?;
8589 }
8590 let val_ref = self.tx_power.get_or_insert_with(|| fidl::new_empty!(i8, D));
8591 fidl::decode!(i8, D, val_ref, decoder, inner_offset, inner_depth)?;
8592 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8593 {
8594 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8595 }
8596 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8597 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8598 }
8599 }
8600
8601 next_offset += envelope_size;
8602 _next_ordinal_to_read += 1;
8603 if next_offset >= end_offset {
8604 return Ok(());
8605 }
8606
8607 while _next_ordinal_to_read < 11 {
8609 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8610 _next_ordinal_to_read += 1;
8611 next_offset += envelope_size;
8612 }
8613
8614 let next_out_of_line = decoder.next_out_of_line();
8615 let handles_before = decoder.remaining_handles();
8616 if let Some((inlined, num_bytes, num_handles)) =
8617 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8618 {
8619 let member_inline_size = <fidl::encoding::Vector<
8620 fidl_fuchsia_bluetooth__common::Uuid,
8621 65535,
8622 > as fidl::encoding::TypeMarker>::inline_size(
8623 decoder.context
8624 );
8625 if inlined != (member_inline_size <= 4) {
8626 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8627 }
8628 let inner_offset;
8629 let mut inner_depth = depth.clone();
8630 if inlined {
8631 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8632 inner_offset = next_offset;
8633 } else {
8634 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8635 inner_depth.increment()?;
8636 }
8637 let val_ref =
8638 self.services.get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<fidl_fuchsia_bluetooth__common::Uuid, 65535>, D));
8639 fidl::decode!(fidl::encoding::Vector<fidl_fuchsia_bluetooth__common::Uuid, 65535>, D, val_ref, decoder, inner_offset, inner_depth)?;
8640 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8641 {
8642 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8643 }
8644 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8645 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8646 }
8647 }
8648
8649 next_offset += envelope_size;
8650 _next_ordinal_to_read += 1;
8651 if next_offset >= end_offset {
8652 return Ok(());
8653 }
8654
8655 while _next_ordinal_to_read < 12 {
8657 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8658 _next_ordinal_to_read += 1;
8659 next_offset += envelope_size;
8660 }
8661
8662 let next_out_of_line = decoder.next_out_of_line();
8663 let handles_before = decoder.remaining_handles();
8664 if let Some((inlined, num_bytes, num_handles)) =
8665 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8666 {
8667 let member_inline_size = <fidl::encoding::Vector<
8668 fidl_fuchsia_bluetooth__common::Uuid,
8669 65535,
8670 > as fidl::encoding::TypeMarker>::inline_size(
8671 decoder.context
8672 );
8673 if inlined != (member_inline_size <= 4) {
8674 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8675 }
8676 let inner_offset;
8677 let mut inner_depth = depth.clone();
8678 if inlined {
8679 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8680 inner_offset = next_offset;
8681 } else {
8682 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8683 inner_depth.increment()?;
8684 }
8685 let val_ref =
8686 self.le_services.get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<fidl_fuchsia_bluetooth__common::Uuid, 65535>, D));
8687 fidl::decode!(fidl::encoding::Vector<fidl_fuchsia_bluetooth__common::Uuid, 65535>, D, val_ref, decoder, inner_offset, inner_depth)?;
8688 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8689 {
8690 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8691 }
8692 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8693 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8694 }
8695 }
8696
8697 next_offset += envelope_size;
8698 _next_ordinal_to_read += 1;
8699 if next_offset >= end_offset {
8700 return Ok(());
8701 }
8702
8703 while _next_ordinal_to_read < 13 {
8705 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8706 _next_ordinal_to_read += 1;
8707 next_offset += envelope_size;
8708 }
8709
8710 let next_out_of_line = decoder.next_out_of_line();
8711 let handles_before = decoder.remaining_handles();
8712 if let Some((inlined, num_bytes, num_handles)) =
8713 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8714 {
8715 let member_inline_size = <fidl::encoding::Vector<
8716 fidl_fuchsia_bluetooth__common::Uuid,
8717 65535,
8718 > as fidl::encoding::TypeMarker>::inline_size(
8719 decoder.context
8720 );
8721 if inlined != (member_inline_size <= 4) {
8722 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8723 }
8724 let inner_offset;
8725 let mut inner_depth = depth.clone();
8726 if inlined {
8727 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8728 inner_offset = next_offset;
8729 } else {
8730 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8731 inner_depth.increment()?;
8732 }
8733 let val_ref =
8734 self.bredr_services.get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<fidl_fuchsia_bluetooth__common::Uuid, 65535>, D));
8735 fidl::decode!(fidl::encoding::Vector<fidl_fuchsia_bluetooth__common::Uuid, 65535>, D, val_ref, decoder, inner_offset, inner_depth)?;
8736 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8737 {
8738 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8739 }
8740 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8741 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8742 }
8743 }
8744
8745 next_offset += envelope_size;
8746
8747 while next_offset < end_offset {
8749 _next_ordinal_to_read += 1;
8750 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8751 next_offset += envelope_size;
8752 }
8753
8754 Ok(())
8755 }
8756 }
8757
8758 impl Settings {
8759 #[inline(always)]
8760 fn max_ordinal_present(&self) -> u64 {
8761 if let Some(_) = self.bredr_security_mode {
8762 return 5;
8763 }
8764 if let Some(_) = self.le_security_mode {
8765 return 4;
8766 }
8767 if let Some(_) = self.bredr_connectable_mode {
8768 return 3;
8769 }
8770 if let Some(_) = self.le_background_scan {
8771 return 2;
8772 }
8773 if let Some(_) = self.le_privacy {
8774 return 1;
8775 }
8776 0
8777 }
8778 }
8779
8780 impl fidl::encoding::ValueTypeMarker for Settings {
8781 type Borrowed<'a> = &'a Self;
8782 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
8783 value
8784 }
8785 }
8786
8787 unsafe impl fidl::encoding::TypeMarker for Settings {
8788 type Owned = Self;
8789
8790 #[inline(always)]
8791 fn inline_align(_context: fidl::encoding::Context) -> usize {
8792 8
8793 }
8794
8795 #[inline(always)]
8796 fn inline_size(_context: fidl::encoding::Context) -> usize {
8797 16
8798 }
8799 }
8800
8801 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Settings, D> for &Settings {
8802 unsafe fn encode(
8803 self,
8804 encoder: &mut fidl::encoding::Encoder<'_, D>,
8805 offset: usize,
8806 mut depth: fidl::encoding::Depth,
8807 ) -> fidl::Result<()> {
8808 encoder.debug_check_bounds::<Settings>(offset);
8809 let max_ordinal: u64 = self.max_ordinal_present();
8811 encoder.write_num(max_ordinal, offset);
8812 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
8813 if max_ordinal == 0 {
8815 return Ok(());
8816 }
8817 depth.increment()?;
8818 let envelope_size = 8;
8819 let bytes_len = max_ordinal as usize * envelope_size;
8820 #[allow(unused_variables)]
8821 let offset = encoder.out_of_line_offset(bytes_len);
8822 let mut _prev_end_offset: usize = 0;
8823 if 1 > max_ordinal {
8824 return Ok(());
8825 }
8826
8827 let cur_offset: usize = (1 - 1) * envelope_size;
8830
8831 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8833
8834 fidl::encoding::encode_in_envelope_optional::<bool, D>(
8839 self.le_privacy.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
8840 encoder,
8841 offset + cur_offset,
8842 depth,
8843 )?;
8844
8845 _prev_end_offset = cur_offset + envelope_size;
8846 if 2 > max_ordinal {
8847 return Ok(());
8848 }
8849
8850 let cur_offset: usize = (2 - 1) * envelope_size;
8853
8854 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8856
8857 fidl::encoding::encode_in_envelope_optional::<bool, D>(
8862 self.le_background_scan
8863 .as_ref()
8864 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
8865 encoder,
8866 offset + cur_offset,
8867 depth,
8868 )?;
8869
8870 _prev_end_offset = cur_offset + envelope_size;
8871 if 3 > max_ordinal {
8872 return Ok(());
8873 }
8874
8875 let cur_offset: usize = (3 - 1) * envelope_size;
8878
8879 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8881
8882 fidl::encoding::encode_in_envelope_optional::<bool, D>(
8887 self.bredr_connectable_mode
8888 .as_ref()
8889 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
8890 encoder,
8891 offset + cur_offset,
8892 depth,
8893 )?;
8894
8895 _prev_end_offset = cur_offset + envelope_size;
8896 if 4 > max_ordinal {
8897 return Ok(());
8898 }
8899
8900 let cur_offset: usize = (4 - 1) * envelope_size;
8903
8904 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8906
8907 fidl::encoding::encode_in_envelope_optional::<LeSecurityMode, D>(
8912 self.le_security_mode
8913 .as_ref()
8914 .map(<LeSecurityMode as fidl::encoding::ValueTypeMarker>::borrow),
8915 encoder,
8916 offset + cur_offset,
8917 depth,
8918 )?;
8919
8920 _prev_end_offset = cur_offset + envelope_size;
8921 if 5 > max_ordinal {
8922 return Ok(());
8923 }
8924
8925 let cur_offset: usize = (5 - 1) * envelope_size;
8928
8929 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8931
8932 fidl::encoding::encode_in_envelope_optional::<BrEdrSecurityMode, D>(
8937 self.bredr_security_mode
8938 .as_ref()
8939 .map(<BrEdrSecurityMode as fidl::encoding::ValueTypeMarker>::borrow),
8940 encoder,
8941 offset + cur_offset,
8942 depth,
8943 )?;
8944
8945 _prev_end_offset = cur_offset + envelope_size;
8946
8947 Ok(())
8948 }
8949 }
8950
8951 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Settings {
8952 #[inline(always)]
8953 fn new_empty() -> Self {
8954 Self::default()
8955 }
8956
8957 unsafe fn decode(
8958 &mut self,
8959 decoder: &mut fidl::encoding::Decoder<'_, D>,
8960 offset: usize,
8961 mut depth: fidl::encoding::Depth,
8962 ) -> fidl::Result<()> {
8963 decoder.debug_check_bounds::<Self>(offset);
8964 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
8965 None => return Err(fidl::Error::NotNullable),
8966 Some(len) => len,
8967 };
8968 if len == 0 {
8970 return Ok(());
8971 };
8972 depth.increment()?;
8973 let envelope_size = 8;
8974 let bytes_len = len * envelope_size;
8975 let offset = decoder.out_of_line_offset(bytes_len)?;
8976 let mut _next_ordinal_to_read = 0;
8978 let mut next_offset = offset;
8979 let end_offset = offset + bytes_len;
8980 _next_ordinal_to_read += 1;
8981 if next_offset >= end_offset {
8982 return Ok(());
8983 }
8984
8985 while _next_ordinal_to_read < 1 {
8987 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8988 _next_ordinal_to_read += 1;
8989 next_offset += envelope_size;
8990 }
8991
8992 let next_out_of_line = decoder.next_out_of_line();
8993 let handles_before = decoder.remaining_handles();
8994 if let Some((inlined, num_bytes, num_handles)) =
8995 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8996 {
8997 let member_inline_size =
8998 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8999 if inlined != (member_inline_size <= 4) {
9000 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9001 }
9002 let inner_offset;
9003 let mut inner_depth = depth.clone();
9004 if inlined {
9005 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9006 inner_offset = next_offset;
9007 } else {
9008 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9009 inner_depth.increment()?;
9010 }
9011 let val_ref = self.le_privacy.get_or_insert_with(|| fidl::new_empty!(bool, D));
9012 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
9013 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9014 {
9015 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9016 }
9017 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9018 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9019 }
9020 }
9021
9022 next_offset += envelope_size;
9023 _next_ordinal_to_read += 1;
9024 if next_offset >= end_offset {
9025 return Ok(());
9026 }
9027
9028 while _next_ordinal_to_read < 2 {
9030 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9031 _next_ordinal_to_read += 1;
9032 next_offset += envelope_size;
9033 }
9034
9035 let next_out_of_line = decoder.next_out_of_line();
9036 let handles_before = decoder.remaining_handles();
9037 if let Some((inlined, num_bytes, num_handles)) =
9038 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9039 {
9040 let member_inline_size =
9041 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9042 if inlined != (member_inline_size <= 4) {
9043 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9044 }
9045 let inner_offset;
9046 let mut inner_depth = depth.clone();
9047 if inlined {
9048 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9049 inner_offset = next_offset;
9050 } else {
9051 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9052 inner_depth.increment()?;
9053 }
9054 let val_ref =
9055 self.le_background_scan.get_or_insert_with(|| fidl::new_empty!(bool, D));
9056 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
9057 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9058 {
9059 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9060 }
9061 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9062 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9063 }
9064 }
9065
9066 next_offset += envelope_size;
9067 _next_ordinal_to_read += 1;
9068 if next_offset >= end_offset {
9069 return Ok(());
9070 }
9071
9072 while _next_ordinal_to_read < 3 {
9074 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9075 _next_ordinal_to_read += 1;
9076 next_offset += envelope_size;
9077 }
9078
9079 let next_out_of_line = decoder.next_out_of_line();
9080 let handles_before = decoder.remaining_handles();
9081 if let Some((inlined, num_bytes, num_handles)) =
9082 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9083 {
9084 let member_inline_size =
9085 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9086 if inlined != (member_inline_size <= 4) {
9087 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9088 }
9089 let inner_offset;
9090 let mut inner_depth = depth.clone();
9091 if inlined {
9092 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9093 inner_offset = next_offset;
9094 } else {
9095 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9096 inner_depth.increment()?;
9097 }
9098 let val_ref =
9099 self.bredr_connectable_mode.get_or_insert_with(|| fidl::new_empty!(bool, D));
9100 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
9101 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9102 {
9103 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9104 }
9105 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9106 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9107 }
9108 }
9109
9110 next_offset += envelope_size;
9111 _next_ordinal_to_read += 1;
9112 if next_offset >= end_offset {
9113 return Ok(());
9114 }
9115
9116 while _next_ordinal_to_read < 4 {
9118 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9119 _next_ordinal_to_read += 1;
9120 next_offset += envelope_size;
9121 }
9122
9123 let next_out_of_line = decoder.next_out_of_line();
9124 let handles_before = decoder.remaining_handles();
9125 if let Some((inlined, num_bytes, num_handles)) =
9126 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9127 {
9128 let member_inline_size =
9129 <LeSecurityMode as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9130 if inlined != (member_inline_size <= 4) {
9131 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9132 }
9133 let inner_offset;
9134 let mut inner_depth = depth.clone();
9135 if inlined {
9136 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9137 inner_offset = next_offset;
9138 } else {
9139 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9140 inner_depth.increment()?;
9141 }
9142 let val_ref = self
9143 .le_security_mode
9144 .get_or_insert_with(|| fidl::new_empty!(LeSecurityMode, D));
9145 fidl::decode!(LeSecurityMode, D, val_ref, decoder, inner_offset, inner_depth)?;
9146 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9147 {
9148 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9149 }
9150 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9151 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9152 }
9153 }
9154
9155 next_offset += envelope_size;
9156 _next_ordinal_to_read += 1;
9157 if next_offset >= end_offset {
9158 return Ok(());
9159 }
9160
9161 while _next_ordinal_to_read < 5 {
9163 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9164 _next_ordinal_to_read += 1;
9165 next_offset += envelope_size;
9166 }
9167
9168 let next_out_of_line = decoder.next_out_of_line();
9169 let handles_before = decoder.remaining_handles();
9170 if let Some((inlined, num_bytes, num_handles)) =
9171 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9172 {
9173 let member_inline_size =
9174 <BrEdrSecurityMode as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9175 if inlined != (member_inline_size <= 4) {
9176 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9177 }
9178 let inner_offset;
9179 let mut inner_depth = depth.clone();
9180 if inlined {
9181 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9182 inner_offset = next_offset;
9183 } else {
9184 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9185 inner_depth.increment()?;
9186 }
9187 let val_ref = self
9188 .bredr_security_mode
9189 .get_or_insert_with(|| fidl::new_empty!(BrEdrSecurityMode, D));
9190 fidl::decode!(BrEdrSecurityMode, D, val_ref, decoder, inner_offset, inner_depth)?;
9191 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9192 {
9193 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9194 }
9195 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9196 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9197 }
9198 }
9199
9200 next_offset += envelope_size;
9201
9202 while next_offset < end_offset {
9204 _next_ordinal_to_read += 1;
9205 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9206 next_offset += envelope_size;
9207 }
9208
9209 Ok(())
9210 }
9211 }
9212
9213 impl fidl::encoding::ValueTypeMarker for PairingProperties {
9214 type Borrowed<'a> = &'a Self;
9215 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
9216 value
9217 }
9218 }
9219
9220 unsafe impl fidl::encoding::TypeMarker for PairingProperties {
9221 type Owned = Self;
9222
9223 #[inline(always)]
9224 fn inline_align(_context: fidl::encoding::Context) -> usize {
9225 8
9226 }
9227
9228 #[inline(always)]
9229 fn inline_size(_context: fidl::encoding::Context) -> usize {
9230 16
9231 }
9232 }
9233
9234 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<PairingProperties, D>
9235 for &PairingProperties
9236 {
9237 #[inline]
9238 unsafe fn encode(
9239 self,
9240 encoder: &mut fidl::encoding::Encoder<'_, D>,
9241 offset: usize,
9242 _depth: fidl::encoding::Depth,
9243 ) -> fidl::Result<()> {
9244 encoder.debug_check_bounds::<PairingProperties>(offset);
9245 encoder.write_num::<u64>(self.ordinal(), offset);
9246 match self {
9247 PairingProperties::Consent(ref val) => {
9248 fidl::encoding::encode_in_envelope::<Consent, D>(
9249 <Consent as fidl::encoding::ValueTypeMarker>::borrow(val),
9250 encoder,
9251 offset + 8,
9252 _depth,
9253 )
9254 }
9255 PairingProperties::PasskeyDisplay(ref val) => {
9256 fidl::encoding::encode_in_envelope::<u32, D>(
9257 <u32 as fidl::encoding::ValueTypeMarker>::borrow(val),
9258 encoder,
9259 offset + 8,
9260 _depth,
9261 )
9262 }
9263 PairingProperties::PasskeyConfirmation(ref val) => {
9264 fidl::encoding::encode_in_envelope::<u32, D>(
9265 <u32 as fidl::encoding::ValueTypeMarker>::borrow(val),
9266 encoder,
9267 offset + 8,
9268 _depth,
9269 )
9270 }
9271 PairingProperties::PasskeyEntry(ref val) => {
9272 fidl::encoding::encode_in_envelope::<PasskeyEntry, D>(
9273 <PasskeyEntry as fidl::encoding::ValueTypeMarker>::borrow(val),
9274 encoder,
9275 offset + 8,
9276 _depth,
9277 )
9278 }
9279 PairingProperties::__SourceBreaking { .. } => Err(fidl::Error::UnknownUnionTag),
9280 }
9281 }
9282 }
9283
9284 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for PairingProperties {
9285 #[inline(always)]
9286 fn new_empty() -> Self {
9287 Self::__SourceBreaking { unknown_ordinal: 0 }
9288 }
9289
9290 #[inline]
9291 unsafe fn decode(
9292 &mut self,
9293 decoder: &mut fidl::encoding::Decoder<'_, D>,
9294 offset: usize,
9295 mut depth: fidl::encoding::Depth,
9296 ) -> fidl::Result<()> {
9297 decoder.debug_check_bounds::<Self>(offset);
9298 #[allow(unused_variables)]
9299 let next_out_of_line = decoder.next_out_of_line();
9300 let handles_before = decoder.remaining_handles();
9301 let (ordinal, inlined, num_bytes, num_handles) =
9302 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
9303
9304 let member_inline_size = match ordinal {
9305 1 => <Consent as fidl::encoding::TypeMarker>::inline_size(decoder.context),
9306 2 => <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context),
9307 3 => <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context),
9308 4 => <PasskeyEntry as fidl::encoding::TypeMarker>::inline_size(decoder.context),
9309 0 => return Err(fidl::Error::UnknownUnionTag),
9310 _ => num_bytes as usize,
9311 };
9312
9313 if inlined != (member_inline_size <= 4) {
9314 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9315 }
9316 let _inner_offset;
9317 if inlined {
9318 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
9319 _inner_offset = offset + 8;
9320 } else {
9321 depth.increment()?;
9322 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9323 }
9324 match ordinal {
9325 1 => {
9326 #[allow(irrefutable_let_patterns)]
9327 if let PairingProperties::Consent(_) = self {
9328 } else {
9330 *self = PairingProperties::Consent(fidl::new_empty!(Consent, D));
9332 }
9333 #[allow(irrefutable_let_patterns)]
9334 if let PairingProperties::Consent(ref mut val) = self {
9335 fidl::decode!(Consent, D, val, decoder, _inner_offset, depth)?;
9336 } else {
9337 unreachable!()
9338 }
9339 }
9340 2 => {
9341 #[allow(irrefutable_let_patterns)]
9342 if let PairingProperties::PasskeyDisplay(_) = self {
9343 } else {
9345 *self = PairingProperties::PasskeyDisplay(fidl::new_empty!(u32, D));
9347 }
9348 #[allow(irrefutable_let_patterns)]
9349 if let PairingProperties::PasskeyDisplay(ref mut val) = self {
9350 fidl::decode!(u32, D, val, decoder, _inner_offset, depth)?;
9351 } else {
9352 unreachable!()
9353 }
9354 }
9355 3 => {
9356 #[allow(irrefutable_let_patterns)]
9357 if let PairingProperties::PasskeyConfirmation(_) = self {
9358 } else {
9360 *self = PairingProperties::PasskeyConfirmation(fidl::new_empty!(u32, D));
9362 }
9363 #[allow(irrefutable_let_patterns)]
9364 if let PairingProperties::PasskeyConfirmation(ref mut val) = self {
9365 fidl::decode!(u32, D, val, decoder, _inner_offset, depth)?;
9366 } else {
9367 unreachable!()
9368 }
9369 }
9370 4 => {
9371 #[allow(irrefutable_let_patterns)]
9372 if let PairingProperties::PasskeyEntry(_) = self {
9373 } else {
9375 *self = PairingProperties::PasskeyEntry(fidl::new_empty!(PasskeyEntry, D));
9377 }
9378 #[allow(irrefutable_let_patterns)]
9379 if let PairingProperties::PasskeyEntry(ref mut val) = self {
9380 fidl::decode!(PasskeyEntry, D, val, decoder, _inner_offset, depth)?;
9381 } else {
9382 unreachable!()
9383 }
9384 }
9385 #[allow(deprecated)]
9386 ordinal => {
9387 for _ in 0..num_handles {
9388 decoder.drop_next_handle()?;
9389 }
9390 *self = PairingProperties::__SourceBreaking { unknown_ordinal: ordinal };
9391 }
9392 }
9393 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
9394 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9395 }
9396 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9397 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9398 }
9399 Ok(())
9400 }
9401 }
9402}