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