1#![warn(clippy::all)]
4#![allow(unused_parens, unused_mut, unused_imports, nonstandard_style)]
5
6use bitflags::bitflags;
7use fidl::client::QueryResponseFut;
8use fidl::encoding::{MessageBufFor, ProxyChannelBox, ResourceDialect};
9use fidl::endpoints::{ControlHandle as _, Responder as _};
10pub use fidl_fuchsia_system_state__common::*;
11use futures::future::{self, MaybeDone, TryFutureExt};
12use zx_status;
13
14#[derive(Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
15pub struct SystemStateTransitionGetMexecZbisResponse {
16 pub kernel_zbi: fidl::Vmo,
17 pub data_zbi: fidl::Vmo,
18}
19
20impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect>
21 for SystemStateTransitionGetMexecZbisResponse
22{
23}
24
25#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
26pub struct SystemStateTransitionMarker;
27
28impl fidl::endpoints::ProtocolMarker for SystemStateTransitionMarker {
29 type Proxy = SystemStateTransitionProxy;
30 type RequestStream = SystemStateTransitionRequestStream;
31 #[cfg(target_os = "fuchsia")]
32 type SynchronousProxy = SystemStateTransitionSynchronousProxy;
33
34 const DEBUG_NAME: &'static str = "fuchsia.system.state.SystemStateTransition";
35}
36impl fidl::endpoints::DiscoverableProtocolMarker for SystemStateTransitionMarker {}
37pub type SystemStateTransitionGetMexecZbisResult = Result<(fidl::Vmo, fidl::Vmo), i32>;
38
39pub trait SystemStateTransitionProxyInterface: Send + Sync {
40 type GetTerminationSystemStateResponseFut: std::future::Future<Output = Result<SystemPowerState, fidl::Error>>
41 + Send;
42 fn r#get_termination_system_state(&self) -> Self::GetTerminationSystemStateResponseFut;
43 type GetMexecZbisResponseFut: std::future::Future<Output = Result<SystemStateTransitionGetMexecZbisResult, fidl::Error>>
44 + Send;
45 fn r#get_mexec_zbis(&self) -> Self::GetMexecZbisResponseFut;
46}
47#[derive(Debug)]
48#[cfg(target_os = "fuchsia")]
49pub struct SystemStateTransitionSynchronousProxy {
50 client: fidl::client::sync::Client,
51}
52
53#[cfg(target_os = "fuchsia")]
54impl fidl::endpoints::SynchronousProxy for SystemStateTransitionSynchronousProxy {
55 type Proxy = SystemStateTransitionProxy;
56 type Protocol = SystemStateTransitionMarker;
57
58 fn from_channel(inner: fidl::Channel) -> Self {
59 Self::new(inner)
60 }
61
62 fn into_channel(self) -> fidl::Channel {
63 self.client.into_channel()
64 }
65
66 fn as_channel(&self) -> &fidl::Channel {
67 self.client.as_channel()
68 }
69}
70
71#[cfg(target_os = "fuchsia")]
72impl SystemStateTransitionSynchronousProxy {
73 pub fn new(channel: fidl::Channel) -> Self {
74 let protocol_name =
75 <SystemStateTransitionMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
76 Self { client: fidl::client::sync::Client::new(channel, protocol_name) }
77 }
78
79 pub fn into_channel(self) -> fidl::Channel {
80 self.client.into_channel()
81 }
82
83 pub fn wait_for_event(
86 &self,
87 deadline: zx::MonotonicInstant,
88 ) -> Result<SystemStateTransitionEvent, fidl::Error> {
89 SystemStateTransitionEvent::decode(self.client.wait_for_event(deadline)?)
90 }
91
92 pub fn r#get_termination_system_state(
94 &self,
95 ___deadline: zx::MonotonicInstant,
96 ) -> Result<SystemPowerState, fidl::Error> {
97 let _response = self.client.send_query::<
98 fidl::encoding::EmptyPayload,
99 SystemStateTransitionGetTerminationSystemStateResponse,
100 >(
101 (),
102 0x7570e8c601c5e27e,
103 fidl::encoding::DynamicFlags::empty(),
104 ___deadline,
105 )?;
106 Ok(_response.state)
107 }
108
109 pub fn r#get_mexec_zbis(
123 &self,
124 ___deadline: zx::MonotonicInstant,
125 ) -> Result<SystemStateTransitionGetMexecZbisResult, fidl::Error> {
126 let _response =
127 self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
128 SystemStateTransitionGetMexecZbisResponse,
129 i32,
130 >>(
131 (),
132 0x4d5efe452f310fef,
133 fidl::encoding::DynamicFlags::empty(),
134 ___deadline,
135 )?;
136 Ok(_response.map(|x| (x.kernel_zbi, x.data_zbi)))
137 }
138}
139
140#[cfg(target_os = "fuchsia")]
141impl From<SystemStateTransitionSynchronousProxy> for zx::NullableHandle {
142 fn from(value: SystemStateTransitionSynchronousProxy) -> Self {
143 value.into_channel().into()
144 }
145}
146
147#[cfg(target_os = "fuchsia")]
148impl From<fidl::Channel> for SystemStateTransitionSynchronousProxy {
149 fn from(value: fidl::Channel) -> Self {
150 Self::new(value)
151 }
152}
153
154#[cfg(target_os = "fuchsia")]
155impl fidl::endpoints::FromClient for SystemStateTransitionSynchronousProxy {
156 type Protocol = SystemStateTransitionMarker;
157
158 fn from_client(value: fidl::endpoints::ClientEnd<SystemStateTransitionMarker>) -> Self {
159 Self::new(value.into_channel())
160 }
161}
162
163#[derive(Debug, Clone)]
164pub struct SystemStateTransitionProxy {
165 client: fidl::client::Client<fidl::encoding::DefaultFuchsiaResourceDialect>,
166}
167
168impl fidl::endpoints::Proxy for SystemStateTransitionProxy {
169 type Protocol = SystemStateTransitionMarker;
170
171 fn from_channel(inner: ::fidl::AsyncChannel) -> Self {
172 Self::new(inner)
173 }
174
175 fn into_channel(self) -> Result<::fidl::AsyncChannel, Self> {
176 self.client.into_channel().map_err(|client| Self { client })
177 }
178
179 fn as_channel(&self) -> &::fidl::AsyncChannel {
180 self.client.as_channel()
181 }
182}
183
184impl SystemStateTransitionProxy {
185 pub fn new(channel: ::fidl::AsyncChannel) -> Self {
187 let protocol_name =
188 <SystemStateTransitionMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
189 Self { client: fidl::client::Client::new(channel, protocol_name) }
190 }
191
192 pub fn take_event_stream(&self) -> SystemStateTransitionEventStream {
198 SystemStateTransitionEventStream { event_receiver: self.client.take_event_receiver() }
199 }
200
201 pub fn r#get_termination_system_state(
203 &self,
204 ) -> fidl::client::QueryResponseFut<
205 SystemPowerState,
206 fidl::encoding::DefaultFuchsiaResourceDialect,
207 > {
208 SystemStateTransitionProxyInterface::r#get_termination_system_state(self)
209 }
210
211 pub fn r#get_mexec_zbis(
225 &self,
226 ) -> fidl::client::QueryResponseFut<
227 SystemStateTransitionGetMexecZbisResult,
228 fidl::encoding::DefaultFuchsiaResourceDialect,
229 > {
230 SystemStateTransitionProxyInterface::r#get_mexec_zbis(self)
231 }
232}
233
234impl SystemStateTransitionProxyInterface for SystemStateTransitionProxy {
235 type GetTerminationSystemStateResponseFut = fidl::client::QueryResponseFut<
236 SystemPowerState,
237 fidl::encoding::DefaultFuchsiaResourceDialect,
238 >;
239 fn r#get_termination_system_state(&self) -> Self::GetTerminationSystemStateResponseFut {
240 fn _decode(
241 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
242 ) -> Result<SystemPowerState, fidl::Error> {
243 let _response = fidl::client::decode_transaction_body::<
244 SystemStateTransitionGetTerminationSystemStateResponse,
245 fidl::encoding::DefaultFuchsiaResourceDialect,
246 0x7570e8c601c5e27e,
247 >(_buf?)?;
248 Ok(_response.state)
249 }
250 self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, SystemPowerState>(
251 (),
252 0x7570e8c601c5e27e,
253 fidl::encoding::DynamicFlags::empty(),
254 _decode,
255 )
256 }
257
258 type GetMexecZbisResponseFut = fidl::client::QueryResponseFut<
259 SystemStateTransitionGetMexecZbisResult,
260 fidl::encoding::DefaultFuchsiaResourceDialect,
261 >;
262 fn r#get_mexec_zbis(&self) -> Self::GetMexecZbisResponseFut {
263 fn _decode(
264 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
265 ) -> Result<SystemStateTransitionGetMexecZbisResult, fidl::Error> {
266 let _response = fidl::client::decode_transaction_body::<
267 fidl::encoding::ResultType<SystemStateTransitionGetMexecZbisResponse, i32>,
268 fidl::encoding::DefaultFuchsiaResourceDialect,
269 0x4d5efe452f310fef,
270 >(_buf?)?;
271 Ok(_response.map(|x| (x.kernel_zbi, x.data_zbi)))
272 }
273 self.client.send_query_and_decode::<
274 fidl::encoding::EmptyPayload,
275 SystemStateTransitionGetMexecZbisResult,
276 >(
277 (),
278 0x4d5efe452f310fef,
279 fidl::encoding::DynamicFlags::empty(),
280 _decode,
281 )
282 }
283}
284
285pub struct SystemStateTransitionEventStream {
286 event_receiver: fidl::client::EventReceiver<fidl::encoding::DefaultFuchsiaResourceDialect>,
287}
288
289impl std::marker::Unpin for SystemStateTransitionEventStream {}
290
291impl futures::stream::FusedStream for SystemStateTransitionEventStream {
292 fn is_terminated(&self) -> bool {
293 self.event_receiver.is_terminated()
294 }
295}
296
297impl futures::Stream for SystemStateTransitionEventStream {
298 type Item = Result<SystemStateTransitionEvent, fidl::Error>;
299
300 fn poll_next(
301 mut self: std::pin::Pin<&mut Self>,
302 cx: &mut std::task::Context<'_>,
303 ) -> std::task::Poll<Option<Self::Item>> {
304 match futures::ready!(futures::stream::StreamExt::poll_next_unpin(
305 &mut self.event_receiver,
306 cx
307 )?) {
308 Some(buf) => std::task::Poll::Ready(Some(SystemStateTransitionEvent::decode(buf))),
309 None => std::task::Poll::Ready(None),
310 }
311 }
312}
313
314#[derive(Debug)]
315pub enum SystemStateTransitionEvent {}
316
317impl SystemStateTransitionEvent {
318 fn decode(
320 mut buf: <fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc,
321 ) -> Result<SystemStateTransitionEvent, fidl::Error> {
322 let (bytes, _handles) = buf.split_mut();
323 let (tx_header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
324 debug_assert_eq!(tx_header.tx_id, 0);
325 match tx_header.ordinal {
326 _ => Err(fidl::Error::UnknownOrdinal {
327 ordinal: tx_header.ordinal,
328 protocol_name:
329 <SystemStateTransitionMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
330 }),
331 }
332 }
333}
334
335pub struct SystemStateTransitionRequestStream {
337 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
338 is_terminated: bool,
339}
340
341impl std::marker::Unpin for SystemStateTransitionRequestStream {}
342
343impl futures::stream::FusedStream for SystemStateTransitionRequestStream {
344 fn is_terminated(&self) -> bool {
345 self.is_terminated
346 }
347}
348
349impl fidl::endpoints::RequestStream for SystemStateTransitionRequestStream {
350 type Protocol = SystemStateTransitionMarker;
351 type ControlHandle = SystemStateTransitionControlHandle;
352
353 fn from_channel(channel: ::fidl::AsyncChannel) -> Self {
354 Self { inner: std::sync::Arc::new(fidl::ServeInner::new(channel)), is_terminated: false }
355 }
356
357 fn control_handle(&self) -> Self::ControlHandle {
358 SystemStateTransitionControlHandle { inner: self.inner.clone() }
359 }
360
361 fn into_inner(
362 self,
363 ) -> (::std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>, bool)
364 {
365 (self.inner, self.is_terminated)
366 }
367
368 fn from_inner(
369 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
370 is_terminated: bool,
371 ) -> Self {
372 Self { inner, is_terminated }
373 }
374}
375
376impl futures::Stream for SystemStateTransitionRequestStream {
377 type Item = Result<SystemStateTransitionRequest, fidl::Error>;
378
379 fn poll_next(
380 mut self: std::pin::Pin<&mut Self>,
381 cx: &mut std::task::Context<'_>,
382 ) -> std::task::Poll<Option<Self::Item>> {
383 let this = &mut *self;
384 if this.inner.check_shutdown(cx) {
385 this.is_terminated = true;
386 return std::task::Poll::Ready(None);
387 }
388 if this.is_terminated {
389 panic!("polled SystemStateTransitionRequestStream after completion");
390 }
391 fidl::encoding::with_tls_decode_buf::<_, fidl::encoding::DefaultFuchsiaResourceDialect>(
392 |bytes, handles| {
393 match this.inner.channel().read_etc(cx, bytes, handles) {
394 std::task::Poll::Ready(Ok(())) => {}
395 std::task::Poll::Pending => return std::task::Poll::Pending,
396 std::task::Poll::Ready(Err(zx_status::Status::PEER_CLOSED)) => {
397 this.is_terminated = true;
398 return std::task::Poll::Ready(None);
399 }
400 std::task::Poll::Ready(Err(e)) => {
401 return std::task::Poll::Ready(Some(Err(fidl::Error::ServerRequestRead(
402 e.into(),
403 ))));
404 }
405 }
406
407 let (header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
409
410 std::task::Poll::Ready(Some(match header.ordinal {
411 0x7570e8c601c5e27e => {
412 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
413 let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
414 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
415 let control_handle = SystemStateTransitionControlHandle {
416 inner: this.inner.clone(),
417 };
418 Ok(SystemStateTransitionRequest::GetTerminationSystemState {
419 responder: SystemStateTransitionGetTerminationSystemStateResponder {
420 control_handle: std::mem::ManuallyDrop::new(control_handle),
421 tx_id: header.tx_id,
422 },
423 })
424 }
425 0x4d5efe452f310fef => {
426 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
427 let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
428 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
429 let control_handle = SystemStateTransitionControlHandle {
430 inner: this.inner.clone(),
431 };
432 Ok(SystemStateTransitionRequest::GetMexecZbis {
433 responder: SystemStateTransitionGetMexecZbisResponder {
434 control_handle: std::mem::ManuallyDrop::new(control_handle),
435 tx_id: header.tx_id,
436 },
437 })
438 }
439 _ => Err(fidl::Error::UnknownOrdinal {
440 ordinal: header.ordinal,
441 protocol_name: <SystemStateTransitionMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
442 }),
443 }))
444 },
445 )
446 }
447}
448
449#[derive(Debug)]
451pub enum SystemStateTransitionRequest {
452 GetTerminationSystemState { responder: SystemStateTransitionGetTerminationSystemStateResponder },
454 GetMexecZbis { responder: SystemStateTransitionGetMexecZbisResponder },
468}
469
470impl SystemStateTransitionRequest {
471 #[allow(irrefutable_let_patterns)]
472 pub fn into_get_termination_system_state(
473 self,
474 ) -> Option<(SystemStateTransitionGetTerminationSystemStateResponder)> {
475 if let SystemStateTransitionRequest::GetTerminationSystemState { responder } = self {
476 Some((responder))
477 } else {
478 None
479 }
480 }
481
482 #[allow(irrefutable_let_patterns)]
483 pub fn into_get_mexec_zbis(self) -> Option<(SystemStateTransitionGetMexecZbisResponder)> {
484 if let SystemStateTransitionRequest::GetMexecZbis { responder } = self {
485 Some((responder))
486 } else {
487 None
488 }
489 }
490
491 pub fn method_name(&self) -> &'static str {
493 match *self {
494 SystemStateTransitionRequest::GetTerminationSystemState { .. } => {
495 "get_termination_system_state"
496 }
497 SystemStateTransitionRequest::GetMexecZbis { .. } => "get_mexec_zbis",
498 }
499 }
500}
501
502#[derive(Debug, Clone)]
503pub struct SystemStateTransitionControlHandle {
504 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
505}
506
507impl fidl::endpoints::ControlHandle for SystemStateTransitionControlHandle {
508 fn shutdown(&self) {
509 self.inner.shutdown()
510 }
511
512 fn shutdown_with_epitaph(&self, status: zx_status::Status) {
513 self.inner.shutdown_with_epitaph(status)
514 }
515
516 fn is_closed(&self) -> bool {
517 self.inner.channel().is_closed()
518 }
519 fn on_closed(&self) -> fidl::OnSignalsRef<'_> {
520 self.inner.channel().on_closed()
521 }
522
523 #[cfg(target_os = "fuchsia")]
524 fn signal_peer(
525 &self,
526 clear_mask: zx::Signals,
527 set_mask: zx::Signals,
528 ) -> Result<(), zx_status::Status> {
529 use fidl::Peered;
530 self.inner.channel().signal_peer(clear_mask, set_mask)
531 }
532}
533
534impl SystemStateTransitionControlHandle {}
535
536#[must_use = "FIDL methods require a response to be sent"]
537#[derive(Debug)]
538pub struct SystemStateTransitionGetTerminationSystemStateResponder {
539 control_handle: std::mem::ManuallyDrop<SystemStateTransitionControlHandle>,
540 tx_id: u32,
541}
542
543impl std::ops::Drop for SystemStateTransitionGetTerminationSystemStateResponder {
547 fn drop(&mut self) {
548 self.control_handle.shutdown();
549 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
551 }
552}
553
554impl fidl::endpoints::Responder for SystemStateTransitionGetTerminationSystemStateResponder {
555 type ControlHandle = SystemStateTransitionControlHandle;
556
557 fn control_handle(&self) -> &SystemStateTransitionControlHandle {
558 &self.control_handle
559 }
560
561 fn drop_without_shutdown(mut self) {
562 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
564 std::mem::forget(self);
566 }
567}
568
569impl SystemStateTransitionGetTerminationSystemStateResponder {
570 pub fn send(self, mut state: SystemPowerState) -> Result<(), fidl::Error> {
574 let _result = self.send_raw(state);
575 if _result.is_err() {
576 self.control_handle.shutdown();
577 }
578 self.drop_without_shutdown();
579 _result
580 }
581
582 pub fn send_no_shutdown_on_err(self, mut state: SystemPowerState) -> Result<(), fidl::Error> {
584 let _result = self.send_raw(state);
585 self.drop_without_shutdown();
586 _result
587 }
588
589 fn send_raw(&self, mut state: SystemPowerState) -> Result<(), fidl::Error> {
590 self.control_handle.inner.send::<SystemStateTransitionGetTerminationSystemStateResponse>(
591 (state,),
592 self.tx_id,
593 0x7570e8c601c5e27e,
594 fidl::encoding::DynamicFlags::empty(),
595 )
596 }
597}
598
599#[must_use = "FIDL methods require a response to be sent"]
600#[derive(Debug)]
601pub struct SystemStateTransitionGetMexecZbisResponder {
602 control_handle: std::mem::ManuallyDrop<SystemStateTransitionControlHandle>,
603 tx_id: u32,
604}
605
606impl std::ops::Drop for SystemStateTransitionGetMexecZbisResponder {
610 fn drop(&mut self) {
611 self.control_handle.shutdown();
612 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
614 }
615}
616
617impl fidl::endpoints::Responder for SystemStateTransitionGetMexecZbisResponder {
618 type ControlHandle = SystemStateTransitionControlHandle;
619
620 fn control_handle(&self) -> &SystemStateTransitionControlHandle {
621 &self.control_handle
622 }
623
624 fn drop_without_shutdown(mut self) {
625 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
627 std::mem::forget(self);
629 }
630}
631
632impl SystemStateTransitionGetMexecZbisResponder {
633 pub fn send(self, mut result: Result<(fidl::Vmo, fidl::Vmo), i32>) -> Result<(), fidl::Error> {
637 let _result = self.send_raw(result);
638 if _result.is_err() {
639 self.control_handle.shutdown();
640 }
641 self.drop_without_shutdown();
642 _result
643 }
644
645 pub fn send_no_shutdown_on_err(
647 self,
648 mut result: Result<(fidl::Vmo, fidl::Vmo), i32>,
649 ) -> Result<(), fidl::Error> {
650 let _result = self.send_raw(result);
651 self.drop_without_shutdown();
652 _result
653 }
654
655 fn send_raw(&self, mut result: Result<(fidl::Vmo, fidl::Vmo), i32>) -> Result<(), fidl::Error> {
656 self.control_handle.inner.send::<fidl::encoding::ResultType<
657 SystemStateTransitionGetMexecZbisResponse,
658 i32,
659 >>(
660 result,
661 self.tx_id,
662 0x4d5efe452f310fef,
663 fidl::encoding::DynamicFlags::empty(),
664 )
665 }
666}
667
668mod internal {
669 use super::*;
670
671 impl fidl::encoding::ResourceTypeMarker for SystemStateTransitionGetMexecZbisResponse {
672 type Borrowed<'a> = &'a mut Self;
673 fn take_or_borrow<'a>(
674 value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
675 ) -> Self::Borrowed<'a> {
676 value
677 }
678 }
679
680 unsafe impl fidl::encoding::TypeMarker for SystemStateTransitionGetMexecZbisResponse {
681 type Owned = Self;
682
683 #[inline(always)]
684 fn inline_align(_context: fidl::encoding::Context) -> usize {
685 4
686 }
687
688 #[inline(always)]
689 fn inline_size(_context: fidl::encoding::Context) -> usize {
690 8
691 }
692 }
693
694 unsafe impl
695 fidl::encoding::Encode<
696 SystemStateTransitionGetMexecZbisResponse,
697 fidl::encoding::DefaultFuchsiaResourceDialect,
698 > for &mut SystemStateTransitionGetMexecZbisResponse
699 {
700 #[inline]
701 unsafe fn encode(
702 self,
703 encoder: &mut fidl::encoding::Encoder<
704 '_,
705 fidl::encoding::DefaultFuchsiaResourceDialect,
706 >,
707 offset: usize,
708 _depth: fidl::encoding::Depth,
709 ) -> fidl::Result<()> {
710 encoder.debug_check_bounds::<SystemStateTransitionGetMexecZbisResponse>(offset);
711 fidl::encoding::Encode::<
713 SystemStateTransitionGetMexecZbisResponse,
714 fidl::encoding::DefaultFuchsiaResourceDialect,
715 >::encode(
716 (
717 <fidl::encoding::HandleType<
718 fidl::Vmo,
719 { fidl::ObjectType::VMO.into_raw() },
720 2147483648,
721 > as fidl::encoding::ResourceTypeMarker>::take_or_borrow(
722 &mut self.kernel_zbi
723 ),
724 <fidl::encoding::HandleType<
725 fidl::Vmo,
726 { fidl::ObjectType::VMO.into_raw() },
727 2147483648,
728 > as fidl::encoding::ResourceTypeMarker>::take_or_borrow(
729 &mut self.data_zbi
730 ),
731 ),
732 encoder,
733 offset,
734 _depth,
735 )
736 }
737 }
738 unsafe impl<
739 T0: fidl::encoding::Encode<
740 fidl::encoding::HandleType<
741 fidl::Vmo,
742 { fidl::ObjectType::VMO.into_raw() },
743 2147483648,
744 >,
745 fidl::encoding::DefaultFuchsiaResourceDialect,
746 >,
747 T1: fidl::encoding::Encode<
748 fidl::encoding::HandleType<
749 fidl::Vmo,
750 { fidl::ObjectType::VMO.into_raw() },
751 2147483648,
752 >,
753 fidl::encoding::DefaultFuchsiaResourceDialect,
754 >,
755 >
756 fidl::encoding::Encode<
757 SystemStateTransitionGetMexecZbisResponse,
758 fidl::encoding::DefaultFuchsiaResourceDialect,
759 > for (T0, T1)
760 {
761 #[inline]
762 unsafe fn encode(
763 self,
764 encoder: &mut fidl::encoding::Encoder<
765 '_,
766 fidl::encoding::DefaultFuchsiaResourceDialect,
767 >,
768 offset: usize,
769 depth: fidl::encoding::Depth,
770 ) -> fidl::Result<()> {
771 encoder.debug_check_bounds::<SystemStateTransitionGetMexecZbisResponse>(offset);
772 self.0.encode(encoder, offset + 0, depth)?;
776 self.1.encode(encoder, offset + 4, depth)?;
777 Ok(())
778 }
779 }
780
781 impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
782 for SystemStateTransitionGetMexecZbisResponse
783 {
784 #[inline(always)]
785 fn new_empty() -> Self {
786 Self {
787 kernel_zbi: fidl::new_empty!(fidl::encoding::HandleType<fidl::Vmo, { fidl::ObjectType::VMO.into_raw() }, 2147483648>, fidl::encoding::DefaultFuchsiaResourceDialect),
788 data_zbi: fidl::new_empty!(fidl::encoding::HandleType<fidl::Vmo, { fidl::ObjectType::VMO.into_raw() }, 2147483648>, fidl::encoding::DefaultFuchsiaResourceDialect),
789 }
790 }
791
792 #[inline]
793 unsafe fn decode(
794 &mut self,
795 decoder: &mut fidl::encoding::Decoder<
796 '_,
797 fidl::encoding::DefaultFuchsiaResourceDialect,
798 >,
799 offset: usize,
800 _depth: fidl::encoding::Depth,
801 ) -> fidl::Result<()> {
802 decoder.debug_check_bounds::<Self>(offset);
803 fidl::decode!(fidl::encoding::HandleType<fidl::Vmo, { fidl::ObjectType::VMO.into_raw() }, 2147483648>, fidl::encoding::DefaultFuchsiaResourceDialect, &mut self.kernel_zbi, decoder, offset + 0, _depth)?;
805 fidl::decode!(fidl::encoding::HandleType<fidl::Vmo, { fidl::ObjectType::VMO.into_raw() }, 2147483648>, fidl::encoding::DefaultFuchsiaResourceDialect, &mut self.data_zbi, decoder, offset + 4, _depth)?;
806 Ok(())
807 }
808 }
809}