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 AttemptId = String;
12
13#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
15#[repr(u32)]
16pub enum CancelError {
17 NoUpdateInProgress = 1,
19 UpdateCannotBeCanceled = 2,
21 AttemptIdMismatch = 3,
23 CancelLimitExceeded = 4,
25}
26
27impl CancelError {
28 #[inline]
29 pub fn from_primitive(prim: u32) -> Option<Self> {
30 match prim {
31 1 => Some(Self::NoUpdateInProgress),
32 2 => Some(Self::UpdateCannotBeCanceled),
33 3 => Some(Self::AttemptIdMismatch),
34 4 => Some(Self::CancelLimitExceeded),
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)]
47#[repr(u32)]
48pub enum FetchFailureReason {
49 Internal = 0,
51 OutOfSpace = 1,
53}
54
55impl FetchFailureReason {
56 #[inline]
57 pub fn from_primitive(prim: u32) -> Option<Self> {
58 match prim {
59 0 => Some(Self::Internal),
60 1 => Some(Self::OutOfSpace),
61 _ => None,
62 }
63 }
64
65 #[inline]
66 pub const fn into_primitive(self) -> u32 {
67 self as u32
68 }
69}
70
71#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
73#[repr(u32)]
74pub enum Initiator {
75 User = 0,
78 Service = 1,
80}
81
82impl Initiator {
83 #[inline]
84 pub fn from_primitive(prim: u32) -> Option<Self> {
85 match prim {
86 0 => Some(Self::User),
87 1 => Some(Self::Service),
88 _ => None,
89 }
90 }
91
92 #[inline]
93 pub const fn into_primitive(self) -> u32 {
94 self as u32
95 }
96}
97
98#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
100#[repr(u32)]
101pub enum PrepareFailureReason {
102 Internal = 0,
104 OutOfSpace = 1,
107 UnsupportedDowngrade = 2,
111}
112
113impl PrepareFailureReason {
114 #[inline]
115 pub fn from_primitive(prim: u32) -> Option<Self> {
116 match prim {
117 0 => Some(Self::Internal),
118 1 => Some(Self::OutOfSpace),
119 2 => Some(Self::UnsupportedDowngrade),
120 _ => None,
121 }
122 }
123
124 #[inline]
125 pub const fn into_primitive(self) -> u32 {
126 self as u32
127 }
128}
129
130#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
132#[repr(u32)]
133pub enum ResumeError {
134 NoUpdateInProgress = 1,
136 AttemptIdMismatch = 2,
138}
139
140impl ResumeError {
141 #[inline]
142 pub fn from_primitive(prim: u32) -> Option<Self> {
143 match prim {
144 1 => Some(Self::NoUpdateInProgress),
145 2 => Some(Self::AttemptIdMismatch),
146 _ => None,
147 }
148 }
149
150 #[inline]
151 pub const fn into_primitive(self) -> u32 {
152 self as u32
153 }
154}
155
156#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
158#[repr(u32)]
159pub enum StageFailureReason {
160 Internal = 0,
162 OutOfSpace = 1,
164}
165
166impl StageFailureReason {
167 #[inline]
168 pub fn from_primitive(prim: u32) -> Option<Self> {
169 match prim {
170 0 => Some(Self::Internal),
171 1 => Some(Self::OutOfSpace),
172 _ => None,
173 }
174 }
175
176 #[inline]
177 pub const fn into_primitive(self) -> u32 {
178 self as u32
179 }
180}
181
182#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
184#[repr(u32)]
185pub enum SuspendError {
186 NoUpdateInProgress = 1,
188 SuspendLimitExceeded = 2,
190 AttemptIdMismatch = 3,
192}
193
194impl SuspendError {
195 #[inline]
196 pub fn from_primitive(prim: u32) -> Option<Self> {
197 match prim {
198 1 => Some(Self::NoUpdateInProgress),
199 2 => Some(Self::SuspendLimitExceeded),
200 3 => Some(Self::AttemptIdMismatch),
201 _ => None,
202 }
203 }
204
205 #[inline]
206 pub const fn into_primitive(self) -> u32 {
207 self as u32
208 }
209}
210
211#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
213#[repr(u32)]
214pub enum UpdateNotStartedReason {
215 AlreadyInProgress = 1,
218}
219
220impl UpdateNotStartedReason {
221 #[inline]
222 pub fn from_primitive(prim: u32) -> Option<Self> {
223 match prim {
224 1 => Some(Self::AlreadyInProgress),
225 _ => None,
226 }
227 }
228
229 #[inline]
230 pub const fn into_primitive(self) -> u32 {
231 self as u32
232 }
233}
234
235#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
236pub struct InstallerCancelUpdateRequest {
237 pub attempt_id: Option<String>,
238}
239
240impl fidl::Persistable for InstallerCancelUpdateRequest {}
241
242#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
243pub struct InstallerMonitorUpdateResponse {
244 pub attached: bool,
245}
246
247impl fidl::Persistable for InstallerMonitorUpdateResponse {}
248
249#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
250pub struct InstallerResumeUpdateRequest {
251 pub attempt_id: Option<String>,
252}
253
254impl fidl::Persistable for InstallerResumeUpdateRequest {}
255
256#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
257pub struct InstallerSuspendUpdateRequest {
258 pub attempt_id: Option<String>,
259}
260
261impl fidl::Persistable for InstallerSuspendUpdateRequest {}
262
263#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
264pub struct InstallerStartUpdateResponse {
265 pub attempt_id: String,
266}
267
268impl fidl::Persistable for InstallerStartUpdateResponse {}
269
270#[derive(Clone, Debug, PartialEq)]
271pub struct MonitorOnStateRequest {
272 pub state: State,
273}
274
275impl fidl::Persistable for MonitorOnStateRequest {}
276
277#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
279#[repr(C)]
280pub struct Range {
281 pub offset: u64,
283 pub size: u64,
285}
286
287impl fidl::Persistable for Range {}
288
289#[derive(Clone, Debug, Default, PartialEq)]
291pub struct CanceledData {
292 #[doc(hidden)]
293 pub __source_breaking: fidl::marker::SourceBreaking,
294}
295
296impl fidl::Persistable for CanceledData {}
297
298#[derive(Clone, Debug, Default, PartialEq)]
300pub struct CommitData {
301 pub info: Option<UpdateInfo>,
302 pub progress: Option<InstallationProgress>,
303 #[doc(hidden)]
304 pub __source_breaking: fidl::marker::SourceBreaking,
305}
306
307impl fidl::Persistable for CommitData {}
308
309#[derive(Clone, Debug, Default, PartialEq)]
311pub struct CompleteData {
312 pub info: Option<UpdateInfo>,
313 pub progress: Option<InstallationProgress>,
314 #[doc(hidden)]
315 pub __source_breaking: fidl::marker::SourceBreaking,
316}
317
318impl fidl::Persistable for CompleteData {}
319
320#[derive(Clone, Debug, Default, PartialEq)]
322pub struct DeferRebootData {
323 pub info: Option<UpdateInfo>,
324 pub progress: Option<InstallationProgress>,
325 #[doc(hidden)]
326 pub __source_breaking: fidl::marker::SourceBreaking,
327}
328
329impl fidl::Persistable for DeferRebootData {}
330
331#[derive(Clone, Debug, Default, PartialEq)]
333pub struct FailCommitData {
334 pub info: Option<UpdateInfo>,
335 pub progress: Option<InstallationProgress>,
336 #[doc(hidden)]
337 pub __source_breaking: fidl::marker::SourceBreaking,
338}
339
340impl fidl::Persistable for FailCommitData {}
341
342#[derive(Clone, Debug, Default, PartialEq)]
344pub struct FailFetchData {
345 pub info: Option<UpdateInfo>,
346 pub progress: Option<InstallationProgress>,
347 pub reason: Option<FetchFailureReason>,
348 #[doc(hidden)]
349 pub __source_breaking: fidl::marker::SourceBreaking,
350}
351
352impl fidl::Persistable for FailFetchData {}
353
354#[derive(Clone, Debug, Default, PartialEq)]
356pub struct FailPrepareData {
357 pub reason: Option<PrepareFailureReason>,
358 #[doc(hidden)]
359 pub __source_breaking: fidl::marker::SourceBreaking,
360}
361
362impl fidl::Persistable for FailPrepareData {}
363
364#[derive(Clone, Debug, Default, PartialEq)]
366pub struct FailStageData {
367 pub info: Option<UpdateInfo>,
368 pub progress: Option<InstallationProgress>,
369 pub reason: Option<StageFailureReason>,
370 #[doc(hidden)]
371 pub __source_breaking: fidl::marker::SourceBreaking,
372}
373
374impl fidl::Persistable for FailStageData {}
375
376#[derive(Clone, Debug, Default, PartialEq)]
378pub struct FetchData {
379 pub info: Option<UpdateInfo>,
380 pub progress: Option<InstallationProgress>,
381 #[doc(hidden)]
382 pub __source_breaking: fidl::marker::SourceBreaking,
383}
384
385impl fidl::Persistable for FetchData {}
386
387#[derive(Clone, Debug, Default, PartialEq)]
389pub struct InstallationProgress {
390 pub fraction_completed: Option<f32>,
392 pub bytes_downloaded: Option<u64>,
395 #[doc(hidden)]
396 pub __source_breaking: fidl::marker::SourceBreaking,
397}
398
399impl fidl::Persistable for InstallationProgress {}
400
401#[derive(Clone, Debug, Default, PartialEq)]
403pub struct Options {
404 pub initiator: Option<Initiator>,
406 pub allow_attach_to_existing_attempt: Option<bool>,
413 pub should_write_recovery: Option<bool>,
416 pub manifest_range: Option<Range>,
420 pub manifest_headers: Option<Vec<fidl_fuchsia_net_http_common::Header>>,
423 #[doc(hidden)]
424 pub __source_breaking: fidl::marker::SourceBreaking,
425}
426
427impl fidl::Persistable for Options {}
428
429#[derive(Clone, Debug, Default, PartialEq)]
431pub struct PrepareData {
432 #[doc(hidden)]
433 pub __source_breaking: fidl::marker::SourceBreaking,
434}
435
436impl fidl::Persistable for PrepareData {}
437
438#[derive(Clone, Debug, Default, PartialEq)]
440pub struct RebootData {
441 pub info: Option<UpdateInfo>,
442 pub progress: Option<InstallationProgress>,
443 #[doc(hidden)]
444 pub __source_breaking: fidl::marker::SourceBreaking,
445}
446
447impl fidl::Persistable for RebootData {}
448
449#[derive(Clone, Debug, Default, PartialEq)]
451pub struct StageData {
452 pub info: Option<UpdateInfo>,
453 pub progress: Option<InstallationProgress>,
454 #[doc(hidden)]
455 pub __source_breaking: fidl::marker::SourceBreaking,
456}
457
458impl fidl::Persistable for StageData {}
459
460#[derive(Clone, Debug, Default, PartialEq)]
463pub struct UpdateInfo {
464 pub download_size: Option<u64>,
467 #[doc(hidden)]
468 pub __source_breaking: fidl::marker::SourceBreaking,
469}
470
471impl fidl::Persistable for UpdateInfo {}
472
473#[derive(Clone, Debug, Default, PartialEq)]
475pub struct WaitToRebootData {
476 pub info: Option<UpdateInfo>,
477 pub progress: Option<InstallationProgress>,
478 #[doc(hidden)]
479 pub __source_breaking: fidl::marker::SourceBreaking,
480}
481
482impl fidl::Persistable for WaitToRebootData {}
483
484#[derive(Clone, Debug, PartialEq)]
526pub enum State {
527 Prepare(PrepareData),
535 Stage(StageData),
542 Fetch(FetchData),
549 Commit(CommitData),
558 WaitToReboot(WaitToRebootData),
565 Reboot(RebootData),
569 DeferReboot(DeferRebootData),
574 Complete(CompleteData),
578 FailPrepare(FailPrepareData),
582 FailStage(FailStageData),
586 FailFetch(FailFetchData),
590 FailCommit(FailCommitData),
594 Canceled(CanceledData),
598}
599
600impl State {
601 #[inline]
602 pub fn ordinal(&self) -> u64 {
603 match *self {
604 Self::Prepare(_) => 1,
605 Self::Stage(_) => 2,
606 Self::Fetch(_) => 3,
607 Self::Commit(_) => 4,
608 Self::WaitToReboot(_) => 5,
609 Self::Reboot(_) => 6,
610 Self::DeferReboot(_) => 7,
611 Self::Complete(_) => 8,
612 Self::FailPrepare(_) => 9,
613 Self::FailStage(_) => 10,
614 Self::FailFetch(_) => 11,
615 Self::FailCommit(_) => 12,
616 Self::Canceled(_) => 13,
617 }
618 }
619}
620
621impl fidl::Persistable for State {}
622
623pub mod installer_ordinals {
624 pub const START_UPDATE: u64 = 0x2b1c5ba9167c320b;
625 pub const MONITOR_UPDATE: u64 = 0x21d54aa1fd825a32;
626 pub const SUSPEND_UPDATE: u64 = 0x788de328461f9950;
627 pub const RESUME_UPDATE: u64 = 0x7479e805fec33dd3;
628 pub const CANCEL_UPDATE: u64 = 0x472dec9160a1d0f;
629}
630
631pub mod monitor_ordinals {
632 pub const ON_STATE: u64 = 0x574105820d16cf26;
633}
634
635pub mod reboot_controller_ordinals {
636 pub const UNBLOCK: u64 = 0x5705625395e3d520;
637 pub const DETACH: u64 = 0x1daa560411955f16;
638}
639
640mod internal {
641 use super::*;
642 unsafe impl fidl::encoding::TypeMarker for CancelError {
643 type Owned = Self;
644
645 #[inline(always)]
646 fn inline_align(_context: fidl::encoding::Context) -> usize {
647 std::mem::align_of::<u32>()
648 }
649
650 #[inline(always)]
651 fn inline_size(_context: fidl::encoding::Context) -> usize {
652 std::mem::size_of::<u32>()
653 }
654
655 #[inline(always)]
656 fn encode_is_copy() -> bool {
657 true
658 }
659
660 #[inline(always)]
661 fn decode_is_copy() -> bool {
662 false
663 }
664 }
665
666 impl fidl::encoding::ValueTypeMarker for CancelError {
667 type Borrowed<'a> = Self;
668 #[inline(always)]
669 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
670 *value
671 }
672 }
673
674 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for CancelError {
675 #[inline]
676 unsafe fn encode(
677 self,
678 encoder: &mut fidl::encoding::Encoder<'_, D>,
679 offset: usize,
680 _depth: fidl::encoding::Depth,
681 ) -> fidl::Result<()> {
682 encoder.debug_check_bounds::<Self>(offset);
683 encoder.write_num(self.into_primitive(), offset);
684 Ok(())
685 }
686 }
687
688 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for CancelError {
689 #[inline(always)]
690 fn new_empty() -> Self {
691 Self::NoUpdateInProgress
692 }
693
694 #[inline]
695 unsafe fn decode(
696 &mut self,
697 decoder: &mut fidl::encoding::Decoder<'_, D>,
698 offset: usize,
699 _depth: fidl::encoding::Depth,
700 ) -> fidl::Result<()> {
701 decoder.debug_check_bounds::<Self>(offset);
702 let prim = decoder.read_num::<u32>(offset);
703
704 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
705 Ok(())
706 }
707 }
708 unsafe impl fidl::encoding::TypeMarker for FetchFailureReason {
709 type Owned = Self;
710
711 #[inline(always)]
712 fn inline_align(_context: fidl::encoding::Context) -> usize {
713 std::mem::align_of::<u32>()
714 }
715
716 #[inline(always)]
717 fn inline_size(_context: fidl::encoding::Context) -> usize {
718 std::mem::size_of::<u32>()
719 }
720
721 #[inline(always)]
722 fn encode_is_copy() -> bool {
723 true
724 }
725
726 #[inline(always)]
727 fn decode_is_copy() -> bool {
728 false
729 }
730 }
731
732 impl fidl::encoding::ValueTypeMarker for FetchFailureReason {
733 type Borrowed<'a> = Self;
734 #[inline(always)]
735 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
736 *value
737 }
738 }
739
740 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
741 for FetchFailureReason
742 {
743 #[inline]
744 unsafe fn encode(
745 self,
746 encoder: &mut fidl::encoding::Encoder<'_, D>,
747 offset: usize,
748 _depth: fidl::encoding::Depth,
749 ) -> fidl::Result<()> {
750 encoder.debug_check_bounds::<Self>(offset);
751 encoder.write_num(self.into_primitive(), offset);
752 Ok(())
753 }
754 }
755
756 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for FetchFailureReason {
757 #[inline(always)]
758 fn new_empty() -> Self {
759 Self::Internal
760 }
761
762 #[inline]
763 unsafe fn decode(
764 &mut self,
765 decoder: &mut fidl::encoding::Decoder<'_, D>,
766 offset: usize,
767 _depth: fidl::encoding::Depth,
768 ) -> fidl::Result<()> {
769 decoder.debug_check_bounds::<Self>(offset);
770 let prim = decoder.read_num::<u32>(offset);
771
772 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
773 Ok(())
774 }
775 }
776 unsafe impl fidl::encoding::TypeMarker for Initiator {
777 type Owned = Self;
778
779 #[inline(always)]
780 fn inline_align(_context: fidl::encoding::Context) -> usize {
781 std::mem::align_of::<u32>()
782 }
783
784 #[inline(always)]
785 fn inline_size(_context: fidl::encoding::Context) -> usize {
786 std::mem::size_of::<u32>()
787 }
788
789 #[inline(always)]
790 fn encode_is_copy() -> bool {
791 true
792 }
793
794 #[inline(always)]
795 fn decode_is_copy() -> bool {
796 false
797 }
798 }
799
800 impl fidl::encoding::ValueTypeMarker for Initiator {
801 type Borrowed<'a> = Self;
802 #[inline(always)]
803 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
804 *value
805 }
806 }
807
808 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for Initiator {
809 #[inline]
810 unsafe fn encode(
811 self,
812 encoder: &mut fidl::encoding::Encoder<'_, D>,
813 offset: usize,
814 _depth: fidl::encoding::Depth,
815 ) -> fidl::Result<()> {
816 encoder.debug_check_bounds::<Self>(offset);
817 encoder.write_num(self.into_primitive(), offset);
818 Ok(())
819 }
820 }
821
822 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Initiator {
823 #[inline(always)]
824 fn new_empty() -> Self {
825 Self::User
826 }
827
828 #[inline]
829 unsafe fn decode(
830 &mut self,
831 decoder: &mut fidl::encoding::Decoder<'_, D>,
832 offset: usize,
833 _depth: fidl::encoding::Depth,
834 ) -> fidl::Result<()> {
835 decoder.debug_check_bounds::<Self>(offset);
836 let prim = decoder.read_num::<u32>(offset);
837
838 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
839 Ok(())
840 }
841 }
842 unsafe impl fidl::encoding::TypeMarker for PrepareFailureReason {
843 type Owned = Self;
844
845 #[inline(always)]
846 fn inline_align(_context: fidl::encoding::Context) -> usize {
847 std::mem::align_of::<u32>()
848 }
849
850 #[inline(always)]
851 fn inline_size(_context: fidl::encoding::Context) -> usize {
852 std::mem::size_of::<u32>()
853 }
854
855 #[inline(always)]
856 fn encode_is_copy() -> bool {
857 true
858 }
859
860 #[inline(always)]
861 fn decode_is_copy() -> bool {
862 false
863 }
864 }
865
866 impl fidl::encoding::ValueTypeMarker for PrepareFailureReason {
867 type Borrowed<'a> = Self;
868 #[inline(always)]
869 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
870 *value
871 }
872 }
873
874 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
875 for PrepareFailureReason
876 {
877 #[inline]
878 unsafe fn encode(
879 self,
880 encoder: &mut fidl::encoding::Encoder<'_, D>,
881 offset: usize,
882 _depth: fidl::encoding::Depth,
883 ) -> fidl::Result<()> {
884 encoder.debug_check_bounds::<Self>(offset);
885 encoder.write_num(self.into_primitive(), offset);
886 Ok(())
887 }
888 }
889
890 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for PrepareFailureReason {
891 #[inline(always)]
892 fn new_empty() -> Self {
893 Self::Internal
894 }
895
896 #[inline]
897 unsafe fn decode(
898 &mut self,
899 decoder: &mut fidl::encoding::Decoder<'_, D>,
900 offset: usize,
901 _depth: fidl::encoding::Depth,
902 ) -> fidl::Result<()> {
903 decoder.debug_check_bounds::<Self>(offset);
904 let prim = decoder.read_num::<u32>(offset);
905
906 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
907 Ok(())
908 }
909 }
910 unsafe impl fidl::encoding::TypeMarker for ResumeError {
911 type Owned = Self;
912
913 #[inline(always)]
914 fn inline_align(_context: fidl::encoding::Context) -> usize {
915 std::mem::align_of::<u32>()
916 }
917
918 #[inline(always)]
919 fn inline_size(_context: fidl::encoding::Context) -> usize {
920 std::mem::size_of::<u32>()
921 }
922
923 #[inline(always)]
924 fn encode_is_copy() -> bool {
925 true
926 }
927
928 #[inline(always)]
929 fn decode_is_copy() -> bool {
930 false
931 }
932 }
933
934 impl fidl::encoding::ValueTypeMarker for ResumeError {
935 type Borrowed<'a> = Self;
936 #[inline(always)]
937 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
938 *value
939 }
940 }
941
942 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for ResumeError {
943 #[inline]
944 unsafe fn encode(
945 self,
946 encoder: &mut fidl::encoding::Encoder<'_, D>,
947 offset: usize,
948 _depth: fidl::encoding::Depth,
949 ) -> fidl::Result<()> {
950 encoder.debug_check_bounds::<Self>(offset);
951 encoder.write_num(self.into_primitive(), offset);
952 Ok(())
953 }
954 }
955
956 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ResumeError {
957 #[inline(always)]
958 fn new_empty() -> Self {
959 Self::NoUpdateInProgress
960 }
961
962 #[inline]
963 unsafe fn decode(
964 &mut self,
965 decoder: &mut fidl::encoding::Decoder<'_, D>,
966 offset: usize,
967 _depth: fidl::encoding::Depth,
968 ) -> fidl::Result<()> {
969 decoder.debug_check_bounds::<Self>(offset);
970 let prim = decoder.read_num::<u32>(offset);
971
972 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
973 Ok(())
974 }
975 }
976 unsafe impl fidl::encoding::TypeMarker for StageFailureReason {
977 type Owned = Self;
978
979 #[inline(always)]
980 fn inline_align(_context: fidl::encoding::Context) -> usize {
981 std::mem::align_of::<u32>()
982 }
983
984 #[inline(always)]
985 fn inline_size(_context: fidl::encoding::Context) -> usize {
986 std::mem::size_of::<u32>()
987 }
988
989 #[inline(always)]
990 fn encode_is_copy() -> bool {
991 true
992 }
993
994 #[inline(always)]
995 fn decode_is_copy() -> bool {
996 false
997 }
998 }
999
1000 impl fidl::encoding::ValueTypeMarker for StageFailureReason {
1001 type Borrowed<'a> = Self;
1002 #[inline(always)]
1003 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1004 *value
1005 }
1006 }
1007
1008 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
1009 for StageFailureReason
1010 {
1011 #[inline]
1012 unsafe fn encode(
1013 self,
1014 encoder: &mut fidl::encoding::Encoder<'_, D>,
1015 offset: usize,
1016 _depth: fidl::encoding::Depth,
1017 ) -> fidl::Result<()> {
1018 encoder.debug_check_bounds::<Self>(offset);
1019 encoder.write_num(self.into_primitive(), offset);
1020 Ok(())
1021 }
1022 }
1023
1024 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for StageFailureReason {
1025 #[inline(always)]
1026 fn new_empty() -> Self {
1027 Self::Internal
1028 }
1029
1030 #[inline]
1031 unsafe fn decode(
1032 &mut self,
1033 decoder: &mut fidl::encoding::Decoder<'_, D>,
1034 offset: usize,
1035 _depth: fidl::encoding::Depth,
1036 ) -> fidl::Result<()> {
1037 decoder.debug_check_bounds::<Self>(offset);
1038 let prim = decoder.read_num::<u32>(offset);
1039
1040 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
1041 Ok(())
1042 }
1043 }
1044 unsafe impl fidl::encoding::TypeMarker for SuspendError {
1045 type Owned = Self;
1046
1047 #[inline(always)]
1048 fn inline_align(_context: fidl::encoding::Context) -> usize {
1049 std::mem::align_of::<u32>()
1050 }
1051
1052 #[inline(always)]
1053 fn inline_size(_context: fidl::encoding::Context) -> usize {
1054 std::mem::size_of::<u32>()
1055 }
1056
1057 #[inline(always)]
1058 fn encode_is_copy() -> bool {
1059 true
1060 }
1061
1062 #[inline(always)]
1063 fn decode_is_copy() -> bool {
1064 false
1065 }
1066 }
1067
1068 impl fidl::encoding::ValueTypeMarker for SuspendError {
1069 type Borrowed<'a> = Self;
1070 #[inline(always)]
1071 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1072 *value
1073 }
1074 }
1075
1076 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for SuspendError {
1077 #[inline]
1078 unsafe fn encode(
1079 self,
1080 encoder: &mut fidl::encoding::Encoder<'_, D>,
1081 offset: usize,
1082 _depth: fidl::encoding::Depth,
1083 ) -> fidl::Result<()> {
1084 encoder.debug_check_bounds::<Self>(offset);
1085 encoder.write_num(self.into_primitive(), offset);
1086 Ok(())
1087 }
1088 }
1089
1090 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for SuspendError {
1091 #[inline(always)]
1092 fn new_empty() -> Self {
1093 Self::NoUpdateInProgress
1094 }
1095
1096 #[inline]
1097 unsafe fn decode(
1098 &mut self,
1099 decoder: &mut fidl::encoding::Decoder<'_, D>,
1100 offset: usize,
1101 _depth: fidl::encoding::Depth,
1102 ) -> fidl::Result<()> {
1103 decoder.debug_check_bounds::<Self>(offset);
1104 let prim = decoder.read_num::<u32>(offset);
1105
1106 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
1107 Ok(())
1108 }
1109 }
1110 unsafe impl fidl::encoding::TypeMarker for UpdateNotStartedReason {
1111 type Owned = Self;
1112
1113 #[inline(always)]
1114 fn inline_align(_context: fidl::encoding::Context) -> usize {
1115 std::mem::align_of::<u32>()
1116 }
1117
1118 #[inline(always)]
1119 fn inline_size(_context: fidl::encoding::Context) -> usize {
1120 std::mem::size_of::<u32>()
1121 }
1122
1123 #[inline(always)]
1124 fn encode_is_copy() -> bool {
1125 true
1126 }
1127
1128 #[inline(always)]
1129 fn decode_is_copy() -> bool {
1130 false
1131 }
1132 }
1133
1134 impl fidl::encoding::ValueTypeMarker for UpdateNotStartedReason {
1135 type Borrowed<'a> = Self;
1136 #[inline(always)]
1137 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1138 *value
1139 }
1140 }
1141
1142 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
1143 for UpdateNotStartedReason
1144 {
1145 #[inline]
1146 unsafe fn encode(
1147 self,
1148 encoder: &mut fidl::encoding::Encoder<'_, D>,
1149 offset: usize,
1150 _depth: fidl::encoding::Depth,
1151 ) -> fidl::Result<()> {
1152 encoder.debug_check_bounds::<Self>(offset);
1153 encoder.write_num(self.into_primitive(), offset);
1154 Ok(())
1155 }
1156 }
1157
1158 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1159 for UpdateNotStartedReason
1160 {
1161 #[inline(always)]
1162 fn new_empty() -> Self {
1163 Self::AlreadyInProgress
1164 }
1165
1166 #[inline]
1167 unsafe fn decode(
1168 &mut self,
1169 decoder: &mut fidl::encoding::Decoder<'_, D>,
1170 offset: usize,
1171 _depth: fidl::encoding::Depth,
1172 ) -> fidl::Result<()> {
1173 decoder.debug_check_bounds::<Self>(offset);
1174 let prim = decoder.read_num::<u32>(offset);
1175
1176 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
1177 Ok(())
1178 }
1179 }
1180
1181 impl fidl::encoding::ValueTypeMarker for InstallerCancelUpdateRequest {
1182 type Borrowed<'a> = &'a Self;
1183 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1184 value
1185 }
1186 }
1187
1188 unsafe impl fidl::encoding::TypeMarker for InstallerCancelUpdateRequest {
1189 type Owned = Self;
1190
1191 #[inline(always)]
1192 fn inline_align(_context: fidl::encoding::Context) -> usize {
1193 8
1194 }
1195
1196 #[inline(always)]
1197 fn inline_size(_context: fidl::encoding::Context) -> usize {
1198 16
1199 }
1200 }
1201
1202 unsafe impl<D: fidl::encoding::ResourceDialect>
1203 fidl::encoding::Encode<InstallerCancelUpdateRequest, D> for &InstallerCancelUpdateRequest
1204 {
1205 #[inline]
1206 unsafe fn encode(
1207 self,
1208 encoder: &mut fidl::encoding::Encoder<'_, D>,
1209 offset: usize,
1210 _depth: fidl::encoding::Depth,
1211 ) -> fidl::Result<()> {
1212 encoder.debug_check_bounds::<InstallerCancelUpdateRequest>(offset);
1213 fidl::encoding::Encode::<InstallerCancelUpdateRequest, D>::encode(
1215 (
1216 <fidl::encoding::Optional<fidl::encoding::BoundedString<36>> as fidl::encoding::ValueTypeMarker>::borrow(&self.attempt_id),
1217 ),
1218 encoder, offset, _depth
1219 )
1220 }
1221 }
1222 unsafe impl<
1223 D: fidl::encoding::ResourceDialect,
1224 T0: fidl::encoding::Encode<fidl::encoding::Optional<fidl::encoding::BoundedString<36>>, D>,
1225 > fidl::encoding::Encode<InstallerCancelUpdateRequest, D> for (T0,)
1226 {
1227 #[inline]
1228 unsafe fn encode(
1229 self,
1230 encoder: &mut fidl::encoding::Encoder<'_, D>,
1231 offset: usize,
1232 depth: fidl::encoding::Depth,
1233 ) -> fidl::Result<()> {
1234 encoder.debug_check_bounds::<InstallerCancelUpdateRequest>(offset);
1235 self.0.encode(encoder, offset + 0, depth)?;
1239 Ok(())
1240 }
1241 }
1242
1243 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1244 for InstallerCancelUpdateRequest
1245 {
1246 #[inline(always)]
1247 fn new_empty() -> Self {
1248 Self {
1249 attempt_id: fidl::new_empty!(
1250 fidl::encoding::Optional<fidl::encoding::BoundedString<36>>,
1251 D
1252 ),
1253 }
1254 }
1255
1256 #[inline]
1257 unsafe fn decode(
1258 &mut self,
1259 decoder: &mut fidl::encoding::Decoder<'_, D>,
1260 offset: usize,
1261 _depth: fidl::encoding::Depth,
1262 ) -> fidl::Result<()> {
1263 decoder.debug_check_bounds::<Self>(offset);
1264 fidl::decode!(
1266 fidl::encoding::Optional<fidl::encoding::BoundedString<36>>,
1267 D,
1268 &mut self.attempt_id,
1269 decoder,
1270 offset + 0,
1271 _depth
1272 )?;
1273 Ok(())
1274 }
1275 }
1276
1277 impl fidl::encoding::ValueTypeMarker for InstallerMonitorUpdateResponse {
1278 type Borrowed<'a> = &'a Self;
1279 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1280 value
1281 }
1282 }
1283
1284 unsafe impl fidl::encoding::TypeMarker for InstallerMonitorUpdateResponse {
1285 type Owned = Self;
1286
1287 #[inline(always)]
1288 fn inline_align(_context: fidl::encoding::Context) -> usize {
1289 1
1290 }
1291
1292 #[inline(always)]
1293 fn inline_size(_context: fidl::encoding::Context) -> usize {
1294 1
1295 }
1296 }
1297
1298 unsafe impl<D: fidl::encoding::ResourceDialect>
1299 fidl::encoding::Encode<InstallerMonitorUpdateResponse, D>
1300 for &InstallerMonitorUpdateResponse
1301 {
1302 #[inline]
1303 unsafe fn encode(
1304 self,
1305 encoder: &mut fidl::encoding::Encoder<'_, D>,
1306 offset: usize,
1307 _depth: fidl::encoding::Depth,
1308 ) -> fidl::Result<()> {
1309 encoder.debug_check_bounds::<InstallerMonitorUpdateResponse>(offset);
1310 fidl::encoding::Encode::<InstallerMonitorUpdateResponse, D>::encode(
1312 (<bool as fidl::encoding::ValueTypeMarker>::borrow(&self.attached),),
1313 encoder,
1314 offset,
1315 _depth,
1316 )
1317 }
1318 }
1319 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<bool, D>>
1320 fidl::encoding::Encode<InstallerMonitorUpdateResponse, D> for (T0,)
1321 {
1322 #[inline]
1323 unsafe fn encode(
1324 self,
1325 encoder: &mut fidl::encoding::Encoder<'_, D>,
1326 offset: usize,
1327 depth: fidl::encoding::Depth,
1328 ) -> fidl::Result<()> {
1329 encoder.debug_check_bounds::<InstallerMonitorUpdateResponse>(offset);
1330 self.0.encode(encoder, offset + 0, depth)?;
1334 Ok(())
1335 }
1336 }
1337
1338 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1339 for InstallerMonitorUpdateResponse
1340 {
1341 #[inline(always)]
1342 fn new_empty() -> Self {
1343 Self { attached: fidl::new_empty!(bool, D) }
1344 }
1345
1346 #[inline]
1347 unsafe fn decode(
1348 &mut self,
1349 decoder: &mut fidl::encoding::Decoder<'_, D>,
1350 offset: usize,
1351 _depth: fidl::encoding::Depth,
1352 ) -> fidl::Result<()> {
1353 decoder.debug_check_bounds::<Self>(offset);
1354 fidl::decode!(bool, D, &mut self.attached, decoder, offset + 0, _depth)?;
1356 Ok(())
1357 }
1358 }
1359
1360 impl fidl::encoding::ValueTypeMarker for InstallerResumeUpdateRequest {
1361 type Borrowed<'a> = &'a Self;
1362 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1363 value
1364 }
1365 }
1366
1367 unsafe impl fidl::encoding::TypeMarker for InstallerResumeUpdateRequest {
1368 type Owned = Self;
1369
1370 #[inline(always)]
1371 fn inline_align(_context: fidl::encoding::Context) -> usize {
1372 8
1373 }
1374
1375 #[inline(always)]
1376 fn inline_size(_context: fidl::encoding::Context) -> usize {
1377 16
1378 }
1379 }
1380
1381 unsafe impl<D: fidl::encoding::ResourceDialect>
1382 fidl::encoding::Encode<InstallerResumeUpdateRequest, D> for &InstallerResumeUpdateRequest
1383 {
1384 #[inline]
1385 unsafe fn encode(
1386 self,
1387 encoder: &mut fidl::encoding::Encoder<'_, D>,
1388 offset: usize,
1389 _depth: fidl::encoding::Depth,
1390 ) -> fidl::Result<()> {
1391 encoder.debug_check_bounds::<InstallerResumeUpdateRequest>(offset);
1392 fidl::encoding::Encode::<InstallerResumeUpdateRequest, D>::encode(
1394 (
1395 <fidl::encoding::Optional<fidl::encoding::BoundedString<36>> as fidl::encoding::ValueTypeMarker>::borrow(&self.attempt_id),
1396 ),
1397 encoder, offset, _depth
1398 )
1399 }
1400 }
1401 unsafe impl<
1402 D: fidl::encoding::ResourceDialect,
1403 T0: fidl::encoding::Encode<fidl::encoding::Optional<fidl::encoding::BoundedString<36>>, D>,
1404 > fidl::encoding::Encode<InstallerResumeUpdateRequest, D> for (T0,)
1405 {
1406 #[inline]
1407 unsafe fn encode(
1408 self,
1409 encoder: &mut fidl::encoding::Encoder<'_, D>,
1410 offset: usize,
1411 depth: fidl::encoding::Depth,
1412 ) -> fidl::Result<()> {
1413 encoder.debug_check_bounds::<InstallerResumeUpdateRequest>(offset);
1414 self.0.encode(encoder, offset + 0, depth)?;
1418 Ok(())
1419 }
1420 }
1421
1422 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1423 for InstallerResumeUpdateRequest
1424 {
1425 #[inline(always)]
1426 fn new_empty() -> Self {
1427 Self {
1428 attempt_id: fidl::new_empty!(
1429 fidl::encoding::Optional<fidl::encoding::BoundedString<36>>,
1430 D
1431 ),
1432 }
1433 }
1434
1435 #[inline]
1436 unsafe fn decode(
1437 &mut self,
1438 decoder: &mut fidl::encoding::Decoder<'_, D>,
1439 offset: usize,
1440 _depth: fidl::encoding::Depth,
1441 ) -> fidl::Result<()> {
1442 decoder.debug_check_bounds::<Self>(offset);
1443 fidl::decode!(
1445 fidl::encoding::Optional<fidl::encoding::BoundedString<36>>,
1446 D,
1447 &mut self.attempt_id,
1448 decoder,
1449 offset + 0,
1450 _depth
1451 )?;
1452 Ok(())
1453 }
1454 }
1455
1456 impl fidl::encoding::ValueTypeMarker for InstallerSuspendUpdateRequest {
1457 type Borrowed<'a> = &'a Self;
1458 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1459 value
1460 }
1461 }
1462
1463 unsafe impl fidl::encoding::TypeMarker for InstallerSuspendUpdateRequest {
1464 type Owned = Self;
1465
1466 #[inline(always)]
1467 fn inline_align(_context: fidl::encoding::Context) -> usize {
1468 8
1469 }
1470
1471 #[inline(always)]
1472 fn inline_size(_context: fidl::encoding::Context) -> usize {
1473 16
1474 }
1475 }
1476
1477 unsafe impl<D: fidl::encoding::ResourceDialect>
1478 fidl::encoding::Encode<InstallerSuspendUpdateRequest, D>
1479 for &InstallerSuspendUpdateRequest
1480 {
1481 #[inline]
1482 unsafe fn encode(
1483 self,
1484 encoder: &mut fidl::encoding::Encoder<'_, D>,
1485 offset: usize,
1486 _depth: fidl::encoding::Depth,
1487 ) -> fidl::Result<()> {
1488 encoder.debug_check_bounds::<InstallerSuspendUpdateRequest>(offset);
1489 fidl::encoding::Encode::<InstallerSuspendUpdateRequest, D>::encode(
1491 (
1492 <fidl::encoding::Optional<fidl::encoding::BoundedString<36>> as fidl::encoding::ValueTypeMarker>::borrow(&self.attempt_id),
1493 ),
1494 encoder, offset, _depth
1495 )
1496 }
1497 }
1498 unsafe impl<
1499 D: fidl::encoding::ResourceDialect,
1500 T0: fidl::encoding::Encode<fidl::encoding::Optional<fidl::encoding::BoundedString<36>>, D>,
1501 > fidl::encoding::Encode<InstallerSuspendUpdateRequest, D> for (T0,)
1502 {
1503 #[inline]
1504 unsafe fn encode(
1505 self,
1506 encoder: &mut fidl::encoding::Encoder<'_, D>,
1507 offset: usize,
1508 depth: fidl::encoding::Depth,
1509 ) -> fidl::Result<()> {
1510 encoder.debug_check_bounds::<InstallerSuspendUpdateRequest>(offset);
1511 self.0.encode(encoder, offset + 0, depth)?;
1515 Ok(())
1516 }
1517 }
1518
1519 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1520 for InstallerSuspendUpdateRequest
1521 {
1522 #[inline(always)]
1523 fn new_empty() -> Self {
1524 Self {
1525 attempt_id: fidl::new_empty!(
1526 fidl::encoding::Optional<fidl::encoding::BoundedString<36>>,
1527 D
1528 ),
1529 }
1530 }
1531
1532 #[inline]
1533 unsafe fn decode(
1534 &mut self,
1535 decoder: &mut fidl::encoding::Decoder<'_, D>,
1536 offset: usize,
1537 _depth: fidl::encoding::Depth,
1538 ) -> fidl::Result<()> {
1539 decoder.debug_check_bounds::<Self>(offset);
1540 fidl::decode!(
1542 fidl::encoding::Optional<fidl::encoding::BoundedString<36>>,
1543 D,
1544 &mut self.attempt_id,
1545 decoder,
1546 offset + 0,
1547 _depth
1548 )?;
1549 Ok(())
1550 }
1551 }
1552
1553 impl fidl::encoding::ValueTypeMarker for InstallerStartUpdateResponse {
1554 type Borrowed<'a> = &'a Self;
1555 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1556 value
1557 }
1558 }
1559
1560 unsafe impl fidl::encoding::TypeMarker for InstallerStartUpdateResponse {
1561 type Owned = Self;
1562
1563 #[inline(always)]
1564 fn inline_align(_context: fidl::encoding::Context) -> usize {
1565 8
1566 }
1567
1568 #[inline(always)]
1569 fn inline_size(_context: fidl::encoding::Context) -> usize {
1570 16
1571 }
1572 }
1573
1574 unsafe impl<D: fidl::encoding::ResourceDialect>
1575 fidl::encoding::Encode<InstallerStartUpdateResponse, D> for &InstallerStartUpdateResponse
1576 {
1577 #[inline]
1578 unsafe fn encode(
1579 self,
1580 encoder: &mut fidl::encoding::Encoder<'_, D>,
1581 offset: usize,
1582 _depth: fidl::encoding::Depth,
1583 ) -> fidl::Result<()> {
1584 encoder.debug_check_bounds::<InstallerStartUpdateResponse>(offset);
1585 fidl::encoding::Encode::<InstallerStartUpdateResponse, D>::encode(
1587 (<fidl::encoding::BoundedString<36> as fidl::encoding::ValueTypeMarker>::borrow(
1588 &self.attempt_id,
1589 ),),
1590 encoder,
1591 offset,
1592 _depth,
1593 )
1594 }
1595 }
1596 unsafe impl<
1597 D: fidl::encoding::ResourceDialect,
1598 T0: fidl::encoding::Encode<fidl::encoding::BoundedString<36>, D>,
1599 > fidl::encoding::Encode<InstallerStartUpdateResponse, D> for (T0,)
1600 {
1601 #[inline]
1602 unsafe fn encode(
1603 self,
1604 encoder: &mut fidl::encoding::Encoder<'_, D>,
1605 offset: usize,
1606 depth: fidl::encoding::Depth,
1607 ) -> fidl::Result<()> {
1608 encoder.debug_check_bounds::<InstallerStartUpdateResponse>(offset);
1609 self.0.encode(encoder, offset + 0, depth)?;
1613 Ok(())
1614 }
1615 }
1616
1617 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1618 for InstallerStartUpdateResponse
1619 {
1620 #[inline(always)]
1621 fn new_empty() -> Self {
1622 Self { attempt_id: fidl::new_empty!(fidl::encoding::BoundedString<36>, D) }
1623 }
1624
1625 #[inline]
1626 unsafe fn decode(
1627 &mut self,
1628 decoder: &mut fidl::encoding::Decoder<'_, D>,
1629 offset: usize,
1630 _depth: fidl::encoding::Depth,
1631 ) -> fidl::Result<()> {
1632 decoder.debug_check_bounds::<Self>(offset);
1633 fidl::decode!(
1635 fidl::encoding::BoundedString<36>,
1636 D,
1637 &mut self.attempt_id,
1638 decoder,
1639 offset + 0,
1640 _depth
1641 )?;
1642 Ok(())
1643 }
1644 }
1645
1646 impl fidl::encoding::ValueTypeMarker for MonitorOnStateRequest {
1647 type Borrowed<'a> = &'a Self;
1648 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1649 value
1650 }
1651 }
1652
1653 unsafe impl fidl::encoding::TypeMarker for MonitorOnStateRequest {
1654 type Owned = Self;
1655
1656 #[inline(always)]
1657 fn inline_align(_context: fidl::encoding::Context) -> usize {
1658 8
1659 }
1660
1661 #[inline(always)]
1662 fn inline_size(_context: fidl::encoding::Context) -> usize {
1663 16
1664 }
1665 }
1666
1667 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<MonitorOnStateRequest, D>
1668 for &MonitorOnStateRequest
1669 {
1670 #[inline]
1671 unsafe fn encode(
1672 self,
1673 encoder: &mut fidl::encoding::Encoder<'_, D>,
1674 offset: usize,
1675 _depth: fidl::encoding::Depth,
1676 ) -> fidl::Result<()> {
1677 encoder.debug_check_bounds::<MonitorOnStateRequest>(offset);
1678 fidl::encoding::Encode::<MonitorOnStateRequest, D>::encode(
1680 (<State as fidl::encoding::ValueTypeMarker>::borrow(&self.state),),
1681 encoder,
1682 offset,
1683 _depth,
1684 )
1685 }
1686 }
1687 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<State, D>>
1688 fidl::encoding::Encode<MonitorOnStateRequest, D> for (T0,)
1689 {
1690 #[inline]
1691 unsafe fn encode(
1692 self,
1693 encoder: &mut fidl::encoding::Encoder<'_, D>,
1694 offset: usize,
1695 depth: fidl::encoding::Depth,
1696 ) -> fidl::Result<()> {
1697 encoder.debug_check_bounds::<MonitorOnStateRequest>(offset);
1698 self.0.encode(encoder, offset + 0, depth)?;
1702 Ok(())
1703 }
1704 }
1705
1706 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for MonitorOnStateRequest {
1707 #[inline(always)]
1708 fn new_empty() -> Self {
1709 Self { state: fidl::new_empty!(State, D) }
1710 }
1711
1712 #[inline]
1713 unsafe fn decode(
1714 &mut self,
1715 decoder: &mut fidl::encoding::Decoder<'_, D>,
1716 offset: usize,
1717 _depth: fidl::encoding::Depth,
1718 ) -> fidl::Result<()> {
1719 decoder.debug_check_bounds::<Self>(offset);
1720 fidl::decode!(State, D, &mut self.state, decoder, offset + 0, _depth)?;
1722 Ok(())
1723 }
1724 }
1725
1726 impl fidl::encoding::ValueTypeMarker for Range {
1727 type Borrowed<'a> = &'a Self;
1728 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1729 value
1730 }
1731 }
1732
1733 unsafe impl fidl::encoding::TypeMarker for Range {
1734 type Owned = Self;
1735
1736 #[inline(always)]
1737 fn inline_align(_context: fidl::encoding::Context) -> usize {
1738 8
1739 }
1740
1741 #[inline(always)]
1742 fn inline_size(_context: fidl::encoding::Context) -> usize {
1743 16
1744 }
1745 #[inline(always)]
1746 fn encode_is_copy() -> bool {
1747 true
1748 }
1749
1750 #[inline(always)]
1751 fn decode_is_copy() -> bool {
1752 true
1753 }
1754 }
1755
1756 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Range, D> for &Range {
1757 #[inline]
1758 unsafe fn encode(
1759 self,
1760 encoder: &mut fidl::encoding::Encoder<'_, D>,
1761 offset: usize,
1762 _depth: fidl::encoding::Depth,
1763 ) -> fidl::Result<()> {
1764 encoder.debug_check_bounds::<Range>(offset);
1765 unsafe {
1766 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
1768 (buf_ptr as *mut Range).write_unaligned((self as *const Range).read());
1769 }
1772 Ok(())
1773 }
1774 }
1775 unsafe impl<
1776 D: fidl::encoding::ResourceDialect,
1777 T0: fidl::encoding::Encode<u64, D>,
1778 T1: fidl::encoding::Encode<u64, D>,
1779 > fidl::encoding::Encode<Range, D> for (T0, T1)
1780 {
1781 #[inline]
1782 unsafe fn encode(
1783 self,
1784 encoder: &mut fidl::encoding::Encoder<'_, D>,
1785 offset: usize,
1786 depth: fidl::encoding::Depth,
1787 ) -> fidl::Result<()> {
1788 encoder.debug_check_bounds::<Range>(offset);
1789 self.0.encode(encoder, offset + 0, depth)?;
1793 self.1.encode(encoder, offset + 8, depth)?;
1794 Ok(())
1795 }
1796 }
1797
1798 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Range {
1799 #[inline(always)]
1800 fn new_empty() -> Self {
1801 Self { offset: fidl::new_empty!(u64, D), size: fidl::new_empty!(u64, D) }
1802 }
1803
1804 #[inline]
1805 unsafe fn decode(
1806 &mut self,
1807 decoder: &mut fidl::encoding::Decoder<'_, D>,
1808 offset: usize,
1809 _depth: fidl::encoding::Depth,
1810 ) -> fidl::Result<()> {
1811 decoder.debug_check_bounds::<Self>(offset);
1812 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
1813 unsafe {
1816 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 16);
1817 }
1818 Ok(())
1819 }
1820 }
1821
1822 impl CanceledData {
1823 #[inline(always)]
1824 fn max_ordinal_present(&self) -> u64 {
1825 0
1826 }
1827 }
1828
1829 impl fidl::encoding::ValueTypeMarker for CanceledData {
1830 type Borrowed<'a> = &'a Self;
1831 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1832 value
1833 }
1834 }
1835
1836 unsafe impl fidl::encoding::TypeMarker for CanceledData {
1837 type Owned = Self;
1838
1839 #[inline(always)]
1840 fn inline_align(_context: fidl::encoding::Context) -> usize {
1841 8
1842 }
1843
1844 #[inline(always)]
1845 fn inline_size(_context: fidl::encoding::Context) -> usize {
1846 16
1847 }
1848 }
1849
1850 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<CanceledData, D>
1851 for &CanceledData
1852 {
1853 unsafe fn encode(
1854 self,
1855 encoder: &mut fidl::encoding::Encoder<'_, D>,
1856 offset: usize,
1857 mut depth: fidl::encoding::Depth,
1858 ) -> fidl::Result<()> {
1859 encoder.debug_check_bounds::<CanceledData>(offset);
1860 let max_ordinal: u64 = self.max_ordinal_present();
1862 encoder.write_num(max_ordinal, offset);
1863 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
1864 if max_ordinal == 0 {
1866 return Ok(());
1867 }
1868 depth.increment()?;
1869 let envelope_size = 8;
1870 let bytes_len = max_ordinal as usize * envelope_size;
1871 #[allow(unused_variables)]
1872 let offset = encoder.out_of_line_offset(bytes_len);
1873 let mut _prev_end_offset: usize = 0;
1874
1875 Ok(())
1876 }
1877 }
1878
1879 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for CanceledData {
1880 #[inline(always)]
1881 fn new_empty() -> Self {
1882 Self::default()
1883 }
1884
1885 unsafe fn decode(
1886 &mut self,
1887 decoder: &mut fidl::encoding::Decoder<'_, D>,
1888 offset: usize,
1889 mut depth: fidl::encoding::Depth,
1890 ) -> fidl::Result<()> {
1891 decoder.debug_check_bounds::<Self>(offset);
1892 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
1893 None => return Err(fidl::Error::NotNullable),
1894 Some(len) => len,
1895 };
1896 if len == 0 {
1898 return Ok(());
1899 };
1900 depth.increment()?;
1901 let envelope_size = 8;
1902 let bytes_len = len * envelope_size;
1903 let offset = decoder.out_of_line_offset(bytes_len)?;
1904 let mut _next_ordinal_to_read = 0;
1906 let mut next_offset = offset;
1907 let end_offset = offset + bytes_len;
1908
1909 while next_offset < end_offset {
1911 _next_ordinal_to_read += 1;
1912 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1913 next_offset += envelope_size;
1914 }
1915
1916 Ok(())
1917 }
1918 }
1919
1920 impl CommitData {
1921 #[inline(always)]
1922 fn max_ordinal_present(&self) -> u64 {
1923 if let Some(_) = self.progress {
1924 return 2;
1925 }
1926 if let Some(_) = self.info {
1927 return 1;
1928 }
1929 0
1930 }
1931 }
1932
1933 impl fidl::encoding::ValueTypeMarker for CommitData {
1934 type Borrowed<'a> = &'a Self;
1935 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1936 value
1937 }
1938 }
1939
1940 unsafe impl fidl::encoding::TypeMarker for CommitData {
1941 type Owned = Self;
1942
1943 #[inline(always)]
1944 fn inline_align(_context: fidl::encoding::Context) -> usize {
1945 8
1946 }
1947
1948 #[inline(always)]
1949 fn inline_size(_context: fidl::encoding::Context) -> usize {
1950 16
1951 }
1952 }
1953
1954 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<CommitData, D>
1955 for &CommitData
1956 {
1957 unsafe fn encode(
1958 self,
1959 encoder: &mut fidl::encoding::Encoder<'_, D>,
1960 offset: usize,
1961 mut depth: fidl::encoding::Depth,
1962 ) -> fidl::Result<()> {
1963 encoder.debug_check_bounds::<CommitData>(offset);
1964 let max_ordinal: u64 = self.max_ordinal_present();
1966 encoder.write_num(max_ordinal, offset);
1967 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
1968 if max_ordinal == 0 {
1970 return Ok(());
1971 }
1972 depth.increment()?;
1973 let envelope_size = 8;
1974 let bytes_len = max_ordinal as usize * envelope_size;
1975 #[allow(unused_variables)]
1976 let offset = encoder.out_of_line_offset(bytes_len);
1977 let mut _prev_end_offset: usize = 0;
1978 if 1 > max_ordinal {
1979 return Ok(());
1980 }
1981
1982 let cur_offset: usize = (1 - 1) * envelope_size;
1985
1986 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1988
1989 fidl::encoding::encode_in_envelope_optional::<UpdateInfo, D>(
1994 self.info.as_ref().map(<UpdateInfo as fidl::encoding::ValueTypeMarker>::borrow),
1995 encoder,
1996 offset + cur_offset,
1997 depth,
1998 )?;
1999
2000 _prev_end_offset = cur_offset + envelope_size;
2001 if 2 > max_ordinal {
2002 return Ok(());
2003 }
2004
2005 let cur_offset: usize = (2 - 1) * envelope_size;
2008
2009 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2011
2012 fidl::encoding::encode_in_envelope_optional::<InstallationProgress, D>(
2017 self.progress
2018 .as_ref()
2019 .map(<InstallationProgress as fidl::encoding::ValueTypeMarker>::borrow),
2020 encoder,
2021 offset + cur_offset,
2022 depth,
2023 )?;
2024
2025 _prev_end_offset = cur_offset + envelope_size;
2026
2027 Ok(())
2028 }
2029 }
2030
2031 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for CommitData {
2032 #[inline(always)]
2033 fn new_empty() -> Self {
2034 Self::default()
2035 }
2036
2037 unsafe fn decode(
2038 &mut self,
2039 decoder: &mut fidl::encoding::Decoder<'_, D>,
2040 offset: usize,
2041 mut depth: fidl::encoding::Depth,
2042 ) -> fidl::Result<()> {
2043 decoder.debug_check_bounds::<Self>(offset);
2044 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
2045 None => return Err(fidl::Error::NotNullable),
2046 Some(len) => len,
2047 };
2048 if len == 0 {
2050 return Ok(());
2051 };
2052 depth.increment()?;
2053 let envelope_size = 8;
2054 let bytes_len = len * envelope_size;
2055 let offset = decoder.out_of_line_offset(bytes_len)?;
2056 let mut _next_ordinal_to_read = 0;
2058 let mut next_offset = offset;
2059 let end_offset = offset + bytes_len;
2060 _next_ordinal_to_read += 1;
2061 if next_offset >= end_offset {
2062 return Ok(());
2063 }
2064
2065 while _next_ordinal_to_read < 1 {
2067 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2068 _next_ordinal_to_read += 1;
2069 next_offset += envelope_size;
2070 }
2071
2072 let next_out_of_line = decoder.next_out_of_line();
2073 let handles_before = decoder.remaining_handles();
2074 if let Some((inlined, num_bytes, num_handles)) =
2075 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2076 {
2077 let member_inline_size =
2078 <UpdateInfo as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2079 if inlined != (member_inline_size <= 4) {
2080 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2081 }
2082 let inner_offset;
2083 let mut inner_depth = depth.clone();
2084 if inlined {
2085 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2086 inner_offset = next_offset;
2087 } else {
2088 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2089 inner_depth.increment()?;
2090 }
2091 let val_ref = self.info.get_or_insert_with(|| fidl::new_empty!(UpdateInfo, D));
2092 fidl::decode!(UpdateInfo, D, val_ref, decoder, inner_offset, inner_depth)?;
2093 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2094 {
2095 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2096 }
2097 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2098 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2099 }
2100 }
2101
2102 next_offset += envelope_size;
2103 _next_ordinal_to_read += 1;
2104 if next_offset >= end_offset {
2105 return Ok(());
2106 }
2107
2108 while _next_ordinal_to_read < 2 {
2110 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2111 _next_ordinal_to_read += 1;
2112 next_offset += envelope_size;
2113 }
2114
2115 let next_out_of_line = decoder.next_out_of_line();
2116 let handles_before = decoder.remaining_handles();
2117 if let Some((inlined, num_bytes, num_handles)) =
2118 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2119 {
2120 let member_inline_size =
2121 <InstallationProgress as fidl::encoding::TypeMarker>::inline_size(
2122 decoder.context,
2123 );
2124 if inlined != (member_inline_size <= 4) {
2125 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2126 }
2127 let inner_offset;
2128 let mut inner_depth = depth.clone();
2129 if inlined {
2130 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2131 inner_offset = next_offset;
2132 } else {
2133 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2134 inner_depth.increment()?;
2135 }
2136 let val_ref =
2137 self.progress.get_or_insert_with(|| fidl::new_empty!(InstallationProgress, D));
2138 fidl::decode!(
2139 InstallationProgress,
2140 D,
2141 val_ref,
2142 decoder,
2143 inner_offset,
2144 inner_depth
2145 )?;
2146 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2147 {
2148 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2149 }
2150 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2151 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2152 }
2153 }
2154
2155 next_offset += envelope_size;
2156
2157 while next_offset < end_offset {
2159 _next_ordinal_to_read += 1;
2160 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2161 next_offset += envelope_size;
2162 }
2163
2164 Ok(())
2165 }
2166 }
2167
2168 impl CompleteData {
2169 #[inline(always)]
2170 fn max_ordinal_present(&self) -> u64 {
2171 if let Some(_) = self.progress {
2172 return 2;
2173 }
2174 if let Some(_) = self.info {
2175 return 1;
2176 }
2177 0
2178 }
2179 }
2180
2181 impl fidl::encoding::ValueTypeMarker for CompleteData {
2182 type Borrowed<'a> = &'a Self;
2183 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2184 value
2185 }
2186 }
2187
2188 unsafe impl fidl::encoding::TypeMarker for CompleteData {
2189 type Owned = Self;
2190
2191 #[inline(always)]
2192 fn inline_align(_context: fidl::encoding::Context) -> usize {
2193 8
2194 }
2195
2196 #[inline(always)]
2197 fn inline_size(_context: fidl::encoding::Context) -> usize {
2198 16
2199 }
2200 }
2201
2202 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<CompleteData, D>
2203 for &CompleteData
2204 {
2205 unsafe fn encode(
2206 self,
2207 encoder: &mut fidl::encoding::Encoder<'_, D>,
2208 offset: usize,
2209 mut depth: fidl::encoding::Depth,
2210 ) -> fidl::Result<()> {
2211 encoder.debug_check_bounds::<CompleteData>(offset);
2212 let max_ordinal: u64 = self.max_ordinal_present();
2214 encoder.write_num(max_ordinal, offset);
2215 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
2216 if max_ordinal == 0 {
2218 return Ok(());
2219 }
2220 depth.increment()?;
2221 let envelope_size = 8;
2222 let bytes_len = max_ordinal as usize * envelope_size;
2223 #[allow(unused_variables)]
2224 let offset = encoder.out_of_line_offset(bytes_len);
2225 let mut _prev_end_offset: usize = 0;
2226 if 1 > max_ordinal {
2227 return Ok(());
2228 }
2229
2230 let cur_offset: usize = (1 - 1) * envelope_size;
2233
2234 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2236
2237 fidl::encoding::encode_in_envelope_optional::<UpdateInfo, D>(
2242 self.info.as_ref().map(<UpdateInfo as fidl::encoding::ValueTypeMarker>::borrow),
2243 encoder,
2244 offset + cur_offset,
2245 depth,
2246 )?;
2247
2248 _prev_end_offset = cur_offset + envelope_size;
2249 if 2 > max_ordinal {
2250 return Ok(());
2251 }
2252
2253 let cur_offset: usize = (2 - 1) * envelope_size;
2256
2257 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2259
2260 fidl::encoding::encode_in_envelope_optional::<InstallationProgress, D>(
2265 self.progress
2266 .as_ref()
2267 .map(<InstallationProgress as fidl::encoding::ValueTypeMarker>::borrow),
2268 encoder,
2269 offset + cur_offset,
2270 depth,
2271 )?;
2272
2273 _prev_end_offset = cur_offset + envelope_size;
2274
2275 Ok(())
2276 }
2277 }
2278
2279 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for CompleteData {
2280 #[inline(always)]
2281 fn new_empty() -> Self {
2282 Self::default()
2283 }
2284
2285 unsafe fn decode(
2286 &mut self,
2287 decoder: &mut fidl::encoding::Decoder<'_, D>,
2288 offset: usize,
2289 mut depth: fidl::encoding::Depth,
2290 ) -> fidl::Result<()> {
2291 decoder.debug_check_bounds::<Self>(offset);
2292 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
2293 None => return Err(fidl::Error::NotNullable),
2294 Some(len) => len,
2295 };
2296 if len == 0 {
2298 return Ok(());
2299 };
2300 depth.increment()?;
2301 let envelope_size = 8;
2302 let bytes_len = len * envelope_size;
2303 let offset = decoder.out_of_line_offset(bytes_len)?;
2304 let mut _next_ordinal_to_read = 0;
2306 let mut next_offset = offset;
2307 let end_offset = offset + bytes_len;
2308 _next_ordinal_to_read += 1;
2309 if next_offset >= end_offset {
2310 return Ok(());
2311 }
2312
2313 while _next_ordinal_to_read < 1 {
2315 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2316 _next_ordinal_to_read += 1;
2317 next_offset += envelope_size;
2318 }
2319
2320 let next_out_of_line = decoder.next_out_of_line();
2321 let handles_before = decoder.remaining_handles();
2322 if let Some((inlined, num_bytes, num_handles)) =
2323 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2324 {
2325 let member_inline_size =
2326 <UpdateInfo as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2327 if inlined != (member_inline_size <= 4) {
2328 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2329 }
2330 let inner_offset;
2331 let mut inner_depth = depth.clone();
2332 if inlined {
2333 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2334 inner_offset = next_offset;
2335 } else {
2336 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2337 inner_depth.increment()?;
2338 }
2339 let val_ref = self.info.get_or_insert_with(|| fidl::new_empty!(UpdateInfo, D));
2340 fidl::decode!(UpdateInfo, D, val_ref, decoder, inner_offset, inner_depth)?;
2341 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2342 {
2343 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2344 }
2345 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2346 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2347 }
2348 }
2349
2350 next_offset += envelope_size;
2351 _next_ordinal_to_read += 1;
2352 if next_offset >= end_offset {
2353 return Ok(());
2354 }
2355
2356 while _next_ordinal_to_read < 2 {
2358 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2359 _next_ordinal_to_read += 1;
2360 next_offset += envelope_size;
2361 }
2362
2363 let next_out_of_line = decoder.next_out_of_line();
2364 let handles_before = decoder.remaining_handles();
2365 if let Some((inlined, num_bytes, num_handles)) =
2366 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2367 {
2368 let member_inline_size =
2369 <InstallationProgress as fidl::encoding::TypeMarker>::inline_size(
2370 decoder.context,
2371 );
2372 if inlined != (member_inline_size <= 4) {
2373 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2374 }
2375 let inner_offset;
2376 let mut inner_depth = depth.clone();
2377 if inlined {
2378 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2379 inner_offset = next_offset;
2380 } else {
2381 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2382 inner_depth.increment()?;
2383 }
2384 let val_ref =
2385 self.progress.get_or_insert_with(|| fidl::new_empty!(InstallationProgress, D));
2386 fidl::decode!(
2387 InstallationProgress,
2388 D,
2389 val_ref,
2390 decoder,
2391 inner_offset,
2392 inner_depth
2393 )?;
2394 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2395 {
2396 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2397 }
2398 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2399 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2400 }
2401 }
2402
2403 next_offset += envelope_size;
2404
2405 while next_offset < end_offset {
2407 _next_ordinal_to_read += 1;
2408 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2409 next_offset += envelope_size;
2410 }
2411
2412 Ok(())
2413 }
2414 }
2415
2416 impl DeferRebootData {
2417 #[inline(always)]
2418 fn max_ordinal_present(&self) -> u64 {
2419 if let Some(_) = self.progress {
2420 return 2;
2421 }
2422 if let Some(_) = self.info {
2423 return 1;
2424 }
2425 0
2426 }
2427 }
2428
2429 impl fidl::encoding::ValueTypeMarker for DeferRebootData {
2430 type Borrowed<'a> = &'a Self;
2431 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2432 value
2433 }
2434 }
2435
2436 unsafe impl fidl::encoding::TypeMarker for DeferRebootData {
2437 type Owned = Self;
2438
2439 #[inline(always)]
2440 fn inline_align(_context: fidl::encoding::Context) -> usize {
2441 8
2442 }
2443
2444 #[inline(always)]
2445 fn inline_size(_context: fidl::encoding::Context) -> usize {
2446 16
2447 }
2448 }
2449
2450 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<DeferRebootData, D>
2451 for &DeferRebootData
2452 {
2453 unsafe fn encode(
2454 self,
2455 encoder: &mut fidl::encoding::Encoder<'_, D>,
2456 offset: usize,
2457 mut depth: fidl::encoding::Depth,
2458 ) -> fidl::Result<()> {
2459 encoder.debug_check_bounds::<DeferRebootData>(offset);
2460 let max_ordinal: u64 = self.max_ordinal_present();
2462 encoder.write_num(max_ordinal, offset);
2463 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
2464 if max_ordinal == 0 {
2466 return Ok(());
2467 }
2468 depth.increment()?;
2469 let envelope_size = 8;
2470 let bytes_len = max_ordinal as usize * envelope_size;
2471 #[allow(unused_variables)]
2472 let offset = encoder.out_of_line_offset(bytes_len);
2473 let mut _prev_end_offset: usize = 0;
2474 if 1 > max_ordinal {
2475 return Ok(());
2476 }
2477
2478 let cur_offset: usize = (1 - 1) * envelope_size;
2481
2482 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2484
2485 fidl::encoding::encode_in_envelope_optional::<UpdateInfo, D>(
2490 self.info.as_ref().map(<UpdateInfo as fidl::encoding::ValueTypeMarker>::borrow),
2491 encoder,
2492 offset + cur_offset,
2493 depth,
2494 )?;
2495
2496 _prev_end_offset = cur_offset + envelope_size;
2497 if 2 > max_ordinal {
2498 return Ok(());
2499 }
2500
2501 let cur_offset: usize = (2 - 1) * envelope_size;
2504
2505 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2507
2508 fidl::encoding::encode_in_envelope_optional::<InstallationProgress, D>(
2513 self.progress
2514 .as_ref()
2515 .map(<InstallationProgress as fidl::encoding::ValueTypeMarker>::borrow),
2516 encoder,
2517 offset + cur_offset,
2518 depth,
2519 )?;
2520
2521 _prev_end_offset = cur_offset + envelope_size;
2522
2523 Ok(())
2524 }
2525 }
2526
2527 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for DeferRebootData {
2528 #[inline(always)]
2529 fn new_empty() -> Self {
2530 Self::default()
2531 }
2532
2533 unsafe fn decode(
2534 &mut self,
2535 decoder: &mut fidl::encoding::Decoder<'_, D>,
2536 offset: usize,
2537 mut depth: fidl::encoding::Depth,
2538 ) -> fidl::Result<()> {
2539 decoder.debug_check_bounds::<Self>(offset);
2540 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
2541 None => return Err(fidl::Error::NotNullable),
2542 Some(len) => len,
2543 };
2544 if len == 0 {
2546 return Ok(());
2547 };
2548 depth.increment()?;
2549 let envelope_size = 8;
2550 let bytes_len = len * envelope_size;
2551 let offset = decoder.out_of_line_offset(bytes_len)?;
2552 let mut _next_ordinal_to_read = 0;
2554 let mut next_offset = offset;
2555 let end_offset = offset + bytes_len;
2556 _next_ordinal_to_read += 1;
2557 if next_offset >= end_offset {
2558 return Ok(());
2559 }
2560
2561 while _next_ordinal_to_read < 1 {
2563 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2564 _next_ordinal_to_read += 1;
2565 next_offset += envelope_size;
2566 }
2567
2568 let next_out_of_line = decoder.next_out_of_line();
2569 let handles_before = decoder.remaining_handles();
2570 if let Some((inlined, num_bytes, num_handles)) =
2571 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2572 {
2573 let member_inline_size =
2574 <UpdateInfo as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2575 if inlined != (member_inline_size <= 4) {
2576 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2577 }
2578 let inner_offset;
2579 let mut inner_depth = depth.clone();
2580 if inlined {
2581 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2582 inner_offset = next_offset;
2583 } else {
2584 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2585 inner_depth.increment()?;
2586 }
2587 let val_ref = self.info.get_or_insert_with(|| fidl::new_empty!(UpdateInfo, D));
2588 fidl::decode!(UpdateInfo, D, val_ref, decoder, inner_offset, inner_depth)?;
2589 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2590 {
2591 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2592 }
2593 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2594 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2595 }
2596 }
2597
2598 next_offset += envelope_size;
2599 _next_ordinal_to_read += 1;
2600 if next_offset >= end_offset {
2601 return Ok(());
2602 }
2603
2604 while _next_ordinal_to_read < 2 {
2606 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2607 _next_ordinal_to_read += 1;
2608 next_offset += envelope_size;
2609 }
2610
2611 let next_out_of_line = decoder.next_out_of_line();
2612 let handles_before = decoder.remaining_handles();
2613 if let Some((inlined, num_bytes, num_handles)) =
2614 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2615 {
2616 let member_inline_size =
2617 <InstallationProgress as fidl::encoding::TypeMarker>::inline_size(
2618 decoder.context,
2619 );
2620 if inlined != (member_inline_size <= 4) {
2621 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2622 }
2623 let inner_offset;
2624 let mut inner_depth = depth.clone();
2625 if inlined {
2626 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2627 inner_offset = next_offset;
2628 } else {
2629 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2630 inner_depth.increment()?;
2631 }
2632 let val_ref =
2633 self.progress.get_or_insert_with(|| fidl::new_empty!(InstallationProgress, D));
2634 fidl::decode!(
2635 InstallationProgress,
2636 D,
2637 val_ref,
2638 decoder,
2639 inner_offset,
2640 inner_depth
2641 )?;
2642 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2643 {
2644 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2645 }
2646 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2647 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2648 }
2649 }
2650
2651 next_offset += envelope_size;
2652
2653 while next_offset < end_offset {
2655 _next_ordinal_to_read += 1;
2656 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2657 next_offset += envelope_size;
2658 }
2659
2660 Ok(())
2661 }
2662 }
2663
2664 impl FailCommitData {
2665 #[inline(always)]
2666 fn max_ordinal_present(&self) -> u64 {
2667 if let Some(_) = self.progress {
2668 return 2;
2669 }
2670 if let Some(_) = self.info {
2671 return 1;
2672 }
2673 0
2674 }
2675 }
2676
2677 impl fidl::encoding::ValueTypeMarker for FailCommitData {
2678 type Borrowed<'a> = &'a Self;
2679 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2680 value
2681 }
2682 }
2683
2684 unsafe impl fidl::encoding::TypeMarker for FailCommitData {
2685 type Owned = Self;
2686
2687 #[inline(always)]
2688 fn inline_align(_context: fidl::encoding::Context) -> usize {
2689 8
2690 }
2691
2692 #[inline(always)]
2693 fn inline_size(_context: fidl::encoding::Context) -> usize {
2694 16
2695 }
2696 }
2697
2698 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<FailCommitData, D>
2699 for &FailCommitData
2700 {
2701 unsafe fn encode(
2702 self,
2703 encoder: &mut fidl::encoding::Encoder<'_, D>,
2704 offset: usize,
2705 mut depth: fidl::encoding::Depth,
2706 ) -> fidl::Result<()> {
2707 encoder.debug_check_bounds::<FailCommitData>(offset);
2708 let max_ordinal: u64 = self.max_ordinal_present();
2710 encoder.write_num(max_ordinal, offset);
2711 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
2712 if max_ordinal == 0 {
2714 return Ok(());
2715 }
2716 depth.increment()?;
2717 let envelope_size = 8;
2718 let bytes_len = max_ordinal as usize * envelope_size;
2719 #[allow(unused_variables)]
2720 let offset = encoder.out_of_line_offset(bytes_len);
2721 let mut _prev_end_offset: usize = 0;
2722 if 1 > max_ordinal {
2723 return Ok(());
2724 }
2725
2726 let cur_offset: usize = (1 - 1) * envelope_size;
2729
2730 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2732
2733 fidl::encoding::encode_in_envelope_optional::<UpdateInfo, D>(
2738 self.info.as_ref().map(<UpdateInfo as fidl::encoding::ValueTypeMarker>::borrow),
2739 encoder,
2740 offset + cur_offset,
2741 depth,
2742 )?;
2743
2744 _prev_end_offset = cur_offset + envelope_size;
2745 if 2 > max_ordinal {
2746 return Ok(());
2747 }
2748
2749 let cur_offset: usize = (2 - 1) * envelope_size;
2752
2753 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2755
2756 fidl::encoding::encode_in_envelope_optional::<InstallationProgress, D>(
2761 self.progress
2762 .as_ref()
2763 .map(<InstallationProgress as fidl::encoding::ValueTypeMarker>::borrow),
2764 encoder,
2765 offset + cur_offset,
2766 depth,
2767 )?;
2768
2769 _prev_end_offset = cur_offset + envelope_size;
2770
2771 Ok(())
2772 }
2773 }
2774
2775 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for FailCommitData {
2776 #[inline(always)]
2777 fn new_empty() -> Self {
2778 Self::default()
2779 }
2780
2781 unsafe fn decode(
2782 &mut self,
2783 decoder: &mut fidl::encoding::Decoder<'_, D>,
2784 offset: usize,
2785 mut depth: fidl::encoding::Depth,
2786 ) -> fidl::Result<()> {
2787 decoder.debug_check_bounds::<Self>(offset);
2788 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
2789 None => return Err(fidl::Error::NotNullable),
2790 Some(len) => len,
2791 };
2792 if len == 0 {
2794 return Ok(());
2795 };
2796 depth.increment()?;
2797 let envelope_size = 8;
2798 let bytes_len = len * envelope_size;
2799 let offset = decoder.out_of_line_offset(bytes_len)?;
2800 let mut _next_ordinal_to_read = 0;
2802 let mut next_offset = offset;
2803 let end_offset = offset + bytes_len;
2804 _next_ordinal_to_read += 1;
2805 if next_offset >= end_offset {
2806 return Ok(());
2807 }
2808
2809 while _next_ordinal_to_read < 1 {
2811 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2812 _next_ordinal_to_read += 1;
2813 next_offset += envelope_size;
2814 }
2815
2816 let next_out_of_line = decoder.next_out_of_line();
2817 let handles_before = decoder.remaining_handles();
2818 if let Some((inlined, num_bytes, num_handles)) =
2819 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2820 {
2821 let member_inline_size =
2822 <UpdateInfo as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2823 if inlined != (member_inline_size <= 4) {
2824 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2825 }
2826 let inner_offset;
2827 let mut inner_depth = depth.clone();
2828 if inlined {
2829 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2830 inner_offset = next_offset;
2831 } else {
2832 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2833 inner_depth.increment()?;
2834 }
2835 let val_ref = self.info.get_or_insert_with(|| fidl::new_empty!(UpdateInfo, D));
2836 fidl::decode!(UpdateInfo, D, val_ref, decoder, inner_offset, inner_depth)?;
2837 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2838 {
2839 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2840 }
2841 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2842 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2843 }
2844 }
2845
2846 next_offset += envelope_size;
2847 _next_ordinal_to_read += 1;
2848 if next_offset >= end_offset {
2849 return Ok(());
2850 }
2851
2852 while _next_ordinal_to_read < 2 {
2854 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2855 _next_ordinal_to_read += 1;
2856 next_offset += envelope_size;
2857 }
2858
2859 let next_out_of_line = decoder.next_out_of_line();
2860 let handles_before = decoder.remaining_handles();
2861 if let Some((inlined, num_bytes, num_handles)) =
2862 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2863 {
2864 let member_inline_size =
2865 <InstallationProgress as fidl::encoding::TypeMarker>::inline_size(
2866 decoder.context,
2867 );
2868 if inlined != (member_inline_size <= 4) {
2869 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2870 }
2871 let inner_offset;
2872 let mut inner_depth = depth.clone();
2873 if inlined {
2874 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2875 inner_offset = next_offset;
2876 } else {
2877 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2878 inner_depth.increment()?;
2879 }
2880 let val_ref =
2881 self.progress.get_or_insert_with(|| fidl::new_empty!(InstallationProgress, D));
2882 fidl::decode!(
2883 InstallationProgress,
2884 D,
2885 val_ref,
2886 decoder,
2887 inner_offset,
2888 inner_depth
2889 )?;
2890 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2891 {
2892 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2893 }
2894 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2895 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2896 }
2897 }
2898
2899 next_offset += envelope_size;
2900
2901 while next_offset < end_offset {
2903 _next_ordinal_to_read += 1;
2904 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2905 next_offset += envelope_size;
2906 }
2907
2908 Ok(())
2909 }
2910 }
2911
2912 impl FailFetchData {
2913 #[inline(always)]
2914 fn max_ordinal_present(&self) -> u64 {
2915 if let Some(_) = self.reason {
2916 return 3;
2917 }
2918 if let Some(_) = self.progress {
2919 return 2;
2920 }
2921 if let Some(_) = self.info {
2922 return 1;
2923 }
2924 0
2925 }
2926 }
2927
2928 impl fidl::encoding::ValueTypeMarker for FailFetchData {
2929 type Borrowed<'a> = &'a Self;
2930 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2931 value
2932 }
2933 }
2934
2935 unsafe impl fidl::encoding::TypeMarker for FailFetchData {
2936 type Owned = Self;
2937
2938 #[inline(always)]
2939 fn inline_align(_context: fidl::encoding::Context) -> usize {
2940 8
2941 }
2942
2943 #[inline(always)]
2944 fn inline_size(_context: fidl::encoding::Context) -> usize {
2945 16
2946 }
2947 }
2948
2949 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<FailFetchData, D>
2950 for &FailFetchData
2951 {
2952 unsafe fn encode(
2953 self,
2954 encoder: &mut fidl::encoding::Encoder<'_, D>,
2955 offset: usize,
2956 mut depth: fidl::encoding::Depth,
2957 ) -> fidl::Result<()> {
2958 encoder.debug_check_bounds::<FailFetchData>(offset);
2959 let max_ordinal: u64 = self.max_ordinal_present();
2961 encoder.write_num(max_ordinal, offset);
2962 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
2963 if max_ordinal == 0 {
2965 return Ok(());
2966 }
2967 depth.increment()?;
2968 let envelope_size = 8;
2969 let bytes_len = max_ordinal as usize * envelope_size;
2970 #[allow(unused_variables)]
2971 let offset = encoder.out_of_line_offset(bytes_len);
2972 let mut _prev_end_offset: usize = 0;
2973 if 1 > max_ordinal {
2974 return Ok(());
2975 }
2976
2977 let cur_offset: usize = (1 - 1) * envelope_size;
2980
2981 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2983
2984 fidl::encoding::encode_in_envelope_optional::<UpdateInfo, D>(
2989 self.info.as_ref().map(<UpdateInfo as fidl::encoding::ValueTypeMarker>::borrow),
2990 encoder,
2991 offset + cur_offset,
2992 depth,
2993 )?;
2994
2995 _prev_end_offset = cur_offset + envelope_size;
2996 if 2 > max_ordinal {
2997 return Ok(());
2998 }
2999
3000 let cur_offset: usize = (2 - 1) * envelope_size;
3003
3004 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3006
3007 fidl::encoding::encode_in_envelope_optional::<InstallationProgress, D>(
3012 self.progress
3013 .as_ref()
3014 .map(<InstallationProgress as fidl::encoding::ValueTypeMarker>::borrow),
3015 encoder,
3016 offset + cur_offset,
3017 depth,
3018 )?;
3019
3020 _prev_end_offset = cur_offset + envelope_size;
3021 if 3 > max_ordinal {
3022 return Ok(());
3023 }
3024
3025 let cur_offset: usize = (3 - 1) * envelope_size;
3028
3029 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3031
3032 fidl::encoding::encode_in_envelope_optional::<FetchFailureReason, D>(
3037 self.reason
3038 .as_ref()
3039 .map(<FetchFailureReason as fidl::encoding::ValueTypeMarker>::borrow),
3040 encoder,
3041 offset + cur_offset,
3042 depth,
3043 )?;
3044
3045 _prev_end_offset = cur_offset + envelope_size;
3046
3047 Ok(())
3048 }
3049 }
3050
3051 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for FailFetchData {
3052 #[inline(always)]
3053 fn new_empty() -> Self {
3054 Self::default()
3055 }
3056
3057 unsafe fn decode(
3058 &mut self,
3059 decoder: &mut fidl::encoding::Decoder<'_, D>,
3060 offset: usize,
3061 mut depth: fidl::encoding::Depth,
3062 ) -> fidl::Result<()> {
3063 decoder.debug_check_bounds::<Self>(offset);
3064 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
3065 None => return Err(fidl::Error::NotNullable),
3066 Some(len) => len,
3067 };
3068 if len == 0 {
3070 return Ok(());
3071 };
3072 depth.increment()?;
3073 let envelope_size = 8;
3074 let bytes_len = len * envelope_size;
3075 let offset = decoder.out_of_line_offset(bytes_len)?;
3076 let mut _next_ordinal_to_read = 0;
3078 let mut next_offset = offset;
3079 let end_offset = offset + bytes_len;
3080 _next_ordinal_to_read += 1;
3081 if next_offset >= end_offset {
3082 return Ok(());
3083 }
3084
3085 while _next_ordinal_to_read < 1 {
3087 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3088 _next_ordinal_to_read += 1;
3089 next_offset += envelope_size;
3090 }
3091
3092 let next_out_of_line = decoder.next_out_of_line();
3093 let handles_before = decoder.remaining_handles();
3094 if let Some((inlined, num_bytes, num_handles)) =
3095 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3096 {
3097 let member_inline_size =
3098 <UpdateInfo as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3099 if inlined != (member_inline_size <= 4) {
3100 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3101 }
3102 let inner_offset;
3103 let mut inner_depth = depth.clone();
3104 if inlined {
3105 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3106 inner_offset = next_offset;
3107 } else {
3108 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3109 inner_depth.increment()?;
3110 }
3111 let val_ref = self.info.get_or_insert_with(|| fidl::new_empty!(UpdateInfo, D));
3112 fidl::decode!(UpdateInfo, D, val_ref, decoder, inner_offset, inner_depth)?;
3113 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3114 {
3115 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3116 }
3117 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3118 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3119 }
3120 }
3121
3122 next_offset += envelope_size;
3123 _next_ordinal_to_read += 1;
3124 if next_offset >= end_offset {
3125 return Ok(());
3126 }
3127
3128 while _next_ordinal_to_read < 2 {
3130 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3131 _next_ordinal_to_read += 1;
3132 next_offset += envelope_size;
3133 }
3134
3135 let next_out_of_line = decoder.next_out_of_line();
3136 let handles_before = decoder.remaining_handles();
3137 if let Some((inlined, num_bytes, num_handles)) =
3138 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3139 {
3140 let member_inline_size =
3141 <InstallationProgress as fidl::encoding::TypeMarker>::inline_size(
3142 decoder.context,
3143 );
3144 if inlined != (member_inline_size <= 4) {
3145 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3146 }
3147 let inner_offset;
3148 let mut inner_depth = depth.clone();
3149 if inlined {
3150 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3151 inner_offset = next_offset;
3152 } else {
3153 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3154 inner_depth.increment()?;
3155 }
3156 let val_ref =
3157 self.progress.get_or_insert_with(|| fidl::new_empty!(InstallationProgress, D));
3158 fidl::decode!(
3159 InstallationProgress,
3160 D,
3161 val_ref,
3162 decoder,
3163 inner_offset,
3164 inner_depth
3165 )?;
3166 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3167 {
3168 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3169 }
3170 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3171 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3172 }
3173 }
3174
3175 next_offset += envelope_size;
3176 _next_ordinal_to_read += 1;
3177 if next_offset >= end_offset {
3178 return Ok(());
3179 }
3180
3181 while _next_ordinal_to_read < 3 {
3183 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3184 _next_ordinal_to_read += 1;
3185 next_offset += envelope_size;
3186 }
3187
3188 let next_out_of_line = decoder.next_out_of_line();
3189 let handles_before = decoder.remaining_handles();
3190 if let Some((inlined, num_bytes, num_handles)) =
3191 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3192 {
3193 let member_inline_size =
3194 <FetchFailureReason as fidl::encoding::TypeMarker>::inline_size(
3195 decoder.context,
3196 );
3197 if inlined != (member_inline_size <= 4) {
3198 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3199 }
3200 let inner_offset;
3201 let mut inner_depth = depth.clone();
3202 if inlined {
3203 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3204 inner_offset = next_offset;
3205 } else {
3206 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3207 inner_depth.increment()?;
3208 }
3209 let val_ref =
3210 self.reason.get_or_insert_with(|| fidl::new_empty!(FetchFailureReason, D));
3211 fidl::decode!(FetchFailureReason, D, val_ref, decoder, inner_offset, inner_depth)?;
3212 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3213 {
3214 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3215 }
3216 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3217 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3218 }
3219 }
3220
3221 next_offset += envelope_size;
3222
3223 while next_offset < end_offset {
3225 _next_ordinal_to_read += 1;
3226 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3227 next_offset += envelope_size;
3228 }
3229
3230 Ok(())
3231 }
3232 }
3233
3234 impl FailPrepareData {
3235 #[inline(always)]
3236 fn max_ordinal_present(&self) -> u64 {
3237 if let Some(_) = self.reason {
3238 return 1;
3239 }
3240 0
3241 }
3242 }
3243
3244 impl fidl::encoding::ValueTypeMarker for FailPrepareData {
3245 type Borrowed<'a> = &'a Self;
3246 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3247 value
3248 }
3249 }
3250
3251 unsafe impl fidl::encoding::TypeMarker for FailPrepareData {
3252 type Owned = Self;
3253
3254 #[inline(always)]
3255 fn inline_align(_context: fidl::encoding::Context) -> usize {
3256 8
3257 }
3258
3259 #[inline(always)]
3260 fn inline_size(_context: fidl::encoding::Context) -> usize {
3261 16
3262 }
3263 }
3264
3265 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<FailPrepareData, D>
3266 for &FailPrepareData
3267 {
3268 unsafe fn encode(
3269 self,
3270 encoder: &mut fidl::encoding::Encoder<'_, D>,
3271 offset: usize,
3272 mut depth: fidl::encoding::Depth,
3273 ) -> fidl::Result<()> {
3274 encoder.debug_check_bounds::<FailPrepareData>(offset);
3275 let max_ordinal: u64 = self.max_ordinal_present();
3277 encoder.write_num(max_ordinal, offset);
3278 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
3279 if max_ordinal == 0 {
3281 return Ok(());
3282 }
3283 depth.increment()?;
3284 let envelope_size = 8;
3285 let bytes_len = max_ordinal as usize * envelope_size;
3286 #[allow(unused_variables)]
3287 let offset = encoder.out_of_line_offset(bytes_len);
3288 let mut _prev_end_offset: usize = 0;
3289 if 1 > max_ordinal {
3290 return Ok(());
3291 }
3292
3293 let cur_offset: usize = (1 - 1) * envelope_size;
3296
3297 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3299
3300 fidl::encoding::encode_in_envelope_optional::<PrepareFailureReason, D>(
3305 self.reason
3306 .as_ref()
3307 .map(<PrepareFailureReason as fidl::encoding::ValueTypeMarker>::borrow),
3308 encoder,
3309 offset + cur_offset,
3310 depth,
3311 )?;
3312
3313 _prev_end_offset = cur_offset + envelope_size;
3314
3315 Ok(())
3316 }
3317 }
3318
3319 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for FailPrepareData {
3320 #[inline(always)]
3321 fn new_empty() -> Self {
3322 Self::default()
3323 }
3324
3325 unsafe fn decode(
3326 &mut self,
3327 decoder: &mut fidl::encoding::Decoder<'_, D>,
3328 offset: usize,
3329 mut depth: fidl::encoding::Depth,
3330 ) -> fidl::Result<()> {
3331 decoder.debug_check_bounds::<Self>(offset);
3332 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
3333 None => return Err(fidl::Error::NotNullable),
3334 Some(len) => len,
3335 };
3336 if len == 0 {
3338 return Ok(());
3339 };
3340 depth.increment()?;
3341 let envelope_size = 8;
3342 let bytes_len = len * envelope_size;
3343 let offset = decoder.out_of_line_offset(bytes_len)?;
3344 let mut _next_ordinal_to_read = 0;
3346 let mut next_offset = offset;
3347 let end_offset = offset + bytes_len;
3348 _next_ordinal_to_read += 1;
3349 if next_offset >= end_offset {
3350 return Ok(());
3351 }
3352
3353 while _next_ordinal_to_read < 1 {
3355 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3356 _next_ordinal_to_read += 1;
3357 next_offset += envelope_size;
3358 }
3359
3360 let next_out_of_line = decoder.next_out_of_line();
3361 let handles_before = decoder.remaining_handles();
3362 if let Some((inlined, num_bytes, num_handles)) =
3363 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3364 {
3365 let member_inline_size =
3366 <PrepareFailureReason as fidl::encoding::TypeMarker>::inline_size(
3367 decoder.context,
3368 );
3369 if inlined != (member_inline_size <= 4) {
3370 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3371 }
3372 let inner_offset;
3373 let mut inner_depth = depth.clone();
3374 if inlined {
3375 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3376 inner_offset = next_offset;
3377 } else {
3378 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3379 inner_depth.increment()?;
3380 }
3381 let val_ref =
3382 self.reason.get_or_insert_with(|| fidl::new_empty!(PrepareFailureReason, D));
3383 fidl::decode!(
3384 PrepareFailureReason,
3385 D,
3386 val_ref,
3387 decoder,
3388 inner_offset,
3389 inner_depth
3390 )?;
3391 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3392 {
3393 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3394 }
3395 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3396 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3397 }
3398 }
3399
3400 next_offset += envelope_size;
3401
3402 while next_offset < end_offset {
3404 _next_ordinal_to_read += 1;
3405 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3406 next_offset += envelope_size;
3407 }
3408
3409 Ok(())
3410 }
3411 }
3412
3413 impl FailStageData {
3414 #[inline(always)]
3415 fn max_ordinal_present(&self) -> u64 {
3416 if let Some(_) = self.reason {
3417 return 3;
3418 }
3419 if let Some(_) = self.progress {
3420 return 2;
3421 }
3422 if let Some(_) = self.info {
3423 return 1;
3424 }
3425 0
3426 }
3427 }
3428
3429 impl fidl::encoding::ValueTypeMarker for FailStageData {
3430 type Borrowed<'a> = &'a Self;
3431 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3432 value
3433 }
3434 }
3435
3436 unsafe impl fidl::encoding::TypeMarker for FailStageData {
3437 type Owned = Self;
3438
3439 #[inline(always)]
3440 fn inline_align(_context: fidl::encoding::Context) -> usize {
3441 8
3442 }
3443
3444 #[inline(always)]
3445 fn inline_size(_context: fidl::encoding::Context) -> usize {
3446 16
3447 }
3448 }
3449
3450 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<FailStageData, D>
3451 for &FailStageData
3452 {
3453 unsafe fn encode(
3454 self,
3455 encoder: &mut fidl::encoding::Encoder<'_, D>,
3456 offset: usize,
3457 mut depth: fidl::encoding::Depth,
3458 ) -> fidl::Result<()> {
3459 encoder.debug_check_bounds::<FailStageData>(offset);
3460 let max_ordinal: u64 = self.max_ordinal_present();
3462 encoder.write_num(max_ordinal, offset);
3463 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
3464 if max_ordinal == 0 {
3466 return Ok(());
3467 }
3468 depth.increment()?;
3469 let envelope_size = 8;
3470 let bytes_len = max_ordinal as usize * envelope_size;
3471 #[allow(unused_variables)]
3472 let offset = encoder.out_of_line_offset(bytes_len);
3473 let mut _prev_end_offset: usize = 0;
3474 if 1 > max_ordinal {
3475 return Ok(());
3476 }
3477
3478 let cur_offset: usize = (1 - 1) * envelope_size;
3481
3482 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3484
3485 fidl::encoding::encode_in_envelope_optional::<UpdateInfo, D>(
3490 self.info.as_ref().map(<UpdateInfo as fidl::encoding::ValueTypeMarker>::borrow),
3491 encoder,
3492 offset + cur_offset,
3493 depth,
3494 )?;
3495
3496 _prev_end_offset = cur_offset + envelope_size;
3497 if 2 > max_ordinal {
3498 return Ok(());
3499 }
3500
3501 let cur_offset: usize = (2 - 1) * envelope_size;
3504
3505 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3507
3508 fidl::encoding::encode_in_envelope_optional::<InstallationProgress, D>(
3513 self.progress
3514 .as_ref()
3515 .map(<InstallationProgress as fidl::encoding::ValueTypeMarker>::borrow),
3516 encoder,
3517 offset + cur_offset,
3518 depth,
3519 )?;
3520
3521 _prev_end_offset = cur_offset + envelope_size;
3522 if 3 > max_ordinal {
3523 return Ok(());
3524 }
3525
3526 let cur_offset: usize = (3 - 1) * envelope_size;
3529
3530 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3532
3533 fidl::encoding::encode_in_envelope_optional::<StageFailureReason, D>(
3538 self.reason
3539 .as_ref()
3540 .map(<StageFailureReason as fidl::encoding::ValueTypeMarker>::borrow),
3541 encoder,
3542 offset + cur_offset,
3543 depth,
3544 )?;
3545
3546 _prev_end_offset = cur_offset + envelope_size;
3547
3548 Ok(())
3549 }
3550 }
3551
3552 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for FailStageData {
3553 #[inline(always)]
3554 fn new_empty() -> Self {
3555 Self::default()
3556 }
3557
3558 unsafe fn decode(
3559 &mut self,
3560 decoder: &mut fidl::encoding::Decoder<'_, D>,
3561 offset: usize,
3562 mut depth: fidl::encoding::Depth,
3563 ) -> fidl::Result<()> {
3564 decoder.debug_check_bounds::<Self>(offset);
3565 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
3566 None => return Err(fidl::Error::NotNullable),
3567 Some(len) => len,
3568 };
3569 if len == 0 {
3571 return Ok(());
3572 };
3573 depth.increment()?;
3574 let envelope_size = 8;
3575 let bytes_len = len * envelope_size;
3576 let offset = decoder.out_of_line_offset(bytes_len)?;
3577 let mut _next_ordinal_to_read = 0;
3579 let mut next_offset = offset;
3580 let end_offset = offset + bytes_len;
3581 _next_ordinal_to_read += 1;
3582 if next_offset >= end_offset {
3583 return Ok(());
3584 }
3585
3586 while _next_ordinal_to_read < 1 {
3588 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3589 _next_ordinal_to_read += 1;
3590 next_offset += envelope_size;
3591 }
3592
3593 let next_out_of_line = decoder.next_out_of_line();
3594 let handles_before = decoder.remaining_handles();
3595 if let Some((inlined, num_bytes, num_handles)) =
3596 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3597 {
3598 let member_inline_size =
3599 <UpdateInfo as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3600 if inlined != (member_inline_size <= 4) {
3601 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3602 }
3603 let inner_offset;
3604 let mut inner_depth = depth.clone();
3605 if inlined {
3606 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3607 inner_offset = next_offset;
3608 } else {
3609 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3610 inner_depth.increment()?;
3611 }
3612 let val_ref = self.info.get_or_insert_with(|| fidl::new_empty!(UpdateInfo, D));
3613 fidl::decode!(UpdateInfo, D, val_ref, decoder, inner_offset, inner_depth)?;
3614 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3615 {
3616 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3617 }
3618 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3619 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3620 }
3621 }
3622
3623 next_offset += envelope_size;
3624 _next_ordinal_to_read += 1;
3625 if next_offset >= end_offset {
3626 return Ok(());
3627 }
3628
3629 while _next_ordinal_to_read < 2 {
3631 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3632 _next_ordinal_to_read += 1;
3633 next_offset += envelope_size;
3634 }
3635
3636 let next_out_of_line = decoder.next_out_of_line();
3637 let handles_before = decoder.remaining_handles();
3638 if let Some((inlined, num_bytes, num_handles)) =
3639 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3640 {
3641 let member_inline_size =
3642 <InstallationProgress as fidl::encoding::TypeMarker>::inline_size(
3643 decoder.context,
3644 );
3645 if inlined != (member_inline_size <= 4) {
3646 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3647 }
3648 let inner_offset;
3649 let mut inner_depth = depth.clone();
3650 if inlined {
3651 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3652 inner_offset = next_offset;
3653 } else {
3654 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3655 inner_depth.increment()?;
3656 }
3657 let val_ref =
3658 self.progress.get_or_insert_with(|| fidl::new_empty!(InstallationProgress, D));
3659 fidl::decode!(
3660 InstallationProgress,
3661 D,
3662 val_ref,
3663 decoder,
3664 inner_offset,
3665 inner_depth
3666 )?;
3667 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3668 {
3669 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3670 }
3671 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3672 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3673 }
3674 }
3675
3676 next_offset += envelope_size;
3677 _next_ordinal_to_read += 1;
3678 if next_offset >= end_offset {
3679 return Ok(());
3680 }
3681
3682 while _next_ordinal_to_read < 3 {
3684 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3685 _next_ordinal_to_read += 1;
3686 next_offset += envelope_size;
3687 }
3688
3689 let next_out_of_line = decoder.next_out_of_line();
3690 let handles_before = decoder.remaining_handles();
3691 if let Some((inlined, num_bytes, num_handles)) =
3692 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3693 {
3694 let member_inline_size =
3695 <StageFailureReason as fidl::encoding::TypeMarker>::inline_size(
3696 decoder.context,
3697 );
3698 if inlined != (member_inline_size <= 4) {
3699 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3700 }
3701 let inner_offset;
3702 let mut inner_depth = depth.clone();
3703 if inlined {
3704 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3705 inner_offset = next_offset;
3706 } else {
3707 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3708 inner_depth.increment()?;
3709 }
3710 let val_ref =
3711 self.reason.get_or_insert_with(|| fidl::new_empty!(StageFailureReason, D));
3712 fidl::decode!(StageFailureReason, D, val_ref, decoder, inner_offset, inner_depth)?;
3713 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3714 {
3715 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3716 }
3717 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3718 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3719 }
3720 }
3721
3722 next_offset += envelope_size;
3723
3724 while next_offset < end_offset {
3726 _next_ordinal_to_read += 1;
3727 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3728 next_offset += envelope_size;
3729 }
3730
3731 Ok(())
3732 }
3733 }
3734
3735 impl FetchData {
3736 #[inline(always)]
3737 fn max_ordinal_present(&self) -> u64 {
3738 if let Some(_) = self.progress {
3739 return 2;
3740 }
3741 if let Some(_) = self.info {
3742 return 1;
3743 }
3744 0
3745 }
3746 }
3747
3748 impl fidl::encoding::ValueTypeMarker for FetchData {
3749 type Borrowed<'a> = &'a Self;
3750 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3751 value
3752 }
3753 }
3754
3755 unsafe impl fidl::encoding::TypeMarker for FetchData {
3756 type Owned = Self;
3757
3758 #[inline(always)]
3759 fn inline_align(_context: fidl::encoding::Context) -> usize {
3760 8
3761 }
3762
3763 #[inline(always)]
3764 fn inline_size(_context: fidl::encoding::Context) -> usize {
3765 16
3766 }
3767 }
3768
3769 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<FetchData, D>
3770 for &FetchData
3771 {
3772 unsafe fn encode(
3773 self,
3774 encoder: &mut fidl::encoding::Encoder<'_, D>,
3775 offset: usize,
3776 mut depth: fidl::encoding::Depth,
3777 ) -> fidl::Result<()> {
3778 encoder.debug_check_bounds::<FetchData>(offset);
3779 let max_ordinal: u64 = self.max_ordinal_present();
3781 encoder.write_num(max_ordinal, offset);
3782 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
3783 if max_ordinal == 0 {
3785 return Ok(());
3786 }
3787 depth.increment()?;
3788 let envelope_size = 8;
3789 let bytes_len = max_ordinal as usize * envelope_size;
3790 #[allow(unused_variables)]
3791 let offset = encoder.out_of_line_offset(bytes_len);
3792 let mut _prev_end_offset: usize = 0;
3793 if 1 > max_ordinal {
3794 return Ok(());
3795 }
3796
3797 let cur_offset: usize = (1 - 1) * envelope_size;
3800
3801 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3803
3804 fidl::encoding::encode_in_envelope_optional::<UpdateInfo, D>(
3809 self.info.as_ref().map(<UpdateInfo as fidl::encoding::ValueTypeMarker>::borrow),
3810 encoder,
3811 offset + cur_offset,
3812 depth,
3813 )?;
3814
3815 _prev_end_offset = cur_offset + envelope_size;
3816 if 2 > max_ordinal {
3817 return Ok(());
3818 }
3819
3820 let cur_offset: usize = (2 - 1) * envelope_size;
3823
3824 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3826
3827 fidl::encoding::encode_in_envelope_optional::<InstallationProgress, D>(
3832 self.progress
3833 .as_ref()
3834 .map(<InstallationProgress as fidl::encoding::ValueTypeMarker>::borrow),
3835 encoder,
3836 offset + cur_offset,
3837 depth,
3838 )?;
3839
3840 _prev_end_offset = cur_offset + envelope_size;
3841
3842 Ok(())
3843 }
3844 }
3845
3846 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for FetchData {
3847 #[inline(always)]
3848 fn new_empty() -> Self {
3849 Self::default()
3850 }
3851
3852 unsafe fn decode(
3853 &mut self,
3854 decoder: &mut fidl::encoding::Decoder<'_, D>,
3855 offset: usize,
3856 mut depth: fidl::encoding::Depth,
3857 ) -> fidl::Result<()> {
3858 decoder.debug_check_bounds::<Self>(offset);
3859 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
3860 None => return Err(fidl::Error::NotNullable),
3861 Some(len) => len,
3862 };
3863 if len == 0 {
3865 return Ok(());
3866 };
3867 depth.increment()?;
3868 let envelope_size = 8;
3869 let bytes_len = len * envelope_size;
3870 let offset = decoder.out_of_line_offset(bytes_len)?;
3871 let mut _next_ordinal_to_read = 0;
3873 let mut next_offset = offset;
3874 let end_offset = offset + bytes_len;
3875 _next_ordinal_to_read += 1;
3876 if next_offset >= end_offset {
3877 return Ok(());
3878 }
3879
3880 while _next_ordinal_to_read < 1 {
3882 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3883 _next_ordinal_to_read += 1;
3884 next_offset += envelope_size;
3885 }
3886
3887 let next_out_of_line = decoder.next_out_of_line();
3888 let handles_before = decoder.remaining_handles();
3889 if let Some((inlined, num_bytes, num_handles)) =
3890 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3891 {
3892 let member_inline_size =
3893 <UpdateInfo as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3894 if inlined != (member_inline_size <= 4) {
3895 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3896 }
3897 let inner_offset;
3898 let mut inner_depth = depth.clone();
3899 if inlined {
3900 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3901 inner_offset = next_offset;
3902 } else {
3903 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3904 inner_depth.increment()?;
3905 }
3906 let val_ref = self.info.get_or_insert_with(|| fidl::new_empty!(UpdateInfo, D));
3907 fidl::decode!(UpdateInfo, D, val_ref, decoder, inner_offset, inner_depth)?;
3908 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3909 {
3910 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3911 }
3912 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3913 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3914 }
3915 }
3916
3917 next_offset += envelope_size;
3918 _next_ordinal_to_read += 1;
3919 if next_offset >= end_offset {
3920 return Ok(());
3921 }
3922
3923 while _next_ordinal_to_read < 2 {
3925 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3926 _next_ordinal_to_read += 1;
3927 next_offset += envelope_size;
3928 }
3929
3930 let next_out_of_line = decoder.next_out_of_line();
3931 let handles_before = decoder.remaining_handles();
3932 if let Some((inlined, num_bytes, num_handles)) =
3933 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3934 {
3935 let member_inline_size =
3936 <InstallationProgress as fidl::encoding::TypeMarker>::inline_size(
3937 decoder.context,
3938 );
3939 if inlined != (member_inline_size <= 4) {
3940 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3941 }
3942 let inner_offset;
3943 let mut inner_depth = depth.clone();
3944 if inlined {
3945 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3946 inner_offset = next_offset;
3947 } else {
3948 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3949 inner_depth.increment()?;
3950 }
3951 let val_ref =
3952 self.progress.get_or_insert_with(|| fidl::new_empty!(InstallationProgress, D));
3953 fidl::decode!(
3954 InstallationProgress,
3955 D,
3956 val_ref,
3957 decoder,
3958 inner_offset,
3959 inner_depth
3960 )?;
3961 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3962 {
3963 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3964 }
3965 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3966 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3967 }
3968 }
3969
3970 next_offset += envelope_size;
3971
3972 while next_offset < end_offset {
3974 _next_ordinal_to_read += 1;
3975 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3976 next_offset += envelope_size;
3977 }
3978
3979 Ok(())
3980 }
3981 }
3982
3983 impl InstallationProgress {
3984 #[inline(always)]
3985 fn max_ordinal_present(&self) -> u64 {
3986 if let Some(_) = self.bytes_downloaded {
3987 return 2;
3988 }
3989 if let Some(_) = self.fraction_completed {
3990 return 1;
3991 }
3992 0
3993 }
3994 }
3995
3996 impl fidl::encoding::ValueTypeMarker for InstallationProgress {
3997 type Borrowed<'a> = &'a Self;
3998 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3999 value
4000 }
4001 }
4002
4003 unsafe impl fidl::encoding::TypeMarker for InstallationProgress {
4004 type Owned = Self;
4005
4006 #[inline(always)]
4007 fn inline_align(_context: fidl::encoding::Context) -> usize {
4008 8
4009 }
4010
4011 #[inline(always)]
4012 fn inline_size(_context: fidl::encoding::Context) -> usize {
4013 16
4014 }
4015 }
4016
4017 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<InstallationProgress, D>
4018 for &InstallationProgress
4019 {
4020 unsafe fn encode(
4021 self,
4022 encoder: &mut fidl::encoding::Encoder<'_, D>,
4023 offset: usize,
4024 mut depth: fidl::encoding::Depth,
4025 ) -> fidl::Result<()> {
4026 encoder.debug_check_bounds::<InstallationProgress>(offset);
4027 let max_ordinal: u64 = self.max_ordinal_present();
4029 encoder.write_num(max_ordinal, offset);
4030 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
4031 if max_ordinal == 0 {
4033 return Ok(());
4034 }
4035 depth.increment()?;
4036 let envelope_size = 8;
4037 let bytes_len = max_ordinal as usize * envelope_size;
4038 #[allow(unused_variables)]
4039 let offset = encoder.out_of_line_offset(bytes_len);
4040 let mut _prev_end_offset: usize = 0;
4041 if 1 > max_ordinal {
4042 return Ok(());
4043 }
4044
4045 let cur_offset: usize = (1 - 1) * envelope_size;
4048
4049 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4051
4052 fidl::encoding::encode_in_envelope_optional::<f32, D>(
4057 self.fraction_completed
4058 .as_ref()
4059 .map(<f32 as fidl::encoding::ValueTypeMarker>::borrow),
4060 encoder,
4061 offset + cur_offset,
4062 depth,
4063 )?;
4064
4065 _prev_end_offset = cur_offset + envelope_size;
4066 if 2 > max_ordinal {
4067 return Ok(());
4068 }
4069
4070 let cur_offset: usize = (2 - 1) * envelope_size;
4073
4074 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4076
4077 fidl::encoding::encode_in_envelope_optional::<u64, D>(
4082 self.bytes_downloaded
4083 .as_ref()
4084 .map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
4085 encoder,
4086 offset + cur_offset,
4087 depth,
4088 )?;
4089
4090 _prev_end_offset = cur_offset + envelope_size;
4091
4092 Ok(())
4093 }
4094 }
4095
4096 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for InstallationProgress {
4097 #[inline(always)]
4098 fn new_empty() -> Self {
4099 Self::default()
4100 }
4101
4102 unsafe fn decode(
4103 &mut self,
4104 decoder: &mut fidl::encoding::Decoder<'_, D>,
4105 offset: usize,
4106 mut depth: fidl::encoding::Depth,
4107 ) -> fidl::Result<()> {
4108 decoder.debug_check_bounds::<Self>(offset);
4109 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
4110 None => return Err(fidl::Error::NotNullable),
4111 Some(len) => len,
4112 };
4113 if len == 0 {
4115 return Ok(());
4116 };
4117 depth.increment()?;
4118 let envelope_size = 8;
4119 let bytes_len = len * envelope_size;
4120 let offset = decoder.out_of_line_offset(bytes_len)?;
4121 let mut _next_ordinal_to_read = 0;
4123 let mut next_offset = offset;
4124 let end_offset = offset + bytes_len;
4125 _next_ordinal_to_read += 1;
4126 if next_offset >= end_offset {
4127 return Ok(());
4128 }
4129
4130 while _next_ordinal_to_read < 1 {
4132 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4133 _next_ordinal_to_read += 1;
4134 next_offset += envelope_size;
4135 }
4136
4137 let next_out_of_line = decoder.next_out_of_line();
4138 let handles_before = decoder.remaining_handles();
4139 if let Some((inlined, num_bytes, num_handles)) =
4140 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4141 {
4142 let member_inline_size =
4143 <f32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4144 if inlined != (member_inline_size <= 4) {
4145 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4146 }
4147 let inner_offset;
4148 let mut inner_depth = depth.clone();
4149 if inlined {
4150 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4151 inner_offset = next_offset;
4152 } else {
4153 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4154 inner_depth.increment()?;
4155 }
4156 let val_ref =
4157 self.fraction_completed.get_or_insert_with(|| fidl::new_empty!(f32, D));
4158 fidl::decode!(f32, D, val_ref, decoder, inner_offset, inner_depth)?;
4159 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4160 {
4161 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4162 }
4163 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4164 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4165 }
4166 }
4167
4168 next_offset += envelope_size;
4169 _next_ordinal_to_read += 1;
4170 if next_offset >= end_offset {
4171 return Ok(());
4172 }
4173
4174 while _next_ordinal_to_read < 2 {
4176 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4177 _next_ordinal_to_read += 1;
4178 next_offset += envelope_size;
4179 }
4180
4181 let next_out_of_line = decoder.next_out_of_line();
4182 let handles_before = decoder.remaining_handles();
4183 if let Some((inlined, num_bytes, num_handles)) =
4184 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4185 {
4186 let member_inline_size =
4187 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4188 if inlined != (member_inline_size <= 4) {
4189 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4190 }
4191 let inner_offset;
4192 let mut inner_depth = depth.clone();
4193 if inlined {
4194 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4195 inner_offset = next_offset;
4196 } else {
4197 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4198 inner_depth.increment()?;
4199 }
4200 let val_ref = self.bytes_downloaded.get_or_insert_with(|| fidl::new_empty!(u64, D));
4201 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
4202 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4203 {
4204 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4205 }
4206 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4207 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4208 }
4209 }
4210
4211 next_offset += envelope_size;
4212
4213 while next_offset < end_offset {
4215 _next_ordinal_to_read += 1;
4216 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4217 next_offset += envelope_size;
4218 }
4219
4220 Ok(())
4221 }
4222 }
4223
4224 impl Options {
4225 #[inline(always)]
4226 fn max_ordinal_present(&self) -> u64 {
4227 if let Some(_) = self.manifest_headers {
4228 return 5;
4229 }
4230 if let Some(_) = self.manifest_range {
4231 return 4;
4232 }
4233 if let Some(_) = self.should_write_recovery {
4234 return 3;
4235 }
4236 if let Some(_) = self.allow_attach_to_existing_attempt {
4237 return 2;
4238 }
4239 if let Some(_) = self.initiator {
4240 return 1;
4241 }
4242 0
4243 }
4244 }
4245
4246 impl fidl::encoding::ValueTypeMarker for Options {
4247 type Borrowed<'a> = &'a Self;
4248 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4249 value
4250 }
4251 }
4252
4253 unsafe impl fidl::encoding::TypeMarker for Options {
4254 type Owned = Self;
4255
4256 #[inline(always)]
4257 fn inline_align(_context: fidl::encoding::Context) -> usize {
4258 8
4259 }
4260
4261 #[inline(always)]
4262 fn inline_size(_context: fidl::encoding::Context) -> usize {
4263 16
4264 }
4265 }
4266
4267 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Options, D> for &Options {
4268 unsafe fn encode(
4269 self,
4270 encoder: &mut fidl::encoding::Encoder<'_, D>,
4271 offset: usize,
4272 mut depth: fidl::encoding::Depth,
4273 ) -> fidl::Result<()> {
4274 encoder.debug_check_bounds::<Options>(offset);
4275 let max_ordinal: u64 = self.max_ordinal_present();
4277 encoder.write_num(max_ordinal, offset);
4278 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
4279 if max_ordinal == 0 {
4281 return Ok(());
4282 }
4283 depth.increment()?;
4284 let envelope_size = 8;
4285 let bytes_len = max_ordinal as usize * envelope_size;
4286 #[allow(unused_variables)]
4287 let offset = encoder.out_of_line_offset(bytes_len);
4288 let mut _prev_end_offset: usize = 0;
4289 if 1 > max_ordinal {
4290 return Ok(());
4291 }
4292
4293 let cur_offset: usize = (1 - 1) * envelope_size;
4296
4297 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4299
4300 fidl::encoding::encode_in_envelope_optional::<Initiator, D>(
4305 self.initiator.as_ref().map(<Initiator as fidl::encoding::ValueTypeMarker>::borrow),
4306 encoder,
4307 offset + cur_offset,
4308 depth,
4309 )?;
4310
4311 _prev_end_offset = cur_offset + envelope_size;
4312 if 2 > max_ordinal {
4313 return Ok(());
4314 }
4315
4316 let cur_offset: usize = (2 - 1) * envelope_size;
4319
4320 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4322
4323 fidl::encoding::encode_in_envelope_optional::<bool, D>(
4328 self.allow_attach_to_existing_attempt
4329 .as_ref()
4330 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
4331 encoder,
4332 offset + cur_offset,
4333 depth,
4334 )?;
4335
4336 _prev_end_offset = cur_offset + envelope_size;
4337 if 3 > max_ordinal {
4338 return Ok(());
4339 }
4340
4341 let cur_offset: usize = (3 - 1) * envelope_size;
4344
4345 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4347
4348 fidl::encoding::encode_in_envelope_optional::<bool, D>(
4353 self.should_write_recovery
4354 .as_ref()
4355 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
4356 encoder,
4357 offset + cur_offset,
4358 depth,
4359 )?;
4360
4361 _prev_end_offset = cur_offset + envelope_size;
4362 if 4 > max_ordinal {
4363 return Ok(());
4364 }
4365
4366 let cur_offset: usize = (4 - 1) * envelope_size;
4369
4370 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4372
4373 fidl::encoding::encode_in_envelope_optional::<Range, D>(
4378 self.manifest_range
4379 .as_ref()
4380 .map(<Range as fidl::encoding::ValueTypeMarker>::borrow),
4381 encoder,
4382 offset + cur_offset,
4383 depth,
4384 )?;
4385
4386 _prev_end_offset = cur_offset + envelope_size;
4387 if 5 > max_ordinal {
4388 return Ok(());
4389 }
4390
4391 let cur_offset: usize = (5 - 1) * envelope_size;
4394
4395 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4397
4398 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<fidl_fuchsia_net_http_common::Header>, D>(
4403 self.manifest_headers.as_ref().map(<fidl::encoding::UnboundedVector<fidl_fuchsia_net_http_common::Header> as fidl::encoding::ValueTypeMarker>::borrow),
4404 encoder, offset + cur_offset, depth
4405 )?;
4406
4407 _prev_end_offset = cur_offset + envelope_size;
4408
4409 Ok(())
4410 }
4411 }
4412
4413 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Options {
4414 #[inline(always)]
4415 fn new_empty() -> Self {
4416 Self::default()
4417 }
4418
4419 unsafe fn decode(
4420 &mut self,
4421 decoder: &mut fidl::encoding::Decoder<'_, D>,
4422 offset: usize,
4423 mut depth: fidl::encoding::Depth,
4424 ) -> fidl::Result<()> {
4425 decoder.debug_check_bounds::<Self>(offset);
4426 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
4427 None => return Err(fidl::Error::NotNullable),
4428 Some(len) => len,
4429 };
4430 if len == 0 {
4432 return Ok(());
4433 };
4434 depth.increment()?;
4435 let envelope_size = 8;
4436 let bytes_len = len * envelope_size;
4437 let offset = decoder.out_of_line_offset(bytes_len)?;
4438 let mut _next_ordinal_to_read = 0;
4440 let mut next_offset = offset;
4441 let end_offset = offset + bytes_len;
4442 _next_ordinal_to_read += 1;
4443 if next_offset >= end_offset {
4444 return Ok(());
4445 }
4446
4447 while _next_ordinal_to_read < 1 {
4449 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4450 _next_ordinal_to_read += 1;
4451 next_offset += envelope_size;
4452 }
4453
4454 let next_out_of_line = decoder.next_out_of_line();
4455 let handles_before = decoder.remaining_handles();
4456 if let Some((inlined, num_bytes, num_handles)) =
4457 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4458 {
4459 let member_inline_size =
4460 <Initiator as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4461 if inlined != (member_inline_size <= 4) {
4462 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4463 }
4464 let inner_offset;
4465 let mut inner_depth = depth.clone();
4466 if inlined {
4467 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4468 inner_offset = next_offset;
4469 } else {
4470 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4471 inner_depth.increment()?;
4472 }
4473 let val_ref = self.initiator.get_or_insert_with(|| fidl::new_empty!(Initiator, D));
4474 fidl::decode!(Initiator, D, val_ref, decoder, inner_offset, inner_depth)?;
4475 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4476 {
4477 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4478 }
4479 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4480 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4481 }
4482 }
4483
4484 next_offset += envelope_size;
4485 _next_ordinal_to_read += 1;
4486 if next_offset >= end_offset {
4487 return Ok(());
4488 }
4489
4490 while _next_ordinal_to_read < 2 {
4492 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4493 _next_ordinal_to_read += 1;
4494 next_offset += envelope_size;
4495 }
4496
4497 let next_out_of_line = decoder.next_out_of_line();
4498 let handles_before = decoder.remaining_handles();
4499 if let Some((inlined, num_bytes, num_handles)) =
4500 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4501 {
4502 let member_inline_size =
4503 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4504 if inlined != (member_inline_size <= 4) {
4505 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4506 }
4507 let inner_offset;
4508 let mut inner_depth = depth.clone();
4509 if inlined {
4510 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4511 inner_offset = next_offset;
4512 } else {
4513 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4514 inner_depth.increment()?;
4515 }
4516 let val_ref = self
4517 .allow_attach_to_existing_attempt
4518 .get_or_insert_with(|| fidl::new_empty!(bool, D));
4519 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
4520 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4521 {
4522 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4523 }
4524 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4525 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4526 }
4527 }
4528
4529 next_offset += envelope_size;
4530 _next_ordinal_to_read += 1;
4531 if next_offset >= end_offset {
4532 return Ok(());
4533 }
4534
4535 while _next_ordinal_to_read < 3 {
4537 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4538 _next_ordinal_to_read += 1;
4539 next_offset += envelope_size;
4540 }
4541
4542 let next_out_of_line = decoder.next_out_of_line();
4543 let handles_before = decoder.remaining_handles();
4544 if let Some((inlined, num_bytes, num_handles)) =
4545 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4546 {
4547 let member_inline_size =
4548 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4549 if inlined != (member_inline_size <= 4) {
4550 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4551 }
4552 let inner_offset;
4553 let mut inner_depth = depth.clone();
4554 if inlined {
4555 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4556 inner_offset = next_offset;
4557 } else {
4558 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4559 inner_depth.increment()?;
4560 }
4561 let val_ref =
4562 self.should_write_recovery.get_or_insert_with(|| fidl::new_empty!(bool, D));
4563 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
4564 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4565 {
4566 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4567 }
4568 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4569 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4570 }
4571 }
4572
4573 next_offset += envelope_size;
4574 _next_ordinal_to_read += 1;
4575 if next_offset >= end_offset {
4576 return Ok(());
4577 }
4578
4579 while _next_ordinal_to_read < 4 {
4581 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4582 _next_ordinal_to_read += 1;
4583 next_offset += envelope_size;
4584 }
4585
4586 let next_out_of_line = decoder.next_out_of_line();
4587 let handles_before = decoder.remaining_handles();
4588 if let Some((inlined, num_bytes, num_handles)) =
4589 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4590 {
4591 let member_inline_size =
4592 <Range as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4593 if inlined != (member_inline_size <= 4) {
4594 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4595 }
4596 let inner_offset;
4597 let mut inner_depth = depth.clone();
4598 if inlined {
4599 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4600 inner_offset = next_offset;
4601 } else {
4602 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4603 inner_depth.increment()?;
4604 }
4605 let val_ref = self.manifest_range.get_or_insert_with(|| fidl::new_empty!(Range, D));
4606 fidl::decode!(Range, D, val_ref, decoder, inner_offset, inner_depth)?;
4607 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4608 {
4609 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4610 }
4611 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4612 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4613 }
4614 }
4615
4616 next_offset += envelope_size;
4617 _next_ordinal_to_read += 1;
4618 if next_offset >= end_offset {
4619 return Ok(());
4620 }
4621
4622 while _next_ordinal_to_read < 5 {
4624 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4625 _next_ordinal_to_read += 1;
4626 next_offset += envelope_size;
4627 }
4628
4629 let next_out_of_line = decoder.next_out_of_line();
4630 let handles_before = decoder.remaining_handles();
4631 if let Some((inlined, num_bytes, num_handles)) =
4632 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4633 {
4634 let member_inline_size = <fidl::encoding::UnboundedVector<
4635 fidl_fuchsia_net_http_common::Header,
4636 > as fidl::encoding::TypeMarker>::inline_size(
4637 decoder.context
4638 );
4639 if inlined != (member_inline_size <= 4) {
4640 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4641 }
4642 let inner_offset;
4643 let mut inner_depth = depth.clone();
4644 if inlined {
4645 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4646 inner_offset = next_offset;
4647 } else {
4648 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4649 inner_depth.increment()?;
4650 }
4651 let val_ref = self.manifest_headers.get_or_insert_with(|| {
4652 fidl::new_empty!(
4653 fidl::encoding::UnboundedVector<fidl_fuchsia_net_http_common::Header>,
4654 D
4655 )
4656 });
4657 fidl::decode!(
4658 fidl::encoding::UnboundedVector<fidl_fuchsia_net_http_common::Header>,
4659 D,
4660 val_ref,
4661 decoder,
4662 inner_offset,
4663 inner_depth
4664 )?;
4665 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4666 {
4667 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4668 }
4669 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4670 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4671 }
4672 }
4673
4674 next_offset += envelope_size;
4675
4676 while next_offset < end_offset {
4678 _next_ordinal_to_read += 1;
4679 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4680 next_offset += envelope_size;
4681 }
4682
4683 Ok(())
4684 }
4685 }
4686
4687 impl PrepareData {
4688 #[inline(always)]
4689 fn max_ordinal_present(&self) -> u64 {
4690 0
4691 }
4692 }
4693
4694 impl fidl::encoding::ValueTypeMarker for PrepareData {
4695 type Borrowed<'a> = &'a Self;
4696 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4697 value
4698 }
4699 }
4700
4701 unsafe impl fidl::encoding::TypeMarker for PrepareData {
4702 type Owned = Self;
4703
4704 #[inline(always)]
4705 fn inline_align(_context: fidl::encoding::Context) -> usize {
4706 8
4707 }
4708
4709 #[inline(always)]
4710 fn inline_size(_context: fidl::encoding::Context) -> usize {
4711 16
4712 }
4713 }
4714
4715 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<PrepareData, D>
4716 for &PrepareData
4717 {
4718 unsafe fn encode(
4719 self,
4720 encoder: &mut fidl::encoding::Encoder<'_, D>,
4721 offset: usize,
4722 mut depth: fidl::encoding::Depth,
4723 ) -> fidl::Result<()> {
4724 encoder.debug_check_bounds::<PrepareData>(offset);
4725 let max_ordinal: u64 = self.max_ordinal_present();
4727 encoder.write_num(max_ordinal, offset);
4728 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
4729 if max_ordinal == 0 {
4731 return Ok(());
4732 }
4733 depth.increment()?;
4734 let envelope_size = 8;
4735 let bytes_len = max_ordinal as usize * envelope_size;
4736 #[allow(unused_variables)]
4737 let offset = encoder.out_of_line_offset(bytes_len);
4738 let mut _prev_end_offset: usize = 0;
4739
4740 Ok(())
4741 }
4742 }
4743
4744 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for PrepareData {
4745 #[inline(always)]
4746 fn new_empty() -> Self {
4747 Self::default()
4748 }
4749
4750 unsafe fn decode(
4751 &mut self,
4752 decoder: &mut fidl::encoding::Decoder<'_, D>,
4753 offset: usize,
4754 mut depth: fidl::encoding::Depth,
4755 ) -> fidl::Result<()> {
4756 decoder.debug_check_bounds::<Self>(offset);
4757 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
4758 None => return Err(fidl::Error::NotNullable),
4759 Some(len) => len,
4760 };
4761 if len == 0 {
4763 return Ok(());
4764 };
4765 depth.increment()?;
4766 let envelope_size = 8;
4767 let bytes_len = len * envelope_size;
4768 let offset = decoder.out_of_line_offset(bytes_len)?;
4769 let mut _next_ordinal_to_read = 0;
4771 let mut next_offset = offset;
4772 let end_offset = offset + bytes_len;
4773
4774 while next_offset < end_offset {
4776 _next_ordinal_to_read += 1;
4777 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4778 next_offset += envelope_size;
4779 }
4780
4781 Ok(())
4782 }
4783 }
4784
4785 impl RebootData {
4786 #[inline(always)]
4787 fn max_ordinal_present(&self) -> u64 {
4788 if let Some(_) = self.progress {
4789 return 2;
4790 }
4791 if let Some(_) = self.info {
4792 return 1;
4793 }
4794 0
4795 }
4796 }
4797
4798 impl fidl::encoding::ValueTypeMarker for RebootData {
4799 type Borrowed<'a> = &'a Self;
4800 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4801 value
4802 }
4803 }
4804
4805 unsafe impl fidl::encoding::TypeMarker for RebootData {
4806 type Owned = Self;
4807
4808 #[inline(always)]
4809 fn inline_align(_context: fidl::encoding::Context) -> usize {
4810 8
4811 }
4812
4813 #[inline(always)]
4814 fn inline_size(_context: fidl::encoding::Context) -> usize {
4815 16
4816 }
4817 }
4818
4819 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<RebootData, D>
4820 for &RebootData
4821 {
4822 unsafe fn encode(
4823 self,
4824 encoder: &mut fidl::encoding::Encoder<'_, D>,
4825 offset: usize,
4826 mut depth: fidl::encoding::Depth,
4827 ) -> fidl::Result<()> {
4828 encoder.debug_check_bounds::<RebootData>(offset);
4829 let max_ordinal: u64 = self.max_ordinal_present();
4831 encoder.write_num(max_ordinal, offset);
4832 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
4833 if max_ordinal == 0 {
4835 return Ok(());
4836 }
4837 depth.increment()?;
4838 let envelope_size = 8;
4839 let bytes_len = max_ordinal as usize * envelope_size;
4840 #[allow(unused_variables)]
4841 let offset = encoder.out_of_line_offset(bytes_len);
4842 let mut _prev_end_offset: usize = 0;
4843 if 1 > max_ordinal {
4844 return Ok(());
4845 }
4846
4847 let cur_offset: usize = (1 - 1) * envelope_size;
4850
4851 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4853
4854 fidl::encoding::encode_in_envelope_optional::<UpdateInfo, D>(
4859 self.info.as_ref().map(<UpdateInfo as fidl::encoding::ValueTypeMarker>::borrow),
4860 encoder,
4861 offset + cur_offset,
4862 depth,
4863 )?;
4864
4865 _prev_end_offset = cur_offset + envelope_size;
4866 if 2 > max_ordinal {
4867 return Ok(());
4868 }
4869
4870 let cur_offset: usize = (2 - 1) * envelope_size;
4873
4874 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4876
4877 fidl::encoding::encode_in_envelope_optional::<InstallationProgress, D>(
4882 self.progress
4883 .as_ref()
4884 .map(<InstallationProgress as fidl::encoding::ValueTypeMarker>::borrow),
4885 encoder,
4886 offset + cur_offset,
4887 depth,
4888 )?;
4889
4890 _prev_end_offset = cur_offset + envelope_size;
4891
4892 Ok(())
4893 }
4894 }
4895
4896 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for RebootData {
4897 #[inline(always)]
4898 fn new_empty() -> Self {
4899 Self::default()
4900 }
4901
4902 unsafe fn decode(
4903 &mut self,
4904 decoder: &mut fidl::encoding::Decoder<'_, D>,
4905 offset: usize,
4906 mut depth: fidl::encoding::Depth,
4907 ) -> fidl::Result<()> {
4908 decoder.debug_check_bounds::<Self>(offset);
4909 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
4910 None => return Err(fidl::Error::NotNullable),
4911 Some(len) => len,
4912 };
4913 if len == 0 {
4915 return Ok(());
4916 };
4917 depth.increment()?;
4918 let envelope_size = 8;
4919 let bytes_len = len * envelope_size;
4920 let offset = decoder.out_of_line_offset(bytes_len)?;
4921 let mut _next_ordinal_to_read = 0;
4923 let mut next_offset = offset;
4924 let end_offset = offset + bytes_len;
4925 _next_ordinal_to_read += 1;
4926 if next_offset >= end_offset {
4927 return Ok(());
4928 }
4929
4930 while _next_ordinal_to_read < 1 {
4932 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4933 _next_ordinal_to_read += 1;
4934 next_offset += envelope_size;
4935 }
4936
4937 let next_out_of_line = decoder.next_out_of_line();
4938 let handles_before = decoder.remaining_handles();
4939 if let Some((inlined, num_bytes, num_handles)) =
4940 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4941 {
4942 let member_inline_size =
4943 <UpdateInfo as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4944 if inlined != (member_inline_size <= 4) {
4945 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4946 }
4947 let inner_offset;
4948 let mut inner_depth = depth.clone();
4949 if inlined {
4950 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4951 inner_offset = next_offset;
4952 } else {
4953 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4954 inner_depth.increment()?;
4955 }
4956 let val_ref = self.info.get_or_insert_with(|| fidl::new_empty!(UpdateInfo, D));
4957 fidl::decode!(UpdateInfo, D, val_ref, decoder, inner_offset, inner_depth)?;
4958 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4959 {
4960 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4961 }
4962 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4963 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4964 }
4965 }
4966
4967 next_offset += envelope_size;
4968 _next_ordinal_to_read += 1;
4969 if next_offset >= end_offset {
4970 return Ok(());
4971 }
4972
4973 while _next_ordinal_to_read < 2 {
4975 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4976 _next_ordinal_to_read += 1;
4977 next_offset += envelope_size;
4978 }
4979
4980 let next_out_of_line = decoder.next_out_of_line();
4981 let handles_before = decoder.remaining_handles();
4982 if let Some((inlined, num_bytes, num_handles)) =
4983 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4984 {
4985 let member_inline_size =
4986 <InstallationProgress as fidl::encoding::TypeMarker>::inline_size(
4987 decoder.context,
4988 );
4989 if inlined != (member_inline_size <= 4) {
4990 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4991 }
4992 let inner_offset;
4993 let mut inner_depth = depth.clone();
4994 if inlined {
4995 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4996 inner_offset = next_offset;
4997 } else {
4998 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4999 inner_depth.increment()?;
5000 }
5001 let val_ref =
5002 self.progress.get_or_insert_with(|| fidl::new_empty!(InstallationProgress, D));
5003 fidl::decode!(
5004 InstallationProgress,
5005 D,
5006 val_ref,
5007 decoder,
5008 inner_offset,
5009 inner_depth
5010 )?;
5011 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5012 {
5013 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5014 }
5015 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5016 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5017 }
5018 }
5019
5020 next_offset += envelope_size;
5021
5022 while next_offset < end_offset {
5024 _next_ordinal_to_read += 1;
5025 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5026 next_offset += envelope_size;
5027 }
5028
5029 Ok(())
5030 }
5031 }
5032
5033 impl StageData {
5034 #[inline(always)]
5035 fn max_ordinal_present(&self) -> u64 {
5036 if let Some(_) = self.progress {
5037 return 2;
5038 }
5039 if let Some(_) = self.info {
5040 return 1;
5041 }
5042 0
5043 }
5044 }
5045
5046 impl fidl::encoding::ValueTypeMarker for StageData {
5047 type Borrowed<'a> = &'a Self;
5048 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5049 value
5050 }
5051 }
5052
5053 unsafe impl fidl::encoding::TypeMarker for StageData {
5054 type Owned = Self;
5055
5056 #[inline(always)]
5057 fn inline_align(_context: fidl::encoding::Context) -> usize {
5058 8
5059 }
5060
5061 #[inline(always)]
5062 fn inline_size(_context: fidl::encoding::Context) -> usize {
5063 16
5064 }
5065 }
5066
5067 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<StageData, D>
5068 for &StageData
5069 {
5070 unsafe fn encode(
5071 self,
5072 encoder: &mut fidl::encoding::Encoder<'_, D>,
5073 offset: usize,
5074 mut depth: fidl::encoding::Depth,
5075 ) -> fidl::Result<()> {
5076 encoder.debug_check_bounds::<StageData>(offset);
5077 let max_ordinal: u64 = self.max_ordinal_present();
5079 encoder.write_num(max_ordinal, offset);
5080 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
5081 if max_ordinal == 0 {
5083 return Ok(());
5084 }
5085 depth.increment()?;
5086 let envelope_size = 8;
5087 let bytes_len = max_ordinal as usize * envelope_size;
5088 #[allow(unused_variables)]
5089 let offset = encoder.out_of_line_offset(bytes_len);
5090 let mut _prev_end_offset: usize = 0;
5091 if 1 > max_ordinal {
5092 return Ok(());
5093 }
5094
5095 let cur_offset: usize = (1 - 1) * envelope_size;
5098
5099 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5101
5102 fidl::encoding::encode_in_envelope_optional::<UpdateInfo, D>(
5107 self.info.as_ref().map(<UpdateInfo as fidl::encoding::ValueTypeMarker>::borrow),
5108 encoder,
5109 offset + cur_offset,
5110 depth,
5111 )?;
5112
5113 _prev_end_offset = cur_offset + envelope_size;
5114 if 2 > max_ordinal {
5115 return Ok(());
5116 }
5117
5118 let cur_offset: usize = (2 - 1) * envelope_size;
5121
5122 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5124
5125 fidl::encoding::encode_in_envelope_optional::<InstallationProgress, D>(
5130 self.progress
5131 .as_ref()
5132 .map(<InstallationProgress as fidl::encoding::ValueTypeMarker>::borrow),
5133 encoder,
5134 offset + cur_offset,
5135 depth,
5136 )?;
5137
5138 _prev_end_offset = cur_offset + envelope_size;
5139
5140 Ok(())
5141 }
5142 }
5143
5144 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for StageData {
5145 #[inline(always)]
5146 fn new_empty() -> Self {
5147 Self::default()
5148 }
5149
5150 unsafe fn decode(
5151 &mut self,
5152 decoder: &mut fidl::encoding::Decoder<'_, D>,
5153 offset: usize,
5154 mut depth: fidl::encoding::Depth,
5155 ) -> fidl::Result<()> {
5156 decoder.debug_check_bounds::<Self>(offset);
5157 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
5158 None => return Err(fidl::Error::NotNullable),
5159 Some(len) => len,
5160 };
5161 if len == 0 {
5163 return Ok(());
5164 };
5165 depth.increment()?;
5166 let envelope_size = 8;
5167 let bytes_len = len * envelope_size;
5168 let offset = decoder.out_of_line_offset(bytes_len)?;
5169 let mut _next_ordinal_to_read = 0;
5171 let mut next_offset = offset;
5172 let end_offset = offset + bytes_len;
5173 _next_ordinal_to_read += 1;
5174 if next_offset >= end_offset {
5175 return Ok(());
5176 }
5177
5178 while _next_ordinal_to_read < 1 {
5180 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5181 _next_ordinal_to_read += 1;
5182 next_offset += envelope_size;
5183 }
5184
5185 let next_out_of_line = decoder.next_out_of_line();
5186 let handles_before = decoder.remaining_handles();
5187 if let Some((inlined, num_bytes, num_handles)) =
5188 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5189 {
5190 let member_inline_size =
5191 <UpdateInfo as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5192 if inlined != (member_inline_size <= 4) {
5193 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5194 }
5195 let inner_offset;
5196 let mut inner_depth = depth.clone();
5197 if inlined {
5198 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5199 inner_offset = next_offset;
5200 } else {
5201 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5202 inner_depth.increment()?;
5203 }
5204 let val_ref = self.info.get_or_insert_with(|| fidl::new_empty!(UpdateInfo, D));
5205 fidl::decode!(UpdateInfo, D, val_ref, decoder, inner_offset, inner_depth)?;
5206 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5207 {
5208 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5209 }
5210 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5211 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5212 }
5213 }
5214
5215 next_offset += envelope_size;
5216 _next_ordinal_to_read += 1;
5217 if next_offset >= end_offset {
5218 return Ok(());
5219 }
5220
5221 while _next_ordinal_to_read < 2 {
5223 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5224 _next_ordinal_to_read += 1;
5225 next_offset += envelope_size;
5226 }
5227
5228 let next_out_of_line = decoder.next_out_of_line();
5229 let handles_before = decoder.remaining_handles();
5230 if let Some((inlined, num_bytes, num_handles)) =
5231 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5232 {
5233 let member_inline_size =
5234 <InstallationProgress as fidl::encoding::TypeMarker>::inline_size(
5235 decoder.context,
5236 );
5237 if inlined != (member_inline_size <= 4) {
5238 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5239 }
5240 let inner_offset;
5241 let mut inner_depth = depth.clone();
5242 if inlined {
5243 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5244 inner_offset = next_offset;
5245 } else {
5246 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5247 inner_depth.increment()?;
5248 }
5249 let val_ref =
5250 self.progress.get_or_insert_with(|| fidl::new_empty!(InstallationProgress, D));
5251 fidl::decode!(
5252 InstallationProgress,
5253 D,
5254 val_ref,
5255 decoder,
5256 inner_offset,
5257 inner_depth
5258 )?;
5259 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5260 {
5261 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5262 }
5263 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5264 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5265 }
5266 }
5267
5268 next_offset += envelope_size;
5269
5270 while next_offset < end_offset {
5272 _next_ordinal_to_read += 1;
5273 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5274 next_offset += envelope_size;
5275 }
5276
5277 Ok(())
5278 }
5279 }
5280
5281 impl UpdateInfo {
5282 #[inline(always)]
5283 fn max_ordinal_present(&self) -> u64 {
5284 if let Some(_) = self.download_size {
5285 return 1;
5286 }
5287 0
5288 }
5289 }
5290
5291 impl fidl::encoding::ValueTypeMarker for UpdateInfo {
5292 type Borrowed<'a> = &'a Self;
5293 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5294 value
5295 }
5296 }
5297
5298 unsafe impl fidl::encoding::TypeMarker for UpdateInfo {
5299 type Owned = Self;
5300
5301 #[inline(always)]
5302 fn inline_align(_context: fidl::encoding::Context) -> usize {
5303 8
5304 }
5305
5306 #[inline(always)]
5307 fn inline_size(_context: fidl::encoding::Context) -> usize {
5308 16
5309 }
5310 }
5311
5312 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<UpdateInfo, D>
5313 for &UpdateInfo
5314 {
5315 unsafe fn encode(
5316 self,
5317 encoder: &mut fidl::encoding::Encoder<'_, D>,
5318 offset: usize,
5319 mut depth: fidl::encoding::Depth,
5320 ) -> fidl::Result<()> {
5321 encoder.debug_check_bounds::<UpdateInfo>(offset);
5322 let max_ordinal: u64 = self.max_ordinal_present();
5324 encoder.write_num(max_ordinal, offset);
5325 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
5326 if max_ordinal == 0 {
5328 return Ok(());
5329 }
5330 depth.increment()?;
5331 let envelope_size = 8;
5332 let bytes_len = max_ordinal as usize * envelope_size;
5333 #[allow(unused_variables)]
5334 let offset = encoder.out_of_line_offset(bytes_len);
5335 let mut _prev_end_offset: usize = 0;
5336 if 1 > max_ordinal {
5337 return Ok(());
5338 }
5339
5340 let cur_offset: usize = (1 - 1) * envelope_size;
5343
5344 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5346
5347 fidl::encoding::encode_in_envelope_optional::<u64, D>(
5352 self.download_size.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
5353 encoder,
5354 offset + cur_offset,
5355 depth,
5356 )?;
5357
5358 _prev_end_offset = cur_offset + envelope_size;
5359
5360 Ok(())
5361 }
5362 }
5363
5364 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for UpdateInfo {
5365 #[inline(always)]
5366 fn new_empty() -> Self {
5367 Self::default()
5368 }
5369
5370 unsafe fn decode(
5371 &mut self,
5372 decoder: &mut fidl::encoding::Decoder<'_, D>,
5373 offset: usize,
5374 mut depth: fidl::encoding::Depth,
5375 ) -> fidl::Result<()> {
5376 decoder.debug_check_bounds::<Self>(offset);
5377 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
5378 None => return Err(fidl::Error::NotNullable),
5379 Some(len) => len,
5380 };
5381 if len == 0 {
5383 return Ok(());
5384 };
5385 depth.increment()?;
5386 let envelope_size = 8;
5387 let bytes_len = len * envelope_size;
5388 let offset = decoder.out_of_line_offset(bytes_len)?;
5389 let mut _next_ordinal_to_read = 0;
5391 let mut next_offset = offset;
5392 let end_offset = offset + bytes_len;
5393 _next_ordinal_to_read += 1;
5394 if next_offset >= end_offset {
5395 return Ok(());
5396 }
5397
5398 while _next_ordinal_to_read < 1 {
5400 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5401 _next_ordinal_to_read += 1;
5402 next_offset += envelope_size;
5403 }
5404
5405 let next_out_of_line = decoder.next_out_of_line();
5406 let handles_before = decoder.remaining_handles();
5407 if let Some((inlined, num_bytes, num_handles)) =
5408 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5409 {
5410 let member_inline_size =
5411 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5412 if inlined != (member_inline_size <= 4) {
5413 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5414 }
5415 let inner_offset;
5416 let mut inner_depth = depth.clone();
5417 if inlined {
5418 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5419 inner_offset = next_offset;
5420 } else {
5421 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5422 inner_depth.increment()?;
5423 }
5424 let val_ref = self.download_size.get_or_insert_with(|| fidl::new_empty!(u64, D));
5425 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
5426 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5427 {
5428 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5429 }
5430 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5431 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5432 }
5433 }
5434
5435 next_offset += envelope_size;
5436
5437 while next_offset < end_offset {
5439 _next_ordinal_to_read += 1;
5440 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5441 next_offset += envelope_size;
5442 }
5443
5444 Ok(())
5445 }
5446 }
5447
5448 impl WaitToRebootData {
5449 #[inline(always)]
5450 fn max_ordinal_present(&self) -> u64 {
5451 if let Some(_) = self.progress {
5452 return 2;
5453 }
5454 if let Some(_) = self.info {
5455 return 1;
5456 }
5457 0
5458 }
5459 }
5460
5461 impl fidl::encoding::ValueTypeMarker for WaitToRebootData {
5462 type Borrowed<'a> = &'a Self;
5463 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5464 value
5465 }
5466 }
5467
5468 unsafe impl fidl::encoding::TypeMarker for WaitToRebootData {
5469 type Owned = Self;
5470
5471 #[inline(always)]
5472 fn inline_align(_context: fidl::encoding::Context) -> usize {
5473 8
5474 }
5475
5476 #[inline(always)]
5477 fn inline_size(_context: fidl::encoding::Context) -> usize {
5478 16
5479 }
5480 }
5481
5482 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<WaitToRebootData, D>
5483 for &WaitToRebootData
5484 {
5485 unsafe fn encode(
5486 self,
5487 encoder: &mut fidl::encoding::Encoder<'_, D>,
5488 offset: usize,
5489 mut depth: fidl::encoding::Depth,
5490 ) -> fidl::Result<()> {
5491 encoder.debug_check_bounds::<WaitToRebootData>(offset);
5492 let max_ordinal: u64 = self.max_ordinal_present();
5494 encoder.write_num(max_ordinal, offset);
5495 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
5496 if max_ordinal == 0 {
5498 return Ok(());
5499 }
5500 depth.increment()?;
5501 let envelope_size = 8;
5502 let bytes_len = max_ordinal as usize * envelope_size;
5503 #[allow(unused_variables)]
5504 let offset = encoder.out_of_line_offset(bytes_len);
5505 let mut _prev_end_offset: usize = 0;
5506 if 1 > max_ordinal {
5507 return Ok(());
5508 }
5509
5510 let cur_offset: usize = (1 - 1) * envelope_size;
5513
5514 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5516
5517 fidl::encoding::encode_in_envelope_optional::<UpdateInfo, D>(
5522 self.info.as_ref().map(<UpdateInfo as fidl::encoding::ValueTypeMarker>::borrow),
5523 encoder,
5524 offset + cur_offset,
5525 depth,
5526 )?;
5527
5528 _prev_end_offset = cur_offset + envelope_size;
5529 if 2 > max_ordinal {
5530 return Ok(());
5531 }
5532
5533 let cur_offset: usize = (2 - 1) * envelope_size;
5536
5537 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5539
5540 fidl::encoding::encode_in_envelope_optional::<InstallationProgress, D>(
5545 self.progress
5546 .as_ref()
5547 .map(<InstallationProgress as fidl::encoding::ValueTypeMarker>::borrow),
5548 encoder,
5549 offset + cur_offset,
5550 depth,
5551 )?;
5552
5553 _prev_end_offset = cur_offset + envelope_size;
5554
5555 Ok(())
5556 }
5557 }
5558
5559 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for WaitToRebootData {
5560 #[inline(always)]
5561 fn new_empty() -> Self {
5562 Self::default()
5563 }
5564
5565 unsafe fn decode(
5566 &mut self,
5567 decoder: &mut fidl::encoding::Decoder<'_, D>,
5568 offset: usize,
5569 mut depth: fidl::encoding::Depth,
5570 ) -> fidl::Result<()> {
5571 decoder.debug_check_bounds::<Self>(offset);
5572 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
5573 None => return Err(fidl::Error::NotNullable),
5574 Some(len) => len,
5575 };
5576 if len == 0 {
5578 return Ok(());
5579 };
5580 depth.increment()?;
5581 let envelope_size = 8;
5582 let bytes_len = len * envelope_size;
5583 let offset = decoder.out_of_line_offset(bytes_len)?;
5584 let mut _next_ordinal_to_read = 0;
5586 let mut next_offset = offset;
5587 let end_offset = offset + bytes_len;
5588 _next_ordinal_to_read += 1;
5589 if next_offset >= end_offset {
5590 return Ok(());
5591 }
5592
5593 while _next_ordinal_to_read < 1 {
5595 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5596 _next_ordinal_to_read += 1;
5597 next_offset += envelope_size;
5598 }
5599
5600 let next_out_of_line = decoder.next_out_of_line();
5601 let handles_before = decoder.remaining_handles();
5602 if let Some((inlined, num_bytes, num_handles)) =
5603 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5604 {
5605 let member_inline_size =
5606 <UpdateInfo as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5607 if inlined != (member_inline_size <= 4) {
5608 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5609 }
5610 let inner_offset;
5611 let mut inner_depth = depth.clone();
5612 if inlined {
5613 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5614 inner_offset = next_offset;
5615 } else {
5616 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5617 inner_depth.increment()?;
5618 }
5619 let val_ref = self.info.get_or_insert_with(|| fidl::new_empty!(UpdateInfo, D));
5620 fidl::decode!(UpdateInfo, D, val_ref, decoder, inner_offset, inner_depth)?;
5621 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5622 {
5623 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5624 }
5625 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5626 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5627 }
5628 }
5629
5630 next_offset += envelope_size;
5631 _next_ordinal_to_read += 1;
5632 if next_offset >= end_offset {
5633 return Ok(());
5634 }
5635
5636 while _next_ordinal_to_read < 2 {
5638 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5639 _next_ordinal_to_read += 1;
5640 next_offset += envelope_size;
5641 }
5642
5643 let next_out_of_line = decoder.next_out_of_line();
5644 let handles_before = decoder.remaining_handles();
5645 if let Some((inlined, num_bytes, num_handles)) =
5646 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5647 {
5648 let member_inline_size =
5649 <InstallationProgress as fidl::encoding::TypeMarker>::inline_size(
5650 decoder.context,
5651 );
5652 if inlined != (member_inline_size <= 4) {
5653 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5654 }
5655 let inner_offset;
5656 let mut inner_depth = depth.clone();
5657 if inlined {
5658 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5659 inner_offset = next_offset;
5660 } else {
5661 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5662 inner_depth.increment()?;
5663 }
5664 let val_ref =
5665 self.progress.get_or_insert_with(|| fidl::new_empty!(InstallationProgress, D));
5666 fidl::decode!(
5667 InstallationProgress,
5668 D,
5669 val_ref,
5670 decoder,
5671 inner_offset,
5672 inner_depth
5673 )?;
5674 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5675 {
5676 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5677 }
5678 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5679 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5680 }
5681 }
5682
5683 next_offset += envelope_size;
5684
5685 while next_offset < end_offset {
5687 _next_ordinal_to_read += 1;
5688 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5689 next_offset += envelope_size;
5690 }
5691
5692 Ok(())
5693 }
5694 }
5695
5696 impl fidl::encoding::ValueTypeMarker for State {
5697 type Borrowed<'a> = &'a Self;
5698 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5699 value
5700 }
5701 }
5702
5703 unsafe impl fidl::encoding::TypeMarker for State {
5704 type Owned = Self;
5705
5706 #[inline(always)]
5707 fn inline_align(_context: fidl::encoding::Context) -> usize {
5708 8
5709 }
5710
5711 #[inline(always)]
5712 fn inline_size(_context: fidl::encoding::Context) -> usize {
5713 16
5714 }
5715 }
5716
5717 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<State, D> for &State {
5718 #[inline]
5719 unsafe fn encode(
5720 self,
5721 encoder: &mut fidl::encoding::Encoder<'_, D>,
5722 offset: usize,
5723 _depth: fidl::encoding::Depth,
5724 ) -> fidl::Result<()> {
5725 encoder.debug_check_bounds::<State>(offset);
5726 encoder.write_num::<u64>(self.ordinal(), offset);
5727 match self {
5728 State::Prepare(ref val) => fidl::encoding::encode_in_envelope::<PrepareData, D>(
5729 <PrepareData as fidl::encoding::ValueTypeMarker>::borrow(val),
5730 encoder,
5731 offset + 8,
5732 _depth,
5733 ),
5734 State::Stage(ref val) => fidl::encoding::encode_in_envelope::<StageData, D>(
5735 <StageData as fidl::encoding::ValueTypeMarker>::borrow(val),
5736 encoder,
5737 offset + 8,
5738 _depth,
5739 ),
5740 State::Fetch(ref val) => fidl::encoding::encode_in_envelope::<FetchData, D>(
5741 <FetchData as fidl::encoding::ValueTypeMarker>::borrow(val),
5742 encoder,
5743 offset + 8,
5744 _depth,
5745 ),
5746 State::Commit(ref val) => fidl::encoding::encode_in_envelope::<CommitData, D>(
5747 <CommitData as fidl::encoding::ValueTypeMarker>::borrow(val),
5748 encoder,
5749 offset + 8,
5750 _depth,
5751 ),
5752 State::WaitToReboot(ref val) => {
5753 fidl::encoding::encode_in_envelope::<WaitToRebootData, D>(
5754 <WaitToRebootData as fidl::encoding::ValueTypeMarker>::borrow(val),
5755 encoder,
5756 offset + 8,
5757 _depth,
5758 )
5759 }
5760 State::Reboot(ref val) => fidl::encoding::encode_in_envelope::<RebootData, D>(
5761 <RebootData as fidl::encoding::ValueTypeMarker>::borrow(val),
5762 encoder,
5763 offset + 8,
5764 _depth,
5765 ),
5766 State::DeferReboot(ref val) => {
5767 fidl::encoding::encode_in_envelope::<DeferRebootData, D>(
5768 <DeferRebootData as fidl::encoding::ValueTypeMarker>::borrow(val),
5769 encoder,
5770 offset + 8,
5771 _depth,
5772 )
5773 }
5774 State::Complete(ref val) => fidl::encoding::encode_in_envelope::<CompleteData, D>(
5775 <CompleteData as fidl::encoding::ValueTypeMarker>::borrow(val),
5776 encoder,
5777 offset + 8,
5778 _depth,
5779 ),
5780 State::FailPrepare(ref val) => {
5781 fidl::encoding::encode_in_envelope::<FailPrepareData, D>(
5782 <FailPrepareData as fidl::encoding::ValueTypeMarker>::borrow(val),
5783 encoder,
5784 offset + 8,
5785 _depth,
5786 )
5787 }
5788 State::FailStage(ref val) => {
5789 fidl::encoding::encode_in_envelope::<FailStageData, D>(
5790 <FailStageData as fidl::encoding::ValueTypeMarker>::borrow(val),
5791 encoder,
5792 offset + 8,
5793 _depth,
5794 )
5795 }
5796 State::FailFetch(ref val) => {
5797 fidl::encoding::encode_in_envelope::<FailFetchData, D>(
5798 <FailFetchData as fidl::encoding::ValueTypeMarker>::borrow(val),
5799 encoder,
5800 offset + 8,
5801 _depth,
5802 )
5803 }
5804 State::FailCommit(ref val) => {
5805 fidl::encoding::encode_in_envelope::<FailCommitData, D>(
5806 <FailCommitData as fidl::encoding::ValueTypeMarker>::borrow(val),
5807 encoder,
5808 offset + 8,
5809 _depth,
5810 )
5811 }
5812 State::Canceled(ref val) => fidl::encoding::encode_in_envelope::<CanceledData, D>(
5813 <CanceledData as fidl::encoding::ValueTypeMarker>::borrow(val),
5814 encoder,
5815 offset + 8,
5816 _depth,
5817 ),
5818 }
5819 }
5820 }
5821
5822 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for State {
5823 #[inline(always)]
5824 fn new_empty() -> Self {
5825 Self::Prepare(fidl::new_empty!(PrepareData, D))
5826 }
5827
5828 #[inline]
5829 unsafe fn decode(
5830 &mut self,
5831 decoder: &mut fidl::encoding::Decoder<'_, D>,
5832 offset: usize,
5833 mut depth: fidl::encoding::Depth,
5834 ) -> fidl::Result<()> {
5835 decoder.debug_check_bounds::<Self>(offset);
5836 #[allow(unused_variables)]
5837 let next_out_of_line = decoder.next_out_of_line();
5838 let handles_before = decoder.remaining_handles();
5839 let (ordinal, inlined, num_bytes, num_handles) =
5840 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
5841
5842 let member_inline_size = match ordinal {
5843 1 => <PrepareData as fidl::encoding::TypeMarker>::inline_size(decoder.context),
5844 2 => <StageData as fidl::encoding::TypeMarker>::inline_size(decoder.context),
5845 3 => <FetchData as fidl::encoding::TypeMarker>::inline_size(decoder.context),
5846 4 => <CommitData as fidl::encoding::TypeMarker>::inline_size(decoder.context),
5847 5 => <WaitToRebootData as fidl::encoding::TypeMarker>::inline_size(decoder.context),
5848 6 => <RebootData as fidl::encoding::TypeMarker>::inline_size(decoder.context),
5849 7 => <DeferRebootData as fidl::encoding::TypeMarker>::inline_size(decoder.context),
5850 8 => <CompleteData as fidl::encoding::TypeMarker>::inline_size(decoder.context),
5851 9 => <FailPrepareData as fidl::encoding::TypeMarker>::inline_size(decoder.context),
5852 10 => <FailStageData as fidl::encoding::TypeMarker>::inline_size(decoder.context),
5853 11 => <FailFetchData as fidl::encoding::TypeMarker>::inline_size(decoder.context),
5854 12 => <FailCommitData as fidl::encoding::TypeMarker>::inline_size(decoder.context),
5855 13 => <CanceledData as fidl::encoding::TypeMarker>::inline_size(decoder.context),
5856 _ => return Err(fidl::Error::UnknownUnionTag),
5857 };
5858
5859 if inlined != (member_inline_size <= 4) {
5860 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5861 }
5862 let _inner_offset;
5863 if inlined {
5864 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
5865 _inner_offset = offset + 8;
5866 } else {
5867 depth.increment()?;
5868 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5869 }
5870 match ordinal {
5871 1 => {
5872 #[allow(irrefutable_let_patterns)]
5873 if let State::Prepare(_) = self {
5874 } else {
5876 *self = State::Prepare(fidl::new_empty!(PrepareData, D));
5878 }
5879 #[allow(irrefutable_let_patterns)]
5880 if let State::Prepare(ref mut val) = self {
5881 fidl::decode!(PrepareData, D, val, decoder, _inner_offset, depth)?;
5882 } else {
5883 unreachable!()
5884 }
5885 }
5886 2 => {
5887 #[allow(irrefutable_let_patterns)]
5888 if let State::Stage(_) = self {
5889 } else {
5891 *self = State::Stage(fidl::new_empty!(StageData, D));
5893 }
5894 #[allow(irrefutable_let_patterns)]
5895 if let State::Stage(ref mut val) = self {
5896 fidl::decode!(StageData, D, val, decoder, _inner_offset, depth)?;
5897 } else {
5898 unreachable!()
5899 }
5900 }
5901 3 => {
5902 #[allow(irrefutable_let_patterns)]
5903 if let State::Fetch(_) = self {
5904 } else {
5906 *self = State::Fetch(fidl::new_empty!(FetchData, D));
5908 }
5909 #[allow(irrefutable_let_patterns)]
5910 if let State::Fetch(ref mut val) = self {
5911 fidl::decode!(FetchData, D, val, decoder, _inner_offset, depth)?;
5912 } else {
5913 unreachable!()
5914 }
5915 }
5916 4 => {
5917 #[allow(irrefutable_let_patterns)]
5918 if let State::Commit(_) = self {
5919 } else {
5921 *self = State::Commit(fidl::new_empty!(CommitData, D));
5923 }
5924 #[allow(irrefutable_let_patterns)]
5925 if let State::Commit(ref mut val) = self {
5926 fidl::decode!(CommitData, D, val, decoder, _inner_offset, depth)?;
5927 } else {
5928 unreachable!()
5929 }
5930 }
5931 5 => {
5932 #[allow(irrefutable_let_patterns)]
5933 if let State::WaitToReboot(_) = self {
5934 } else {
5936 *self = State::WaitToReboot(fidl::new_empty!(WaitToRebootData, D));
5938 }
5939 #[allow(irrefutable_let_patterns)]
5940 if let State::WaitToReboot(ref mut val) = self {
5941 fidl::decode!(WaitToRebootData, D, val, decoder, _inner_offset, depth)?;
5942 } else {
5943 unreachable!()
5944 }
5945 }
5946 6 => {
5947 #[allow(irrefutable_let_patterns)]
5948 if let State::Reboot(_) = self {
5949 } else {
5951 *self = State::Reboot(fidl::new_empty!(RebootData, D));
5953 }
5954 #[allow(irrefutable_let_patterns)]
5955 if let State::Reboot(ref mut val) = self {
5956 fidl::decode!(RebootData, D, val, decoder, _inner_offset, depth)?;
5957 } else {
5958 unreachable!()
5959 }
5960 }
5961 7 => {
5962 #[allow(irrefutable_let_patterns)]
5963 if let State::DeferReboot(_) = self {
5964 } else {
5966 *self = State::DeferReboot(fidl::new_empty!(DeferRebootData, D));
5968 }
5969 #[allow(irrefutable_let_patterns)]
5970 if let State::DeferReboot(ref mut val) = self {
5971 fidl::decode!(DeferRebootData, D, val, decoder, _inner_offset, depth)?;
5972 } else {
5973 unreachable!()
5974 }
5975 }
5976 8 => {
5977 #[allow(irrefutable_let_patterns)]
5978 if let State::Complete(_) = self {
5979 } else {
5981 *self = State::Complete(fidl::new_empty!(CompleteData, D));
5983 }
5984 #[allow(irrefutable_let_patterns)]
5985 if let State::Complete(ref mut val) = self {
5986 fidl::decode!(CompleteData, D, val, decoder, _inner_offset, depth)?;
5987 } else {
5988 unreachable!()
5989 }
5990 }
5991 9 => {
5992 #[allow(irrefutable_let_patterns)]
5993 if let State::FailPrepare(_) = self {
5994 } else {
5996 *self = State::FailPrepare(fidl::new_empty!(FailPrepareData, D));
5998 }
5999 #[allow(irrefutable_let_patterns)]
6000 if let State::FailPrepare(ref mut val) = self {
6001 fidl::decode!(FailPrepareData, D, val, decoder, _inner_offset, depth)?;
6002 } else {
6003 unreachable!()
6004 }
6005 }
6006 10 => {
6007 #[allow(irrefutable_let_patterns)]
6008 if let State::FailStage(_) = self {
6009 } else {
6011 *self = State::FailStage(fidl::new_empty!(FailStageData, D));
6013 }
6014 #[allow(irrefutable_let_patterns)]
6015 if let State::FailStage(ref mut val) = self {
6016 fidl::decode!(FailStageData, D, val, decoder, _inner_offset, depth)?;
6017 } else {
6018 unreachable!()
6019 }
6020 }
6021 11 => {
6022 #[allow(irrefutable_let_patterns)]
6023 if let State::FailFetch(_) = self {
6024 } else {
6026 *self = State::FailFetch(fidl::new_empty!(FailFetchData, D));
6028 }
6029 #[allow(irrefutable_let_patterns)]
6030 if let State::FailFetch(ref mut val) = self {
6031 fidl::decode!(FailFetchData, D, val, decoder, _inner_offset, depth)?;
6032 } else {
6033 unreachable!()
6034 }
6035 }
6036 12 => {
6037 #[allow(irrefutable_let_patterns)]
6038 if let State::FailCommit(_) = self {
6039 } else {
6041 *self = State::FailCommit(fidl::new_empty!(FailCommitData, D));
6043 }
6044 #[allow(irrefutable_let_patterns)]
6045 if let State::FailCommit(ref mut val) = self {
6046 fidl::decode!(FailCommitData, D, val, decoder, _inner_offset, depth)?;
6047 } else {
6048 unreachable!()
6049 }
6050 }
6051 13 => {
6052 #[allow(irrefutable_let_patterns)]
6053 if let State::Canceled(_) = self {
6054 } else {
6056 *self = State::Canceled(fidl::new_empty!(CanceledData, D));
6058 }
6059 #[allow(irrefutable_let_patterns)]
6060 if let State::Canceled(ref mut val) = self {
6061 fidl::decode!(CanceledData, D, val, decoder, _inner_offset, depth)?;
6062 } else {
6063 unreachable!()
6064 }
6065 }
6066 ordinal => panic!("unexpected ordinal {:?}", ordinal),
6067 }
6068 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
6069 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6070 }
6071 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6072 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6073 }
6074 Ok(())
6075 }
6076 }
6077}