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