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_ui_test_context_common::*;
11use futures::future::{self, MaybeDone, TryFutureExt};
12use zx_status;
13
14#[derive(Debug, Default, PartialEq)]
15pub struct RealmFactoryCreateRealmRequest {
16 pub realm_server:
17 Option<fidl::endpoints::ServerEnd<fidl_fuchsia_testing_harness::RealmProxy_Marker>>,
18 pub display_rotation: Option<u32>,
19 pub device_pixel_ratio: Option<f32>,
20 pub display_dimensions: Option<fidl_fuchsia_math::SizeU>,
22 pub display_refresh_rate_millihertz: Option<u32>,
24 pub display_max_layer_count: Option<u32>,
26 #[doc(hidden)]
27 pub __source_breaking: fidl::marker::SourceBreaking,
28}
29
30impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect>
31 for RealmFactoryCreateRealmRequest
32{
33}
34
35#[derive(Debug, Default, PartialEq)]
36pub struct ScenicRealmFactoryCreateRealmRequest {
37 pub realm_server:
38 Option<fidl::endpoints::ServerEnd<fidl_fuchsia_testing_harness::RealmProxy_Marker>>,
39 pub renderer: Option<RendererType>,
40 pub display_rotation: Option<u64>,
41 pub display_composition: Option<bool>,
42 pub display_dimensions: Option<fidl_fuchsia_math::SizeU>,
44 pub display_refresh_rate_millihertz: Option<u32>,
46 pub display_max_layer_count: Option<u32>,
48 #[doc(hidden)]
49 pub __source_breaking: fidl::marker::SourceBreaking,
50}
51
52impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect>
53 for ScenicRealmFactoryCreateRealmRequest
54{
55}
56
57#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
58pub struct RealmFactoryMarker;
59
60impl fidl::endpoints::ProtocolMarker for RealmFactoryMarker {
61 type Proxy = RealmFactoryProxy;
62 type RequestStream = RealmFactoryRequestStream;
63 #[cfg(target_os = "fuchsia")]
64 type SynchronousProxy = RealmFactorySynchronousProxy;
65
66 const DEBUG_NAME: &'static str = "fuchsia.ui.test.context.RealmFactory";
67}
68impl fidl::endpoints::DiscoverableProtocolMarker for RealmFactoryMarker {}
69pub type RealmFactoryCreateRealmResult = Result<(), fidl_fuchsia_testing_harness::OperationError>;
70
71pub trait RealmFactoryProxyInterface: Send + Sync {
72 type CreateRealmResponseFut: std::future::Future<Output = Result<RealmFactoryCreateRealmResult, fidl::Error>>
73 + Send;
74 fn r#create_realm(
75 &self,
76 payload: RealmFactoryCreateRealmRequest,
77 ) -> Self::CreateRealmResponseFut;
78}
79#[derive(Debug)]
80#[cfg(target_os = "fuchsia")]
81pub struct RealmFactorySynchronousProxy {
82 client: fidl::client::sync::Client,
83}
84
85#[cfg(target_os = "fuchsia")]
86impl fidl::endpoints::SynchronousProxy for RealmFactorySynchronousProxy {
87 type Proxy = RealmFactoryProxy;
88 type Protocol = RealmFactoryMarker;
89
90 fn from_channel(inner: fidl::Channel) -> Self {
91 Self::new(inner)
92 }
93
94 fn into_channel(self) -> fidl::Channel {
95 self.client.into_channel()
96 }
97
98 fn as_channel(&self) -> &fidl::Channel {
99 self.client.as_channel()
100 }
101}
102
103#[cfg(target_os = "fuchsia")]
104impl RealmFactorySynchronousProxy {
105 pub fn new(channel: fidl::Channel) -> Self {
106 Self { client: fidl::client::sync::Client::new(channel) }
107 }
108
109 pub fn into_channel(self) -> fidl::Channel {
110 self.client.into_channel()
111 }
112
113 pub fn wait_for_event(
116 &self,
117 deadline: zx::MonotonicInstant,
118 ) -> Result<RealmFactoryEvent, fidl::Error> {
119 RealmFactoryEvent::decode(self.client.wait_for_event::<RealmFactoryMarker>(deadline)?)
120 }
121
122 pub fn r#create_realm(
123 &self,
124 mut payload: RealmFactoryCreateRealmRequest,
125 ___deadline: zx::MonotonicInstant,
126 ) -> Result<RealmFactoryCreateRealmResult, fidl::Error> {
127 let _response = self
128 .client
129 .send_query::<RealmFactoryCreateRealmRequest, fidl::encoding::FlexibleResultType<
130 fidl::encoding::EmptyStruct,
131 fidl_fuchsia_testing_harness::OperationError,
132 >, RealmFactoryMarker>(
133 &mut payload,
134 0x6e1c904f44c7d0fc,
135 fidl::encoding::DynamicFlags::FLEXIBLE,
136 ___deadline,
137 )?
138 .into_result::<RealmFactoryMarker>("create_realm")?;
139 Ok(_response.map(|x| x))
140 }
141}
142
143#[cfg(target_os = "fuchsia")]
144impl From<RealmFactorySynchronousProxy> for zx::NullableHandle {
145 fn from(value: RealmFactorySynchronousProxy) -> Self {
146 value.into_channel().into()
147 }
148}
149
150#[cfg(target_os = "fuchsia")]
151impl From<fidl::Channel> for RealmFactorySynchronousProxy {
152 fn from(value: fidl::Channel) -> Self {
153 Self::new(value)
154 }
155}
156
157#[cfg(target_os = "fuchsia")]
158impl fidl::endpoints::FromClient for RealmFactorySynchronousProxy {
159 type Protocol = RealmFactoryMarker;
160
161 fn from_client(value: fidl::endpoints::ClientEnd<RealmFactoryMarker>) -> Self {
162 Self::new(value.into_channel())
163 }
164}
165
166#[derive(Debug, Clone)]
167pub struct RealmFactoryProxy {
168 client: fidl::client::Client<fidl::encoding::DefaultFuchsiaResourceDialect>,
169}
170
171impl fidl::endpoints::Proxy for RealmFactoryProxy {
172 type Protocol = RealmFactoryMarker;
173
174 fn from_channel(inner: ::fidl::AsyncChannel) -> Self {
175 Self::new(inner)
176 }
177
178 fn into_channel(self) -> Result<::fidl::AsyncChannel, Self> {
179 self.client.into_channel().map_err(|client| Self { client })
180 }
181
182 fn as_channel(&self) -> &::fidl::AsyncChannel {
183 self.client.as_channel()
184 }
185}
186
187impl RealmFactoryProxy {
188 pub fn new(channel: ::fidl::AsyncChannel) -> Self {
190 let protocol_name = <RealmFactoryMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
191 Self { client: fidl::client::Client::new(channel, protocol_name) }
192 }
193
194 pub fn take_event_stream(&self) -> RealmFactoryEventStream {
200 RealmFactoryEventStream { event_receiver: self.client.take_event_receiver() }
201 }
202
203 pub fn r#create_realm(
204 &self,
205 mut payload: RealmFactoryCreateRealmRequest,
206 ) -> fidl::client::QueryResponseFut<
207 RealmFactoryCreateRealmResult,
208 fidl::encoding::DefaultFuchsiaResourceDialect,
209 > {
210 RealmFactoryProxyInterface::r#create_realm(self, payload)
211 }
212}
213
214impl RealmFactoryProxyInterface for RealmFactoryProxy {
215 type CreateRealmResponseFut = fidl::client::QueryResponseFut<
216 RealmFactoryCreateRealmResult,
217 fidl::encoding::DefaultFuchsiaResourceDialect,
218 >;
219 fn r#create_realm(
220 &self,
221 mut payload: RealmFactoryCreateRealmRequest,
222 ) -> Self::CreateRealmResponseFut {
223 fn _decode(
224 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
225 ) -> Result<RealmFactoryCreateRealmResult, fidl::Error> {
226 let _response = fidl::client::decode_transaction_body::<
227 fidl::encoding::FlexibleResultType<
228 fidl::encoding::EmptyStruct,
229 fidl_fuchsia_testing_harness::OperationError,
230 >,
231 fidl::encoding::DefaultFuchsiaResourceDialect,
232 0x6e1c904f44c7d0fc,
233 >(_buf?)?
234 .into_result::<RealmFactoryMarker>("create_realm")?;
235 Ok(_response.map(|x| x))
236 }
237 self.client
238 .send_query_and_decode::<RealmFactoryCreateRealmRequest, RealmFactoryCreateRealmResult>(
239 &mut payload,
240 0x6e1c904f44c7d0fc,
241 fidl::encoding::DynamicFlags::FLEXIBLE,
242 _decode,
243 )
244 }
245}
246
247pub struct RealmFactoryEventStream {
248 event_receiver: fidl::client::EventReceiver<fidl::encoding::DefaultFuchsiaResourceDialect>,
249}
250
251impl std::marker::Unpin for RealmFactoryEventStream {}
252
253impl futures::stream::FusedStream for RealmFactoryEventStream {
254 fn is_terminated(&self) -> bool {
255 self.event_receiver.is_terminated()
256 }
257}
258
259impl futures::Stream for RealmFactoryEventStream {
260 type Item = Result<RealmFactoryEvent, fidl::Error>;
261
262 fn poll_next(
263 mut self: std::pin::Pin<&mut Self>,
264 cx: &mut std::task::Context<'_>,
265 ) -> std::task::Poll<Option<Self::Item>> {
266 match futures::ready!(futures::stream::StreamExt::poll_next_unpin(
267 &mut self.event_receiver,
268 cx
269 )?) {
270 Some(buf) => std::task::Poll::Ready(Some(RealmFactoryEvent::decode(buf))),
271 None => std::task::Poll::Ready(None),
272 }
273 }
274}
275
276#[derive(Debug)]
277pub enum RealmFactoryEvent {
278 #[non_exhaustive]
279 _UnknownEvent {
280 ordinal: u64,
282 },
283}
284
285impl RealmFactoryEvent {
286 fn decode(
288 mut buf: <fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc,
289 ) -> Result<RealmFactoryEvent, fidl::Error> {
290 let (bytes, _handles) = buf.split_mut();
291 let (tx_header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
292 debug_assert_eq!(tx_header.tx_id, 0);
293 match tx_header.ordinal {
294 _ if tx_header.dynamic_flags().contains(fidl::encoding::DynamicFlags::FLEXIBLE) => {
295 Ok(RealmFactoryEvent::_UnknownEvent { ordinal: tx_header.ordinal })
296 }
297 _ => Err(fidl::Error::UnknownOrdinal {
298 ordinal: tx_header.ordinal,
299 protocol_name: <RealmFactoryMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
300 }),
301 }
302 }
303}
304
305pub struct RealmFactoryRequestStream {
307 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
308 is_terminated: bool,
309}
310
311impl std::marker::Unpin for RealmFactoryRequestStream {}
312
313impl futures::stream::FusedStream for RealmFactoryRequestStream {
314 fn is_terminated(&self) -> bool {
315 self.is_terminated
316 }
317}
318
319impl fidl::endpoints::RequestStream for RealmFactoryRequestStream {
320 type Protocol = RealmFactoryMarker;
321 type ControlHandle = RealmFactoryControlHandle;
322
323 fn from_channel(channel: ::fidl::AsyncChannel) -> Self {
324 Self { inner: std::sync::Arc::new(fidl::ServeInner::new(channel)), is_terminated: false }
325 }
326
327 fn control_handle(&self) -> Self::ControlHandle {
328 RealmFactoryControlHandle { inner: self.inner.clone() }
329 }
330
331 fn into_inner(
332 self,
333 ) -> (::std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>, bool)
334 {
335 (self.inner, self.is_terminated)
336 }
337
338 fn from_inner(
339 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
340 is_terminated: bool,
341 ) -> Self {
342 Self { inner, is_terminated }
343 }
344}
345
346impl futures::Stream for RealmFactoryRequestStream {
347 type Item = Result<RealmFactoryRequest, fidl::Error>;
348
349 fn poll_next(
350 mut self: std::pin::Pin<&mut Self>,
351 cx: &mut std::task::Context<'_>,
352 ) -> std::task::Poll<Option<Self::Item>> {
353 let this = &mut *self;
354 if this.inner.check_shutdown(cx) {
355 this.is_terminated = true;
356 return std::task::Poll::Ready(None);
357 }
358 if this.is_terminated {
359 panic!("polled RealmFactoryRequestStream after completion");
360 }
361 fidl::encoding::with_tls_decode_buf::<_, fidl::encoding::DefaultFuchsiaResourceDialect>(
362 |bytes, handles| {
363 match this.inner.channel().read_etc(cx, bytes, handles) {
364 std::task::Poll::Ready(Ok(())) => {}
365 std::task::Poll::Pending => return std::task::Poll::Pending,
366 std::task::Poll::Ready(Err(zx_status::Status::PEER_CLOSED)) => {
367 this.is_terminated = true;
368 return std::task::Poll::Ready(None);
369 }
370 std::task::Poll::Ready(Err(e)) => {
371 return std::task::Poll::Ready(Some(Err(fidl::Error::ServerRequestRead(
372 e.into(),
373 ))));
374 }
375 }
376
377 let (header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
379
380 std::task::Poll::Ready(Some(match header.ordinal {
381 0x6e1c904f44c7d0fc => {
382 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
383 let mut req = fidl::new_empty!(
384 RealmFactoryCreateRealmRequest,
385 fidl::encoding::DefaultFuchsiaResourceDialect
386 );
387 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<RealmFactoryCreateRealmRequest>(&header, _body_bytes, handles, &mut req)?;
388 let control_handle =
389 RealmFactoryControlHandle { inner: this.inner.clone() };
390 Ok(RealmFactoryRequest::CreateRealm {
391 payload: req,
392 responder: RealmFactoryCreateRealmResponder {
393 control_handle: std::mem::ManuallyDrop::new(control_handle),
394 tx_id: header.tx_id,
395 },
396 })
397 }
398 _ if header.tx_id == 0
399 && header
400 .dynamic_flags()
401 .contains(fidl::encoding::DynamicFlags::FLEXIBLE) =>
402 {
403 Ok(RealmFactoryRequest::_UnknownMethod {
404 ordinal: header.ordinal,
405 control_handle: RealmFactoryControlHandle { inner: this.inner.clone() },
406 method_type: fidl::MethodType::OneWay,
407 })
408 }
409 _ if header
410 .dynamic_flags()
411 .contains(fidl::encoding::DynamicFlags::FLEXIBLE) =>
412 {
413 this.inner.send_framework_err(
414 fidl::encoding::FrameworkErr::UnknownMethod,
415 header.tx_id,
416 header.ordinal,
417 header.dynamic_flags(),
418 (bytes, handles),
419 )?;
420 Ok(RealmFactoryRequest::_UnknownMethod {
421 ordinal: header.ordinal,
422 control_handle: RealmFactoryControlHandle { inner: this.inner.clone() },
423 method_type: fidl::MethodType::TwoWay,
424 })
425 }
426 _ => Err(fidl::Error::UnknownOrdinal {
427 ordinal: header.ordinal,
428 protocol_name:
429 <RealmFactoryMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
430 }),
431 }))
432 },
433 )
434 }
435}
436
437#[derive(Debug)]
441pub enum RealmFactoryRequest {
442 CreateRealm {
443 payload: RealmFactoryCreateRealmRequest,
444 responder: RealmFactoryCreateRealmResponder,
445 },
446 #[non_exhaustive]
448 _UnknownMethod {
449 ordinal: u64,
451 control_handle: RealmFactoryControlHandle,
452 method_type: fidl::MethodType,
453 },
454}
455
456impl RealmFactoryRequest {
457 #[allow(irrefutable_let_patterns)]
458 pub fn into_create_realm(
459 self,
460 ) -> Option<(RealmFactoryCreateRealmRequest, RealmFactoryCreateRealmResponder)> {
461 if let RealmFactoryRequest::CreateRealm { payload, responder } = self {
462 Some((payload, responder))
463 } else {
464 None
465 }
466 }
467
468 pub fn method_name(&self) -> &'static str {
470 match *self {
471 RealmFactoryRequest::CreateRealm { .. } => "create_realm",
472 RealmFactoryRequest::_UnknownMethod {
473 method_type: fidl::MethodType::OneWay, ..
474 } => "unknown one-way method",
475 RealmFactoryRequest::_UnknownMethod {
476 method_type: fidl::MethodType::TwoWay, ..
477 } => "unknown two-way method",
478 }
479 }
480}
481
482#[derive(Debug, Clone)]
483pub struct RealmFactoryControlHandle {
484 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
485}
486
487impl RealmFactoryControlHandle {
488 pub fn shutdown_with_epitaph(&self, status: impl Into<fidl::Epitaph>) {
489 self.inner.shutdown_with_epitaph(status.into())
490 }
491}
492
493impl fidl::endpoints::ControlHandle for RealmFactoryControlHandle {
494 fn shutdown(&self) {
495 self.inner.shutdown()
496 }
497
498 fn shutdown_with_epitaph(&self, status: fidl::Epitaph) {
499 self.inner.shutdown_with_epitaph(status)
500 }
501
502 fn is_closed(&self) -> bool {
503 self.inner.channel().is_closed()
504 }
505 fn on_closed(&self) -> fidl::OnSignalsRef<'_> {
506 self.inner.channel().on_closed()
507 }
508
509 #[cfg(target_os = "fuchsia")]
510 fn signal_peer(
511 &self,
512 clear_mask: zx::Signals,
513 set_mask: zx::Signals,
514 ) -> Result<(), zx_status::Status> {
515 use fidl::Peered;
516 self.inner.channel().signal_peer(clear_mask, set_mask)
517 }
518}
519
520impl RealmFactoryControlHandle {}
521
522#[must_use = "FIDL methods require a response to be sent"]
523#[derive(Debug)]
524pub struct RealmFactoryCreateRealmResponder {
525 control_handle: std::mem::ManuallyDrop<RealmFactoryControlHandle>,
526 tx_id: u32,
527}
528
529impl std::ops::Drop for RealmFactoryCreateRealmResponder {
533 fn drop(&mut self) {
534 self.control_handle.shutdown();
535 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
537 }
538}
539
540impl fidl::endpoints::Responder for RealmFactoryCreateRealmResponder {
541 type ControlHandle = RealmFactoryControlHandle;
542
543 fn control_handle(&self) -> &RealmFactoryControlHandle {
544 &self.control_handle
545 }
546
547 fn drop_without_shutdown(mut self) {
548 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
550 std::mem::forget(self);
552 }
553}
554
555impl RealmFactoryCreateRealmResponder {
556 pub fn send(
560 self,
561 mut result: Result<(), fidl_fuchsia_testing_harness::OperationError>,
562 ) -> Result<(), fidl::Error> {
563 let _result = self.send_raw(result);
564 if _result.is_err() {
565 self.control_handle.shutdown();
566 }
567 self.drop_without_shutdown();
568 _result
569 }
570
571 pub fn send_no_shutdown_on_err(
573 self,
574 mut result: Result<(), fidl_fuchsia_testing_harness::OperationError>,
575 ) -> Result<(), fidl::Error> {
576 let _result = self.send_raw(result);
577 self.drop_without_shutdown();
578 _result
579 }
580
581 fn send_raw(
582 &self,
583 mut result: Result<(), fidl_fuchsia_testing_harness::OperationError>,
584 ) -> Result<(), fidl::Error> {
585 self.control_handle.inner.send::<fidl::encoding::FlexibleResultType<
586 fidl::encoding::EmptyStruct,
587 fidl_fuchsia_testing_harness::OperationError,
588 >>(
589 fidl::encoding::FlexibleResult::new(result),
590 self.tx_id,
591 0x6e1c904f44c7d0fc,
592 fidl::encoding::DynamicFlags::FLEXIBLE,
593 )
594 }
595}
596
597#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
598pub struct ScenicRealmFactoryMarker;
599
600impl fidl::endpoints::ProtocolMarker for ScenicRealmFactoryMarker {
601 type Proxy = ScenicRealmFactoryProxy;
602 type RequestStream = ScenicRealmFactoryRequestStream;
603 #[cfg(target_os = "fuchsia")]
604 type SynchronousProxy = ScenicRealmFactorySynchronousProxy;
605
606 const DEBUG_NAME: &'static str = "fuchsia.ui.test.context.ScenicRealmFactory";
607}
608impl fidl::endpoints::DiscoverableProtocolMarker for ScenicRealmFactoryMarker {}
609pub type ScenicRealmFactoryCreateRealmResult =
610 Result<(), fidl_fuchsia_testing_harness::OperationError>;
611
612pub trait ScenicRealmFactoryProxyInterface: Send + Sync {
613 type CreateRealmResponseFut: std::future::Future<Output = Result<ScenicRealmFactoryCreateRealmResult, fidl::Error>>
614 + Send;
615 fn r#create_realm(
616 &self,
617 payload: ScenicRealmFactoryCreateRealmRequest,
618 ) -> Self::CreateRealmResponseFut;
619}
620#[derive(Debug)]
621#[cfg(target_os = "fuchsia")]
622pub struct ScenicRealmFactorySynchronousProxy {
623 client: fidl::client::sync::Client,
624}
625
626#[cfg(target_os = "fuchsia")]
627impl fidl::endpoints::SynchronousProxy for ScenicRealmFactorySynchronousProxy {
628 type Proxy = ScenicRealmFactoryProxy;
629 type Protocol = ScenicRealmFactoryMarker;
630
631 fn from_channel(inner: fidl::Channel) -> Self {
632 Self::new(inner)
633 }
634
635 fn into_channel(self) -> fidl::Channel {
636 self.client.into_channel()
637 }
638
639 fn as_channel(&self) -> &fidl::Channel {
640 self.client.as_channel()
641 }
642}
643
644#[cfg(target_os = "fuchsia")]
645impl ScenicRealmFactorySynchronousProxy {
646 pub fn new(channel: fidl::Channel) -> Self {
647 Self { client: fidl::client::sync::Client::new(channel) }
648 }
649
650 pub fn into_channel(self) -> fidl::Channel {
651 self.client.into_channel()
652 }
653
654 pub fn wait_for_event(
657 &self,
658 deadline: zx::MonotonicInstant,
659 ) -> Result<ScenicRealmFactoryEvent, fidl::Error> {
660 ScenicRealmFactoryEvent::decode(
661 self.client.wait_for_event::<ScenicRealmFactoryMarker>(deadline)?,
662 )
663 }
664
665 pub fn r#create_realm(
666 &self,
667 mut payload: ScenicRealmFactoryCreateRealmRequest,
668 ___deadline: zx::MonotonicInstant,
669 ) -> Result<ScenicRealmFactoryCreateRealmResult, fidl::Error> {
670 let _response = self
671 .client
672 .send_query::<ScenicRealmFactoryCreateRealmRequest, fidl::encoding::FlexibleResultType<
673 fidl::encoding::EmptyStruct,
674 fidl_fuchsia_testing_harness::OperationError,
675 >, ScenicRealmFactoryMarker>(
676 &mut payload,
677 0x11f2157d1648e6ba,
678 fidl::encoding::DynamicFlags::FLEXIBLE,
679 ___deadline,
680 )?
681 .into_result::<ScenicRealmFactoryMarker>("create_realm")?;
682 Ok(_response.map(|x| x))
683 }
684}
685
686#[cfg(target_os = "fuchsia")]
687impl From<ScenicRealmFactorySynchronousProxy> for zx::NullableHandle {
688 fn from(value: ScenicRealmFactorySynchronousProxy) -> Self {
689 value.into_channel().into()
690 }
691}
692
693#[cfg(target_os = "fuchsia")]
694impl From<fidl::Channel> for ScenicRealmFactorySynchronousProxy {
695 fn from(value: fidl::Channel) -> Self {
696 Self::new(value)
697 }
698}
699
700#[cfg(target_os = "fuchsia")]
701impl fidl::endpoints::FromClient for ScenicRealmFactorySynchronousProxy {
702 type Protocol = ScenicRealmFactoryMarker;
703
704 fn from_client(value: fidl::endpoints::ClientEnd<ScenicRealmFactoryMarker>) -> Self {
705 Self::new(value.into_channel())
706 }
707}
708
709#[derive(Debug, Clone)]
710pub struct ScenicRealmFactoryProxy {
711 client: fidl::client::Client<fidl::encoding::DefaultFuchsiaResourceDialect>,
712}
713
714impl fidl::endpoints::Proxy for ScenicRealmFactoryProxy {
715 type Protocol = ScenicRealmFactoryMarker;
716
717 fn from_channel(inner: ::fidl::AsyncChannel) -> Self {
718 Self::new(inner)
719 }
720
721 fn into_channel(self) -> Result<::fidl::AsyncChannel, Self> {
722 self.client.into_channel().map_err(|client| Self { client })
723 }
724
725 fn as_channel(&self) -> &::fidl::AsyncChannel {
726 self.client.as_channel()
727 }
728}
729
730impl ScenicRealmFactoryProxy {
731 pub fn new(channel: ::fidl::AsyncChannel) -> Self {
733 let protocol_name =
734 <ScenicRealmFactoryMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
735 Self { client: fidl::client::Client::new(channel, protocol_name) }
736 }
737
738 pub fn take_event_stream(&self) -> ScenicRealmFactoryEventStream {
744 ScenicRealmFactoryEventStream { event_receiver: self.client.take_event_receiver() }
745 }
746
747 pub fn r#create_realm(
748 &self,
749 mut payload: ScenicRealmFactoryCreateRealmRequest,
750 ) -> fidl::client::QueryResponseFut<
751 ScenicRealmFactoryCreateRealmResult,
752 fidl::encoding::DefaultFuchsiaResourceDialect,
753 > {
754 ScenicRealmFactoryProxyInterface::r#create_realm(self, payload)
755 }
756}
757
758impl ScenicRealmFactoryProxyInterface for ScenicRealmFactoryProxy {
759 type CreateRealmResponseFut = fidl::client::QueryResponseFut<
760 ScenicRealmFactoryCreateRealmResult,
761 fidl::encoding::DefaultFuchsiaResourceDialect,
762 >;
763 fn r#create_realm(
764 &self,
765 mut payload: ScenicRealmFactoryCreateRealmRequest,
766 ) -> Self::CreateRealmResponseFut {
767 fn _decode(
768 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
769 ) -> Result<ScenicRealmFactoryCreateRealmResult, fidl::Error> {
770 let _response = fidl::client::decode_transaction_body::<
771 fidl::encoding::FlexibleResultType<
772 fidl::encoding::EmptyStruct,
773 fidl_fuchsia_testing_harness::OperationError,
774 >,
775 fidl::encoding::DefaultFuchsiaResourceDialect,
776 0x11f2157d1648e6ba,
777 >(_buf?)?
778 .into_result::<ScenicRealmFactoryMarker>("create_realm")?;
779 Ok(_response.map(|x| x))
780 }
781 self.client.send_query_and_decode::<
782 ScenicRealmFactoryCreateRealmRequest,
783 ScenicRealmFactoryCreateRealmResult,
784 >(
785 &mut payload,
786 0x11f2157d1648e6ba,
787 fidl::encoding::DynamicFlags::FLEXIBLE,
788 _decode,
789 )
790 }
791}
792
793pub struct ScenicRealmFactoryEventStream {
794 event_receiver: fidl::client::EventReceiver<fidl::encoding::DefaultFuchsiaResourceDialect>,
795}
796
797impl std::marker::Unpin for ScenicRealmFactoryEventStream {}
798
799impl futures::stream::FusedStream for ScenicRealmFactoryEventStream {
800 fn is_terminated(&self) -> bool {
801 self.event_receiver.is_terminated()
802 }
803}
804
805impl futures::Stream for ScenicRealmFactoryEventStream {
806 type Item = Result<ScenicRealmFactoryEvent, fidl::Error>;
807
808 fn poll_next(
809 mut self: std::pin::Pin<&mut Self>,
810 cx: &mut std::task::Context<'_>,
811 ) -> std::task::Poll<Option<Self::Item>> {
812 match futures::ready!(futures::stream::StreamExt::poll_next_unpin(
813 &mut self.event_receiver,
814 cx
815 )?) {
816 Some(buf) => std::task::Poll::Ready(Some(ScenicRealmFactoryEvent::decode(buf))),
817 None => std::task::Poll::Ready(None),
818 }
819 }
820}
821
822#[derive(Debug)]
823pub enum ScenicRealmFactoryEvent {
824 #[non_exhaustive]
825 _UnknownEvent {
826 ordinal: u64,
828 },
829}
830
831impl ScenicRealmFactoryEvent {
832 fn decode(
834 mut buf: <fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc,
835 ) -> Result<ScenicRealmFactoryEvent, fidl::Error> {
836 let (bytes, _handles) = buf.split_mut();
837 let (tx_header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
838 debug_assert_eq!(tx_header.tx_id, 0);
839 match tx_header.ordinal {
840 _ if tx_header.dynamic_flags().contains(fidl::encoding::DynamicFlags::FLEXIBLE) => {
841 Ok(ScenicRealmFactoryEvent::_UnknownEvent { ordinal: tx_header.ordinal })
842 }
843 _ => Err(fidl::Error::UnknownOrdinal {
844 ordinal: tx_header.ordinal,
845 protocol_name:
846 <ScenicRealmFactoryMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
847 }),
848 }
849 }
850}
851
852pub struct ScenicRealmFactoryRequestStream {
854 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
855 is_terminated: bool,
856}
857
858impl std::marker::Unpin for ScenicRealmFactoryRequestStream {}
859
860impl futures::stream::FusedStream for ScenicRealmFactoryRequestStream {
861 fn is_terminated(&self) -> bool {
862 self.is_terminated
863 }
864}
865
866impl fidl::endpoints::RequestStream for ScenicRealmFactoryRequestStream {
867 type Protocol = ScenicRealmFactoryMarker;
868 type ControlHandle = ScenicRealmFactoryControlHandle;
869
870 fn from_channel(channel: ::fidl::AsyncChannel) -> Self {
871 Self { inner: std::sync::Arc::new(fidl::ServeInner::new(channel)), is_terminated: false }
872 }
873
874 fn control_handle(&self) -> Self::ControlHandle {
875 ScenicRealmFactoryControlHandle { inner: self.inner.clone() }
876 }
877
878 fn into_inner(
879 self,
880 ) -> (::std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>, bool)
881 {
882 (self.inner, self.is_terminated)
883 }
884
885 fn from_inner(
886 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
887 is_terminated: bool,
888 ) -> Self {
889 Self { inner, is_terminated }
890 }
891}
892
893impl futures::Stream for ScenicRealmFactoryRequestStream {
894 type Item = Result<ScenicRealmFactoryRequest, fidl::Error>;
895
896 fn poll_next(
897 mut self: std::pin::Pin<&mut Self>,
898 cx: &mut std::task::Context<'_>,
899 ) -> std::task::Poll<Option<Self::Item>> {
900 let this = &mut *self;
901 if this.inner.check_shutdown(cx) {
902 this.is_terminated = true;
903 return std::task::Poll::Ready(None);
904 }
905 if this.is_terminated {
906 panic!("polled ScenicRealmFactoryRequestStream after completion");
907 }
908 fidl::encoding::with_tls_decode_buf::<_, fidl::encoding::DefaultFuchsiaResourceDialect>(
909 |bytes, handles| {
910 match this.inner.channel().read_etc(cx, bytes, handles) {
911 std::task::Poll::Ready(Ok(())) => {}
912 std::task::Poll::Pending => return std::task::Poll::Pending,
913 std::task::Poll::Ready(Err(zx_status::Status::PEER_CLOSED)) => {
914 this.is_terminated = true;
915 return std::task::Poll::Ready(None);
916 }
917 std::task::Poll::Ready(Err(e)) => {
918 return std::task::Poll::Ready(Some(Err(fidl::Error::ServerRequestRead(
919 e.into(),
920 ))));
921 }
922 }
923
924 let (header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
926
927 std::task::Poll::Ready(Some(match header.ordinal {
928 0x11f2157d1648e6ba => {
929 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
930 let mut req = fidl::new_empty!(ScenicRealmFactoryCreateRealmRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
931 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<ScenicRealmFactoryCreateRealmRequest>(&header, _body_bytes, handles, &mut req)?;
932 let control_handle = ScenicRealmFactoryControlHandle {
933 inner: this.inner.clone(),
934 };
935 Ok(ScenicRealmFactoryRequest::CreateRealm {payload: req,
936 responder: ScenicRealmFactoryCreateRealmResponder {
937 control_handle: std::mem::ManuallyDrop::new(control_handle),
938 tx_id: header.tx_id,
939 },
940 })
941 }
942 _ if header.tx_id == 0 && header.dynamic_flags().contains(fidl::encoding::DynamicFlags::FLEXIBLE) => {
943 Ok(ScenicRealmFactoryRequest::_UnknownMethod {
944 ordinal: header.ordinal,
945 control_handle: ScenicRealmFactoryControlHandle { inner: this.inner.clone() },
946 method_type: fidl::MethodType::OneWay,
947 })
948 }
949 _ if header.dynamic_flags().contains(fidl::encoding::DynamicFlags::FLEXIBLE) => {
950 this.inner.send_framework_err(
951 fidl::encoding::FrameworkErr::UnknownMethod,
952 header.tx_id,
953 header.ordinal,
954 header.dynamic_flags(),
955 (bytes, handles),
956 )?;
957 Ok(ScenicRealmFactoryRequest::_UnknownMethod {
958 ordinal: header.ordinal,
959 control_handle: ScenicRealmFactoryControlHandle { inner: this.inner.clone() },
960 method_type: fidl::MethodType::TwoWay,
961 })
962 }
963 _ => Err(fidl::Error::UnknownOrdinal {
964 ordinal: header.ordinal,
965 protocol_name: <ScenicRealmFactoryMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
966 }),
967 }))
968 },
969 )
970 }
971}
972
973#[derive(Debug)]
977pub enum ScenicRealmFactoryRequest {
978 CreateRealm {
979 payload: ScenicRealmFactoryCreateRealmRequest,
980 responder: ScenicRealmFactoryCreateRealmResponder,
981 },
982 #[non_exhaustive]
984 _UnknownMethod {
985 ordinal: u64,
987 control_handle: ScenicRealmFactoryControlHandle,
988 method_type: fidl::MethodType,
989 },
990}
991
992impl ScenicRealmFactoryRequest {
993 #[allow(irrefutable_let_patterns)]
994 pub fn into_create_realm(
995 self,
996 ) -> Option<(ScenicRealmFactoryCreateRealmRequest, ScenicRealmFactoryCreateRealmResponder)>
997 {
998 if let ScenicRealmFactoryRequest::CreateRealm { payload, responder } = self {
999 Some((payload, responder))
1000 } else {
1001 None
1002 }
1003 }
1004
1005 pub fn method_name(&self) -> &'static str {
1007 match *self {
1008 ScenicRealmFactoryRequest::CreateRealm { .. } => "create_realm",
1009 ScenicRealmFactoryRequest::_UnknownMethod {
1010 method_type: fidl::MethodType::OneWay,
1011 ..
1012 } => "unknown one-way method",
1013 ScenicRealmFactoryRequest::_UnknownMethod {
1014 method_type: fidl::MethodType::TwoWay,
1015 ..
1016 } => "unknown two-way method",
1017 }
1018 }
1019}
1020
1021#[derive(Debug, Clone)]
1022pub struct ScenicRealmFactoryControlHandle {
1023 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
1024}
1025
1026impl ScenicRealmFactoryControlHandle {
1027 pub fn shutdown_with_epitaph(&self, status: impl Into<fidl::Epitaph>) {
1028 self.inner.shutdown_with_epitaph(status.into())
1029 }
1030}
1031
1032impl fidl::endpoints::ControlHandle for ScenicRealmFactoryControlHandle {
1033 fn shutdown(&self) {
1034 self.inner.shutdown()
1035 }
1036
1037 fn shutdown_with_epitaph(&self, status: fidl::Epitaph) {
1038 self.inner.shutdown_with_epitaph(status)
1039 }
1040
1041 fn is_closed(&self) -> bool {
1042 self.inner.channel().is_closed()
1043 }
1044 fn on_closed(&self) -> fidl::OnSignalsRef<'_> {
1045 self.inner.channel().on_closed()
1046 }
1047
1048 #[cfg(target_os = "fuchsia")]
1049 fn signal_peer(
1050 &self,
1051 clear_mask: zx::Signals,
1052 set_mask: zx::Signals,
1053 ) -> Result<(), zx_status::Status> {
1054 use fidl::Peered;
1055 self.inner.channel().signal_peer(clear_mask, set_mask)
1056 }
1057}
1058
1059impl ScenicRealmFactoryControlHandle {}
1060
1061#[must_use = "FIDL methods require a response to be sent"]
1062#[derive(Debug)]
1063pub struct ScenicRealmFactoryCreateRealmResponder {
1064 control_handle: std::mem::ManuallyDrop<ScenicRealmFactoryControlHandle>,
1065 tx_id: u32,
1066}
1067
1068impl std::ops::Drop for ScenicRealmFactoryCreateRealmResponder {
1072 fn drop(&mut self) {
1073 self.control_handle.shutdown();
1074 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
1076 }
1077}
1078
1079impl fidl::endpoints::Responder for ScenicRealmFactoryCreateRealmResponder {
1080 type ControlHandle = ScenicRealmFactoryControlHandle;
1081
1082 fn control_handle(&self) -> &ScenicRealmFactoryControlHandle {
1083 &self.control_handle
1084 }
1085
1086 fn drop_without_shutdown(mut self) {
1087 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
1089 std::mem::forget(self);
1091 }
1092}
1093
1094impl ScenicRealmFactoryCreateRealmResponder {
1095 pub fn send(
1099 self,
1100 mut result: Result<(), fidl_fuchsia_testing_harness::OperationError>,
1101 ) -> Result<(), fidl::Error> {
1102 let _result = self.send_raw(result);
1103 if _result.is_err() {
1104 self.control_handle.shutdown();
1105 }
1106 self.drop_without_shutdown();
1107 _result
1108 }
1109
1110 pub fn send_no_shutdown_on_err(
1112 self,
1113 mut result: Result<(), fidl_fuchsia_testing_harness::OperationError>,
1114 ) -> Result<(), fidl::Error> {
1115 let _result = self.send_raw(result);
1116 self.drop_without_shutdown();
1117 _result
1118 }
1119
1120 fn send_raw(
1121 &self,
1122 mut result: Result<(), fidl_fuchsia_testing_harness::OperationError>,
1123 ) -> Result<(), fidl::Error> {
1124 self.control_handle.inner.send::<fidl::encoding::FlexibleResultType<
1125 fidl::encoding::EmptyStruct,
1126 fidl_fuchsia_testing_harness::OperationError,
1127 >>(
1128 fidl::encoding::FlexibleResult::new(result),
1129 self.tx_id,
1130 0x11f2157d1648e6ba,
1131 fidl::encoding::DynamicFlags::FLEXIBLE,
1132 )
1133 }
1134}
1135
1136mod internal {
1137 use super::*;
1138
1139 impl RealmFactoryCreateRealmRequest {
1140 #[inline(always)]
1141 fn max_ordinal_present(&self) -> u64 {
1142 if let Some(_) = self.display_max_layer_count {
1143 return 6;
1144 }
1145 if let Some(_) = self.display_refresh_rate_millihertz {
1146 return 5;
1147 }
1148 if let Some(_) = self.display_dimensions {
1149 return 4;
1150 }
1151 if let Some(_) = self.device_pixel_ratio {
1152 return 3;
1153 }
1154 if let Some(_) = self.display_rotation {
1155 return 2;
1156 }
1157 if let Some(_) = self.realm_server {
1158 return 1;
1159 }
1160 0
1161 }
1162 }
1163
1164 impl fidl::encoding::ResourceTypeMarker for RealmFactoryCreateRealmRequest {
1165 type Borrowed<'a> = &'a mut Self;
1166 fn take_or_borrow<'a>(
1167 value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
1168 ) -> Self::Borrowed<'a> {
1169 value
1170 }
1171 }
1172
1173 unsafe impl fidl::encoding::TypeMarker for RealmFactoryCreateRealmRequest {
1174 type Owned = Self;
1175
1176 #[inline(always)]
1177 fn inline_align(_context: fidl::encoding::Context) -> usize {
1178 8
1179 }
1180
1181 #[inline(always)]
1182 fn inline_size(_context: fidl::encoding::Context) -> usize {
1183 16
1184 }
1185 }
1186
1187 unsafe impl
1188 fidl::encoding::Encode<
1189 RealmFactoryCreateRealmRequest,
1190 fidl::encoding::DefaultFuchsiaResourceDialect,
1191 > for &mut RealmFactoryCreateRealmRequest
1192 {
1193 unsafe fn encode(
1194 self,
1195 encoder: &mut fidl::encoding::Encoder<
1196 '_,
1197 fidl::encoding::DefaultFuchsiaResourceDialect,
1198 >,
1199 offset: usize,
1200 mut depth: fidl::encoding::Depth,
1201 ) -> fidl::Result<()> {
1202 encoder.debug_check_bounds::<RealmFactoryCreateRealmRequest>(offset);
1203 let max_ordinal: u64 = self.max_ordinal_present();
1205 encoder.write_num(max_ordinal, offset);
1206 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
1207 if max_ordinal == 0 {
1209 return Ok(());
1210 }
1211 depth.increment()?;
1212 let envelope_size = 8;
1213 let bytes_len = max_ordinal as usize * envelope_size;
1214 #[allow(unused_variables)]
1215 let offset = encoder.out_of_line_offset(bytes_len);
1216 let mut _prev_end_offset: usize = 0;
1217 if 1 > max_ordinal {
1218 return Ok(());
1219 }
1220
1221 let cur_offset: usize = (1 - 1) * envelope_size;
1224
1225 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1227
1228 fidl::encoding::encode_in_envelope_optional::<
1233 fidl::encoding::Endpoint<
1234 fidl::endpoints::ServerEnd<fidl_fuchsia_testing_harness::RealmProxy_Marker>,
1235 >,
1236 fidl::encoding::DefaultFuchsiaResourceDialect,
1237 >(
1238 self.realm_server.as_mut().map(
1239 <fidl::encoding::Endpoint<
1240 fidl::endpoints::ServerEnd<fidl_fuchsia_testing_harness::RealmProxy_Marker>,
1241 > as fidl::encoding::ResourceTypeMarker>::take_or_borrow,
1242 ),
1243 encoder,
1244 offset + cur_offset,
1245 depth,
1246 )?;
1247
1248 _prev_end_offset = cur_offset + envelope_size;
1249 if 2 > max_ordinal {
1250 return Ok(());
1251 }
1252
1253 let cur_offset: usize = (2 - 1) * envelope_size;
1256
1257 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1259
1260 fidl::encoding::encode_in_envelope_optional::<
1265 u32,
1266 fidl::encoding::DefaultFuchsiaResourceDialect,
1267 >(
1268 self.display_rotation
1269 .as_ref()
1270 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
1271 encoder,
1272 offset + cur_offset,
1273 depth,
1274 )?;
1275
1276 _prev_end_offset = cur_offset + envelope_size;
1277 if 3 > max_ordinal {
1278 return Ok(());
1279 }
1280
1281 let cur_offset: usize = (3 - 1) * envelope_size;
1284
1285 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1287
1288 fidl::encoding::encode_in_envelope_optional::<
1293 f32,
1294 fidl::encoding::DefaultFuchsiaResourceDialect,
1295 >(
1296 self.device_pixel_ratio
1297 .as_ref()
1298 .map(<f32 as fidl::encoding::ValueTypeMarker>::borrow),
1299 encoder,
1300 offset + cur_offset,
1301 depth,
1302 )?;
1303
1304 _prev_end_offset = cur_offset + envelope_size;
1305 if 4 > max_ordinal {
1306 return Ok(());
1307 }
1308
1309 let cur_offset: usize = (4 - 1) * envelope_size;
1312
1313 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1315
1316 fidl::encoding::encode_in_envelope_optional::<
1321 fidl_fuchsia_math::SizeU,
1322 fidl::encoding::DefaultFuchsiaResourceDialect,
1323 >(
1324 self.display_dimensions
1325 .as_ref()
1326 .map(<fidl_fuchsia_math::SizeU as fidl::encoding::ValueTypeMarker>::borrow),
1327 encoder,
1328 offset + cur_offset,
1329 depth,
1330 )?;
1331
1332 _prev_end_offset = cur_offset + envelope_size;
1333 if 5 > max_ordinal {
1334 return Ok(());
1335 }
1336
1337 let cur_offset: usize = (5 - 1) * envelope_size;
1340
1341 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1343
1344 fidl::encoding::encode_in_envelope_optional::<
1349 u32,
1350 fidl::encoding::DefaultFuchsiaResourceDialect,
1351 >(
1352 self.display_refresh_rate_millihertz
1353 .as_ref()
1354 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
1355 encoder,
1356 offset + cur_offset,
1357 depth,
1358 )?;
1359
1360 _prev_end_offset = cur_offset + envelope_size;
1361 if 6 > max_ordinal {
1362 return Ok(());
1363 }
1364
1365 let cur_offset: usize = (6 - 1) * envelope_size;
1368
1369 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1371
1372 fidl::encoding::encode_in_envelope_optional::<
1377 u32,
1378 fidl::encoding::DefaultFuchsiaResourceDialect,
1379 >(
1380 self.display_max_layer_count
1381 .as_ref()
1382 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
1383 encoder,
1384 offset + cur_offset,
1385 depth,
1386 )?;
1387
1388 _prev_end_offset = cur_offset + envelope_size;
1389
1390 Ok(())
1391 }
1392 }
1393
1394 impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
1395 for RealmFactoryCreateRealmRequest
1396 {
1397 #[inline(always)]
1398 fn new_empty() -> Self {
1399 Self::default()
1400 }
1401
1402 unsafe fn decode(
1403 &mut self,
1404 decoder: &mut fidl::encoding::Decoder<
1405 '_,
1406 fidl::encoding::DefaultFuchsiaResourceDialect,
1407 >,
1408 offset: usize,
1409 mut depth: fidl::encoding::Depth,
1410 ) -> fidl::Result<()> {
1411 decoder.debug_check_bounds::<Self>(offset);
1412 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
1413 None => return Err(fidl::Error::NotNullable),
1414 Some(len) => len,
1415 };
1416 if len == 0 {
1418 return Ok(());
1419 };
1420 depth.increment()?;
1421 let envelope_size = 8;
1422 let bytes_len = len * envelope_size;
1423 let offset = decoder.out_of_line_offset(bytes_len)?;
1424 let mut _next_ordinal_to_read = 0;
1426 let mut next_offset = offset;
1427 let end_offset = offset + bytes_len;
1428 _next_ordinal_to_read += 1;
1429 if next_offset >= end_offset {
1430 return Ok(());
1431 }
1432
1433 while _next_ordinal_to_read < 1 {
1435 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1436 _next_ordinal_to_read += 1;
1437 next_offset += envelope_size;
1438 }
1439
1440 let next_out_of_line = decoder.next_out_of_line();
1441 let handles_before = decoder.remaining_handles();
1442 if let Some((inlined, num_bytes, num_handles)) =
1443 fidl::encoding::decode_envelope_header(decoder, next_offset)?
1444 {
1445 let member_inline_size = <fidl::encoding::Endpoint<
1446 fidl::endpoints::ServerEnd<fidl_fuchsia_testing_harness::RealmProxy_Marker>,
1447 > as fidl::encoding::TypeMarker>::inline_size(
1448 decoder.context
1449 );
1450 if inlined != (member_inline_size <= 4) {
1451 return Err(fidl::Error::InvalidInlineBitInEnvelope);
1452 }
1453 let inner_offset;
1454 let mut inner_depth = depth.clone();
1455 if inlined {
1456 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
1457 inner_offset = next_offset;
1458 } else {
1459 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
1460 inner_depth.increment()?;
1461 }
1462 let val_ref = self.realm_server.get_or_insert_with(|| {
1463 fidl::new_empty!(
1464 fidl::encoding::Endpoint<
1465 fidl::endpoints::ServerEnd<
1466 fidl_fuchsia_testing_harness::RealmProxy_Marker,
1467 >,
1468 >,
1469 fidl::encoding::DefaultFuchsiaResourceDialect
1470 )
1471 });
1472 fidl::decode!(
1473 fidl::encoding::Endpoint<
1474 fidl::endpoints::ServerEnd<fidl_fuchsia_testing_harness::RealmProxy_Marker>,
1475 >,
1476 fidl::encoding::DefaultFuchsiaResourceDialect,
1477 val_ref,
1478 decoder,
1479 inner_offset,
1480 inner_depth
1481 )?;
1482 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
1483 {
1484 return Err(fidl::Error::InvalidNumBytesInEnvelope);
1485 }
1486 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
1487 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
1488 }
1489 }
1490
1491 next_offset += envelope_size;
1492 _next_ordinal_to_read += 1;
1493 if next_offset >= end_offset {
1494 return Ok(());
1495 }
1496
1497 while _next_ordinal_to_read < 2 {
1499 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1500 _next_ordinal_to_read += 1;
1501 next_offset += envelope_size;
1502 }
1503
1504 let next_out_of_line = decoder.next_out_of_line();
1505 let handles_before = decoder.remaining_handles();
1506 if let Some((inlined, num_bytes, num_handles)) =
1507 fidl::encoding::decode_envelope_header(decoder, next_offset)?
1508 {
1509 let member_inline_size =
1510 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
1511 if inlined != (member_inline_size <= 4) {
1512 return Err(fidl::Error::InvalidInlineBitInEnvelope);
1513 }
1514 let inner_offset;
1515 let mut inner_depth = depth.clone();
1516 if inlined {
1517 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
1518 inner_offset = next_offset;
1519 } else {
1520 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
1521 inner_depth.increment()?;
1522 }
1523 let val_ref = self.display_rotation.get_or_insert_with(|| {
1524 fidl::new_empty!(u32, fidl::encoding::DefaultFuchsiaResourceDialect)
1525 });
1526 fidl::decode!(
1527 u32,
1528 fidl::encoding::DefaultFuchsiaResourceDialect,
1529 val_ref,
1530 decoder,
1531 inner_offset,
1532 inner_depth
1533 )?;
1534 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
1535 {
1536 return Err(fidl::Error::InvalidNumBytesInEnvelope);
1537 }
1538 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
1539 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
1540 }
1541 }
1542
1543 next_offset += envelope_size;
1544 _next_ordinal_to_read += 1;
1545 if next_offset >= end_offset {
1546 return Ok(());
1547 }
1548
1549 while _next_ordinal_to_read < 3 {
1551 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1552 _next_ordinal_to_read += 1;
1553 next_offset += envelope_size;
1554 }
1555
1556 let next_out_of_line = decoder.next_out_of_line();
1557 let handles_before = decoder.remaining_handles();
1558 if let Some((inlined, num_bytes, num_handles)) =
1559 fidl::encoding::decode_envelope_header(decoder, next_offset)?
1560 {
1561 let member_inline_size =
1562 <f32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
1563 if inlined != (member_inline_size <= 4) {
1564 return Err(fidl::Error::InvalidInlineBitInEnvelope);
1565 }
1566 let inner_offset;
1567 let mut inner_depth = depth.clone();
1568 if inlined {
1569 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
1570 inner_offset = next_offset;
1571 } else {
1572 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
1573 inner_depth.increment()?;
1574 }
1575 let val_ref = self.device_pixel_ratio.get_or_insert_with(|| {
1576 fidl::new_empty!(f32, fidl::encoding::DefaultFuchsiaResourceDialect)
1577 });
1578 fidl::decode!(
1579 f32,
1580 fidl::encoding::DefaultFuchsiaResourceDialect,
1581 val_ref,
1582 decoder,
1583 inner_offset,
1584 inner_depth
1585 )?;
1586 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
1587 {
1588 return Err(fidl::Error::InvalidNumBytesInEnvelope);
1589 }
1590 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
1591 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
1592 }
1593 }
1594
1595 next_offset += envelope_size;
1596 _next_ordinal_to_read += 1;
1597 if next_offset >= end_offset {
1598 return Ok(());
1599 }
1600
1601 while _next_ordinal_to_read < 4 {
1603 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1604 _next_ordinal_to_read += 1;
1605 next_offset += envelope_size;
1606 }
1607
1608 let next_out_of_line = decoder.next_out_of_line();
1609 let handles_before = decoder.remaining_handles();
1610 if let Some((inlined, num_bytes, num_handles)) =
1611 fidl::encoding::decode_envelope_header(decoder, next_offset)?
1612 {
1613 let member_inline_size =
1614 <fidl_fuchsia_math::SizeU as fidl::encoding::TypeMarker>::inline_size(
1615 decoder.context,
1616 );
1617 if inlined != (member_inline_size <= 4) {
1618 return Err(fidl::Error::InvalidInlineBitInEnvelope);
1619 }
1620 let inner_offset;
1621 let mut inner_depth = depth.clone();
1622 if inlined {
1623 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
1624 inner_offset = next_offset;
1625 } else {
1626 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
1627 inner_depth.increment()?;
1628 }
1629 let val_ref = self.display_dimensions.get_or_insert_with(|| {
1630 fidl::new_empty!(
1631 fidl_fuchsia_math::SizeU,
1632 fidl::encoding::DefaultFuchsiaResourceDialect
1633 )
1634 });
1635 fidl::decode!(
1636 fidl_fuchsia_math::SizeU,
1637 fidl::encoding::DefaultFuchsiaResourceDialect,
1638 val_ref,
1639 decoder,
1640 inner_offset,
1641 inner_depth
1642 )?;
1643 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
1644 {
1645 return Err(fidl::Error::InvalidNumBytesInEnvelope);
1646 }
1647 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
1648 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
1649 }
1650 }
1651
1652 next_offset += envelope_size;
1653 _next_ordinal_to_read += 1;
1654 if next_offset >= end_offset {
1655 return Ok(());
1656 }
1657
1658 while _next_ordinal_to_read < 5 {
1660 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1661 _next_ordinal_to_read += 1;
1662 next_offset += envelope_size;
1663 }
1664
1665 let next_out_of_line = decoder.next_out_of_line();
1666 let handles_before = decoder.remaining_handles();
1667 if let Some((inlined, num_bytes, num_handles)) =
1668 fidl::encoding::decode_envelope_header(decoder, next_offset)?
1669 {
1670 let member_inline_size =
1671 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
1672 if inlined != (member_inline_size <= 4) {
1673 return Err(fidl::Error::InvalidInlineBitInEnvelope);
1674 }
1675 let inner_offset;
1676 let mut inner_depth = depth.clone();
1677 if inlined {
1678 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
1679 inner_offset = next_offset;
1680 } else {
1681 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
1682 inner_depth.increment()?;
1683 }
1684 let val_ref = self.display_refresh_rate_millihertz.get_or_insert_with(|| {
1685 fidl::new_empty!(u32, fidl::encoding::DefaultFuchsiaResourceDialect)
1686 });
1687 fidl::decode!(
1688 u32,
1689 fidl::encoding::DefaultFuchsiaResourceDialect,
1690 val_ref,
1691 decoder,
1692 inner_offset,
1693 inner_depth
1694 )?;
1695 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
1696 {
1697 return Err(fidl::Error::InvalidNumBytesInEnvelope);
1698 }
1699 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
1700 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
1701 }
1702 }
1703
1704 next_offset += envelope_size;
1705 _next_ordinal_to_read += 1;
1706 if next_offset >= end_offset {
1707 return Ok(());
1708 }
1709
1710 while _next_ordinal_to_read < 6 {
1712 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1713 _next_ordinal_to_read += 1;
1714 next_offset += envelope_size;
1715 }
1716
1717 let next_out_of_line = decoder.next_out_of_line();
1718 let handles_before = decoder.remaining_handles();
1719 if let Some((inlined, num_bytes, num_handles)) =
1720 fidl::encoding::decode_envelope_header(decoder, next_offset)?
1721 {
1722 let member_inline_size =
1723 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
1724 if inlined != (member_inline_size <= 4) {
1725 return Err(fidl::Error::InvalidInlineBitInEnvelope);
1726 }
1727 let inner_offset;
1728 let mut inner_depth = depth.clone();
1729 if inlined {
1730 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
1731 inner_offset = next_offset;
1732 } else {
1733 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
1734 inner_depth.increment()?;
1735 }
1736 let val_ref = self.display_max_layer_count.get_or_insert_with(|| {
1737 fidl::new_empty!(u32, fidl::encoding::DefaultFuchsiaResourceDialect)
1738 });
1739 fidl::decode!(
1740 u32,
1741 fidl::encoding::DefaultFuchsiaResourceDialect,
1742 val_ref,
1743 decoder,
1744 inner_offset,
1745 inner_depth
1746 )?;
1747 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
1748 {
1749 return Err(fidl::Error::InvalidNumBytesInEnvelope);
1750 }
1751 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
1752 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
1753 }
1754 }
1755
1756 next_offset += envelope_size;
1757
1758 while next_offset < end_offset {
1760 _next_ordinal_to_read += 1;
1761 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1762 next_offset += envelope_size;
1763 }
1764
1765 Ok(())
1766 }
1767 }
1768
1769 impl ScenicRealmFactoryCreateRealmRequest {
1770 #[inline(always)]
1771 fn max_ordinal_present(&self) -> u64 {
1772 if let Some(_) = self.display_max_layer_count {
1773 return 7;
1774 }
1775 if let Some(_) = self.display_refresh_rate_millihertz {
1776 return 6;
1777 }
1778 if let Some(_) = self.display_dimensions {
1779 return 5;
1780 }
1781 if let Some(_) = self.display_composition {
1782 return 4;
1783 }
1784 if let Some(_) = self.display_rotation {
1785 return 3;
1786 }
1787 if let Some(_) = self.renderer {
1788 return 2;
1789 }
1790 if let Some(_) = self.realm_server {
1791 return 1;
1792 }
1793 0
1794 }
1795 }
1796
1797 impl fidl::encoding::ResourceTypeMarker for ScenicRealmFactoryCreateRealmRequest {
1798 type Borrowed<'a> = &'a mut Self;
1799 fn take_or_borrow<'a>(
1800 value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
1801 ) -> Self::Borrowed<'a> {
1802 value
1803 }
1804 }
1805
1806 unsafe impl fidl::encoding::TypeMarker for ScenicRealmFactoryCreateRealmRequest {
1807 type Owned = Self;
1808
1809 #[inline(always)]
1810 fn inline_align(_context: fidl::encoding::Context) -> usize {
1811 8
1812 }
1813
1814 #[inline(always)]
1815 fn inline_size(_context: fidl::encoding::Context) -> usize {
1816 16
1817 }
1818 }
1819
1820 unsafe impl
1821 fidl::encoding::Encode<
1822 ScenicRealmFactoryCreateRealmRequest,
1823 fidl::encoding::DefaultFuchsiaResourceDialect,
1824 > for &mut ScenicRealmFactoryCreateRealmRequest
1825 {
1826 unsafe fn encode(
1827 self,
1828 encoder: &mut fidl::encoding::Encoder<
1829 '_,
1830 fidl::encoding::DefaultFuchsiaResourceDialect,
1831 >,
1832 offset: usize,
1833 mut depth: fidl::encoding::Depth,
1834 ) -> fidl::Result<()> {
1835 encoder.debug_check_bounds::<ScenicRealmFactoryCreateRealmRequest>(offset);
1836 let max_ordinal: u64 = self.max_ordinal_present();
1838 encoder.write_num(max_ordinal, offset);
1839 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
1840 if max_ordinal == 0 {
1842 return Ok(());
1843 }
1844 depth.increment()?;
1845 let envelope_size = 8;
1846 let bytes_len = max_ordinal as usize * envelope_size;
1847 #[allow(unused_variables)]
1848 let offset = encoder.out_of_line_offset(bytes_len);
1849 let mut _prev_end_offset: usize = 0;
1850 if 1 > max_ordinal {
1851 return Ok(());
1852 }
1853
1854 let cur_offset: usize = (1 - 1) * envelope_size;
1857
1858 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1860
1861 fidl::encoding::encode_in_envelope_optional::<
1866 fidl::encoding::Endpoint<
1867 fidl::endpoints::ServerEnd<fidl_fuchsia_testing_harness::RealmProxy_Marker>,
1868 >,
1869 fidl::encoding::DefaultFuchsiaResourceDialect,
1870 >(
1871 self.realm_server.as_mut().map(
1872 <fidl::encoding::Endpoint<
1873 fidl::endpoints::ServerEnd<fidl_fuchsia_testing_harness::RealmProxy_Marker>,
1874 > as fidl::encoding::ResourceTypeMarker>::take_or_borrow,
1875 ),
1876 encoder,
1877 offset + cur_offset,
1878 depth,
1879 )?;
1880
1881 _prev_end_offset = cur_offset + envelope_size;
1882 if 2 > max_ordinal {
1883 return Ok(());
1884 }
1885
1886 let cur_offset: usize = (2 - 1) * envelope_size;
1889
1890 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1892
1893 fidl::encoding::encode_in_envelope_optional::<
1898 RendererType,
1899 fidl::encoding::DefaultFuchsiaResourceDialect,
1900 >(
1901 self.renderer
1902 .as_ref()
1903 .map(<RendererType as fidl::encoding::ValueTypeMarker>::borrow),
1904 encoder,
1905 offset + cur_offset,
1906 depth,
1907 )?;
1908
1909 _prev_end_offset = cur_offset + envelope_size;
1910 if 3 > max_ordinal {
1911 return Ok(());
1912 }
1913
1914 let cur_offset: usize = (3 - 1) * envelope_size;
1917
1918 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1920
1921 fidl::encoding::encode_in_envelope_optional::<
1926 u64,
1927 fidl::encoding::DefaultFuchsiaResourceDialect,
1928 >(
1929 self.display_rotation
1930 .as_ref()
1931 .map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
1932 encoder,
1933 offset + cur_offset,
1934 depth,
1935 )?;
1936
1937 _prev_end_offset = cur_offset + envelope_size;
1938 if 4 > max_ordinal {
1939 return Ok(());
1940 }
1941
1942 let cur_offset: usize = (4 - 1) * envelope_size;
1945
1946 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1948
1949 fidl::encoding::encode_in_envelope_optional::<
1954 bool,
1955 fidl::encoding::DefaultFuchsiaResourceDialect,
1956 >(
1957 self.display_composition
1958 .as_ref()
1959 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
1960 encoder,
1961 offset + cur_offset,
1962 depth,
1963 )?;
1964
1965 _prev_end_offset = cur_offset + envelope_size;
1966 if 5 > max_ordinal {
1967 return Ok(());
1968 }
1969
1970 let cur_offset: usize = (5 - 1) * envelope_size;
1973
1974 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1976
1977 fidl::encoding::encode_in_envelope_optional::<
1982 fidl_fuchsia_math::SizeU,
1983 fidl::encoding::DefaultFuchsiaResourceDialect,
1984 >(
1985 self.display_dimensions
1986 .as_ref()
1987 .map(<fidl_fuchsia_math::SizeU as fidl::encoding::ValueTypeMarker>::borrow),
1988 encoder,
1989 offset + cur_offset,
1990 depth,
1991 )?;
1992
1993 _prev_end_offset = cur_offset + envelope_size;
1994 if 6 > max_ordinal {
1995 return Ok(());
1996 }
1997
1998 let cur_offset: usize = (6 - 1) * envelope_size;
2001
2002 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2004
2005 fidl::encoding::encode_in_envelope_optional::<
2010 u32,
2011 fidl::encoding::DefaultFuchsiaResourceDialect,
2012 >(
2013 self.display_refresh_rate_millihertz
2014 .as_ref()
2015 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
2016 encoder,
2017 offset + cur_offset,
2018 depth,
2019 )?;
2020
2021 _prev_end_offset = cur_offset + envelope_size;
2022 if 7 > max_ordinal {
2023 return Ok(());
2024 }
2025
2026 let cur_offset: usize = (7 - 1) * envelope_size;
2029
2030 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2032
2033 fidl::encoding::encode_in_envelope_optional::<
2038 u32,
2039 fidl::encoding::DefaultFuchsiaResourceDialect,
2040 >(
2041 self.display_max_layer_count
2042 .as_ref()
2043 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
2044 encoder,
2045 offset + cur_offset,
2046 depth,
2047 )?;
2048
2049 _prev_end_offset = cur_offset + envelope_size;
2050
2051 Ok(())
2052 }
2053 }
2054
2055 impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
2056 for ScenicRealmFactoryCreateRealmRequest
2057 {
2058 #[inline(always)]
2059 fn new_empty() -> Self {
2060 Self::default()
2061 }
2062
2063 unsafe fn decode(
2064 &mut self,
2065 decoder: &mut fidl::encoding::Decoder<
2066 '_,
2067 fidl::encoding::DefaultFuchsiaResourceDialect,
2068 >,
2069 offset: usize,
2070 mut depth: fidl::encoding::Depth,
2071 ) -> fidl::Result<()> {
2072 decoder.debug_check_bounds::<Self>(offset);
2073 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
2074 None => return Err(fidl::Error::NotNullable),
2075 Some(len) => len,
2076 };
2077 if len == 0 {
2079 return Ok(());
2080 };
2081 depth.increment()?;
2082 let envelope_size = 8;
2083 let bytes_len = len * envelope_size;
2084 let offset = decoder.out_of_line_offset(bytes_len)?;
2085 let mut _next_ordinal_to_read = 0;
2087 let mut next_offset = offset;
2088 let end_offset = offset + bytes_len;
2089 _next_ordinal_to_read += 1;
2090 if next_offset >= end_offset {
2091 return Ok(());
2092 }
2093
2094 while _next_ordinal_to_read < 1 {
2096 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2097 _next_ordinal_to_read += 1;
2098 next_offset += envelope_size;
2099 }
2100
2101 let next_out_of_line = decoder.next_out_of_line();
2102 let handles_before = decoder.remaining_handles();
2103 if let Some((inlined, num_bytes, num_handles)) =
2104 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2105 {
2106 let member_inline_size = <fidl::encoding::Endpoint<
2107 fidl::endpoints::ServerEnd<fidl_fuchsia_testing_harness::RealmProxy_Marker>,
2108 > as fidl::encoding::TypeMarker>::inline_size(
2109 decoder.context
2110 );
2111 if inlined != (member_inline_size <= 4) {
2112 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2113 }
2114 let inner_offset;
2115 let mut inner_depth = depth.clone();
2116 if inlined {
2117 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2118 inner_offset = next_offset;
2119 } else {
2120 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2121 inner_depth.increment()?;
2122 }
2123 let val_ref = self.realm_server.get_or_insert_with(|| {
2124 fidl::new_empty!(
2125 fidl::encoding::Endpoint<
2126 fidl::endpoints::ServerEnd<
2127 fidl_fuchsia_testing_harness::RealmProxy_Marker,
2128 >,
2129 >,
2130 fidl::encoding::DefaultFuchsiaResourceDialect
2131 )
2132 });
2133 fidl::decode!(
2134 fidl::encoding::Endpoint<
2135 fidl::endpoints::ServerEnd<fidl_fuchsia_testing_harness::RealmProxy_Marker>,
2136 >,
2137 fidl::encoding::DefaultFuchsiaResourceDialect,
2138 val_ref,
2139 decoder,
2140 inner_offset,
2141 inner_depth
2142 )?;
2143 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2144 {
2145 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2146 }
2147 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2148 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2149 }
2150 }
2151
2152 next_offset += envelope_size;
2153 _next_ordinal_to_read += 1;
2154 if next_offset >= end_offset {
2155 return Ok(());
2156 }
2157
2158 while _next_ordinal_to_read < 2 {
2160 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2161 _next_ordinal_to_read += 1;
2162 next_offset += envelope_size;
2163 }
2164
2165 let next_out_of_line = decoder.next_out_of_line();
2166 let handles_before = decoder.remaining_handles();
2167 if let Some((inlined, num_bytes, num_handles)) =
2168 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2169 {
2170 let member_inline_size =
2171 <RendererType as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2172 if inlined != (member_inline_size <= 4) {
2173 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2174 }
2175 let inner_offset;
2176 let mut inner_depth = depth.clone();
2177 if inlined {
2178 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2179 inner_offset = next_offset;
2180 } else {
2181 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2182 inner_depth.increment()?;
2183 }
2184 let val_ref = self.renderer.get_or_insert_with(|| {
2185 fidl::new_empty!(RendererType, fidl::encoding::DefaultFuchsiaResourceDialect)
2186 });
2187 fidl::decode!(
2188 RendererType,
2189 fidl::encoding::DefaultFuchsiaResourceDialect,
2190 val_ref,
2191 decoder,
2192 inner_offset,
2193 inner_depth
2194 )?;
2195 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2196 {
2197 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2198 }
2199 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2200 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2201 }
2202 }
2203
2204 next_offset += envelope_size;
2205 _next_ordinal_to_read += 1;
2206 if next_offset >= end_offset {
2207 return Ok(());
2208 }
2209
2210 while _next_ordinal_to_read < 3 {
2212 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2213 _next_ordinal_to_read += 1;
2214 next_offset += envelope_size;
2215 }
2216
2217 let next_out_of_line = decoder.next_out_of_line();
2218 let handles_before = decoder.remaining_handles();
2219 if let Some((inlined, num_bytes, num_handles)) =
2220 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2221 {
2222 let member_inline_size =
2223 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2224 if inlined != (member_inline_size <= 4) {
2225 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2226 }
2227 let inner_offset;
2228 let mut inner_depth = depth.clone();
2229 if inlined {
2230 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2231 inner_offset = next_offset;
2232 } else {
2233 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2234 inner_depth.increment()?;
2235 }
2236 let val_ref = self.display_rotation.get_or_insert_with(|| {
2237 fidl::new_empty!(u64, fidl::encoding::DefaultFuchsiaResourceDialect)
2238 });
2239 fidl::decode!(
2240 u64,
2241 fidl::encoding::DefaultFuchsiaResourceDialect,
2242 val_ref,
2243 decoder,
2244 inner_offset,
2245 inner_depth
2246 )?;
2247 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2248 {
2249 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2250 }
2251 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2252 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2253 }
2254 }
2255
2256 next_offset += envelope_size;
2257 _next_ordinal_to_read += 1;
2258 if next_offset >= end_offset {
2259 return Ok(());
2260 }
2261
2262 while _next_ordinal_to_read < 4 {
2264 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2265 _next_ordinal_to_read += 1;
2266 next_offset += envelope_size;
2267 }
2268
2269 let next_out_of_line = decoder.next_out_of_line();
2270 let handles_before = decoder.remaining_handles();
2271 if let Some((inlined, num_bytes, num_handles)) =
2272 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2273 {
2274 let member_inline_size =
2275 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2276 if inlined != (member_inline_size <= 4) {
2277 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2278 }
2279 let inner_offset;
2280 let mut inner_depth = depth.clone();
2281 if inlined {
2282 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2283 inner_offset = next_offset;
2284 } else {
2285 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2286 inner_depth.increment()?;
2287 }
2288 let val_ref = self.display_composition.get_or_insert_with(|| {
2289 fidl::new_empty!(bool, fidl::encoding::DefaultFuchsiaResourceDialect)
2290 });
2291 fidl::decode!(
2292 bool,
2293 fidl::encoding::DefaultFuchsiaResourceDialect,
2294 val_ref,
2295 decoder,
2296 inner_offset,
2297 inner_depth
2298 )?;
2299 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2300 {
2301 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2302 }
2303 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2304 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2305 }
2306 }
2307
2308 next_offset += envelope_size;
2309 _next_ordinal_to_read += 1;
2310 if next_offset >= end_offset {
2311 return Ok(());
2312 }
2313
2314 while _next_ordinal_to_read < 5 {
2316 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2317 _next_ordinal_to_read += 1;
2318 next_offset += envelope_size;
2319 }
2320
2321 let next_out_of_line = decoder.next_out_of_line();
2322 let handles_before = decoder.remaining_handles();
2323 if let Some((inlined, num_bytes, num_handles)) =
2324 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2325 {
2326 let member_inline_size =
2327 <fidl_fuchsia_math::SizeU as fidl::encoding::TypeMarker>::inline_size(
2328 decoder.context,
2329 );
2330 if inlined != (member_inline_size <= 4) {
2331 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2332 }
2333 let inner_offset;
2334 let mut inner_depth = depth.clone();
2335 if inlined {
2336 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2337 inner_offset = next_offset;
2338 } else {
2339 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2340 inner_depth.increment()?;
2341 }
2342 let val_ref = self.display_dimensions.get_or_insert_with(|| {
2343 fidl::new_empty!(
2344 fidl_fuchsia_math::SizeU,
2345 fidl::encoding::DefaultFuchsiaResourceDialect
2346 )
2347 });
2348 fidl::decode!(
2349 fidl_fuchsia_math::SizeU,
2350 fidl::encoding::DefaultFuchsiaResourceDialect,
2351 val_ref,
2352 decoder,
2353 inner_offset,
2354 inner_depth
2355 )?;
2356 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2357 {
2358 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2359 }
2360 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2361 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2362 }
2363 }
2364
2365 next_offset += envelope_size;
2366 _next_ordinal_to_read += 1;
2367 if next_offset >= end_offset {
2368 return Ok(());
2369 }
2370
2371 while _next_ordinal_to_read < 6 {
2373 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2374 _next_ordinal_to_read += 1;
2375 next_offset += envelope_size;
2376 }
2377
2378 let next_out_of_line = decoder.next_out_of_line();
2379 let handles_before = decoder.remaining_handles();
2380 if let Some((inlined, num_bytes, num_handles)) =
2381 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2382 {
2383 let member_inline_size =
2384 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2385 if inlined != (member_inline_size <= 4) {
2386 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2387 }
2388 let inner_offset;
2389 let mut inner_depth = depth.clone();
2390 if inlined {
2391 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2392 inner_offset = next_offset;
2393 } else {
2394 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2395 inner_depth.increment()?;
2396 }
2397 let val_ref = self.display_refresh_rate_millihertz.get_or_insert_with(|| {
2398 fidl::new_empty!(u32, fidl::encoding::DefaultFuchsiaResourceDialect)
2399 });
2400 fidl::decode!(
2401 u32,
2402 fidl::encoding::DefaultFuchsiaResourceDialect,
2403 val_ref,
2404 decoder,
2405 inner_offset,
2406 inner_depth
2407 )?;
2408 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2409 {
2410 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2411 }
2412 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2413 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2414 }
2415 }
2416
2417 next_offset += envelope_size;
2418 _next_ordinal_to_read += 1;
2419 if next_offset >= end_offset {
2420 return Ok(());
2421 }
2422
2423 while _next_ordinal_to_read < 7 {
2425 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2426 _next_ordinal_to_read += 1;
2427 next_offset += envelope_size;
2428 }
2429
2430 let next_out_of_line = decoder.next_out_of_line();
2431 let handles_before = decoder.remaining_handles();
2432 if let Some((inlined, num_bytes, num_handles)) =
2433 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2434 {
2435 let member_inline_size =
2436 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2437 if inlined != (member_inline_size <= 4) {
2438 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2439 }
2440 let inner_offset;
2441 let mut inner_depth = depth.clone();
2442 if inlined {
2443 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2444 inner_offset = next_offset;
2445 } else {
2446 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2447 inner_depth.increment()?;
2448 }
2449 let val_ref = self.display_max_layer_count.get_or_insert_with(|| {
2450 fidl::new_empty!(u32, fidl::encoding::DefaultFuchsiaResourceDialect)
2451 });
2452 fidl::decode!(
2453 u32,
2454 fidl::encoding::DefaultFuchsiaResourceDialect,
2455 val_ref,
2456 decoder,
2457 inner_offset,
2458 inner_depth
2459 )?;
2460 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2461 {
2462 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2463 }
2464 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2465 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2466 }
2467 }
2468
2469 next_offset += envelope_size;
2470
2471 while next_offset < end_offset {
2473 _next_ordinal_to_read += 1;
2474 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2475 next_offset += envelope_size;
2476 }
2477
2478 Ok(())
2479 }
2480 }
2481}