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 fidl::endpoints::ControlHandle for RealmFactoryControlHandle {
488 fn shutdown(&self) {
489 self.inner.shutdown()
490 }
491
492 fn shutdown_with_epitaph(&self, status: zx_status::Status) {
493 self.inner.shutdown_with_epitaph(status)
494 }
495
496 fn is_closed(&self) -> bool {
497 self.inner.channel().is_closed()
498 }
499 fn on_closed(&self) -> fidl::OnSignalsRef<'_> {
500 self.inner.channel().on_closed()
501 }
502
503 #[cfg(target_os = "fuchsia")]
504 fn signal_peer(
505 &self,
506 clear_mask: zx::Signals,
507 set_mask: zx::Signals,
508 ) -> Result<(), zx_status::Status> {
509 use fidl::Peered;
510 self.inner.channel().signal_peer(clear_mask, set_mask)
511 }
512}
513
514impl RealmFactoryControlHandle {}
515
516#[must_use = "FIDL methods require a response to be sent"]
517#[derive(Debug)]
518pub struct RealmFactoryCreateRealmResponder {
519 control_handle: std::mem::ManuallyDrop<RealmFactoryControlHandle>,
520 tx_id: u32,
521}
522
523impl std::ops::Drop for RealmFactoryCreateRealmResponder {
527 fn drop(&mut self) {
528 self.control_handle.shutdown();
529 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
531 }
532}
533
534impl fidl::endpoints::Responder for RealmFactoryCreateRealmResponder {
535 type ControlHandle = RealmFactoryControlHandle;
536
537 fn control_handle(&self) -> &RealmFactoryControlHandle {
538 &self.control_handle
539 }
540
541 fn drop_without_shutdown(mut self) {
542 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
544 std::mem::forget(self);
546 }
547}
548
549impl RealmFactoryCreateRealmResponder {
550 pub fn send(
554 self,
555 mut result: Result<(), fidl_fuchsia_testing_harness::OperationError>,
556 ) -> Result<(), fidl::Error> {
557 let _result = self.send_raw(result);
558 if _result.is_err() {
559 self.control_handle.shutdown();
560 }
561 self.drop_without_shutdown();
562 _result
563 }
564
565 pub fn send_no_shutdown_on_err(
567 self,
568 mut result: Result<(), fidl_fuchsia_testing_harness::OperationError>,
569 ) -> Result<(), fidl::Error> {
570 let _result = self.send_raw(result);
571 self.drop_without_shutdown();
572 _result
573 }
574
575 fn send_raw(
576 &self,
577 mut result: Result<(), fidl_fuchsia_testing_harness::OperationError>,
578 ) -> Result<(), fidl::Error> {
579 self.control_handle.inner.send::<fidl::encoding::FlexibleResultType<
580 fidl::encoding::EmptyStruct,
581 fidl_fuchsia_testing_harness::OperationError,
582 >>(
583 fidl::encoding::FlexibleResult::new(result),
584 self.tx_id,
585 0x6e1c904f44c7d0fc,
586 fidl::encoding::DynamicFlags::FLEXIBLE,
587 )
588 }
589}
590
591#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
592pub struct ScenicRealmFactoryMarker;
593
594impl fidl::endpoints::ProtocolMarker for ScenicRealmFactoryMarker {
595 type Proxy = ScenicRealmFactoryProxy;
596 type RequestStream = ScenicRealmFactoryRequestStream;
597 #[cfg(target_os = "fuchsia")]
598 type SynchronousProxy = ScenicRealmFactorySynchronousProxy;
599
600 const DEBUG_NAME: &'static str = "fuchsia.ui.test.context.ScenicRealmFactory";
601}
602impl fidl::endpoints::DiscoverableProtocolMarker for ScenicRealmFactoryMarker {}
603pub type ScenicRealmFactoryCreateRealmResult =
604 Result<(), fidl_fuchsia_testing_harness::OperationError>;
605
606pub trait ScenicRealmFactoryProxyInterface: Send + Sync {
607 type CreateRealmResponseFut: std::future::Future<Output = Result<ScenicRealmFactoryCreateRealmResult, fidl::Error>>
608 + Send;
609 fn r#create_realm(
610 &self,
611 payload: ScenicRealmFactoryCreateRealmRequest,
612 ) -> Self::CreateRealmResponseFut;
613}
614#[derive(Debug)]
615#[cfg(target_os = "fuchsia")]
616pub struct ScenicRealmFactorySynchronousProxy {
617 client: fidl::client::sync::Client,
618}
619
620#[cfg(target_os = "fuchsia")]
621impl fidl::endpoints::SynchronousProxy for ScenicRealmFactorySynchronousProxy {
622 type Proxy = ScenicRealmFactoryProxy;
623 type Protocol = ScenicRealmFactoryMarker;
624
625 fn from_channel(inner: fidl::Channel) -> Self {
626 Self::new(inner)
627 }
628
629 fn into_channel(self) -> fidl::Channel {
630 self.client.into_channel()
631 }
632
633 fn as_channel(&self) -> &fidl::Channel {
634 self.client.as_channel()
635 }
636}
637
638#[cfg(target_os = "fuchsia")]
639impl ScenicRealmFactorySynchronousProxy {
640 pub fn new(channel: fidl::Channel) -> Self {
641 Self { client: fidl::client::sync::Client::new(channel) }
642 }
643
644 pub fn into_channel(self) -> fidl::Channel {
645 self.client.into_channel()
646 }
647
648 pub fn wait_for_event(
651 &self,
652 deadline: zx::MonotonicInstant,
653 ) -> Result<ScenicRealmFactoryEvent, fidl::Error> {
654 ScenicRealmFactoryEvent::decode(
655 self.client.wait_for_event::<ScenicRealmFactoryMarker>(deadline)?,
656 )
657 }
658
659 pub fn r#create_realm(
660 &self,
661 mut payload: ScenicRealmFactoryCreateRealmRequest,
662 ___deadline: zx::MonotonicInstant,
663 ) -> Result<ScenicRealmFactoryCreateRealmResult, fidl::Error> {
664 let _response = self
665 .client
666 .send_query::<ScenicRealmFactoryCreateRealmRequest, fidl::encoding::FlexibleResultType<
667 fidl::encoding::EmptyStruct,
668 fidl_fuchsia_testing_harness::OperationError,
669 >, ScenicRealmFactoryMarker>(
670 &mut payload,
671 0x11f2157d1648e6ba,
672 fidl::encoding::DynamicFlags::FLEXIBLE,
673 ___deadline,
674 )?
675 .into_result::<ScenicRealmFactoryMarker>("create_realm")?;
676 Ok(_response.map(|x| x))
677 }
678}
679
680#[cfg(target_os = "fuchsia")]
681impl From<ScenicRealmFactorySynchronousProxy> for zx::NullableHandle {
682 fn from(value: ScenicRealmFactorySynchronousProxy) -> Self {
683 value.into_channel().into()
684 }
685}
686
687#[cfg(target_os = "fuchsia")]
688impl From<fidl::Channel> for ScenicRealmFactorySynchronousProxy {
689 fn from(value: fidl::Channel) -> Self {
690 Self::new(value)
691 }
692}
693
694#[cfg(target_os = "fuchsia")]
695impl fidl::endpoints::FromClient for ScenicRealmFactorySynchronousProxy {
696 type Protocol = ScenicRealmFactoryMarker;
697
698 fn from_client(value: fidl::endpoints::ClientEnd<ScenicRealmFactoryMarker>) -> Self {
699 Self::new(value.into_channel())
700 }
701}
702
703#[derive(Debug, Clone)]
704pub struct ScenicRealmFactoryProxy {
705 client: fidl::client::Client<fidl::encoding::DefaultFuchsiaResourceDialect>,
706}
707
708impl fidl::endpoints::Proxy for ScenicRealmFactoryProxy {
709 type Protocol = ScenicRealmFactoryMarker;
710
711 fn from_channel(inner: ::fidl::AsyncChannel) -> Self {
712 Self::new(inner)
713 }
714
715 fn into_channel(self) -> Result<::fidl::AsyncChannel, Self> {
716 self.client.into_channel().map_err(|client| Self { client })
717 }
718
719 fn as_channel(&self) -> &::fidl::AsyncChannel {
720 self.client.as_channel()
721 }
722}
723
724impl ScenicRealmFactoryProxy {
725 pub fn new(channel: ::fidl::AsyncChannel) -> Self {
727 let protocol_name =
728 <ScenicRealmFactoryMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
729 Self { client: fidl::client::Client::new(channel, protocol_name) }
730 }
731
732 pub fn take_event_stream(&self) -> ScenicRealmFactoryEventStream {
738 ScenicRealmFactoryEventStream { event_receiver: self.client.take_event_receiver() }
739 }
740
741 pub fn r#create_realm(
742 &self,
743 mut payload: ScenicRealmFactoryCreateRealmRequest,
744 ) -> fidl::client::QueryResponseFut<
745 ScenicRealmFactoryCreateRealmResult,
746 fidl::encoding::DefaultFuchsiaResourceDialect,
747 > {
748 ScenicRealmFactoryProxyInterface::r#create_realm(self, payload)
749 }
750}
751
752impl ScenicRealmFactoryProxyInterface for ScenicRealmFactoryProxy {
753 type CreateRealmResponseFut = fidl::client::QueryResponseFut<
754 ScenicRealmFactoryCreateRealmResult,
755 fidl::encoding::DefaultFuchsiaResourceDialect,
756 >;
757 fn r#create_realm(
758 &self,
759 mut payload: ScenicRealmFactoryCreateRealmRequest,
760 ) -> Self::CreateRealmResponseFut {
761 fn _decode(
762 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
763 ) -> Result<ScenicRealmFactoryCreateRealmResult, fidl::Error> {
764 let _response = fidl::client::decode_transaction_body::<
765 fidl::encoding::FlexibleResultType<
766 fidl::encoding::EmptyStruct,
767 fidl_fuchsia_testing_harness::OperationError,
768 >,
769 fidl::encoding::DefaultFuchsiaResourceDialect,
770 0x11f2157d1648e6ba,
771 >(_buf?)?
772 .into_result::<ScenicRealmFactoryMarker>("create_realm")?;
773 Ok(_response.map(|x| x))
774 }
775 self.client.send_query_and_decode::<
776 ScenicRealmFactoryCreateRealmRequest,
777 ScenicRealmFactoryCreateRealmResult,
778 >(
779 &mut payload,
780 0x11f2157d1648e6ba,
781 fidl::encoding::DynamicFlags::FLEXIBLE,
782 _decode,
783 )
784 }
785}
786
787pub struct ScenicRealmFactoryEventStream {
788 event_receiver: fidl::client::EventReceiver<fidl::encoding::DefaultFuchsiaResourceDialect>,
789}
790
791impl std::marker::Unpin for ScenicRealmFactoryEventStream {}
792
793impl futures::stream::FusedStream for ScenicRealmFactoryEventStream {
794 fn is_terminated(&self) -> bool {
795 self.event_receiver.is_terminated()
796 }
797}
798
799impl futures::Stream for ScenicRealmFactoryEventStream {
800 type Item = Result<ScenicRealmFactoryEvent, fidl::Error>;
801
802 fn poll_next(
803 mut self: std::pin::Pin<&mut Self>,
804 cx: &mut std::task::Context<'_>,
805 ) -> std::task::Poll<Option<Self::Item>> {
806 match futures::ready!(futures::stream::StreamExt::poll_next_unpin(
807 &mut self.event_receiver,
808 cx
809 )?) {
810 Some(buf) => std::task::Poll::Ready(Some(ScenicRealmFactoryEvent::decode(buf))),
811 None => std::task::Poll::Ready(None),
812 }
813 }
814}
815
816#[derive(Debug)]
817pub enum ScenicRealmFactoryEvent {
818 #[non_exhaustive]
819 _UnknownEvent {
820 ordinal: u64,
822 },
823}
824
825impl ScenicRealmFactoryEvent {
826 fn decode(
828 mut buf: <fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc,
829 ) -> Result<ScenicRealmFactoryEvent, fidl::Error> {
830 let (bytes, _handles) = buf.split_mut();
831 let (tx_header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
832 debug_assert_eq!(tx_header.tx_id, 0);
833 match tx_header.ordinal {
834 _ if tx_header.dynamic_flags().contains(fidl::encoding::DynamicFlags::FLEXIBLE) => {
835 Ok(ScenicRealmFactoryEvent::_UnknownEvent { ordinal: tx_header.ordinal })
836 }
837 _ => Err(fidl::Error::UnknownOrdinal {
838 ordinal: tx_header.ordinal,
839 protocol_name:
840 <ScenicRealmFactoryMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
841 }),
842 }
843 }
844}
845
846pub struct ScenicRealmFactoryRequestStream {
848 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
849 is_terminated: bool,
850}
851
852impl std::marker::Unpin for ScenicRealmFactoryRequestStream {}
853
854impl futures::stream::FusedStream for ScenicRealmFactoryRequestStream {
855 fn is_terminated(&self) -> bool {
856 self.is_terminated
857 }
858}
859
860impl fidl::endpoints::RequestStream for ScenicRealmFactoryRequestStream {
861 type Protocol = ScenicRealmFactoryMarker;
862 type ControlHandle = ScenicRealmFactoryControlHandle;
863
864 fn from_channel(channel: ::fidl::AsyncChannel) -> Self {
865 Self { inner: std::sync::Arc::new(fidl::ServeInner::new(channel)), is_terminated: false }
866 }
867
868 fn control_handle(&self) -> Self::ControlHandle {
869 ScenicRealmFactoryControlHandle { inner: self.inner.clone() }
870 }
871
872 fn into_inner(
873 self,
874 ) -> (::std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>, bool)
875 {
876 (self.inner, self.is_terminated)
877 }
878
879 fn from_inner(
880 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
881 is_terminated: bool,
882 ) -> Self {
883 Self { inner, is_terminated }
884 }
885}
886
887impl futures::Stream for ScenicRealmFactoryRequestStream {
888 type Item = Result<ScenicRealmFactoryRequest, fidl::Error>;
889
890 fn poll_next(
891 mut self: std::pin::Pin<&mut Self>,
892 cx: &mut std::task::Context<'_>,
893 ) -> std::task::Poll<Option<Self::Item>> {
894 let this = &mut *self;
895 if this.inner.check_shutdown(cx) {
896 this.is_terminated = true;
897 return std::task::Poll::Ready(None);
898 }
899 if this.is_terminated {
900 panic!("polled ScenicRealmFactoryRequestStream after completion");
901 }
902 fidl::encoding::with_tls_decode_buf::<_, fidl::encoding::DefaultFuchsiaResourceDialect>(
903 |bytes, handles| {
904 match this.inner.channel().read_etc(cx, bytes, handles) {
905 std::task::Poll::Ready(Ok(())) => {}
906 std::task::Poll::Pending => return std::task::Poll::Pending,
907 std::task::Poll::Ready(Err(zx_status::Status::PEER_CLOSED)) => {
908 this.is_terminated = true;
909 return std::task::Poll::Ready(None);
910 }
911 std::task::Poll::Ready(Err(e)) => {
912 return std::task::Poll::Ready(Some(Err(fidl::Error::ServerRequestRead(
913 e.into(),
914 ))));
915 }
916 }
917
918 let (header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
920
921 std::task::Poll::Ready(Some(match header.ordinal {
922 0x11f2157d1648e6ba => {
923 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
924 let mut req = fidl::new_empty!(ScenicRealmFactoryCreateRealmRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
925 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<ScenicRealmFactoryCreateRealmRequest>(&header, _body_bytes, handles, &mut req)?;
926 let control_handle = ScenicRealmFactoryControlHandle {
927 inner: this.inner.clone(),
928 };
929 Ok(ScenicRealmFactoryRequest::CreateRealm {payload: req,
930 responder: ScenicRealmFactoryCreateRealmResponder {
931 control_handle: std::mem::ManuallyDrop::new(control_handle),
932 tx_id: header.tx_id,
933 },
934 })
935 }
936 _ if header.tx_id == 0 && header.dynamic_flags().contains(fidl::encoding::DynamicFlags::FLEXIBLE) => {
937 Ok(ScenicRealmFactoryRequest::_UnknownMethod {
938 ordinal: header.ordinal,
939 control_handle: ScenicRealmFactoryControlHandle { inner: this.inner.clone() },
940 method_type: fidl::MethodType::OneWay,
941 })
942 }
943 _ if header.dynamic_flags().contains(fidl::encoding::DynamicFlags::FLEXIBLE) => {
944 this.inner.send_framework_err(
945 fidl::encoding::FrameworkErr::UnknownMethod,
946 header.tx_id,
947 header.ordinal,
948 header.dynamic_flags(),
949 (bytes, handles),
950 )?;
951 Ok(ScenicRealmFactoryRequest::_UnknownMethod {
952 ordinal: header.ordinal,
953 control_handle: ScenicRealmFactoryControlHandle { inner: this.inner.clone() },
954 method_type: fidl::MethodType::TwoWay,
955 })
956 }
957 _ => Err(fidl::Error::UnknownOrdinal {
958 ordinal: header.ordinal,
959 protocol_name: <ScenicRealmFactoryMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
960 }),
961 }))
962 },
963 )
964 }
965}
966
967#[derive(Debug)]
971pub enum ScenicRealmFactoryRequest {
972 CreateRealm {
973 payload: ScenicRealmFactoryCreateRealmRequest,
974 responder: ScenicRealmFactoryCreateRealmResponder,
975 },
976 #[non_exhaustive]
978 _UnknownMethod {
979 ordinal: u64,
981 control_handle: ScenicRealmFactoryControlHandle,
982 method_type: fidl::MethodType,
983 },
984}
985
986impl ScenicRealmFactoryRequest {
987 #[allow(irrefutable_let_patterns)]
988 pub fn into_create_realm(
989 self,
990 ) -> Option<(ScenicRealmFactoryCreateRealmRequest, ScenicRealmFactoryCreateRealmResponder)>
991 {
992 if let ScenicRealmFactoryRequest::CreateRealm { payload, responder } = self {
993 Some((payload, responder))
994 } else {
995 None
996 }
997 }
998
999 pub fn method_name(&self) -> &'static str {
1001 match *self {
1002 ScenicRealmFactoryRequest::CreateRealm { .. } => "create_realm",
1003 ScenicRealmFactoryRequest::_UnknownMethod {
1004 method_type: fidl::MethodType::OneWay,
1005 ..
1006 } => "unknown one-way method",
1007 ScenicRealmFactoryRequest::_UnknownMethod {
1008 method_type: fidl::MethodType::TwoWay,
1009 ..
1010 } => "unknown two-way method",
1011 }
1012 }
1013}
1014
1015#[derive(Debug, Clone)]
1016pub struct ScenicRealmFactoryControlHandle {
1017 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
1018}
1019
1020impl fidl::endpoints::ControlHandle for ScenicRealmFactoryControlHandle {
1021 fn shutdown(&self) {
1022 self.inner.shutdown()
1023 }
1024
1025 fn shutdown_with_epitaph(&self, status: zx_status::Status) {
1026 self.inner.shutdown_with_epitaph(status)
1027 }
1028
1029 fn is_closed(&self) -> bool {
1030 self.inner.channel().is_closed()
1031 }
1032 fn on_closed(&self) -> fidl::OnSignalsRef<'_> {
1033 self.inner.channel().on_closed()
1034 }
1035
1036 #[cfg(target_os = "fuchsia")]
1037 fn signal_peer(
1038 &self,
1039 clear_mask: zx::Signals,
1040 set_mask: zx::Signals,
1041 ) -> Result<(), zx_status::Status> {
1042 use fidl::Peered;
1043 self.inner.channel().signal_peer(clear_mask, set_mask)
1044 }
1045}
1046
1047impl ScenicRealmFactoryControlHandle {}
1048
1049#[must_use = "FIDL methods require a response to be sent"]
1050#[derive(Debug)]
1051pub struct ScenicRealmFactoryCreateRealmResponder {
1052 control_handle: std::mem::ManuallyDrop<ScenicRealmFactoryControlHandle>,
1053 tx_id: u32,
1054}
1055
1056impl std::ops::Drop for ScenicRealmFactoryCreateRealmResponder {
1060 fn drop(&mut self) {
1061 self.control_handle.shutdown();
1062 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
1064 }
1065}
1066
1067impl fidl::endpoints::Responder for ScenicRealmFactoryCreateRealmResponder {
1068 type ControlHandle = ScenicRealmFactoryControlHandle;
1069
1070 fn control_handle(&self) -> &ScenicRealmFactoryControlHandle {
1071 &self.control_handle
1072 }
1073
1074 fn drop_without_shutdown(mut self) {
1075 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
1077 std::mem::forget(self);
1079 }
1080}
1081
1082impl ScenicRealmFactoryCreateRealmResponder {
1083 pub fn send(
1087 self,
1088 mut result: Result<(), fidl_fuchsia_testing_harness::OperationError>,
1089 ) -> Result<(), fidl::Error> {
1090 let _result = self.send_raw(result);
1091 if _result.is_err() {
1092 self.control_handle.shutdown();
1093 }
1094 self.drop_without_shutdown();
1095 _result
1096 }
1097
1098 pub fn send_no_shutdown_on_err(
1100 self,
1101 mut result: Result<(), fidl_fuchsia_testing_harness::OperationError>,
1102 ) -> Result<(), fidl::Error> {
1103 let _result = self.send_raw(result);
1104 self.drop_without_shutdown();
1105 _result
1106 }
1107
1108 fn send_raw(
1109 &self,
1110 mut result: Result<(), fidl_fuchsia_testing_harness::OperationError>,
1111 ) -> Result<(), fidl::Error> {
1112 self.control_handle.inner.send::<fidl::encoding::FlexibleResultType<
1113 fidl::encoding::EmptyStruct,
1114 fidl_fuchsia_testing_harness::OperationError,
1115 >>(
1116 fidl::encoding::FlexibleResult::new(result),
1117 self.tx_id,
1118 0x11f2157d1648e6ba,
1119 fidl::encoding::DynamicFlags::FLEXIBLE,
1120 )
1121 }
1122}
1123
1124mod internal {
1125 use super::*;
1126
1127 impl RealmFactoryCreateRealmRequest {
1128 #[inline(always)]
1129 fn max_ordinal_present(&self) -> u64 {
1130 if let Some(_) = self.display_max_layer_count {
1131 return 6;
1132 }
1133 if let Some(_) = self.display_refresh_rate_millihertz {
1134 return 5;
1135 }
1136 if let Some(_) = self.display_dimensions {
1137 return 4;
1138 }
1139 if let Some(_) = self.device_pixel_ratio {
1140 return 3;
1141 }
1142 if let Some(_) = self.display_rotation {
1143 return 2;
1144 }
1145 if let Some(_) = self.realm_server {
1146 return 1;
1147 }
1148 0
1149 }
1150 }
1151
1152 impl fidl::encoding::ResourceTypeMarker for RealmFactoryCreateRealmRequest {
1153 type Borrowed<'a> = &'a mut Self;
1154 fn take_or_borrow<'a>(
1155 value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
1156 ) -> Self::Borrowed<'a> {
1157 value
1158 }
1159 }
1160
1161 unsafe impl fidl::encoding::TypeMarker for RealmFactoryCreateRealmRequest {
1162 type Owned = Self;
1163
1164 #[inline(always)]
1165 fn inline_align(_context: fidl::encoding::Context) -> usize {
1166 8
1167 }
1168
1169 #[inline(always)]
1170 fn inline_size(_context: fidl::encoding::Context) -> usize {
1171 16
1172 }
1173 }
1174
1175 unsafe impl
1176 fidl::encoding::Encode<
1177 RealmFactoryCreateRealmRequest,
1178 fidl::encoding::DefaultFuchsiaResourceDialect,
1179 > for &mut RealmFactoryCreateRealmRequest
1180 {
1181 unsafe fn encode(
1182 self,
1183 encoder: &mut fidl::encoding::Encoder<
1184 '_,
1185 fidl::encoding::DefaultFuchsiaResourceDialect,
1186 >,
1187 offset: usize,
1188 mut depth: fidl::encoding::Depth,
1189 ) -> fidl::Result<()> {
1190 encoder.debug_check_bounds::<RealmFactoryCreateRealmRequest>(offset);
1191 let max_ordinal: u64 = self.max_ordinal_present();
1193 encoder.write_num(max_ordinal, offset);
1194 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
1195 if max_ordinal == 0 {
1197 return Ok(());
1198 }
1199 depth.increment()?;
1200 let envelope_size = 8;
1201 let bytes_len = max_ordinal as usize * envelope_size;
1202 #[allow(unused_variables)]
1203 let offset = encoder.out_of_line_offset(bytes_len);
1204 let mut _prev_end_offset: usize = 0;
1205 if 1 > max_ordinal {
1206 return Ok(());
1207 }
1208
1209 let cur_offset: usize = (1 - 1) * envelope_size;
1212
1213 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1215
1216 fidl::encoding::encode_in_envelope_optional::<
1221 fidl::encoding::Endpoint<
1222 fidl::endpoints::ServerEnd<fidl_fuchsia_testing_harness::RealmProxy_Marker>,
1223 >,
1224 fidl::encoding::DefaultFuchsiaResourceDialect,
1225 >(
1226 self.realm_server.as_mut().map(
1227 <fidl::encoding::Endpoint<
1228 fidl::endpoints::ServerEnd<fidl_fuchsia_testing_harness::RealmProxy_Marker>,
1229 > as fidl::encoding::ResourceTypeMarker>::take_or_borrow,
1230 ),
1231 encoder,
1232 offset + cur_offset,
1233 depth,
1234 )?;
1235
1236 _prev_end_offset = cur_offset + envelope_size;
1237 if 2 > max_ordinal {
1238 return Ok(());
1239 }
1240
1241 let cur_offset: usize = (2 - 1) * envelope_size;
1244
1245 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1247
1248 fidl::encoding::encode_in_envelope_optional::<
1253 u32,
1254 fidl::encoding::DefaultFuchsiaResourceDialect,
1255 >(
1256 self.display_rotation
1257 .as_ref()
1258 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
1259 encoder,
1260 offset + cur_offset,
1261 depth,
1262 )?;
1263
1264 _prev_end_offset = cur_offset + envelope_size;
1265 if 3 > max_ordinal {
1266 return Ok(());
1267 }
1268
1269 let cur_offset: usize = (3 - 1) * envelope_size;
1272
1273 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1275
1276 fidl::encoding::encode_in_envelope_optional::<
1281 f32,
1282 fidl::encoding::DefaultFuchsiaResourceDialect,
1283 >(
1284 self.device_pixel_ratio
1285 .as_ref()
1286 .map(<f32 as fidl::encoding::ValueTypeMarker>::borrow),
1287 encoder,
1288 offset + cur_offset,
1289 depth,
1290 )?;
1291
1292 _prev_end_offset = cur_offset + envelope_size;
1293 if 4 > max_ordinal {
1294 return Ok(());
1295 }
1296
1297 let cur_offset: usize = (4 - 1) * envelope_size;
1300
1301 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1303
1304 fidl::encoding::encode_in_envelope_optional::<
1309 fidl_fuchsia_math::SizeU,
1310 fidl::encoding::DefaultFuchsiaResourceDialect,
1311 >(
1312 self.display_dimensions
1313 .as_ref()
1314 .map(<fidl_fuchsia_math::SizeU as fidl::encoding::ValueTypeMarker>::borrow),
1315 encoder,
1316 offset + cur_offset,
1317 depth,
1318 )?;
1319
1320 _prev_end_offset = cur_offset + envelope_size;
1321 if 5 > max_ordinal {
1322 return Ok(());
1323 }
1324
1325 let cur_offset: usize = (5 - 1) * envelope_size;
1328
1329 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1331
1332 fidl::encoding::encode_in_envelope_optional::<
1337 u32,
1338 fidl::encoding::DefaultFuchsiaResourceDialect,
1339 >(
1340 self.display_refresh_rate_millihertz
1341 .as_ref()
1342 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
1343 encoder,
1344 offset + cur_offset,
1345 depth,
1346 )?;
1347
1348 _prev_end_offset = cur_offset + envelope_size;
1349 if 6 > max_ordinal {
1350 return Ok(());
1351 }
1352
1353 let cur_offset: usize = (6 - 1) * envelope_size;
1356
1357 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1359
1360 fidl::encoding::encode_in_envelope_optional::<
1365 u32,
1366 fidl::encoding::DefaultFuchsiaResourceDialect,
1367 >(
1368 self.display_max_layer_count
1369 .as_ref()
1370 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
1371 encoder,
1372 offset + cur_offset,
1373 depth,
1374 )?;
1375
1376 _prev_end_offset = cur_offset + envelope_size;
1377
1378 Ok(())
1379 }
1380 }
1381
1382 impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
1383 for RealmFactoryCreateRealmRequest
1384 {
1385 #[inline(always)]
1386 fn new_empty() -> Self {
1387 Self::default()
1388 }
1389
1390 unsafe fn decode(
1391 &mut self,
1392 decoder: &mut fidl::encoding::Decoder<
1393 '_,
1394 fidl::encoding::DefaultFuchsiaResourceDialect,
1395 >,
1396 offset: usize,
1397 mut depth: fidl::encoding::Depth,
1398 ) -> fidl::Result<()> {
1399 decoder.debug_check_bounds::<Self>(offset);
1400 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
1401 None => return Err(fidl::Error::NotNullable),
1402 Some(len) => len,
1403 };
1404 if len == 0 {
1406 return Ok(());
1407 };
1408 depth.increment()?;
1409 let envelope_size = 8;
1410 let bytes_len = len * envelope_size;
1411 let offset = decoder.out_of_line_offset(bytes_len)?;
1412 let mut _next_ordinal_to_read = 0;
1414 let mut next_offset = offset;
1415 let end_offset = offset + bytes_len;
1416 _next_ordinal_to_read += 1;
1417 if next_offset >= end_offset {
1418 return Ok(());
1419 }
1420
1421 while _next_ordinal_to_read < 1 {
1423 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1424 _next_ordinal_to_read += 1;
1425 next_offset += envelope_size;
1426 }
1427
1428 let next_out_of_line = decoder.next_out_of_line();
1429 let handles_before = decoder.remaining_handles();
1430 if let Some((inlined, num_bytes, num_handles)) =
1431 fidl::encoding::decode_envelope_header(decoder, next_offset)?
1432 {
1433 let member_inline_size = <fidl::encoding::Endpoint<
1434 fidl::endpoints::ServerEnd<fidl_fuchsia_testing_harness::RealmProxy_Marker>,
1435 > as fidl::encoding::TypeMarker>::inline_size(
1436 decoder.context
1437 );
1438 if inlined != (member_inline_size <= 4) {
1439 return Err(fidl::Error::InvalidInlineBitInEnvelope);
1440 }
1441 let inner_offset;
1442 let mut inner_depth = depth.clone();
1443 if inlined {
1444 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
1445 inner_offset = next_offset;
1446 } else {
1447 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
1448 inner_depth.increment()?;
1449 }
1450 let val_ref = self.realm_server.get_or_insert_with(|| {
1451 fidl::new_empty!(
1452 fidl::encoding::Endpoint<
1453 fidl::endpoints::ServerEnd<
1454 fidl_fuchsia_testing_harness::RealmProxy_Marker,
1455 >,
1456 >,
1457 fidl::encoding::DefaultFuchsiaResourceDialect
1458 )
1459 });
1460 fidl::decode!(
1461 fidl::encoding::Endpoint<
1462 fidl::endpoints::ServerEnd<fidl_fuchsia_testing_harness::RealmProxy_Marker>,
1463 >,
1464 fidl::encoding::DefaultFuchsiaResourceDialect,
1465 val_ref,
1466 decoder,
1467 inner_offset,
1468 inner_depth
1469 )?;
1470 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
1471 {
1472 return Err(fidl::Error::InvalidNumBytesInEnvelope);
1473 }
1474 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
1475 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
1476 }
1477 }
1478
1479 next_offset += envelope_size;
1480 _next_ordinal_to_read += 1;
1481 if next_offset >= end_offset {
1482 return Ok(());
1483 }
1484
1485 while _next_ordinal_to_read < 2 {
1487 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1488 _next_ordinal_to_read += 1;
1489 next_offset += envelope_size;
1490 }
1491
1492 let next_out_of_line = decoder.next_out_of_line();
1493 let handles_before = decoder.remaining_handles();
1494 if let Some((inlined, num_bytes, num_handles)) =
1495 fidl::encoding::decode_envelope_header(decoder, next_offset)?
1496 {
1497 let member_inline_size =
1498 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
1499 if inlined != (member_inline_size <= 4) {
1500 return Err(fidl::Error::InvalidInlineBitInEnvelope);
1501 }
1502 let inner_offset;
1503 let mut inner_depth = depth.clone();
1504 if inlined {
1505 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
1506 inner_offset = next_offset;
1507 } else {
1508 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
1509 inner_depth.increment()?;
1510 }
1511 let val_ref = self.display_rotation.get_or_insert_with(|| {
1512 fidl::new_empty!(u32, fidl::encoding::DefaultFuchsiaResourceDialect)
1513 });
1514 fidl::decode!(
1515 u32,
1516 fidl::encoding::DefaultFuchsiaResourceDialect,
1517 val_ref,
1518 decoder,
1519 inner_offset,
1520 inner_depth
1521 )?;
1522 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
1523 {
1524 return Err(fidl::Error::InvalidNumBytesInEnvelope);
1525 }
1526 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
1527 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
1528 }
1529 }
1530
1531 next_offset += envelope_size;
1532 _next_ordinal_to_read += 1;
1533 if next_offset >= end_offset {
1534 return Ok(());
1535 }
1536
1537 while _next_ordinal_to_read < 3 {
1539 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1540 _next_ordinal_to_read += 1;
1541 next_offset += envelope_size;
1542 }
1543
1544 let next_out_of_line = decoder.next_out_of_line();
1545 let handles_before = decoder.remaining_handles();
1546 if let Some((inlined, num_bytes, num_handles)) =
1547 fidl::encoding::decode_envelope_header(decoder, next_offset)?
1548 {
1549 let member_inline_size =
1550 <f32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
1551 if inlined != (member_inline_size <= 4) {
1552 return Err(fidl::Error::InvalidInlineBitInEnvelope);
1553 }
1554 let inner_offset;
1555 let mut inner_depth = depth.clone();
1556 if inlined {
1557 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
1558 inner_offset = next_offset;
1559 } else {
1560 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
1561 inner_depth.increment()?;
1562 }
1563 let val_ref = self.device_pixel_ratio.get_or_insert_with(|| {
1564 fidl::new_empty!(f32, fidl::encoding::DefaultFuchsiaResourceDialect)
1565 });
1566 fidl::decode!(
1567 f32,
1568 fidl::encoding::DefaultFuchsiaResourceDialect,
1569 val_ref,
1570 decoder,
1571 inner_offset,
1572 inner_depth
1573 )?;
1574 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
1575 {
1576 return Err(fidl::Error::InvalidNumBytesInEnvelope);
1577 }
1578 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
1579 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
1580 }
1581 }
1582
1583 next_offset += envelope_size;
1584 _next_ordinal_to_read += 1;
1585 if next_offset >= end_offset {
1586 return Ok(());
1587 }
1588
1589 while _next_ordinal_to_read < 4 {
1591 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1592 _next_ordinal_to_read += 1;
1593 next_offset += envelope_size;
1594 }
1595
1596 let next_out_of_line = decoder.next_out_of_line();
1597 let handles_before = decoder.remaining_handles();
1598 if let Some((inlined, num_bytes, num_handles)) =
1599 fidl::encoding::decode_envelope_header(decoder, next_offset)?
1600 {
1601 let member_inline_size =
1602 <fidl_fuchsia_math::SizeU as fidl::encoding::TypeMarker>::inline_size(
1603 decoder.context,
1604 );
1605 if inlined != (member_inline_size <= 4) {
1606 return Err(fidl::Error::InvalidInlineBitInEnvelope);
1607 }
1608 let inner_offset;
1609 let mut inner_depth = depth.clone();
1610 if inlined {
1611 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
1612 inner_offset = next_offset;
1613 } else {
1614 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
1615 inner_depth.increment()?;
1616 }
1617 let val_ref = self.display_dimensions.get_or_insert_with(|| {
1618 fidl::new_empty!(
1619 fidl_fuchsia_math::SizeU,
1620 fidl::encoding::DefaultFuchsiaResourceDialect
1621 )
1622 });
1623 fidl::decode!(
1624 fidl_fuchsia_math::SizeU,
1625 fidl::encoding::DefaultFuchsiaResourceDialect,
1626 val_ref,
1627 decoder,
1628 inner_offset,
1629 inner_depth
1630 )?;
1631 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
1632 {
1633 return Err(fidl::Error::InvalidNumBytesInEnvelope);
1634 }
1635 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
1636 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
1637 }
1638 }
1639
1640 next_offset += envelope_size;
1641 _next_ordinal_to_read += 1;
1642 if next_offset >= end_offset {
1643 return Ok(());
1644 }
1645
1646 while _next_ordinal_to_read < 5 {
1648 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1649 _next_ordinal_to_read += 1;
1650 next_offset += envelope_size;
1651 }
1652
1653 let next_out_of_line = decoder.next_out_of_line();
1654 let handles_before = decoder.remaining_handles();
1655 if let Some((inlined, num_bytes, num_handles)) =
1656 fidl::encoding::decode_envelope_header(decoder, next_offset)?
1657 {
1658 let member_inline_size =
1659 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
1660 if inlined != (member_inline_size <= 4) {
1661 return Err(fidl::Error::InvalidInlineBitInEnvelope);
1662 }
1663 let inner_offset;
1664 let mut inner_depth = depth.clone();
1665 if inlined {
1666 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
1667 inner_offset = next_offset;
1668 } else {
1669 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
1670 inner_depth.increment()?;
1671 }
1672 let val_ref = self.display_refresh_rate_millihertz.get_or_insert_with(|| {
1673 fidl::new_empty!(u32, fidl::encoding::DefaultFuchsiaResourceDialect)
1674 });
1675 fidl::decode!(
1676 u32,
1677 fidl::encoding::DefaultFuchsiaResourceDialect,
1678 val_ref,
1679 decoder,
1680 inner_offset,
1681 inner_depth
1682 )?;
1683 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
1684 {
1685 return Err(fidl::Error::InvalidNumBytesInEnvelope);
1686 }
1687 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
1688 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
1689 }
1690 }
1691
1692 next_offset += envelope_size;
1693 _next_ordinal_to_read += 1;
1694 if next_offset >= end_offset {
1695 return Ok(());
1696 }
1697
1698 while _next_ordinal_to_read < 6 {
1700 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1701 _next_ordinal_to_read += 1;
1702 next_offset += envelope_size;
1703 }
1704
1705 let next_out_of_line = decoder.next_out_of_line();
1706 let handles_before = decoder.remaining_handles();
1707 if let Some((inlined, num_bytes, num_handles)) =
1708 fidl::encoding::decode_envelope_header(decoder, next_offset)?
1709 {
1710 let member_inline_size =
1711 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
1712 if inlined != (member_inline_size <= 4) {
1713 return Err(fidl::Error::InvalidInlineBitInEnvelope);
1714 }
1715 let inner_offset;
1716 let mut inner_depth = depth.clone();
1717 if inlined {
1718 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
1719 inner_offset = next_offset;
1720 } else {
1721 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
1722 inner_depth.increment()?;
1723 }
1724 let val_ref = self.display_max_layer_count.get_or_insert_with(|| {
1725 fidl::new_empty!(u32, fidl::encoding::DefaultFuchsiaResourceDialect)
1726 });
1727 fidl::decode!(
1728 u32,
1729 fidl::encoding::DefaultFuchsiaResourceDialect,
1730 val_ref,
1731 decoder,
1732 inner_offset,
1733 inner_depth
1734 )?;
1735 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
1736 {
1737 return Err(fidl::Error::InvalidNumBytesInEnvelope);
1738 }
1739 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
1740 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
1741 }
1742 }
1743
1744 next_offset += envelope_size;
1745
1746 while next_offset < end_offset {
1748 _next_ordinal_to_read += 1;
1749 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1750 next_offset += envelope_size;
1751 }
1752
1753 Ok(())
1754 }
1755 }
1756
1757 impl ScenicRealmFactoryCreateRealmRequest {
1758 #[inline(always)]
1759 fn max_ordinal_present(&self) -> u64 {
1760 if let Some(_) = self.display_max_layer_count {
1761 return 7;
1762 }
1763 if let Some(_) = self.display_refresh_rate_millihertz {
1764 return 6;
1765 }
1766 if let Some(_) = self.display_dimensions {
1767 return 5;
1768 }
1769 if let Some(_) = self.display_composition {
1770 return 4;
1771 }
1772 if let Some(_) = self.display_rotation {
1773 return 3;
1774 }
1775 if let Some(_) = self.renderer {
1776 return 2;
1777 }
1778 if let Some(_) = self.realm_server {
1779 return 1;
1780 }
1781 0
1782 }
1783 }
1784
1785 impl fidl::encoding::ResourceTypeMarker for ScenicRealmFactoryCreateRealmRequest {
1786 type Borrowed<'a> = &'a mut Self;
1787 fn take_or_borrow<'a>(
1788 value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
1789 ) -> Self::Borrowed<'a> {
1790 value
1791 }
1792 }
1793
1794 unsafe impl fidl::encoding::TypeMarker for ScenicRealmFactoryCreateRealmRequest {
1795 type Owned = Self;
1796
1797 #[inline(always)]
1798 fn inline_align(_context: fidl::encoding::Context) -> usize {
1799 8
1800 }
1801
1802 #[inline(always)]
1803 fn inline_size(_context: fidl::encoding::Context) -> usize {
1804 16
1805 }
1806 }
1807
1808 unsafe impl
1809 fidl::encoding::Encode<
1810 ScenicRealmFactoryCreateRealmRequest,
1811 fidl::encoding::DefaultFuchsiaResourceDialect,
1812 > for &mut ScenicRealmFactoryCreateRealmRequest
1813 {
1814 unsafe fn encode(
1815 self,
1816 encoder: &mut fidl::encoding::Encoder<
1817 '_,
1818 fidl::encoding::DefaultFuchsiaResourceDialect,
1819 >,
1820 offset: usize,
1821 mut depth: fidl::encoding::Depth,
1822 ) -> fidl::Result<()> {
1823 encoder.debug_check_bounds::<ScenicRealmFactoryCreateRealmRequest>(offset);
1824 let max_ordinal: u64 = self.max_ordinal_present();
1826 encoder.write_num(max_ordinal, offset);
1827 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
1828 if max_ordinal == 0 {
1830 return Ok(());
1831 }
1832 depth.increment()?;
1833 let envelope_size = 8;
1834 let bytes_len = max_ordinal as usize * envelope_size;
1835 #[allow(unused_variables)]
1836 let offset = encoder.out_of_line_offset(bytes_len);
1837 let mut _prev_end_offset: usize = 0;
1838 if 1 > max_ordinal {
1839 return Ok(());
1840 }
1841
1842 let cur_offset: usize = (1 - 1) * envelope_size;
1845
1846 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1848
1849 fidl::encoding::encode_in_envelope_optional::<
1854 fidl::encoding::Endpoint<
1855 fidl::endpoints::ServerEnd<fidl_fuchsia_testing_harness::RealmProxy_Marker>,
1856 >,
1857 fidl::encoding::DefaultFuchsiaResourceDialect,
1858 >(
1859 self.realm_server.as_mut().map(
1860 <fidl::encoding::Endpoint<
1861 fidl::endpoints::ServerEnd<fidl_fuchsia_testing_harness::RealmProxy_Marker>,
1862 > as fidl::encoding::ResourceTypeMarker>::take_or_borrow,
1863 ),
1864 encoder,
1865 offset + cur_offset,
1866 depth,
1867 )?;
1868
1869 _prev_end_offset = cur_offset + envelope_size;
1870 if 2 > max_ordinal {
1871 return Ok(());
1872 }
1873
1874 let cur_offset: usize = (2 - 1) * envelope_size;
1877
1878 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1880
1881 fidl::encoding::encode_in_envelope_optional::<
1886 RendererType,
1887 fidl::encoding::DefaultFuchsiaResourceDialect,
1888 >(
1889 self.renderer
1890 .as_ref()
1891 .map(<RendererType as fidl::encoding::ValueTypeMarker>::borrow),
1892 encoder,
1893 offset + cur_offset,
1894 depth,
1895 )?;
1896
1897 _prev_end_offset = cur_offset + envelope_size;
1898 if 3 > max_ordinal {
1899 return Ok(());
1900 }
1901
1902 let cur_offset: usize = (3 - 1) * envelope_size;
1905
1906 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1908
1909 fidl::encoding::encode_in_envelope_optional::<
1914 u64,
1915 fidl::encoding::DefaultFuchsiaResourceDialect,
1916 >(
1917 self.display_rotation
1918 .as_ref()
1919 .map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
1920 encoder,
1921 offset + cur_offset,
1922 depth,
1923 )?;
1924
1925 _prev_end_offset = cur_offset + envelope_size;
1926 if 4 > max_ordinal {
1927 return Ok(());
1928 }
1929
1930 let cur_offset: usize = (4 - 1) * envelope_size;
1933
1934 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1936
1937 fidl::encoding::encode_in_envelope_optional::<
1942 bool,
1943 fidl::encoding::DefaultFuchsiaResourceDialect,
1944 >(
1945 self.display_composition
1946 .as_ref()
1947 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
1948 encoder,
1949 offset + cur_offset,
1950 depth,
1951 )?;
1952
1953 _prev_end_offset = cur_offset + envelope_size;
1954 if 5 > max_ordinal {
1955 return Ok(());
1956 }
1957
1958 let cur_offset: usize = (5 - 1) * envelope_size;
1961
1962 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1964
1965 fidl::encoding::encode_in_envelope_optional::<
1970 fidl_fuchsia_math::SizeU,
1971 fidl::encoding::DefaultFuchsiaResourceDialect,
1972 >(
1973 self.display_dimensions
1974 .as_ref()
1975 .map(<fidl_fuchsia_math::SizeU as fidl::encoding::ValueTypeMarker>::borrow),
1976 encoder,
1977 offset + cur_offset,
1978 depth,
1979 )?;
1980
1981 _prev_end_offset = cur_offset + envelope_size;
1982 if 6 > max_ordinal {
1983 return Ok(());
1984 }
1985
1986 let cur_offset: usize = (6 - 1) * envelope_size;
1989
1990 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1992
1993 fidl::encoding::encode_in_envelope_optional::<
1998 u32,
1999 fidl::encoding::DefaultFuchsiaResourceDialect,
2000 >(
2001 self.display_refresh_rate_millihertz
2002 .as_ref()
2003 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
2004 encoder,
2005 offset + cur_offset,
2006 depth,
2007 )?;
2008
2009 _prev_end_offset = cur_offset + envelope_size;
2010 if 7 > max_ordinal {
2011 return Ok(());
2012 }
2013
2014 let cur_offset: usize = (7 - 1) * envelope_size;
2017
2018 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2020
2021 fidl::encoding::encode_in_envelope_optional::<
2026 u32,
2027 fidl::encoding::DefaultFuchsiaResourceDialect,
2028 >(
2029 self.display_max_layer_count
2030 .as_ref()
2031 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
2032 encoder,
2033 offset + cur_offset,
2034 depth,
2035 )?;
2036
2037 _prev_end_offset = cur_offset + envelope_size;
2038
2039 Ok(())
2040 }
2041 }
2042
2043 impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
2044 for ScenicRealmFactoryCreateRealmRequest
2045 {
2046 #[inline(always)]
2047 fn new_empty() -> Self {
2048 Self::default()
2049 }
2050
2051 unsafe fn decode(
2052 &mut self,
2053 decoder: &mut fidl::encoding::Decoder<
2054 '_,
2055 fidl::encoding::DefaultFuchsiaResourceDialect,
2056 >,
2057 offset: usize,
2058 mut depth: fidl::encoding::Depth,
2059 ) -> fidl::Result<()> {
2060 decoder.debug_check_bounds::<Self>(offset);
2061 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
2062 None => return Err(fidl::Error::NotNullable),
2063 Some(len) => len,
2064 };
2065 if len == 0 {
2067 return Ok(());
2068 };
2069 depth.increment()?;
2070 let envelope_size = 8;
2071 let bytes_len = len * envelope_size;
2072 let offset = decoder.out_of_line_offset(bytes_len)?;
2073 let mut _next_ordinal_to_read = 0;
2075 let mut next_offset = offset;
2076 let end_offset = offset + bytes_len;
2077 _next_ordinal_to_read += 1;
2078 if next_offset >= end_offset {
2079 return Ok(());
2080 }
2081
2082 while _next_ordinal_to_read < 1 {
2084 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2085 _next_ordinal_to_read += 1;
2086 next_offset += envelope_size;
2087 }
2088
2089 let next_out_of_line = decoder.next_out_of_line();
2090 let handles_before = decoder.remaining_handles();
2091 if let Some((inlined, num_bytes, num_handles)) =
2092 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2093 {
2094 let member_inline_size = <fidl::encoding::Endpoint<
2095 fidl::endpoints::ServerEnd<fidl_fuchsia_testing_harness::RealmProxy_Marker>,
2096 > as fidl::encoding::TypeMarker>::inline_size(
2097 decoder.context
2098 );
2099 if inlined != (member_inline_size <= 4) {
2100 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2101 }
2102 let inner_offset;
2103 let mut inner_depth = depth.clone();
2104 if inlined {
2105 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2106 inner_offset = next_offset;
2107 } else {
2108 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2109 inner_depth.increment()?;
2110 }
2111 let val_ref = self.realm_server.get_or_insert_with(|| {
2112 fidl::new_empty!(
2113 fidl::encoding::Endpoint<
2114 fidl::endpoints::ServerEnd<
2115 fidl_fuchsia_testing_harness::RealmProxy_Marker,
2116 >,
2117 >,
2118 fidl::encoding::DefaultFuchsiaResourceDialect
2119 )
2120 });
2121 fidl::decode!(
2122 fidl::encoding::Endpoint<
2123 fidl::endpoints::ServerEnd<fidl_fuchsia_testing_harness::RealmProxy_Marker>,
2124 >,
2125 fidl::encoding::DefaultFuchsiaResourceDialect,
2126 val_ref,
2127 decoder,
2128 inner_offset,
2129 inner_depth
2130 )?;
2131 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2132 {
2133 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2134 }
2135 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2136 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2137 }
2138 }
2139
2140 next_offset += envelope_size;
2141 _next_ordinal_to_read += 1;
2142 if next_offset >= end_offset {
2143 return Ok(());
2144 }
2145
2146 while _next_ordinal_to_read < 2 {
2148 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2149 _next_ordinal_to_read += 1;
2150 next_offset += envelope_size;
2151 }
2152
2153 let next_out_of_line = decoder.next_out_of_line();
2154 let handles_before = decoder.remaining_handles();
2155 if let Some((inlined, num_bytes, num_handles)) =
2156 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2157 {
2158 let member_inline_size =
2159 <RendererType as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2160 if inlined != (member_inline_size <= 4) {
2161 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2162 }
2163 let inner_offset;
2164 let mut inner_depth = depth.clone();
2165 if inlined {
2166 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2167 inner_offset = next_offset;
2168 } else {
2169 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2170 inner_depth.increment()?;
2171 }
2172 let val_ref = self.renderer.get_or_insert_with(|| {
2173 fidl::new_empty!(RendererType, fidl::encoding::DefaultFuchsiaResourceDialect)
2174 });
2175 fidl::decode!(
2176 RendererType,
2177 fidl::encoding::DefaultFuchsiaResourceDialect,
2178 val_ref,
2179 decoder,
2180 inner_offset,
2181 inner_depth
2182 )?;
2183 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2184 {
2185 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2186 }
2187 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2188 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2189 }
2190 }
2191
2192 next_offset += envelope_size;
2193 _next_ordinal_to_read += 1;
2194 if next_offset >= end_offset {
2195 return Ok(());
2196 }
2197
2198 while _next_ordinal_to_read < 3 {
2200 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2201 _next_ordinal_to_read += 1;
2202 next_offset += envelope_size;
2203 }
2204
2205 let next_out_of_line = decoder.next_out_of_line();
2206 let handles_before = decoder.remaining_handles();
2207 if let Some((inlined, num_bytes, num_handles)) =
2208 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2209 {
2210 let member_inline_size =
2211 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2212 if inlined != (member_inline_size <= 4) {
2213 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2214 }
2215 let inner_offset;
2216 let mut inner_depth = depth.clone();
2217 if inlined {
2218 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2219 inner_offset = next_offset;
2220 } else {
2221 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2222 inner_depth.increment()?;
2223 }
2224 let val_ref = self.display_rotation.get_or_insert_with(|| {
2225 fidl::new_empty!(u64, fidl::encoding::DefaultFuchsiaResourceDialect)
2226 });
2227 fidl::decode!(
2228 u64,
2229 fidl::encoding::DefaultFuchsiaResourceDialect,
2230 val_ref,
2231 decoder,
2232 inner_offset,
2233 inner_depth
2234 )?;
2235 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2236 {
2237 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2238 }
2239 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2240 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2241 }
2242 }
2243
2244 next_offset += envelope_size;
2245 _next_ordinal_to_read += 1;
2246 if next_offset >= end_offset {
2247 return Ok(());
2248 }
2249
2250 while _next_ordinal_to_read < 4 {
2252 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2253 _next_ordinal_to_read += 1;
2254 next_offset += envelope_size;
2255 }
2256
2257 let next_out_of_line = decoder.next_out_of_line();
2258 let handles_before = decoder.remaining_handles();
2259 if let Some((inlined, num_bytes, num_handles)) =
2260 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2261 {
2262 let member_inline_size =
2263 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2264 if inlined != (member_inline_size <= 4) {
2265 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2266 }
2267 let inner_offset;
2268 let mut inner_depth = depth.clone();
2269 if inlined {
2270 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2271 inner_offset = next_offset;
2272 } else {
2273 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2274 inner_depth.increment()?;
2275 }
2276 let val_ref = self.display_composition.get_or_insert_with(|| {
2277 fidl::new_empty!(bool, fidl::encoding::DefaultFuchsiaResourceDialect)
2278 });
2279 fidl::decode!(
2280 bool,
2281 fidl::encoding::DefaultFuchsiaResourceDialect,
2282 val_ref,
2283 decoder,
2284 inner_offset,
2285 inner_depth
2286 )?;
2287 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2288 {
2289 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2290 }
2291 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2292 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2293 }
2294 }
2295
2296 next_offset += envelope_size;
2297 _next_ordinal_to_read += 1;
2298 if next_offset >= end_offset {
2299 return Ok(());
2300 }
2301
2302 while _next_ordinal_to_read < 5 {
2304 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2305 _next_ordinal_to_read += 1;
2306 next_offset += envelope_size;
2307 }
2308
2309 let next_out_of_line = decoder.next_out_of_line();
2310 let handles_before = decoder.remaining_handles();
2311 if let Some((inlined, num_bytes, num_handles)) =
2312 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2313 {
2314 let member_inline_size =
2315 <fidl_fuchsia_math::SizeU as fidl::encoding::TypeMarker>::inline_size(
2316 decoder.context,
2317 );
2318 if inlined != (member_inline_size <= 4) {
2319 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2320 }
2321 let inner_offset;
2322 let mut inner_depth = depth.clone();
2323 if inlined {
2324 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2325 inner_offset = next_offset;
2326 } else {
2327 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2328 inner_depth.increment()?;
2329 }
2330 let val_ref = self.display_dimensions.get_or_insert_with(|| {
2331 fidl::new_empty!(
2332 fidl_fuchsia_math::SizeU,
2333 fidl::encoding::DefaultFuchsiaResourceDialect
2334 )
2335 });
2336 fidl::decode!(
2337 fidl_fuchsia_math::SizeU,
2338 fidl::encoding::DefaultFuchsiaResourceDialect,
2339 val_ref,
2340 decoder,
2341 inner_offset,
2342 inner_depth
2343 )?;
2344 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2345 {
2346 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2347 }
2348 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2349 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2350 }
2351 }
2352
2353 next_offset += envelope_size;
2354 _next_ordinal_to_read += 1;
2355 if next_offset >= end_offset {
2356 return Ok(());
2357 }
2358
2359 while _next_ordinal_to_read < 6 {
2361 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2362 _next_ordinal_to_read += 1;
2363 next_offset += envelope_size;
2364 }
2365
2366 let next_out_of_line = decoder.next_out_of_line();
2367 let handles_before = decoder.remaining_handles();
2368 if let Some((inlined, num_bytes, num_handles)) =
2369 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2370 {
2371 let member_inline_size =
2372 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2373 if inlined != (member_inline_size <= 4) {
2374 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2375 }
2376 let inner_offset;
2377 let mut inner_depth = depth.clone();
2378 if inlined {
2379 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2380 inner_offset = next_offset;
2381 } else {
2382 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2383 inner_depth.increment()?;
2384 }
2385 let val_ref = self.display_refresh_rate_millihertz.get_or_insert_with(|| {
2386 fidl::new_empty!(u32, fidl::encoding::DefaultFuchsiaResourceDialect)
2387 });
2388 fidl::decode!(
2389 u32,
2390 fidl::encoding::DefaultFuchsiaResourceDialect,
2391 val_ref,
2392 decoder,
2393 inner_offset,
2394 inner_depth
2395 )?;
2396 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2397 {
2398 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2399 }
2400 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2401 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2402 }
2403 }
2404
2405 next_offset += envelope_size;
2406 _next_ordinal_to_read += 1;
2407 if next_offset >= end_offset {
2408 return Ok(());
2409 }
2410
2411 while _next_ordinal_to_read < 7 {
2413 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2414 _next_ordinal_to_read += 1;
2415 next_offset += envelope_size;
2416 }
2417
2418 let next_out_of_line = decoder.next_out_of_line();
2419 let handles_before = decoder.remaining_handles();
2420 if let Some((inlined, num_bytes, num_handles)) =
2421 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2422 {
2423 let member_inline_size =
2424 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2425 if inlined != (member_inline_size <= 4) {
2426 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2427 }
2428 let inner_offset;
2429 let mut inner_depth = depth.clone();
2430 if inlined {
2431 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2432 inner_offset = next_offset;
2433 } else {
2434 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2435 inner_depth.increment()?;
2436 }
2437 let val_ref = self.display_max_layer_count.get_or_insert_with(|| {
2438 fidl::new_empty!(u32, fidl::encoding::DefaultFuchsiaResourceDialect)
2439 });
2440 fidl::decode!(
2441 u32,
2442 fidl::encoding::DefaultFuchsiaResourceDialect,
2443 val_ref,
2444 decoder,
2445 inner_offset,
2446 inner_depth
2447 )?;
2448 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2449 {
2450 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2451 }
2452 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2453 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2454 }
2455 }
2456
2457 next_offset += envelope_size;
2458
2459 while next_offset < end_offset {
2461 _next_ordinal_to_read += 1;
2462 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2463 next_offset += envelope_size;
2464 }
2465
2466 Ok(())
2467 }
2468 }
2469}