fidl_fuchsia_stash__common/
fidl_fuchsia_stash__common.rs

1// WARNING: This file is machine generated by fidlgen.
2
3#![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 const MAX_KEY_SIZE: u64 = 256;
12
13/// Strings over 12 kb will be tossed. This number is chosen arbitrarily, if you
14/// think it should be higher just ask.
15pub const MAX_STRING_SIZE: u64 = 12000;
16
17#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
18#[repr(u32)]
19pub enum FlushError {
20    ReadOnly = 1,
21    CommitFailed = 2,
22}
23
24impl FlushError {
25    #[inline]
26    pub fn from_primitive(prim: u32) -> Option<Self> {
27        match prim {
28            1 => Some(Self::ReadOnly),
29            2 => Some(Self::CommitFailed),
30            _ => None,
31        }
32    }
33
34    #[inline]
35    pub const fn into_primitive(self) -> u32 {
36        self as u32
37    }
38}
39
40/// ValueType encodes a type for a field in the store
41#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
42#[repr(u8)]
43pub enum ValueType {
44    IntVal = 1,
45    FloatVal = 2,
46    BoolVal = 3,
47    StringVal = 4,
48    BytesVal = 5,
49}
50
51impl ValueType {
52    #[inline]
53    pub fn from_primitive(prim: u8) -> Option<Self> {
54        match prim {
55            1 => Some(Self::IntVal),
56            2 => Some(Self::FloatVal),
57            3 => Some(Self::BoolVal),
58            4 => Some(Self::StringVal),
59            5 => Some(Self::BytesVal),
60            _ => None,
61        }
62    }
63
64    #[inline]
65    pub const fn into_primitive(self) -> u8 {
66        self as u8
67    }
68}
69
70/// ListItem is returned when a series of keys are being listed.
71#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
72pub struct ListItem {
73    pub key: String,
74    pub type_: ValueType,
75}
76
77impl fidl::Persistable for ListItem {}
78
79#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
80pub struct ListIteratorGetNextResponse {
81    pub keys: Vec<ListItem>,
82}
83
84impl fidl::Persistable for ListIteratorGetNextResponse {}
85
86#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
87pub struct StoreAccessorDeletePrefixRequest {
88    pub prefix: String,
89}
90
91impl fidl::Persistable for StoreAccessorDeletePrefixRequest {}
92
93#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
94pub struct StoreAccessorDeleteValueRequest {
95    pub key: String,
96}
97
98impl fidl::Persistable for StoreAccessorDeleteValueRequest {}
99
100#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
101pub struct StoreAccessorGetValueRequest {
102    pub key: String,
103}
104
105impl fidl::Persistable for StoreAccessorGetValueRequest {}
106
107#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
108pub struct StoreIdentifyRequest {
109    pub name: String,
110}
111
112impl fidl::Persistable for StoreIdentifyRequest {}
113
114mod internal {
115    use super::*;
116    unsafe impl fidl::encoding::TypeMarker for FlushError {
117        type Owned = Self;
118
119        #[inline(always)]
120        fn inline_align(_context: fidl::encoding::Context) -> usize {
121            std::mem::align_of::<u32>()
122        }
123
124        #[inline(always)]
125        fn inline_size(_context: fidl::encoding::Context) -> usize {
126            std::mem::size_of::<u32>()
127        }
128
129        #[inline(always)]
130        fn encode_is_copy() -> bool {
131            true
132        }
133
134        #[inline(always)]
135        fn decode_is_copy() -> bool {
136            false
137        }
138    }
139
140    impl fidl::encoding::ValueTypeMarker for FlushError {
141        type Borrowed<'a> = Self;
142        #[inline(always)]
143        fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
144            *value
145        }
146    }
147
148    unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for FlushError {
149        #[inline]
150        unsafe fn encode(
151            self,
152            encoder: &mut fidl::encoding::Encoder<'_, D>,
153            offset: usize,
154            _depth: fidl::encoding::Depth,
155        ) -> fidl::Result<()> {
156            encoder.debug_check_bounds::<Self>(offset);
157            encoder.write_num(self.into_primitive(), offset);
158            Ok(())
159        }
160    }
161
162    impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for FlushError {
163        #[inline(always)]
164        fn new_empty() -> Self {
165            Self::ReadOnly
166        }
167
168        #[inline]
169        unsafe fn decode(
170            &mut self,
171            decoder: &mut fidl::encoding::Decoder<'_, D>,
172            offset: usize,
173            _depth: fidl::encoding::Depth,
174        ) -> fidl::Result<()> {
175            decoder.debug_check_bounds::<Self>(offset);
176            let prim = decoder.read_num::<u32>(offset);
177
178            *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
179            Ok(())
180        }
181    }
182    unsafe impl fidl::encoding::TypeMarker for ValueType {
183        type Owned = Self;
184
185        #[inline(always)]
186        fn inline_align(_context: fidl::encoding::Context) -> usize {
187            std::mem::align_of::<u8>()
188        }
189
190        #[inline(always)]
191        fn inline_size(_context: fidl::encoding::Context) -> usize {
192            std::mem::size_of::<u8>()
193        }
194
195        #[inline(always)]
196        fn encode_is_copy() -> bool {
197            true
198        }
199
200        #[inline(always)]
201        fn decode_is_copy() -> bool {
202            false
203        }
204    }
205
206    impl fidl::encoding::ValueTypeMarker for ValueType {
207        type Borrowed<'a> = Self;
208        #[inline(always)]
209        fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
210            *value
211        }
212    }
213
214    unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for ValueType {
215        #[inline]
216        unsafe fn encode(
217            self,
218            encoder: &mut fidl::encoding::Encoder<'_, D>,
219            offset: usize,
220            _depth: fidl::encoding::Depth,
221        ) -> fidl::Result<()> {
222            encoder.debug_check_bounds::<Self>(offset);
223            encoder.write_num(self.into_primitive(), offset);
224            Ok(())
225        }
226    }
227
228    impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ValueType {
229        #[inline(always)]
230        fn new_empty() -> Self {
231            Self::IntVal
232        }
233
234        #[inline]
235        unsafe fn decode(
236            &mut self,
237            decoder: &mut fidl::encoding::Decoder<'_, D>,
238            offset: usize,
239            _depth: fidl::encoding::Depth,
240        ) -> fidl::Result<()> {
241            decoder.debug_check_bounds::<Self>(offset);
242            let prim = decoder.read_num::<u8>(offset);
243
244            *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
245            Ok(())
246        }
247    }
248
249    impl fidl::encoding::ValueTypeMarker for ListItem {
250        type Borrowed<'a> = &'a Self;
251        fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
252            value
253        }
254    }
255
256    unsafe impl fidl::encoding::TypeMarker for ListItem {
257        type Owned = Self;
258
259        #[inline(always)]
260        fn inline_align(_context: fidl::encoding::Context) -> usize {
261            8
262        }
263
264        #[inline(always)]
265        fn inline_size(_context: fidl::encoding::Context) -> usize {
266            24
267        }
268    }
269
270    unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ListItem, D> for &ListItem {
271        #[inline]
272        unsafe fn encode(
273            self,
274            encoder: &mut fidl::encoding::Encoder<'_, D>,
275            offset: usize,
276            _depth: fidl::encoding::Depth,
277        ) -> fidl::Result<()> {
278            encoder.debug_check_bounds::<ListItem>(offset);
279            // Delegate to tuple encoding.
280            fidl::encoding::Encode::<ListItem, D>::encode(
281                (
282                    <fidl::encoding::BoundedString<256> as fidl::encoding::ValueTypeMarker>::borrow(
283                        &self.key,
284                    ),
285                    <ValueType as fidl::encoding::ValueTypeMarker>::borrow(&self.type_),
286                ),
287                encoder,
288                offset,
289                _depth,
290            )
291        }
292    }
293    unsafe impl<
294            D: fidl::encoding::ResourceDialect,
295            T0: fidl::encoding::Encode<fidl::encoding::BoundedString<256>, D>,
296            T1: fidl::encoding::Encode<ValueType, D>,
297        > fidl::encoding::Encode<ListItem, D> for (T0, T1)
298    {
299        #[inline]
300        unsafe fn encode(
301            self,
302            encoder: &mut fidl::encoding::Encoder<'_, D>,
303            offset: usize,
304            depth: fidl::encoding::Depth,
305        ) -> fidl::Result<()> {
306            encoder.debug_check_bounds::<ListItem>(offset);
307            // Zero out padding regions. There's no need to apply masks
308            // because the unmasked parts will be overwritten by fields.
309            unsafe {
310                let ptr = encoder.buf.as_mut_ptr().add(offset).offset(16);
311                (ptr as *mut u64).write_unaligned(0);
312            }
313            // Write the fields.
314            self.0.encode(encoder, offset + 0, depth)?;
315            self.1.encode(encoder, offset + 16, depth)?;
316            Ok(())
317        }
318    }
319
320    impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ListItem {
321        #[inline(always)]
322        fn new_empty() -> Self {
323            Self {
324                key: fidl::new_empty!(fidl::encoding::BoundedString<256>, D),
325                type_: fidl::new_empty!(ValueType, D),
326            }
327        }
328
329        #[inline]
330        unsafe fn decode(
331            &mut self,
332            decoder: &mut fidl::encoding::Decoder<'_, D>,
333            offset: usize,
334            _depth: fidl::encoding::Depth,
335        ) -> fidl::Result<()> {
336            decoder.debug_check_bounds::<Self>(offset);
337            // Verify that padding bytes are zero.
338            let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(16) };
339            let padval = unsafe { (ptr as *const u64).read_unaligned() };
340            let mask = 0xffffffffffffff00u64;
341            let maskedval = padval & mask;
342            if maskedval != 0 {
343                return Err(fidl::Error::NonZeroPadding {
344                    padding_start: offset + 16 + ((mask as u64).trailing_zeros() / 8) as usize,
345                });
346            }
347            fidl::decode!(
348                fidl::encoding::BoundedString<256>,
349                D,
350                &mut self.key,
351                decoder,
352                offset + 0,
353                _depth
354            )?;
355            fidl::decode!(ValueType, D, &mut self.type_, decoder, offset + 16, _depth)?;
356            Ok(())
357        }
358    }
359
360    impl fidl::encoding::ValueTypeMarker for ListIteratorGetNextResponse {
361        type Borrowed<'a> = &'a Self;
362        fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
363            value
364        }
365    }
366
367    unsafe impl fidl::encoding::TypeMarker for ListIteratorGetNextResponse {
368        type Owned = Self;
369
370        #[inline(always)]
371        fn inline_align(_context: fidl::encoding::Context) -> usize {
372            8
373        }
374
375        #[inline(always)]
376        fn inline_size(_context: fidl::encoding::Context) -> usize {
377            16
378        }
379    }
380
381    unsafe impl<D: fidl::encoding::ResourceDialect>
382        fidl::encoding::Encode<ListIteratorGetNextResponse, D> for &ListIteratorGetNextResponse
383    {
384        #[inline]
385        unsafe fn encode(
386            self,
387            encoder: &mut fidl::encoding::Encoder<'_, D>,
388            offset: usize,
389            _depth: fidl::encoding::Depth,
390        ) -> fidl::Result<()> {
391            encoder.debug_check_bounds::<ListIteratorGetNextResponse>(offset);
392            // Delegate to tuple encoding.
393            fidl::encoding::Encode::<ListIteratorGetNextResponse, D>::encode(
394                (
395                    <fidl::encoding::UnboundedVector<ListItem> as fidl::encoding::ValueTypeMarker>::borrow(&self.keys),
396                ),
397                encoder, offset, _depth
398            )
399        }
400    }
401    unsafe impl<
402            D: fidl::encoding::ResourceDialect,
403            T0: fidl::encoding::Encode<fidl::encoding::UnboundedVector<ListItem>, D>,
404        > fidl::encoding::Encode<ListIteratorGetNextResponse, D> for (T0,)
405    {
406        #[inline]
407        unsafe fn encode(
408            self,
409            encoder: &mut fidl::encoding::Encoder<'_, D>,
410            offset: usize,
411            depth: fidl::encoding::Depth,
412        ) -> fidl::Result<()> {
413            encoder.debug_check_bounds::<ListIteratorGetNextResponse>(offset);
414            // Zero out padding regions. There's no need to apply masks
415            // because the unmasked parts will be overwritten by fields.
416            // Write the fields.
417            self.0.encode(encoder, offset + 0, depth)?;
418            Ok(())
419        }
420    }
421
422    impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
423        for ListIteratorGetNextResponse
424    {
425        #[inline(always)]
426        fn new_empty() -> Self {
427            Self { keys: fidl::new_empty!(fidl::encoding::UnboundedVector<ListItem>, D) }
428        }
429
430        #[inline]
431        unsafe fn decode(
432            &mut self,
433            decoder: &mut fidl::encoding::Decoder<'_, D>,
434            offset: usize,
435            _depth: fidl::encoding::Depth,
436        ) -> fidl::Result<()> {
437            decoder.debug_check_bounds::<Self>(offset);
438            // Verify that padding bytes are zero.
439            fidl::decode!(
440                fidl::encoding::UnboundedVector<ListItem>,
441                D,
442                &mut self.keys,
443                decoder,
444                offset + 0,
445                _depth
446            )?;
447            Ok(())
448        }
449    }
450
451    impl fidl::encoding::ValueTypeMarker for StoreAccessorDeletePrefixRequest {
452        type Borrowed<'a> = &'a Self;
453        fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
454            value
455        }
456    }
457
458    unsafe impl fidl::encoding::TypeMarker for StoreAccessorDeletePrefixRequest {
459        type Owned = Self;
460
461        #[inline(always)]
462        fn inline_align(_context: fidl::encoding::Context) -> usize {
463            8
464        }
465
466        #[inline(always)]
467        fn inline_size(_context: fidl::encoding::Context) -> usize {
468            16
469        }
470    }
471
472    unsafe impl<D: fidl::encoding::ResourceDialect>
473        fidl::encoding::Encode<StoreAccessorDeletePrefixRequest, D>
474        for &StoreAccessorDeletePrefixRequest
475    {
476        #[inline]
477        unsafe fn encode(
478            self,
479            encoder: &mut fidl::encoding::Encoder<'_, D>,
480            offset: usize,
481            _depth: fidl::encoding::Depth,
482        ) -> fidl::Result<()> {
483            encoder.debug_check_bounds::<StoreAccessorDeletePrefixRequest>(offset);
484            // Delegate to tuple encoding.
485            fidl::encoding::Encode::<StoreAccessorDeletePrefixRequest, D>::encode(
486                (<fidl::encoding::BoundedString<256> as fidl::encoding::ValueTypeMarker>::borrow(
487                    &self.prefix,
488                ),),
489                encoder,
490                offset,
491                _depth,
492            )
493        }
494    }
495    unsafe impl<
496            D: fidl::encoding::ResourceDialect,
497            T0: fidl::encoding::Encode<fidl::encoding::BoundedString<256>, D>,
498        > fidl::encoding::Encode<StoreAccessorDeletePrefixRequest, D> for (T0,)
499    {
500        #[inline]
501        unsafe fn encode(
502            self,
503            encoder: &mut fidl::encoding::Encoder<'_, D>,
504            offset: usize,
505            depth: fidl::encoding::Depth,
506        ) -> fidl::Result<()> {
507            encoder.debug_check_bounds::<StoreAccessorDeletePrefixRequest>(offset);
508            // Zero out padding regions. There's no need to apply masks
509            // because the unmasked parts will be overwritten by fields.
510            // Write the fields.
511            self.0.encode(encoder, offset + 0, depth)?;
512            Ok(())
513        }
514    }
515
516    impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
517        for StoreAccessorDeletePrefixRequest
518    {
519        #[inline(always)]
520        fn new_empty() -> Self {
521            Self { prefix: fidl::new_empty!(fidl::encoding::BoundedString<256>, D) }
522        }
523
524        #[inline]
525        unsafe fn decode(
526            &mut self,
527            decoder: &mut fidl::encoding::Decoder<'_, D>,
528            offset: usize,
529            _depth: fidl::encoding::Depth,
530        ) -> fidl::Result<()> {
531            decoder.debug_check_bounds::<Self>(offset);
532            // Verify that padding bytes are zero.
533            fidl::decode!(
534                fidl::encoding::BoundedString<256>,
535                D,
536                &mut self.prefix,
537                decoder,
538                offset + 0,
539                _depth
540            )?;
541            Ok(())
542        }
543    }
544
545    impl fidl::encoding::ValueTypeMarker for StoreAccessorDeleteValueRequest {
546        type Borrowed<'a> = &'a Self;
547        fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
548            value
549        }
550    }
551
552    unsafe impl fidl::encoding::TypeMarker for StoreAccessorDeleteValueRequest {
553        type Owned = Self;
554
555        #[inline(always)]
556        fn inline_align(_context: fidl::encoding::Context) -> usize {
557            8
558        }
559
560        #[inline(always)]
561        fn inline_size(_context: fidl::encoding::Context) -> usize {
562            16
563        }
564    }
565
566    unsafe impl<D: fidl::encoding::ResourceDialect>
567        fidl::encoding::Encode<StoreAccessorDeleteValueRequest, D>
568        for &StoreAccessorDeleteValueRequest
569    {
570        #[inline]
571        unsafe fn encode(
572            self,
573            encoder: &mut fidl::encoding::Encoder<'_, D>,
574            offset: usize,
575            _depth: fidl::encoding::Depth,
576        ) -> fidl::Result<()> {
577            encoder.debug_check_bounds::<StoreAccessorDeleteValueRequest>(offset);
578            // Delegate to tuple encoding.
579            fidl::encoding::Encode::<StoreAccessorDeleteValueRequest, D>::encode(
580                (<fidl::encoding::BoundedString<256> as fidl::encoding::ValueTypeMarker>::borrow(
581                    &self.key,
582                ),),
583                encoder,
584                offset,
585                _depth,
586            )
587        }
588    }
589    unsafe impl<
590            D: fidl::encoding::ResourceDialect,
591            T0: fidl::encoding::Encode<fidl::encoding::BoundedString<256>, D>,
592        > fidl::encoding::Encode<StoreAccessorDeleteValueRequest, D> for (T0,)
593    {
594        #[inline]
595        unsafe fn encode(
596            self,
597            encoder: &mut fidl::encoding::Encoder<'_, D>,
598            offset: usize,
599            depth: fidl::encoding::Depth,
600        ) -> fidl::Result<()> {
601            encoder.debug_check_bounds::<StoreAccessorDeleteValueRequest>(offset);
602            // Zero out padding regions. There's no need to apply masks
603            // because the unmasked parts will be overwritten by fields.
604            // Write the fields.
605            self.0.encode(encoder, offset + 0, depth)?;
606            Ok(())
607        }
608    }
609
610    impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
611        for StoreAccessorDeleteValueRequest
612    {
613        #[inline(always)]
614        fn new_empty() -> Self {
615            Self { key: fidl::new_empty!(fidl::encoding::BoundedString<256>, D) }
616        }
617
618        #[inline]
619        unsafe fn decode(
620            &mut self,
621            decoder: &mut fidl::encoding::Decoder<'_, D>,
622            offset: usize,
623            _depth: fidl::encoding::Depth,
624        ) -> fidl::Result<()> {
625            decoder.debug_check_bounds::<Self>(offset);
626            // Verify that padding bytes are zero.
627            fidl::decode!(
628                fidl::encoding::BoundedString<256>,
629                D,
630                &mut self.key,
631                decoder,
632                offset + 0,
633                _depth
634            )?;
635            Ok(())
636        }
637    }
638
639    impl fidl::encoding::ValueTypeMarker for StoreAccessorGetValueRequest {
640        type Borrowed<'a> = &'a Self;
641        fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
642            value
643        }
644    }
645
646    unsafe impl fidl::encoding::TypeMarker for StoreAccessorGetValueRequest {
647        type Owned = Self;
648
649        #[inline(always)]
650        fn inline_align(_context: fidl::encoding::Context) -> usize {
651            8
652        }
653
654        #[inline(always)]
655        fn inline_size(_context: fidl::encoding::Context) -> usize {
656            16
657        }
658    }
659
660    unsafe impl<D: fidl::encoding::ResourceDialect>
661        fidl::encoding::Encode<StoreAccessorGetValueRequest, D> for &StoreAccessorGetValueRequest
662    {
663        #[inline]
664        unsafe fn encode(
665            self,
666            encoder: &mut fidl::encoding::Encoder<'_, D>,
667            offset: usize,
668            _depth: fidl::encoding::Depth,
669        ) -> fidl::Result<()> {
670            encoder.debug_check_bounds::<StoreAccessorGetValueRequest>(offset);
671            // Delegate to tuple encoding.
672            fidl::encoding::Encode::<StoreAccessorGetValueRequest, D>::encode(
673                (<fidl::encoding::BoundedString<256> as fidl::encoding::ValueTypeMarker>::borrow(
674                    &self.key,
675                ),),
676                encoder,
677                offset,
678                _depth,
679            )
680        }
681    }
682    unsafe impl<
683            D: fidl::encoding::ResourceDialect,
684            T0: fidl::encoding::Encode<fidl::encoding::BoundedString<256>, D>,
685        > fidl::encoding::Encode<StoreAccessorGetValueRequest, D> for (T0,)
686    {
687        #[inline]
688        unsafe fn encode(
689            self,
690            encoder: &mut fidl::encoding::Encoder<'_, D>,
691            offset: usize,
692            depth: fidl::encoding::Depth,
693        ) -> fidl::Result<()> {
694            encoder.debug_check_bounds::<StoreAccessorGetValueRequest>(offset);
695            // Zero out padding regions. There's no need to apply masks
696            // because the unmasked parts will be overwritten by fields.
697            // Write the fields.
698            self.0.encode(encoder, offset + 0, depth)?;
699            Ok(())
700        }
701    }
702
703    impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
704        for StoreAccessorGetValueRequest
705    {
706        #[inline(always)]
707        fn new_empty() -> Self {
708            Self { key: fidl::new_empty!(fidl::encoding::BoundedString<256>, D) }
709        }
710
711        #[inline]
712        unsafe fn decode(
713            &mut self,
714            decoder: &mut fidl::encoding::Decoder<'_, D>,
715            offset: usize,
716            _depth: fidl::encoding::Depth,
717        ) -> fidl::Result<()> {
718            decoder.debug_check_bounds::<Self>(offset);
719            // Verify that padding bytes are zero.
720            fidl::decode!(
721                fidl::encoding::BoundedString<256>,
722                D,
723                &mut self.key,
724                decoder,
725                offset + 0,
726                _depth
727            )?;
728            Ok(())
729        }
730    }
731
732    impl fidl::encoding::ValueTypeMarker for StoreIdentifyRequest {
733        type Borrowed<'a> = &'a Self;
734        fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
735            value
736        }
737    }
738
739    unsafe impl fidl::encoding::TypeMarker for StoreIdentifyRequest {
740        type Owned = Self;
741
742        #[inline(always)]
743        fn inline_align(_context: fidl::encoding::Context) -> usize {
744            8
745        }
746
747        #[inline(always)]
748        fn inline_size(_context: fidl::encoding::Context) -> usize {
749            16
750        }
751    }
752
753    unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<StoreIdentifyRequest, D>
754        for &StoreIdentifyRequest
755    {
756        #[inline]
757        unsafe fn encode(
758            self,
759            encoder: &mut fidl::encoding::Encoder<'_, D>,
760            offset: usize,
761            _depth: fidl::encoding::Depth,
762        ) -> fidl::Result<()> {
763            encoder.debug_check_bounds::<StoreIdentifyRequest>(offset);
764            // Delegate to tuple encoding.
765            fidl::encoding::Encode::<StoreIdentifyRequest, D>::encode(
766                (<fidl::encoding::BoundedString<256> as fidl::encoding::ValueTypeMarker>::borrow(
767                    &self.name,
768                ),),
769                encoder,
770                offset,
771                _depth,
772            )
773        }
774    }
775    unsafe impl<
776            D: fidl::encoding::ResourceDialect,
777            T0: fidl::encoding::Encode<fidl::encoding::BoundedString<256>, D>,
778        > fidl::encoding::Encode<StoreIdentifyRequest, D> for (T0,)
779    {
780        #[inline]
781        unsafe fn encode(
782            self,
783            encoder: &mut fidl::encoding::Encoder<'_, D>,
784            offset: usize,
785            depth: fidl::encoding::Depth,
786        ) -> fidl::Result<()> {
787            encoder.debug_check_bounds::<StoreIdentifyRequest>(offset);
788            // Zero out padding regions. There's no need to apply masks
789            // because the unmasked parts will be overwritten by fields.
790            // Write the fields.
791            self.0.encode(encoder, offset + 0, depth)?;
792            Ok(())
793        }
794    }
795
796    impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for StoreIdentifyRequest {
797        #[inline(always)]
798        fn new_empty() -> Self {
799            Self { name: fidl::new_empty!(fidl::encoding::BoundedString<256>, D) }
800        }
801
802        #[inline]
803        unsafe fn decode(
804            &mut self,
805            decoder: &mut fidl::encoding::Decoder<'_, D>,
806            offset: usize,
807            _depth: fidl::encoding::Depth,
808        ) -> fidl::Result<()> {
809            decoder.debug_check_bounds::<Self>(offset);
810            // Verify that padding bytes are zero.
811            fidl::decode!(
812                fidl::encoding::BoundedString<256>,
813                D,
814                &mut self.name,
815                decoder,
816                offset + 0,
817                _depth
818            )?;
819            Ok(())
820        }
821    }
822}