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_conformance_common::*;
11use futures::future::{self, MaybeDone, TryFutureExt};
12use zx_status;
13
14#[derive(Debug, Default, PartialEq)]
16pub struct PuppetCreationArgs {
17 pub server_end: Option<fidl::endpoints::ServerEnd<PuppetMarker>>,
18 pub view_token: Option<fidl_fuchsia_ui_views::ViewCreationToken>,
19 pub touch_listener:
20 Option<fidl::endpoints::ClientEnd<fidl_fuchsia_ui_test_input::TouchInputListenerMarker>>,
21 pub mouse_listener:
22 Option<fidl::endpoints::ClientEnd<fidl_fuchsia_ui_test_input::MouseInputListenerMarker>>,
23 pub keyboard_listener:
24 Option<fidl::endpoints::ClientEnd<fidl_fuchsia_ui_test_input::KeyboardInputListenerMarker>>,
25 pub flatland_client:
26 Option<fidl::endpoints::ClientEnd<fidl_fuchsia_ui_composition::FlatlandMarker>>,
27 pub keyboard_client: Option<fidl::endpoints::ClientEnd<fidl_fuchsia_ui_input3::KeyboardMarker>>,
28 pub device_pixel_ratio: Option<f32>,
29 pub focuser: Option<fidl::endpoints::ServerEnd<fidl_fuchsia_ui_views::FocuserMarker>>,
30 #[doc(hidden)]
31 pub __source_breaking: fidl::marker::SourceBreaking,
32}
33
34impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect> for PuppetCreationArgs {}
35
36#[derive(Debug, Default, PartialEq)]
37pub struct PuppetEmbedRemoteViewResponse {
38 pub result: Option<Result_>,
39 pub view_creation_token: Option<fidl_fuchsia_ui_views::ViewCreationToken>,
40 #[doc(hidden)]
41 pub __source_breaking: fidl::marker::SourceBreaking,
42}
43
44impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect>
45 for PuppetEmbedRemoteViewResponse
46{
47}
48
49#[derive(Debug, Default, PartialEq)]
50pub struct PuppetFactoryCreateResponse {
51 pub result: Option<Result_>,
52 pub view_ref: Option<fidl_fuchsia_ui_views::ViewRef>,
54 #[doc(hidden)]
55 pub __source_breaking: fidl::marker::SourceBreaking,
56}
57
58impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect>
59 for PuppetFactoryCreateResponse
60{
61}
62
63#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
64pub struct PuppetMarker;
65
66impl fidl::endpoints::ProtocolMarker for PuppetMarker {
67 type Proxy = PuppetProxy;
68 type RequestStream = PuppetRequestStream;
69 #[cfg(target_os = "fuchsia")]
70 type SynchronousProxy = PuppetSynchronousProxy;
71
72 const DEBUG_NAME: &'static str = "(anonymous) Puppet";
73}
74
75pub trait PuppetProxyInterface: Send + Sync {
76 type EmbedRemoteViewResponseFut: std::future::Future<Output = Result<PuppetEmbedRemoteViewResponse, fidl::Error>>
77 + Send;
78 fn r#embed_remote_view(
79 &self,
80 payload: &PuppetEmbedRemoteViewRequest,
81 ) -> Self::EmbedRemoteViewResponseFut;
82 type SetEmbeddedViewPropertiesResponseFut: std::future::Future<Output = Result<PuppetSetEmbeddedViewPropertiesResponse, fidl::Error>>
83 + Send;
84 fn r#set_embedded_view_properties(
85 &self,
86 payload: &PuppetSetEmbeddedViewPropertiesRequest,
87 ) -> Self::SetEmbeddedViewPropertiesResponseFut;
88 type DrawImageResponseFut: std::future::Future<Output = Result<PuppetDrawImageResponse, fidl::Error>>
89 + Send;
90 fn r#draw_image(&self, payload: &PuppetDrawImageRequest) -> Self::DrawImageResponseFut;
91 type SetImagePropertiesResponseFut: std::future::Future<Output = Result<PuppetSetImagePropertiesResponse, fidl::Error>>
92 + Send;
93 fn r#set_image_properties(
94 &self,
95 payload: &PuppetSetImagePropertiesRequest,
96 ) -> Self::SetImagePropertiesResponseFut;
97}
98#[derive(Debug)]
99#[cfg(target_os = "fuchsia")]
100pub struct PuppetSynchronousProxy {
101 client: fidl::client::sync::Client,
102}
103
104#[cfg(target_os = "fuchsia")]
105impl fidl::endpoints::SynchronousProxy for PuppetSynchronousProxy {
106 type Proxy = PuppetProxy;
107 type Protocol = PuppetMarker;
108
109 fn from_channel(inner: fidl::Channel) -> Self {
110 Self::new(inner)
111 }
112
113 fn into_channel(self) -> fidl::Channel {
114 self.client.into_channel()
115 }
116
117 fn as_channel(&self) -> &fidl::Channel {
118 self.client.as_channel()
119 }
120}
121
122#[cfg(target_os = "fuchsia")]
123impl PuppetSynchronousProxy {
124 pub fn new(channel: fidl::Channel) -> Self {
125 let protocol_name = <PuppetMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
126 Self { client: fidl::client::sync::Client::new(channel, protocol_name) }
127 }
128
129 pub fn into_channel(self) -> fidl::Channel {
130 self.client.into_channel()
131 }
132
133 pub fn wait_for_event(
136 &self,
137 deadline: zx::MonotonicInstant,
138 ) -> Result<PuppetEvent, fidl::Error> {
139 PuppetEvent::decode(self.client.wait_for_event(deadline)?)
140 }
141
142 pub fn r#embed_remote_view(
149 &self,
150 mut payload: &PuppetEmbedRemoteViewRequest,
151 ___deadline: zx::MonotonicInstant,
152 ) -> Result<PuppetEmbedRemoteViewResponse, fidl::Error> {
153 let _response =
154 self.client.send_query::<PuppetEmbedRemoteViewRequest, PuppetEmbedRemoteViewResponse>(
155 payload,
156 0x5bb2325a988aa137,
157 fidl::encoding::DynamicFlags::empty(),
158 ___deadline,
159 )?;
160 Ok(_response)
161 }
162
163 pub fn r#set_embedded_view_properties(
165 &self,
166 mut payload: &PuppetSetEmbeddedViewPropertiesRequest,
167 ___deadline: zx::MonotonicInstant,
168 ) -> Result<PuppetSetEmbeddedViewPropertiesResponse, fidl::Error> {
169 let _response = self.client.send_query::<
170 PuppetSetEmbeddedViewPropertiesRequest,
171 PuppetSetEmbeddedViewPropertiesResponse,
172 >(
173 payload,
174 0x409a7f3de135c709,
175 fidl::encoding::DynamicFlags::empty(),
176 ___deadline,
177 )?;
178 Ok(_response)
179 }
180
181 pub fn r#draw_image(
183 &self,
184 mut payload: &PuppetDrawImageRequest,
185 ___deadline: zx::MonotonicInstant,
186 ) -> Result<PuppetDrawImageResponse, fidl::Error> {
187 let _response = self.client.send_query::<PuppetDrawImageRequest, PuppetDrawImageResponse>(
188 payload,
189 0x6d736daa48b835cc,
190 fidl::encoding::DynamicFlags::empty(),
191 ___deadline,
192 )?;
193 Ok(_response)
194 }
195
196 pub fn r#set_image_properties(
198 &self,
199 mut payload: &PuppetSetImagePropertiesRequest,
200 ___deadline: zx::MonotonicInstant,
201 ) -> Result<PuppetSetImagePropertiesResponse, fidl::Error> {
202 let _response = self
203 .client
204 .send_query::<PuppetSetImagePropertiesRequest, PuppetSetImagePropertiesResponse>(
205 payload,
206 0x2683795408d033ff,
207 fidl::encoding::DynamicFlags::empty(),
208 ___deadline,
209 )?;
210 Ok(_response)
211 }
212}
213
214#[derive(Debug, Clone)]
215pub struct PuppetProxy {
216 client: fidl::client::Client<fidl::encoding::DefaultFuchsiaResourceDialect>,
217}
218
219impl fidl::endpoints::Proxy for PuppetProxy {
220 type Protocol = PuppetMarker;
221
222 fn from_channel(inner: ::fidl::AsyncChannel) -> Self {
223 Self::new(inner)
224 }
225
226 fn into_channel(self) -> Result<::fidl::AsyncChannel, Self> {
227 self.client.into_channel().map_err(|client| Self { client })
228 }
229
230 fn as_channel(&self) -> &::fidl::AsyncChannel {
231 self.client.as_channel()
232 }
233}
234
235impl PuppetProxy {
236 pub fn new(channel: ::fidl::AsyncChannel) -> Self {
238 let protocol_name = <PuppetMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
239 Self { client: fidl::client::Client::new(channel, protocol_name) }
240 }
241
242 pub fn take_event_stream(&self) -> PuppetEventStream {
248 PuppetEventStream { event_receiver: self.client.take_event_receiver() }
249 }
250
251 pub fn r#embed_remote_view(
258 &self,
259 mut payload: &PuppetEmbedRemoteViewRequest,
260 ) -> fidl::client::QueryResponseFut<
261 PuppetEmbedRemoteViewResponse,
262 fidl::encoding::DefaultFuchsiaResourceDialect,
263 > {
264 PuppetProxyInterface::r#embed_remote_view(self, payload)
265 }
266
267 pub fn r#set_embedded_view_properties(
269 &self,
270 mut payload: &PuppetSetEmbeddedViewPropertiesRequest,
271 ) -> fidl::client::QueryResponseFut<
272 PuppetSetEmbeddedViewPropertiesResponse,
273 fidl::encoding::DefaultFuchsiaResourceDialect,
274 > {
275 PuppetProxyInterface::r#set_embedded_view_properties(self, payload)
276 }
277
278 pub fn r#draw_image(
280 &self,
281 mut payload: &PuppetDrawImageRequest,
282 ) -> fidl::client::QueryResponseFut<
283 PuppetDrawImageResponse,
284 fidl::encoding::DefaultFuchsiaResourceDialect,
285 > {
286 PuppetProxyInterface::r#draw_image(self, payload)
287 }
288
289 pub fn r#set_image_properties(
291 &self,
292 mut payload: &PuppetSetImagePropertiesRequest,
293 ) -> fidl::client::QueryResponseFut<
294 PuppetSetImagePropertiesResponse,
295 fidl::encoding::DefaultFuchsiaResourceDialect,
296 > {
297 PuppetProxyInterface::r#set_image_properties(self, payload)
298 }
299}
300
301impl PuppetProxyInterface for PuppetProxy {
302 type EmbedRemoteViewResponseFut = fidl::client::QueryResponseFut<
303 PuppetEmbedRemoteViewResponse,
304 fidl::encoding::DefaultFuchsiaResourceDialect,
305 >;
306 fn r#embed_remote_view(
307 &self,
308 mut payload: &PuppetEmbedRemoteViewRequest,
309 ) -> Self::EmbedRemoteViewResponseFut {
310 fn _decode(
311 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
312 ) -> Result<PuppetEmbedRemoteViewResponse, fidl::Error> {
313 let _response = fidl::client::decode_transaction_body::<
314 PuppetEmbedRemoteViewResponse,
315 fidl::encoding::DefaultFuchsiaResourceDialect,
316 0x5bb2325a988aa137,
317 >(_buf?)?;
318 Ok(_response)
319 }
320 self.client
321 .send_query_and_decode::<PuppetEmbedRemoteViewRequest, PuppetEmbedRemoteViewResponse>(
322 payload,
323 0x5bb2325a988aa137,
324 fidl::encoding::DynamicFlags::empty(),
325 _decode,
326 )
327 }
328
329 type SetEmbeddedViewPropertiesResponseFut = fidl::client::QueryResponseFut<
330 PuppetSetEmbeddedViewPropertiesResponse,
331 fidl::encoding::DefaultFuchsiaResourceDialect,
332 >;
333 fn r#set_embedded_view_properties(
334 &self,
335 mut payload: &PuppetSetEmbeddedViewPropertiesRequest,
336 ) -> Self::SetEmbeddedViewPropertiesResponseFut {
337 fn _decode(
338 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
339 ) -> Result<PuppetSetEmbeddedViewPropertiesResponse, fidl::Error> {
340 let _response = fidl::client::decode_transaction_body::<
341 PuppetSetEmbeddedViewPropertiesResponse,
342 fidl::encoding::DefaultFuchsiaResourceDialect,
343 0x409a7f3de135c709,
344 >(_buf?)?;
345 Ok(_response)
346 }
347 self.client.send_query_and_decode::<
348 PuppetSetEmbeddedViewPropertiesRequest,
349 PuppetSetEmbeddedViewPropertiesResponse,
350 >(
351 payload,
352 0x409a7f3de135c709,
353 fidl::encoding::DynamicFlags::empty(),
354 _decode,
355 )
356 }
357
358 type DrawImageResponseFut = fidl::client::QueryResponseFut<
359 PuppetDrawImageResponse,
360 fidl::encoding::DefaultFuchsiaResourceDialect,
361 >;
362 fn r#draw_image(&self, mut payload: &PuppetDrawImageRequest) -> Self::DrawImageResponseFut {
363 fn _decode(
364 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
365 ) -> Result<PuppetDrawImageResponse, fidl::Error> {
366 let _response = fidl::client::decode_transaction_body::<
367 PuppetDrawImageResponse,
368 fidl::encoding::DefaultFuchsiaResourceDialect,
369 0x6d736daa48b835cc,
370 >(_buf?)?;
371 Ok(_response)
372 }
373 self.client.send_query_and_decode::<PuppetDrawImageRequest, PuppetDrawImageResponse>(
374 payload,
375 0x6d736daa48b835cc,
376 fidl::encoding::DynamicFlags::empty(),
377 _decode,
378 )
379 }
380
381 type SetImagePropertiesResponseFut = fidl::client::QueryResponseFut<
382 PuppetSetImagePropertiesResponse,
383 fidl::encoding::DefaultFuchsiaResourceDialect,
384 >;
385 fn r#set_image_properties(
386 &self,
387 mut payload: &PuppetSetImagePropertiesRequest,
388 ) -> Self::SetImagePropertiesResponseFut {
389 fn _decode(
390 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
391 ) -> Result<PuppetSetImagePropertiesResponse, fidl::Error> {
392 let _response = fidl::client::decode_transaction_body::<
393 PuppetSetImagePropertiesResponse,
394 fidl::encoding::DefaultFuchsiaResourceDialect,
395 0x2683795408d033ff,
396 >(_buf?)?;
397 Ok(_response)
398 }
399 self.client.send_query_and_decode::<
400 PuppetSetImagePropertiesRequest,
401 PuppetSetImagePropertiesResponse,
402 >(
403 payload,
404 0x2683795408d033ff,
405 fidl::encoding::DynamicFlags::empty(),
406 _decode,
407 )
408 }
409}
410
411pub struct PuppetEventStream {
412 event_receiver: fidl::client::EventReceiver<fidl::encoding::DefaultFuchsiaResourceDialect>,
413}
414
415impl std::marker::Unpin for PuppetEventStream {}
416
417impl futures::stream::FusedStream for PuppetEventStream {
418 fn is_terminated(&self) -> bool {
419 self.event_receiver.is_terminated()
420 }
421}
422
423impl futures::Stream for PuppetEventStream {
424 type Item = Result<PuppetEvent, fidl::Error>;
425
426 fn poll_next(
427 mut self: std::pin::Pin<&mut Self>,
428 cx: &mut std::task::Context<'_>,
429 ) -> std::task::Poll<Option<Self::Item>> {
430 match futures::ready!(futures::stream::StreamExt::poll_next_unpin(
431 &mut self.event_receiver,
432 cx
433 )?) {
434 Some(buf) => std::task::Poll::Ready(Some(PuppetEvent::decode(buf))),
435 None => std::task::Poll::Ready(None),
436 }
437 }
438}
439
440#[derive(Debug)]
441pub enum PuppetEvent {}
442
443impl PuppetEvent {
444 fn decode(
446 mut buf: <fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc,
447 ) -> Result<PuppetEvent, fidl::Error> {
448 let (bytes, _handles) = buf.split_mut();
449 let (tx_header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
450 debug_assert_eq!(tx_header.tx_id, 0);
451 match tx_header.ordinal {
452 _ => Err(fidl::Error::UnknownOrdinal {
453 ordinal: tx_header.ordinal,
454 protocol_name: <PuppetMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
455 }),
456 }
457 }
458}
459
460pub struct PuppetRequestStream {
462 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
463 is_terminated: bool,
464}
465
466impl std::marker::Unpin for PuppetRequestStream {}
467
468impl futures::stream::FusedStream for PuppetRequestStream {
469 fn is_terminated(&self) -> bool {
470 self.is_terminated
471 }
472}
473
474impl fidl::endpoints::RequestStream for PuppetRequestStream {
475 type Protocol = PuppetMarker;
476 type ControlHandle = PuppetControlHandle;
477
478 fn from_channel(channel: ::fidl::AsyncChannel) -> Self {
479 Self { inner: std::sync::Arc::new(fidl::ServeInner::new(channel)), is_terminated: false }
480 }
481
482 fn control_handle(&self) -> Self::ControlHandle {
483 PuppetControlHandle { inner: self.inner.clone() }
484 }
485
486 fn into_inner(
487 self,
488 ) -> (::std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>, bool)
489 {
490 (self.inner, self.is_terminated)
491 }
492
493 fn from_inner(
494 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
495 is_terminated: bool,
496 ) -> Self {
497 Self { inner, is_terminated }
498 }
499}
500
501impl futures::Stream for PuppetRequestStream {
502 type Item = Result<PuppetRequest, fidl::Error>;
503
504 fn poll_next(
505 mut self: std::pin::Pin<&mut Self>,
506 cx: &mut std::task::Context<'_>,
507 ) -> std::task::Poll<Option<Self::Item>> {
508 let this = &mut *self;
509 if this.inner.check_shutdown(cx) {
510 this.is_terminated = true;
511 return std::task::Poll::Ready(None);
512 }
513 if this.is_terminated {
514 panic!("polled PuppetRequestStream after completion");
515 }
516 fidl::encoding::with_tls_decode_buf::<_, fidl::encoding::DefaultFuchsiaResourceDialect>(
517 |bytes, handles| {
518 match this.inner.channel().read_etc(cx, bytes, handles) {
519 std::task::Poll::Ready(Ok(())) => {}
520 std::task::Poll::Pending => return std::task::Poll::Pending,
521 std::task::Poll::Ready(Err(zx_status::Status::PEER_CLOSED)) => {
522 this.is_terminated = true;
523 return std::task::Poll::Ready(None);
524 }
525 std::task::Poll::Ready(Err(e)) => {
526 return std::task::Poll::Ready(Some(Err(fidl::Error::ServerRequestRead(
527 e.into(),
528 ))))
529 }
530 }
531
532 let (header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
534
535 std::task::Poll::Ready(Some(match header.ordinal {
536 0x5bb2325a988aa137 => {
537 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
538 let mut req = fidl::new_empty!(
539 PuppetEmbedRemoteViewRequest,
540 fidl::encoding::DefaultFuchsiaResourceDialect
541 );
542 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<PuppetEmbedRemoteViewRequest>(&header, _body_bytes, handles, &mut req)?;
543 let control_handle = PuppetControlHandle { inner: this.inner.clone() };
544 Ok(PuppetRequest::EmbedRemoteView {
545 payload: req,
546 responder: PuppetEmbedRemoteViewResponder {
547 control_handle: std::mem::ManuallyDrop::new(control_handle),
548 tx_id: header.tx_id,
549 },
550 })
551 }
552 0x409a7f3de135c709 => {
553 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
554 let mut req = fidl::new_empty!(
555 PuppetSetEmbeddedViewPropertiesRequest,
556 fidl::encoding::DefaultFuchsiaResourceDialect
557 );
558 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<PuppetSetEmbeddedViewPropertiesRequest>(&header, _body_bytes, handles, &mut req)?;
559 let control_handle = PuppetControlHandle { inner: this.inner.clone() };
560 Ok(PuppetRequest::SetEmbeddedViewProperties {
561 payload: req,
562 responder: PuppetSetEmbeddedViewPropertiesResponder {
563 control_handle: std::mem::ManuallyDrop::new(control_handle),
564 tx_id: header.tx_id,
565 },
566 })
567 }
568 0x6d736daa48b835cc => {
569 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
570 let mut req = fidl::new_empty!(
571 PuppetDrawImageRequest,
572 fidl::encoding::DefaultFuchsiaResourceDialect
573 );
574 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<PuppetDrawImageRequest>(&header, _body_bytes, handles, &mut req)?;
575 let control_handle = PuppetControlHandle { inner: this.inner.clone() };
576 Ok(PuppetRequest::DrawImage {
577 payload: req,
578 responder: PuppetDrawImageResponder {
579 control_handle: std::mem::ManuallyDrop::new(control_handle),
580 tx_id: header.tx_id,
581 },
582 })
583 }
584 0x2683795408d033ff => {
585 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
586 let mut req = fidl::new_empty!(
587 PuppetSetImagePropertiesRequest,
588 fidl::encoding::DefaultFuchsiaResourceDialect
589 );
590 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<PuppetSetImagePropertiesRequest>(&header, _body_bytes, handles, &mut req)?;
591 let control_handle = PuppetControlHandle { inner: this.inner.clone() };
592 Ok(PuppetRequest::SetImageProperties {
593 payload: req,
594 responder: PuppetSetImagePropertiesResponder {
595 control_handle: std::mem::ManuallyDrop::new(control_handle),
596 tx_id: header.tx_id,
597 },
598 })
599 }
600 _ => Err(fidl::Error::UnknownOrdinal {
601 ordinal: header.ordinal,
602 protocol_name:
603 <PuppetMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
604 }),
605 }))
606 },
607 )
608 }
609}
610
611#[derive(Debug)]
653pub enum PuppetRequest {
654 EmbedRemoteView {
661 payload: PuppetEmbedRemoteViewRequest,
662 responder: PuppetEmbedRemoteViewResponder,
663 },
664 SetEmbeddedViewProperties {
666 payload: PuppetSetEmbeddedViewPropertiesRequest,
667 responder: PuppetSetEmbeddedViewPropertiesResponder,
668 },
669 DrawImage { payload: PuppetDrawImageRequest, responder: PuppetDrawImageResponder },
671 SetImageProperties {
673 payload: PuppetSetImagePropertiesRequest,
674 responder: PuppetSetImagePropertiesResponder,
675 },
676}
677
678impl PuppetRequest {
679 #[allow(irrefutable_let_patterns)]
680 pub fn into_embed_remote_view(
681 self,
682 ) -> Option<(PuppetEmbedRemoteViewRequest, PuppetEmbedRemoteViewResponder)> {
683 if let PuppetRequest::EmbedRemoteView { payload, responder } = self {
684 Some((payload, responder))
685 } else {
686 None
687 }
688 }
689
690 #[allow(irrefutable_let_patterns)]
691 pub fn into_set_embedded_view_properties(
692 self,
693 ) -> Option<(PuppetSetEmbeddedViewPropertiesRequest, PuppetSetEmbeddedViewPropertiesResponder)>
694 {
695 if let PuppetRequest::SetEmbeddedViewProperties { payload, responder } = self {
696 Some((payload, responder))
697 } else {
698 None
699 }
700 }
701
702 #[allow(irrefutable_let_patterns)]
703 pub fn into_draw_image(self) -> Option<(PuppetDrawImageRequest, PuppetDrawImageResponder)> {
704 if let PuppetRequest::DrawImage { payload, responder } = self {
705 Some((payload, responder))
706 } else {
707 None
708 }
709 }
710
711 #[allow(irrefutable_let_patterns)]
712 pub fn into_set_image_properties(
713 self,
714 ) -> Option<(PuppetSetImagePropertiesRequest, PuppetSetImagePropertiesResponder)> {
715 if let PuppetRequest::SetImageProperties { payload, responder } = self {
716 Some((payload, responder))
717 } else {
718 None
719 }
720 }
721
722 pub fn method_name(&self) -> &'static str {
724 match *self {
725 PuppetRequest::EmbedRemoteView { .. } => "embed_remote_view",
726 PuppetRequest::SetEmbeddedViewProperties { .. } => "set_embedded_view_properties",
727 PuppetRequest::DrawImage { .. } => "draw_image",
728 PuppetRequest::SetImageProperties { .. } => "set_image_properties",
729 }
730 }
731}
732
733#[derive(Debug, Clone)]
734pub struct PuppetControlHandle {
735 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
736}
737
738impl fidl::endpoints::ControlHandle for PuppetControlHandle {
739 fn shutdown(&self) {
740 self.inner.shutdown()
741 }
742 fn shutdown_with_epitaph(&self, status: zx_status::Status) {
743 self.inner.shutdown_with_epitaph(status)
744 }
745
746 fn is_closed(&self) -> bool {
747 self.inner.channel().is_closed()
748 }
749 fn on_closed(&self) -> fidl::OnSignalsRef<'_> {
750 self.inner.channel().on_closed()
751 }
752
753 #[cfg(target_os = "fuchsia")]
754 fn signal_peer(
755 &self,
756 clear_mask: zx::Signals,
757 set_mask: zx::Signals,
758 ) -> Result<(), zx_status::Status> {
759 use fidl::Peered;
760 self.inner.channel().signal_peer(clear_mask, set_mask)
761 }
762}
763
764impl PuppetControlHandle {}
765
766#[must_use = "FIDL methods require a response to be sent"]
767#[derive(Debug)]
768pub struct PuppetEmbedRemoteViewResponder {
769 control_handle: std::mem::ManuallyDrop<PuppetControlHandle>,
770 tx_id: u32,
771}
772
773impl std::ops::Drop for PuppetEmbedRemoteViewResponder {
777 fn drop(&mut self) {
778 self.control_handle.shutdown();
779 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
781 }
782}
783
784impl fidl::endpoints::Responder for PuppetEmbedRemoteViewResponder {
785 type ControlHandle = PuppetControlHandle;
786
787 fn control_handle(&self) -> &PuppetControlHandle {
788 &self.control_handle
789 }
790
791 fn drop_without_shutdown(mut self) {
792 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
794 std::mem::forget(self);
796 }
797}
798
799impl PuppetEmbedRemoteViewResponder {
800 pub fn send(self, mut payload: PuppetEmbedRemoteViewResponse) -> Result<(), fidl::Error> {
804 let _result = self.send_raw(payload);
805 if _result.is_err() {
806 self.control_handle.shutdown();
807 }
808 self.drop_without_shutdown();
809 _result
810 }
811
812 pub fn send_no_shutdown_on_err(
814 self,
815 mut payload: PuppetEmbedRemoteViewResponse,
816 ) -> Result<(), fidl::Error> {
817 let _result = self.send_raw(payload);
818 self.drop_without_shutdown();
819 _result
820 }
821
822 fn send_raw(&self, mut payload: PuppetEmbedRemoteViewResponse) -> Result<(), fidl::Error> {
823 self.control_handle.inner.send::<PuppetEmbedRemoteViewResponse>(
824 &mut payload,
825 self.tx_id,
826 0x5bb2325a988aa137,
827 fidl::encoding::DynamicFlags::empty(),
828 )
829 }
830}
831
832#[must_use = "FIDL methods require a response to be sent"]
833#[derive(Debug)]
834pub struct PuppetSetEmbeddedViewPropertiesResponder {
835 control_handle: std::mem::ManuallyDrop<PuppetControlHandle>,
836 tx_id: u32,
837}
838
839impl std::ops::Drop for PuppetSetEmbeddedViewPropertiesResponder {
843 fn drop(&mut self) {
844 self.control_handle.shutdown();
845 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
847 }
848}
849
850impl fidl::endpoints::Responder for PuppetSetEmbeddedViewPropertiesResponder {
851 type ControlHandle = PuppetControlHandle;
852
853 fn control_handle(&self) -> &PuppetControlHandle {
854 &self.control_handle
855 }
856
857 fn drop_without_shutdown(mut self) {
858 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
860 std::mem::forget(self);
862 }
863}
864
865impl PuppetSetEmbeddedViewPropertiesResponder {
866 pub fn send(
870 self,
871 mut payload: &PuppetSetEmbeddedViewPropertiesResponse,
872 ) -> Result<(), fidl::Error> {
873 let _result = self.send_raw(payload);
874 if _result.is_err() {
875 self.control_handle.shutdown();
876 }
877 self.drop_without_shutdown();
878 _result
879 }
880
881 pub fn send_no_shutdown_on_err(
883 self,
884 mut payload: &PuppetSetEmbeddedViewPropertiesResponse,
885 ) -> Result<(), fidl::Error> {
886 let _result = self.send_raw(payload);
887 self.drop_without_shutdown();
888 _result
889 }
890
891 fn send_raw(
892 &self,
893 mut payload: &PuppetSetEmbeddedViewPropertiesResponse,
894 ) -> Result<(), fidl::Error> {
895 self.control_handle.inner.send::<PuppetSetEmbeddedViewPropertiesResponse>(
896 payload,
897 self.tx_id,
898 0x409a7f3de135c709,
899 fidl::encoding::DynamicFlags::empty(),
900 )
901 }
902}
903
904#[must_use = "FIDL methods require a response to be sent"]
905#[derive(Debug)]
906pub struct PuppetDrawImageResponder {
907 control_handle: std::mem::ManuallyDrop<PuppetControlHandle>,
908 tx_id: u32,
909}
910
911impl std::ops::Drop for PuppetDrawImageResponder {
915 fn drop(&mut self) {
916 self.control_handle.shutdown();
917 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
919 }
920}
921
922impl fidl::endpoints::Responder for PuppetDrawImageResponder {
923 type ControlHandle = PuppetControlHandle;
924
925 fn control_handle(&self) -> &PuppetControlHandle {
926 &self.control_handle
927 }
928
929 fn drop_without_shutdown(mut self) {
930 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
932 std::mem::forget(self);
934 }
935}
936
937impl PuppetDrawImageResponder {
938 pub fn send(self, mut payload: &PuppetDrawImageResponse) -> Result<(), fidl::Error> {
942 let _result = self.send_raw(payload);
943 if _result.is_err() {
944 self.control_handle.shutdown();
945 }
946 self.drop_without_shutdown();
947 _result
948 }
949
950 pub fn send_no_shutdown_on_err(
952 self,
953 mut payload: &PuppetDrawImageResponse,
954 ) -> Result<(), fidl::Error> {
955 let _result = self.send_raw(payload);
956 self.drop_without_shutdown();
957 _result
958 }
959
960 fn send_raw(&self, mut payload: &PuppetDrawImageResponse) -> Result<(), fidl::Error> {
961 self.control_handle.inner.send::<PuppetDrawImageResponse>(
962 payload,
963 self.tx_id,
964 0x6d736daa48b835cc,
965 fidl::encoding::DynamicFlags::empty(),
966 )
967 }
968}
969
970#[must_use = "FIDL methods require a response to be sent"]
971#[derive(Debug)]
972pub struct PuppetSetImagePropertiesResponder {
973 control_handle: std::mem::ManuallyDrop<PuppetControlHandle>,
974 tx_id: u32,
975}
976
977impl std::ops::Drop for PuppetSetImagePropertiesResponder {
981 fn drop(&mut self) {
982 self.control_handle.shutdown();
983 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
985 }
986}
987
988impl fidl::endpoints::Responder for PuppetSetImagePropertiesResponder {
989 type ControlHandle = PuppetControlHandle;
990
991 fn control_handle(&self) -> &PuppetControlHandle {
992 &self.control_handle
993 }
994
995 fn drop_without_shutdown(mut self) {
996 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
998 std::mem::forget(self);
1000 }
1001}
1002
1003impl PuppetSetImagePropertiesResponder {
1004 pub fn send(self, mut payload: &PuppetSetImagePropertiesResponse) -> Result<(), fidl::Error> {
1008 let _result = self.send_raw(payload);
1009 if _result.is_err() {
1010 self.control_handle.shutdown();
1011 }
1012 self.drop_without_shutdown();
1013 _result
1014 }
1015
1016 pub fn send_no_shutdown_on_err(
1018 self,
1019 mut payload: &PuppetSetImagePropertiesResponse,
1020 ) -> Result<(), fidl::Error> {
1021 let _result = self.send_raw(payload);
1022 self.drop_without_shutdown();
1023 _result
1024 }
1025
1026 fn send_raw(&self, mut payload: &PuppetSetImagePropertiesResponse) -> Result<(), fidl::Error> {
1027 self.control_handle.inner.send::<PuppetSetImagePropertiesResponse>(
1028 payload,
1029 self.tx_id,
1030 0x2683795408d033ff,
1031 fidl::encoding::DynamicFlags::empty(),
1032 )
1033 }
1034}
1035
1036#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
1037pub struct PuppetFactoryMarker;
1038
1039impl fidl::endpoints::ProtocolMarker for PuppetFactoryMarker {
1040 type Proxy = PuppetFactoryProxy;
1041 type RequestStream = PuppetFactoryRequestStream;
1042 #[cfg(target_os = "fuchsia")]
1043 type SynchronousProxy = PuppetFactorySynchronousProxy;
1044
1045 const DEBUG_NAME: &'static str = "fuchsia.ui.test.conformance.PuppetFactory";
1046}
1047impl fidl::endpoints::DiscoverableProtocolMarker for PuppetFactoryMarker {}
1048
1049pub trait PuppetFactoryProxyInterface: Send + Sync {
1050 type CreateResponseFut: std::future::Future<Output = Result<PuppetFactoryCreateResponse, fidl::Error>>
1051 + Send;
1052 fn r#create(&self, payload: PuppetCreationArgs) -> Self::CreateResponseFut;
1053}
1054#[derive(Debug)]
1055#[cfg(target_os = "fuchsia")]
1056pub struct PuppetFactorySynchronousProxy {
1057 client: fidl::client::sync::Client,
1058}
1059
1060#[cfg(target_os = "fuchsia")]
1061impl fidl::endpoints::SynchronousProxy for PuppetFactorySynchronousProxy {
1062 type Proxy = PuppetFactoryProxy;
1063 type Protocol = PuppetFactoryMarker;
1064
1065 fn from_channel(inner: fidl::Channel) -> Self {
1066 Self::new(inner)
1067 }
1068
1069 fn into_channel(self) -> fidl::Channel {
1070 self.client.into_channel()
1071 }
1072
1073 fn as_channel(&self) -> &fidl::Channel {
1074 self.client.as_channel()
1075 }
1076}
1077
1078#[cfg(target_os = "fuchsia")]
1079impl PuppetFactorySynchronousProxy {
1080 pub fn new(channel: fidl::Channel) -> Self {
1081 let protocol_name = <PuppetFactoryMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
1082 Self { client: fidl::client::sync::Client::new(channel, protocol_name) }
1083 }
1084
1085 pub fn into_channel(self) -> fidl::Channel {
1086 self.client.into_channel()
1087 }
1088
1089 pub fn wait_for_event(
1092 &self,
1093 deadline: zx::MonotonicInstant,
1094 ) -> Result<PuppetFactoryEvent, fidl::Error> {
1095 PuppetFactoryEvent::decode(self.client.wait_for_event(deadline)?)
1096 }
1097
1098 pub fn r#create(
1101 &self,
1102 mut payload: PuppetCreationArgs,
1103 ___deadline: zx::MonotonicInstant,
1104 ) -> Result<PuppetFactoryCreateResponse, fidl::Error> {
1105 let _response = self.client.send_query::<PuppetCreationArgs, PuppetFactoryCreateResponse>(
1106 &mut payload,
1107 0x4f90811dc284b595,
1108 fidl::encoding::DynamicFlags::empty(),
1109 ___deadline,
1110 )?;
1111 Ok(_response)
1112 }
1113}
1114
1115#[derive(Debug, Clone)]
1116pub struct PuppetFactoryProxy {
1117 client: fidl::client::Client<fidl::encoding::DefaultFuchsiaResourceDialect>,
1118}
1119
1120impl fidl::endpoints::Proxy for PuppetFactoryProxy {
1121 type Protocol = PuppetFactoryMarker;
1122
1123 fn from_channel(inner: ::fidl::AsyncChannel) -> Self {
1124 Self::new(inner)
1125 }
1126
1127 fn into_channel(self) -> Result<::fidl::AsyncChannel, Self> {
1128 self.client.into_channel().map_err(|client| Self { client })
1129 }
1130
1131 fn as_channel(&self) -> &::fidl::AsyncChannel {
1132 self.client.as_channel()
1133 }
1134}
1135
1136impl PuppetFactoryProxy {
1137 pub fn new(channel: ::fidl::AsyncChannel) -> Self {
1139 let protocol_name = <PuppetFactoryMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
1140 Self { client: fidl::client::Client::new(channel, protocol_name) }
1141 }
1142
1143 pub fn take_event_stream(&self) -> PuppetFactoryEventStream {
1149 PuppetFactoryEventStream { event_receiver: self.client.take_event_receiver() }
1150 }
1151
1152 pub fn r#create(
1155 &self,
1156 mut payload: PuppetCreationArgs,
1157 ) -> fidl::client::QueryResponseFut<
1158 PuppetFactoryCreateResponse,
1159 fidl::encoding::DefaultFuchsiaResourceDialect,
1160 > {
1161 PuppetFactoryProxyInterface::r#create(self, payload)
1162 }
1163}
1164
1165impl PuppetFactoryProxyInterface for PuppetFactoryProxy {
1166 type CreateResponseFut = fidl::client::QueryResponseFut<
1167 PuppetFactoryCreateResponse,
1168 fidl::encoding::DefaultFuchsiaResourceDialect,
1169 >;
1170 fn r#create(&self, mut payload: PuppetCreationArgs) -> Self::CreateResponseFut {
1171 fn _decode(
1172 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
1173 ) -> Result<PuppetFactoryCreateResponse, fidl::Error> {
1174 let _response = fidl::client::decode_transaction_body::<
1175 PuppetFactoryCreateResponse,
1176 fidl::encoding::DefaultFuchsiaResourceDialect,
1177 0x4f90811dc284b595,
1178 >(_buf?)?;
1179 Ok(_response)
1180 }
1181 self.client.send_query_and_decode::<PuppetCreationArgs, PuppetFactoryCreateResponse>(
1182 &mut payload,
1183 0x4f90811dc284b595,
1184 fidl::encoding::DynamicFlags::empty(),
1185 _decode,
1186 )
1187 }
1188}
1189
1190pub struct PuppetFactoryEventStream {
1191 event_receiver: fidl::client::EventReceiver<fidl::encoding::DefaultFuchsiaResourceDialect>,
1192}
1193
1194impl std::marker::Unpin for PuppetFactoryEventStream {}
1195
1196impl futures::stream::FusedStream for PuppetFactoryEventStream {
1197 fn is_terminated(&self) -> bool {
1198 self.event_receiver.is_terminated()
1199 }
1200}
1201
1202impl futures::Stream for PuppetFactoryEventStream {
1203 type Item = Result<PuppetFactoryEvent, fidl::Error>;
1204
1205 fn poll_next(
1206 mut self: std::pin::Pin<&mut Self>,
1207 cx: &mut std::task::Context<'_>,
1208 ) -> std::task::Poll<Option<Self::Item>> {
1209 match futures::ready!(futures::stream::StreamExt::poll_next_unpin(
1210 &mut self.event_receiver,
1211 cx
1212 )?) {
1213 Some(buf) => std::task::Poll::Ready(Some(PuppetFactoryEvent::decode(buf))),
1214 None => std::task::Poll::Ready(None),
1215 }
1216 }
1217}
1218
1219#[derive(Debug)]
1220pub enum PuppetFactoryEvent {}
1221
1222impl PuppetFactoryEvent {
1223 fn decode(
1225 mut buf: <fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc,
1226 ) -> Result<PuppetFactoryEvent, fidl::Error> {
1227 let (bytes, _handles) = buf.split_mut();
1228 let (tx_header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
1229 debug_assert_eq!(tx_header.tx_id, 0);
1230 match tx_header.ordinal {
1231 _ => Err(fidl::Error::UnknownOrdinal {
1232 ordinal: tx_header.ordinal,
1233 protocol_name: <PuppetFactoryMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
1234 }),
1235 }
1236 }
1237}
1238
1239pub struct PuppetFactoryRequestStream {
1241 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
1242 is_terminated: bool,
1243}
1244
1245impl std::marker::Unpin for PuppetFactoryRequestStream {}
1246
1247impl futures::stream::FusedStream for PuppetFactoryRequestStream {
1248 fn is_terminated(&self) -> bool {
1249 self.is_terminated
1250 }
1251}
1252
1253impl fidl::endpoints::RequestStream for PuppetFactoryRequestStream {
1254 type Protocol = PuppetFactoryMarker;
1255 type ControlHandle = PuppetFactoryControlHandle;
1256
1257 fn from_channel(channel: ::fidl::AsyncChannel) -> Self {
1258 Self { inner: std::sync::Arc::new(fidl::ServeInner::new(channel)), is_terminated: false }
1259 }
1260
1261 fn control_handle(&self) -> Self::ControlHandle {
1262 PuppetFactoryControlHandle { inner: self.inner.clone() }
1263 }
1264
1265 fn into_inner(
1266 self,
1267 ) -> (::std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>, bool)
1268 {
1269 (self.inner, self.is_terminated)
1270 }
1271
1272 fn from_inner(
1273 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
1274 is_terminated: bool,
1275 ) -> Self {
1276 Self { inner, is_terminated }
1277 }
1278}
1279
1280impl futures::Stream for PuppetFactoryRequestStream {
1281 type Item = Result<PuppetFactoryRequest, fidl::Error>;
1282
1283 fn poll_next(
1284 mut self: std::pin::Pin<&mut Self>,
1285 cx: &mut std::task::Context<'_>,
1286 ) -> std::task::Poll<Option<Self::Item>> {
1287 let this = &mut *self;
1288 if this.inner.check_shutdown(cx) {
1289 this.is_terminated = true;
1290 return std::task::Poll::Ready(None);
1291 }
1292 if this.is_terminated {
1293 panic!("polled PuppetFactoryRequestStream after completion");
1294 }
1295 fidl::encoding::with_tls_decode_buf::<_, fidl::encoding::DefaultFuchsiaResourceDialect>(
1296 |bytes, handles| {
1297 match this.inner.channel().read_etc(cx, bytes, handles) {
1298 std::task::Poll::Ready(Ok(())) => {}
1299 std::task::Poll::Pending => return std::task::Poll::Pending,
1300 std::task::Poll::Ready(Err(zx_status::Status::PEER_CLOSED)) => {
1301 this.is_terminated = true;
1302 return std::task::Poll::Ready(None);
1303 }
1304 std::task::Poll::Ready(Err(e)) => {
1305 return std::task::Poll::Ready(Some(Err(fidl::Error::ServerRequestRead(
1306 e.into(),
1307 ))))
1308 }
1309 }
1310
1311 let (header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
1313
1314 std::task::Poll::Ready(Some(match header.ordinal {
1315 0x4f90811dc284b595 => {
1316 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
1317 let mut req = fidl::new_empty!(
1318 PuppetCreationArgs,
1319 fidl::encoding::DefaultFuchsiaResourceDialect
1320 );
1321 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<PuppetCreationArgs>(&header, _body_bytes, handles, &mut req)?;
1322 let control_handle =
1323 PuppetFactoryControlHandle { inner: this.inner.clone() };
1324 Ok(PuppetFactoryRequest::Create {
1325 payload: req,
1326 responder: PuppetFactoryCreateResponder {
1327 control_handle: std::mem::ManuallyDrop::new(control_handle),
1328 tx_id: header.tx_id,
1329 },
1330 })
1331 }
1332 _ => Err(fidl::Error::UnknownOrdinal {
1333 ordinal: header.ordinal,
1334 protocol_name:
1335 <PuppetFactoryMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
1336 }),
1337 }))
1338 },
1339 )
1340 }
1341}
1342
1343#[derive(Debug)]
1346pub enum PuppetFactoryRequest {
1347 Create { payload: PuppetCreationArgs, responder: PuppetFactoryCreateResponder },
1350}
1351
1352impl PuppetFactoryRequest {
1353 #[allow(irrefutable_let_patterns)]
1354 pub fn into_create(self) -> Option<(PuppetCreationArgs, PuppetFactoryCreateResponder)> {
1355 if let PuppetFactoryRequest::Create { payload, responder } = self {
1356 Some((payload, responder))
1357 } else {
1358 None
1359 }
1360 }
1361
1362 pub fn method_name(&self) -> &'static str {
1364 match *self {
1365 PuppetFactoryRequest::Create { .. } => "create",
1366 }
1367 }
1368}
1369
1370#[derive(Debug, Clone)]
1371pub struct PuppetFactoryControlHandle {
1372 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
1373}
1374
1375impl fidl::endpoints::ControlHandle for PuppetFactoryControlHandle {
1376 fn shutdown(&self) {
1377 self.inner.shutdown()
1378 }
1379 fn shutdown_with_epitaph(&self, status: zx_status::Status) {
1380 self.inner.shutdown_with_epitaph(status)
1381 }
1382
1383 fn is_closed(&self) -> bool {
1384 self.inner.channel().is_closed()
1385 }
1386 fn on_closed(&self) -> fidl::OnSignalsRef<'_> {
1387 self.inner.channel().on_closed()
1388 }
1389
1390 #[cfg(target_os = "fuchsia")]
1391 fn signal_peer(
1392 &self,
1393 clear_mask: zx::Signals,
1394 set_mask: zx::Signals,
1395 ) -> Result<(), zx_status::Status> {
1396 use fidl::Peered;
1397 self.inner.channel().signal_peer(clear_mask, set_mask)
1398 }
1399}
1400
1401impl PuppetFactoryControlHandle {}
1402
1403#[must_use = "FIDL methods require a response to be sent"]
1404#[derive(Debug)]
1405pub struct PuppetFactoryCreateResponder {
1406 control_handle: std::mem::ManuallyDrop<PuppetFactoryControlHandle>,
1407 tx_id: u32,
1408}
1409
1410impl std::ops::Drop for PuppetFactoryCreateResponder {
1414 fn drop(&mut self) {
1415 self.control_handle.shutdown();
1416 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
1418 }
1419}
1420
1421impl fidl::endpoints::Responder for PuppetFactoryCreateResponder {
1422 type ControlHandle = PuppetFactoryControlHandle;
1423
1424 fn control_handle(&self) -> &PuppetFactoryControlHandle {
1425 &self.control_handle
1426 }
1427
1428 fn drop_without_shutdown(mut self) {
1429 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
1431 std::mem::forget(self);
1433 }
1434}
1435
1436impl PuppetFactoryCreateResponder {
1437 pub fn send(self, mut payload: PuppetFactoryCreateResponse) -> Result<(), fidl::Error> {
1441 let _result = self.send_raw(payload);
1442 if _result.is_err() {
1443 self.control_handle.shutdown();
1444 }
1445 self.drop_without_shutdown();
1446 _result
1447 }
1448
1449 pub fn send_no_shutdown_on_err(
1451 self,
1452 mut payload: PuppetFactoryCreateResponse,
1453 ) -> Result<(), fidl::Error> {
1454 let _result = self.send_raw(payload);
1455 self.drop_without_shutdown();
1456 _result
1457 }
1458
1459 fn send_raw(&self, mut payload: PuppetFactoryCreateResponse) -> Result<(), fidl::Error> {
1460 self.control_handle.inner.send::<PuppetFactoryCreateResponse>(
1461 &mut payload,
1462 self.tx_id,
1463 0x4f90811dc284b595,
1464 fidl::encoding::DynamicFlags::empty(),
1465 )
1466 }
1467}
1468
1469mod internal {
1470 use super::*;
1471
1472 impl PuppetCreationArgs {
1473 #[inline(always)]
1474 fn max_ordinal_present(&self) -> u64 {
1475 if let Some(_) = self.focuser {
1476 return 9;
1477 }
1478 if let Some(_) = self.device_pixel_ratio {
1479 return 8;
1480 }
1481 if let Some(_) = self.keyboard_client {
1482 return 7;
1483 }
1484 if let Some(_) = self.flatland_client {
1485 return 6;
1486 }
1487 if let Some(_) = self.keyboard_listener {
1488 return 5;
1489 }
1490 if let Some(_) = self.mouse_listener {
1491 return 4;
1492 }
1493 if let Some(_) = self.touch_listener {
1494 return 3;
1495 }
1496 if let Some(_) = self.view_token {
1497 return 2;
1498 }
1499 if let Some(_) = self.server_end {
1500 return 1;
1501 }
1502 0
1503 }
1504 }
1505
1506 impl fidl::encoding::ResourceTypeMarker for PuppetCreationArgs {
1507 type Borrowed<'a> = &'a mut Self;
1508 fn take_or_borrow<'a>(
1509 value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
1510 ) -> Self::Borrowed<'a> {
1511 value
1512 }
1513 }
1514
1515 unsafe impl fidl::encoding::TypeMarker for PuppetCreationArgs {
1516 type Owned = Self;
1517
1518 #[inline(always)]
1519 fn inline_align(_context: fidl::encoding::Context) -> usize {
1520 8
1521 }
1522
1523 #[inline(always)]
1524 fn inline_size(_context: fidl::encoding::Context) -> usize {
1525 16
1526 }
1527 }
1528
1529 unsafe impl
1530 fidl::encoding::Encode<PuppetCreationArgs, fidl::encoding::DefaultFuchsiaResourceDialect>
1531 for &mut PuppetCreationArgs
1532 {
1533 unsafe fn encode(
1534 self,
1535 encoder: &mut fidl::encoding::Encoder<
1536 '_,
1537 fidl::encoding::DefaultFuchsiaResourceDialect,
1538 >,
1539 offset: usize,
1540 mut depth: fidl::encoding::Depth,
1541 ) -> fidl::Result<()> {
1542 encoder.debug_check_bounds::<PuppetCreationArgs>(offset);
1543 let max_ordinal: u64 = self.max_ordinal_present();
1545 encoder.write_num(max_ordinal, offset);
1546 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
1547 if max_ordinal == 0 {
1549 return Ok(());
1550 }
1551 depth.increment()?;
1552 let envelope_size = 8;
1553 let bytes_len = max_ordinal as usize * envelope_size;
1554 #[allow(unused_variables)]
1555 let offset = encoder.out_of_line_offset(bytes_len);
1556 let mut _prev_end_offset: usize = 0;
1557 if 1 > max_ordinal {
1558 return Ok(());
1559 }
1560
1561 let cur_offset: usize = (1 - 1) * envelope_size;
1564
1565 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1567
1568 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Endpoint<fidl::endpoints::ServerEnd<PuppetMarker>>, fidl::encoding::DefaultFuchsiaResourceDialect>(
1573 self.server_end.as_mut().map(<fidl::encoding::Endpoint<fidl::endpoints::ServerEnd<PuppetMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow),
1574 encoder, offset + cur_offset, depth
1575 )?;
1576
1577 _prev_end_offset = cur_offset + envelope_size;
1578 if 2 > max_ordinal {
1579 return Ok(());
1580 }
1581
1582 let cur_offset: usize = (2 - 1) * envelope_size;
1585
1586 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1588
1589 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_ui_views::ViewCreationToken, fidl::encoding::DefaultFuchsiaResourceDialect>(
1594 self.view_token.as_mut().map(<fidl_fuchsia_ui_views::ViewCreationToken as fidl::encoding::ResourceTypeMarker>::take_or_borrow),
1595 encoder, offset + cur_offset, depth
1596 )?;
1597
1598 _prev_end_offset = cur_offset + envelope_size;
1599 if 3 > max_ordinal {
1600 return Ok(());
1601 }
1602
1603 let cur_offset: usize = (3 - 1) * envelope_size;
1606
1607 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1609
1610 fidl::encoding::encode_in_envelope_optional::<
1615 fidl::encoding::Endpoint<
1616 fidl::endpoints::ClientEnd<
1617 fidl_fuchsia_ui_test_input::TouchInputListenerMarker,
1618 >,
1619 >,
1620 fidl::encoding::DefaultFuchsiaResourceDialect,
1621 >(
1622 self.touch_listener.as_mut().map(
1623 <fidl::encoding::Endpoint<
1624 fidl::endpoints::ClientEnd<
1625 fidl_fuchsia_ui_test_input::TouchInputListenerMarker,
1626 >,
1627 > as fidl::encoding::ResourceTypeMarker>::take_or_borrow,
1628 ),
1629 encoder,
1630 offset + cur_offset,
1631 depth,
1632 )?;
1633
1634 _prev_end_offset = cur_offset + envelope_size;
1635 if 4 > max_ordinal {
1636 return Ok(());
1637 }
1638
1639 let cur_offset: usize = (4 - 1) * envelope_size;
1642
1643 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1645
1646 fidl::encoding::encode_in_envelope_optional::<
1651 fidl::encoding::Endpoint<
1652 fidl::endpoints::ClientEnd<
1653 fidl_fuchsia_ui_test_input::MouseInputListenerMarker,
1654 >,
1655 >,
1656 fidl::encoding::DefaultFuchsiaResourceDialect,
1657 >(
1658 self.mouse_listener.as_mut().map(
1659 <fidl::encoding::Endpoint<
1660 fidl::endpoints::ClientEnd<
1661 fidl_fuchsia_ui_test_input::MouseInputListenerMarker,
1662 >,
1663 > as fidl::encoding::ResourceTypeMarker>::take_or_borrow,
1664 ),
1665 encoder,
1666 offset + cur_offset,
1667 depth,
1668 )?;
1669
1670 _prev_end_offset = cur_offset + envelope_size;
1671 if 5 > max_ordinal {
1672 return Ok(());
1673 }
1674
1675 let cur_offset: usize = (5 - 1) * envelope_size;
1678
1679 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1681
1682 fidl::encoding::encode_in_envelope_optional::<
1687 fidl::encoding::Endpoint<
1688 fidl::endpoints::ClientEnd<
1689 fidl_fuchsia_ui_test_input::KeyboardInputListenerMarker,
1690 >,
1691 >,
1692 fidl::encoding::DefaultFuchsiaResourceDialect,
1693 >(
1694 self.keyboard_listener.as_mut().map(
1695 <fidl::encoding::Endpoint<
1696 fidl::endpoints::ClientEnd<
1697 fidl_fuchsia_ui_test_input::KeyboardInputListenerMarker,
1698 >,
1699 > as fidl::encoding::ResourceTypeMarker>::take_or_borrow,
1700 ),
1701 encoder,
1702 offset + cur_offset,
1703 depth,
1704 )?;
1705
1706 _prev_end_offset = cur_offset + envelope_size;
1707 if 6 > max_ordinal {
1708 return Ok(());
1709 }
1710
1711 let cur_offset: usize = (6 - 1) * envelope_size;
1714
1715 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1717
1718 fidl::encoding::encode_in_envelope_optional::<
1723 fidl::encoding::Endpoint<
1724 fidl::endpoints::ClientEnd<fidl_fuchsia_ui_composition::FlatlandMarker>,
1725 >,
1726 fidl::encoding::DefaultFuchsiaResourceDialect,
1727 >(
1728 self.flatland_client.as_mut().map(
1729 <fidl::encoding::Endpoint<
1730 fidl::endpoints::ClientEnd<fidl_fuchsia_ui_composition::FlatlandMarker>,
1731 > as fidl::encoding::ResourceTypeMarker>::take_or_borrow,
1732 ),
1733 encoder,
1734 offset + cur_offset,
1735 depth,
1736 )?;
1737
1738 _prev_end_offset = cur_offset + envelope_size;
1739 if 7 > max_ordinal {
1740 return Ok(());
1741 }
1742
1743 let cur_offset: usize = (7 - 1) * envelope_size;
1746
1747 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1749
1750 fidl::encoding::encode_in_envelope_optional::<
1755 fidl::encoding::Endpoint<
1756 fidl::endpoints::ClientEnd<fidl_fuchsia_ui_input3::KeyboardMarker>,
1757 >,
1758 fidl::encoding::DefaultFuchsiaResourceDialect,
1759 >(
1760 self.keyboard_client.as_mut().map(
1761 <fidl::encoding::Endpoint<
1762 fidl::endpoints::ClientEnd<fidl_fuchsia_ui_input3::KeyboardMarker>,
1763 > as fidl::encoding::ResourceTypeMarker>::take_or_borrow,
1764 ),
1765 encoder,
1766 offset + cur_offset,
1767 depth,
1768 )?;
1769
1770 _prev_end_offset = cur_offset + envelope_size;
1771 if 8 > max_ordinal {
1772 return Ok(());
1773 }
1774
1775 let cur_offset: usize = (8 - 1) * envelope_size;
1778
1779 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1781
1782 fidl::encoding::encode_in_envelope_optional::<
1787 f32,
1788 fidl::encoding::DefaultFuchsiaResourceDialect,
1789 >(
1790 self.device_pixel_ratio
1791 .as_ref()
1792 .map(<f32 as fidl::encoding::ValueTypeMarker>::borrow),
1793 encoder,
1794 offset + cur_offset,
1795 depth,
1796 )?;
1797
1798 _prev_end_offset = cur_offset + envelope_size;
1799 if 9 > max_ordinal {
1800 return Ok(());
1801 }
1802
1803 let cur_offset: usize = (9 - 1) * envelope_size;
1806
1807 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1809
1810 fidl::encoding::encode_in_envelope_optional::<
1815 fidl::encoding::Endpoint<
1816 fidl::endpoints::ServerEnd<fidl_fuchsia_ui_views::FocuserMarker>,
1817 >,
1818 fidl::encoding::DefaultFuchsiaResourceDialect,
1819 >(
1820 self.focuser.as_mut().map(
1821 <fidl::encoding::Endpoint<
1822 fidl::endpoints::ServerEnd<fidl_fuchsia_ui_views::FocuserMarker>,
1823 > as fidl::encoding::ResourceTypeMarker>::take_or_borrow,
1824 ),
1825 encoder,
1826 offset + cur_offset,
1827 depth,
1828 )?;
1829
1830 _prev_end_offset = cur_offset + envelope_size;
1831
1832 Ok(())
1833 }
1834 }
1835
1836 impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
1837 for PuppetCreationArgs
1838 {
1839 #[inline(always)]
1840 fn new_empty() -> Self {
1841 Self::default()
1842 }
1843
1844 unsafe fn decode(
1845 &mut self,
1846 decoder: &mut fidl::encoding::Decoder<
1847 '_,
1848 fidl::encoding::DefaultFuchsiaResourceDialect,
1849 >,
1850 offset: usize,
1851 mut depth: fidl::encoding::Depth,
1852 ) -> fidl::Result<()> {
1853 decoder.debug_check_bounds::<Self>(offset);
1854 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
1855 None => return Err(fidl::Error::NotNullable),
1856 Some(len) => len,
1857 };
1858 if len == 0 {
1860 return Ok(());
1861 };
1862 depth.increment()?;
1863 let envelope_size = 8;
1864 let bytes_len = len * envelope_size;
1865 let offset = decoder.out_of_line_offset(bytes_len)?;
1866 let mut _next_ordinal_to_read = 0;
1868 let mut next_offset = offset;
1869 let end_offset = offset + bytes_len;
1870 _next_ordinal_to_read += 1;
1871 if next_offset >= end_offset {
1872 return Ok(());
1873 }
1874
1875 while _next_ordinal_to_read < 1 {
1877 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1878 _next_ordinal_to_read += 1;
1879 next_offset += envelope_size;
1880 }
1881
1882 let next_out_of_line = decoder.next_out_of_line();
1883 let handles_before = decoder.remaining_handles();
1884 if let Some((inlined, num_bytes, num_handles)) =
1885 fidl::encoding::decode_envelope_header(decoder, next_offset)?
1886 {
1887 let member_inline_size = <fidl::encoding::Endpoint<
1888 fidl::endpoints::ServerEnd<PuppetMarker>,
1889 > as fidl::encoding::TypeMarker>::inline_size(
1890 decoder.context
1891 );
1892 if inlined != (member_inline_size <= 4) {
1893 return Err(fidl::Error::InvalidInlineBitInEnvelope);
1894 }
1895 let inner_offset;
1896 let mut inner_depth = depth.clone();
1897 if inlined {
1898 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
1899 inner_offset = next_offset;
1900 } else {
1901 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
1902 inner_depth.increment()?;
1903 }
1904 let val_ref = self.server_end.get_or_insert_with(|| {
1905 fidl::new_empty!(
1906 fidl::encoding::Endpoint<fidl::endpoints::ServerEnd<PuppetMarker>>,
1907 fidl::encoding::DefaultFuchsiaResourceDialect
1908 )
1909 });
1910 fidl::decode!(
1911 fidl::encoding::Endpoint<fidl::endpoints::ServerEnd<PuppetMarker>>,
1912 fidl::encoding::DefaultFuchsiaResourceDialect,
1913 val_ref,
1914 decoder,
1915 inner_offset,
1916 inner_depth
1917 )?;
1918 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
1919 {
1920 return Err(fidl::Error::InvalidNumBytesInEnvelope);
1921 }
1922 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
1923 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
1924 }
1925 }
1926
1927 next_offset += envelope_size;
1928 _next_ordinal_to_read += 1;
1929 if next_offset >= end_offset {
1930 return Ok(());
1931 }
1932
1933 while _next_ordinal_to_read < 2 {
1935 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1936 _next_ordinal_to_read += 1;
1937 next_offset += envelope_size;
1938 }
1939
1940 let next_out_of_line = decoder.next_out_of_line();
1941 let handles_before = decoder.remaining_handles();
1942 if let Some((inlined, num_bytes, num_handles)) =
1943 fidl::encoding::decode_envelope_header(decoder, next_offset)?
1944 {
1945 let member_inline_size = <fidl_fuchsia_ui_views::ViewCreationToken as fidl::encoding::TypeMarker>::inline_size(decoder.context);
1946 if inlined != (member_inline_size <= 4) {
1947 return Err(fidl::Error::InvalidInlineBitInEnvelope);
1948 }
1949 let inner_offset;
1950 let mut inner_depth = depth.clone();
1951 if inlined {
1952 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
1953 inner_offset = next_offset;
1954 } else {
1955 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
1956 inner_depth.increment()?;
1957 }
1958 let val_ref = self.view_token.get_or_insert_with(|| {
1959 fidl::new_empty!(
1960 fidl_fuchsia_ui_views::ViewCreationToken,
1961 fidl::encoding::DefaultFuchsiaResourceDialect
1962 )
1963 });
1964 fidl::decode!(
1965 fidl_fuchsia_ui_views::ViewCreationToken,
1966 fidl::encoding::DefaultFuchsiaResourceDialect,
1967 val_ref,
1968 decoder,
1969 inner_offset,
1970 inner_depth
1971 )?;
1972 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
1973 {
1974 return Err(fidl::Error::InvalidNumBytesInEnvelope);
1975 }
1976 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
1977 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
1978 }
1979 }
1980
1981 next_offset += envelope_size;
1982 _next_ordinal_to_read += 1;
1983 if next_offset >= end_offset {
1984 return Ok(());
1985 }
1986
1987 while _next_ordinal_to_read < 3 {
1989 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1990 _next_ordinal_to_read += 1;
1991 next_offset += envelope_size;
1992 }
1993
1994 let next_out_of_line = decoder.next_out_of_line();
1995 let handles_before = decoder.remaining_handles();
1996 if let Some((inlined, num_bytes, num_handles)) =
1997 fidl::encoding::decode_envelope_header(decoder, next_offset)?
1998 {
1999 let member_inline_size = <fidl::encoding::Endpoint<
2000 fidl::endpoints::ClientEnd<
2001 fidl_fuchsia_ui_test_input::TouchInputListenerMarker,
2002 >,
2003 > as fidl::encoding::TypeMarker>::inline_size(
2004 decoder.context
2005 );
2006 if inlined != (member_inline_size <= 4) {
2007 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2008 }
2009 let inner_offset;
2010 let mut inner_depth = depth.clone();
2011 if inlined {
2012 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2013 inner_offset = next_offset;
2014 } else {
2015 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2016 inner_depth.increment()?;
2017 }
2018 let val_ref = self.touch_listener.get_or_insert_with(|| {
2019 fidl::new_empty!(
2020 fidl::encoding::Endpoint<
2021 fidl::endpoints::ClientEnd<
2022 fidl_fuchsia_ui_test_input::TouchInputListenerMarker,
2023 >,
2024 >,
2025 fidl::encoding::DefaultFuchsiaResourceDialect
2026 )
2027 });
2028 fidl::decode!(
2029 fidl::encoding::Endpoint<
2030 fidl::endpoints::ClientEnd<
2031 fidl_fuchsia_ui_test_input::TouchInputListenerMarker,
2032 >,
2033 >,
2034 fidl::encoding::DefaultFuchsiaResourceDialect,
2035 val_ref,
2036 decoder,
2037 inner_offset,
2038 inner_depth
2039 )?;
2040 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2041 {
2042 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2043 }
2044 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2045 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2046 }
2047 }
2048
2049 next_offset += envelope_size;
2050 _next_ordinal_to_read += 1;
2051 if next_offset >= end_offset {
2052 return Ok(());
2053 }
2054
2055 while _next_ordinal_to_read < 4 {
2057 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2058 _next_ordinal_to_read += 1;
2059 next_offset += envelope_size;
2060 }
2061
2062 let next_out_of_line = decoder.next_out_of_line();
2063 let handles_before = decoder.remaining_handles();
2064 if let Some((inlined, num_bytes, num_handles)) =
2065 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2066 {
2067 let member_inline_size = <fidl::encoding::Endpoint<
2068 fidl::endpoints::ClientEnd<
2069 fidl_fuchsia_ui_test_input::MouseInputListenerMarker,
2070 >,
2071 > as fidl::encoding::TypeMarker>::inline_size(
2072 decoder.context
2073 );
2074 if inlined != (member_inline_size <= 4) {
2075 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2076 }
2077 let inner_offset;
2078 let mut inner_depth = depth.clone();
2079 if inlined {
2080 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2081 inner_offset = next_offset;
2082 } else {
2083 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2084 inner_depth.increment()?;
2085 }
2086 let val_ref = self.mouse_listener.get_or_insert_with(|| {
2087 fidl::new_empty!(
2088 fidl::encoding::Endpoint<
2089 fidl::endpoints::ClientEnd<
2090 fidl_fuchsia_ui_test_input::MouseInputListenerMarker,
2091 >,
2092 >,
2093 fidl::encoding::DefaultFuchsiaResourceDialect
2094 )
2095 });
2096 fidl::decode!(
2097 fidl::encoding::Endpoint<
2098 fidl::endpoints::ClientEnd<
2099 fidl_fuchsia_ui_test_input::MouseInputListenerMarker,
2100 >,
2101 >,
2102 fidl::encoding::DefaultFuchsiaResourceDialect,
2103 val_ref,
2104 decoder,
2105 inner_offset,
2106 inner_depth
2107 )?;
2108 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2109 {
2110 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2111 }
2112 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2113 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2114 }
2115 }
2116
2117 next_offset += envelope_size;
2118 _next_ordinal_to_read += 1;
2119 if next_offset >= end_offset {
2120 return Ok(());
2121 }
2122
2123 while _next_ordinal_to_read < 5 {
2125 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2126 _next_ordinal_to_read += 1;
2127 next_offset += envelope_size;
2128 }
2129
2130 let next_out_of_line = decoder.next_out_of_line();
2131 let handles_before = decoder.remaining_handles();
2132 if let Some((inlined, num_bytes, num_handles)) =
2133 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2134 {
2135 let member_inline_size = <fidl::encoding::Endpoint<
2136 fidl::endpoints::ClientEnd<
2137 fidl_fuchsia_ui_test_input::KeyboardInputListenerMarker,
2138 >,
2139 > as fidl::encoding::TypeMarker>::inline_size(
2140 decoder.context
2141 );
2142 if inlined != (member_inline_size <= 4) {
2143 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2144 }
2145 let inner_offset;
2146 let mut inner_depth = depth.clone();
2147 if inlined {
2148 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2149 inner_offset = next_offset;
2150 } else {
2151 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2152 inner_depth.increment()?;
2153 }
2154 let val_ref = self.keyboard_listener.get_or_insert_with(|| {
2155 fidl::new_empty!(
2156 fidl::encoding::Endpoint<
2157 fidl::endpoints::ClientEnd<
2158 fidl_fuchsia_ui_test_input::KeyboardInputListenerMarker,
2159 >,
2160 >,
2161 fidl::encoding::DefaultFuchsiaResourceDialect
2162 )
2163 });
2164 fidl::decode!(
2165 fidl::encoding::Endpoint<
2166 fidl::endpoints::ClientEnd<
2167 fidl_fuchsia_ui_test_input::KeyboardInputListenerMarker,
2168 >,
2169 >,
2170 fidl::encoding::DefaultFuchsiaResourceDialect,
2171 val_ref,
2172 decoder,
2173 inner_offset,
2174 inner_depth
2175 )?;
2176 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2177 {
2178 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2179 }
2180 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2181 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2182 }
2183 }
2184
2185 next_offset += envelope_size;
2186 _next_ordinal_to_read += 1;
2187 if next_offset >= end_offset {
2188 return Ok(());
2189 }
2190
2191 while _next_ordinal_to_read < 6 {
2193 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2194 _next_ordinal_to_read += 1;
2195 next_offset += envelope_size;
2196 }
2197
2198 let next_out_of_line = decoder.next_out_of_line();
2199 let handles_before = decoder.remaining_handles();
2200 if let Some((inlined, num_bytes, num_handles)) =
2201 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2202 {
2203 let member_inline_size = <fidl::encoding::Endpoint<
2204 fidl::endpoints::ClientEnd<fidl_fuchsia_ui_composition::FlatlandMarker>,
2205 > as fidl::encoding::TypeMarker>::inline_size(
2206 decoder.context
2207 );
2208 if inlined != (member_inline_size <= 4) {
2209 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2210 }
2211 let inner_offset;
2212 let mut inner_depth = depth.clone();
2213 if inlined {
2214 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2215 inner_offset = next_offset;
2216 } else {
2217 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2218 inner_depth.increment()?;
2219 }
2220 let val_ref = self.flatland_client.get_or_insert_with(|| {
2221 fidl::new_empty!(
2222 fidl::encoding::Endpoint<
2223 fidl::endpoints::ClientEnd<fidl_fuchsia_ui_composition::FlatlandMarker>,
2224 >,
2225 fidl::encoding::DefaultFuchsiaResourceDialect
2226 )
2227 });
2228 fidl::decode!(
2229 fidl::encoding::Endpoint<
2230 fidl::endpoints::ClientEnd<fidl_fuchsia_ui_composition::FlatlandMarker>,
2231 >,
2232 fidl::encoding::DefaultFuchsiaResourceDialect,
2233 val_ref,
2234 decoder,
2235 inner_offset,
2236 inner_depth
2237 )?;
2238 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2239 {
2240 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2241 }
2242 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2243 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2244 }
2245 }
2246
2247 next_offset += envelope_size;
2248 _next_ordinal_to_read += 1;
2249 if next_offset >= end_offset {
2250 return Ok(());
2251 }
2252
2253 while _next_ordinal_to_read < 7 {
2255 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2256 _next_ordinal_to_read += 1;
2257 next_offset += envelope_size;
2258 }
2259
2260 let next_out_of_line = decoder.next_out_of_line();
2261 let handles_before = decoder.remaining_handles();
2262 if let Some((inlined, num_bytes, num_handles)) =
2263 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2264 {
2265 let member_inline_size = <fidl::encoding::Endpoint<
2266 fidl::endpoints::ClientEnd<fidl_fuchsia_ui_input3::KeyboardMarker>,
2267 > as fidl::encoding::TypeMarker>::inline_size(
2268 decoder.context
2269 );
2270 if inlined != (member_inline_size <= 4) {
2271 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2272 }
2273 let inner_offset;
2274 let mut inner_depth = depth.clone();
2275 if inlined {
2276 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2277 inner_offset = next_offset;
2278 } else {
2279 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2280 inner_depth.increment()?;
2281 }
2282 let val_ref = self.keyboard_client.get_or_insert_with(|| {
2283 fidl::new_empty!(
2284 fidl::encoding::Endpoint<
2285 fidl::endpoints::ClientEnd<fidl_fuchsia_ui_input3::KeyboardMarker>,
2286 >,
2287 fidl::encoding::DefaultFuchsiaResourceDialect
2288 )
2289 });
2290 fidl::decode!(
2291 fidl::encoding::Endpoint<
2292 fidl::endpoints::ClientEnd<fidl_fuchsia_ui_input3::KeyboardMarker>,
2293 >,
2294 fidl::encoding::DefaultFuchsiaResourceDialect,
2295 val_ref,
2296 decoder,
2297 inner_offset,
2298 inner_depth
2299 )?;
2300 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2301 {
2302 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2303 }
2304 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2305 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2306 }
2307 }
2308
2309 next_offset += envelope_size;
2310 _next_ordinal_to_read += 1;
2311 if next_offset >= end_offset {
2312 return Ok(());
2313 }
2314
2315 while _next_ordinal_to_read < 8 {
2317 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2318 _next_ordinal_to_read += 1;
2319 next_offset += envelope_size;
2320 }
2321
2322 let next_out_of_line = decoder.next_out_of_line();
2323 let handles_before = decoder.remaining_handles();
2324 if let Some((inlined, num_bytes, num_handles)) =
2325 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2326 {
2327 let member_inline_size =
2328 <f32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2329 if inlined != (member_inline_size <= 4) {
2330 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2331 }
2332 let inner_offset;
2333 let mut inner_depth = depth.clone();
2334 if inlined {
2335 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2336 inner_offset = next_offset;
2337 } else {
2338 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2339 inner_depth.increment()?;
2340 }
2341 let val_ref = self.device_pixel_ratio.get_or_insert_with(|| {
2342 fidl::new_empty!(f32, fidl::encoding::DefaultFuchsiaResourceDialect)
2343 });
2344 fidl::decode!(
2345 f32,
2346 fidl::encoding::DefaultFuchsiaResourceDialect,
2347 val_ref,
2348 decoder,
2349 inner_offset,
2350 inner_depth
2351 )?;
2352 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2353 {
2354 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2355 }
2356 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2357 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2358 }
2359 }
2360
2361 next_offset += envelope_size;
2362 _next_ordinal_to_read += 1;
2363 if next_offset >= end_offset {
2364 return Ok(());
2365 }
2366
2367 while _next_ordinal_to_read < 9 {
2369 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2370 _next_ordinal_to_read += 1;
2371 next_offset += envelope_size;
2372 }
2373
2374 let next_out_of_line = decoder.next_out_of_line();
2375 let handles_before = decoder.remaining_handles();
2376 if let Some((inlined, num_bytes, num_handles)) =
2377 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2378 {
2379 let member_inline_size = <fidl::encoding::Endpoint<
2380 fidl::endpoints::ServerEnd<fidl_fuchsia_ui_views::FocuserMarker>,
2381 > as fidl::encoding::TypeMarker>::inline_size(
2382 decoder.context
2383 );
2384 if inlined != (member_inline_size <= 4) {
2385 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2386 }
2387 let inner_offset;
2388 let mut inner_depth = depth.clone();
2389 if inlined {
2390 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2391 inner_offset = next_offset;
2392 } else {
2393 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2394 inner_depth.increment()?;
2395 }
2396 let val_ref = self.focuser.get_or_insert_with(|| {
2397 fidl::new_empty!(
2398 fidl::encoding::Endpoint<
2399 fidl::endpoints::ServerEnd<fidl_fuchsia_ui_views::FocuserMarker>,
2400 >,
2401 fidl::encoding::DefaultFuchsiaResourceDialect
2402 )
2403 });
2404 fidl::decode!(
2405 fidl::encoding::Endpoint<
2406 fidl::endpoints::ServerEnd<fidl_fuchsia_ui_views::FocuserMarker>,
2407 >,
2408 fidl::encoding::DefaultFuchsiaResourceDialect,
2409 val_ref,
2410 decoder,
2411 inner_offset,
2412 inner_depth
2413 )?;
2414 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2415 {
2416 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2417 }
2418 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2419 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2420 }
2421 }
2422
2423 next_offset += envelope_size;
2424
2425 while next_offset < end_offset {
2427 _next_ordinal_to_read += 1;
2428 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2429 next_offset += envelope_size;
2430 }
2431
2432 Ok(())
2433 }
2434 }
2435
2436 impl PuppetEmbedRemoteViewResponse {
2437 #[inline(always)]
2438 fn max_ordinal_present(&self) -> u64 {
2439 if let Some(_) = self.view_creation_token {
2440 return 2;
2441 }
2442 if let Some(_) = self.result {
2443 return 1;
2444 }
2445 0
2446 }
2447 }
2448
2449 impl fidl::encoding::ResourceTypeMarker for PuppetEmbedRemoteViewResponse {
2450 type Borrowed<'a> = &'a mut Self;
2451 fn take_or_borrow<'a>(
2452 value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
2453 ) -> Self::Borrowed<'a> {
2454 value
2455 }
2456 }
2457
2458 unsafe impl fidl::encoding::TypeMarker for PuppetEmbedRemoteViewResponse {
2459 type Owned = Self;
2460
2461 #[inline(always)]
2462 fn inline_align(_context: fidl::encoding::Context) -> usize {
2463 8
2464 }
2465
2466 #[inline(always)]
2467 fn inline_size(_context: fidl::encoding::Context) -> usize {
2468 16
2469 }
2470 }
2471
2472 unsafe impl
2473 fidl::encoding::Encode<
2474 PuppetEmbedRemoteViewResponse,
2475 fidl::encoding::DefaultFuchsiaResourceDialect,
2476 > for &mut PuppetEmbedRemoteViewResponse
2477 {
2478 unsafe fn encode(
2479 self,
2480 encoder: &mut fidl::encoding::Encoder<
2481 '_,
2482 fidl::encoding::DefaultFuchsiaResourceDialect,
2483 >,
2484 offset: usize,
2485 mut depth: fidl::encoding::Depth,
2486 ) -> fidl::Result<()> {
2487 encoder.debug_check_bounds::<PuppetEmbedRemoteViewResponse>(offset);
2488 let max_ordinal: u64 = self.max_ordinal_present();
2490 encoder.write_num(max_ordinal, offset);
2491 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
2492 if max_ordinal == 0 {
2494 return Ok(());
2495 }
2496 depth.increment()?;
2497 let envelope_size = 8;
2498 let bytes_len = max_ordinal as usize * envelope_size;
2499 #[allow(unused_variables)]
2500 let offset = encoder.out_of_line_offset(bytes_len);
2501 let mut _prev_end_offset: usize = 0;
2502 if 1 > max_ordinal {
2503 return Ok(());
2504 }
2505
2506 let cur_offset: usize = (1 - 1) * envelope_size;
2509
2510 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2512
2513 fidl::encoding::encode_in_envelope_optional::<
2518 Result_,
2519 fidl::encoding::DefaultFuchsiaResourceDialect,
2520 >(
2521 self.result.as_ref().map(<Result_ as fidl::encoding::ValueTypeMarker>::borrow),
2522 encoder,
2523 offset + cur_offset,
2524 depth,
2525 )?;
2526
2527 _prev_end_offset = cur_offset + envelope_size;
2528 if 2 > max_ordinal {
2529 return Ok(());
2530 }
2531
2532 let cur_offset: usize = (2 - 1) * envelope_size;
2535
2536 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2538
2539 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_ui_views::ViewCreationToken, fidl::encoding::DefaultFuchsiaResourceDialect>(
2544 self.view_creation_token.as_mut().map(<fidl_fuchsia_ui_views::ViewCreationToken as fidl::encoding::ResourceTypeMarker>::take_or_borrow),
2545 encoder, offset + cur_offset, depth
2546 )?;
2547
2548 _prev_end_offset = cur_offset + envelope_size;
2549
2550 Ok(())
2551 }
2552 }
2553
2554 impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
2555 for PuppetEmbedRemoteViewResponse
2556 {
2557 #[inline(always)]
2558 fn new_empty() -> Self {
2559 Self::default()
2560 }
2561
2562 unsafe fn decode(
2563 &mut self,
2564 decoder: &mut fidl::encoding::Decoder<
2565 '_,
2566 fidl::encoding::DefaultFuchsiaResourceDialect,
2567 >,
2568 offset: usize,
2569 mut depth: fidl::encoding::Depth,
2570 ) -> fidl::Result<()> {
2571 decoder.debug_check_bounds::<Self>(offset);
2572 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
2573 None => return Err(fidl::Error::NotNullable),
2574 Some(len) => len,
2575 };
2576 if len == 0 {
2578 return Ok(());
2579 };
2580 depth.increment()?;
2581 let envelope_size = 8;
2582 let bytes_len = len * envelope_size;
2583 let offset = decoder.out_of_line_offset(bytes_len)?;
2584 let mut _next_ordinal_to_read = 0;
2586 let mut next_offset = offset;
2587 let end_offset = offset + bytes_len;
2588 _next_ordinal_to_read += 1;
2589 if next_offset >= end_offset {
2590 return Ok(());
2591 }
2592
2593 while _next_ordinal_to_read < 1 {
2595 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2596 _next_ordinal_to_read += 1;
2597 next_offset += envelope_size;
2598 }
2599
2600 let next_out_of_line = decoder.next_out_of_line();
2601 let handles_before = decoder.remaining_handles();
2602 if let Some((inlined, num_bytes, num_handles)) =
2603 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2604 {
2605 let member_inline_size =
2606 <Result_ as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2607 if inlined != (member_inline_size <= 4) {
2608 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2609 }
2610 let inner_offset;
2611 let mut inner_depth = depth.clone();
2612 if inlined {
2613 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2614 inner_offset = next_offset;
2615 } else {
2616 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2617 inner_depth.increment()?;
2618 }
2619 let val_ref = self.result.get_or_insert_with(|| {
2620 fidl::new_empty!(Result_, fidl::encoding::DefaultFuchsiaResourceDialect)
2621 });
2622 fidl::decode!(
2623 Result_,
2624 fidl::encoding::DefaultFuchsiaResourceDialect,
2625 val_ref,
2626 decoder,
2627 inner_offset,
2628 inner_depth
2629 )?;
2630 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2631 {
2632 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2633 }
2634 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2635 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2636 }
2637 }
2638
2639 next_offset += envelope_size;
2640 _next_ordinal_to_read += 1;
2641 if next_offset >= end_offset {
2642 return Ok(());
2643 }
2644
2645 while _next_ordinal_to_read < 2 {
2647 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2648 _next_ordinal_to_read += 1;
2649 next_offset += envelope_size;
2650 }
2651
2652 let next_out_of_line = decoder.next_out_of_line();
2653 let handles_before = decoder.remaining_handles();
2654 if let Some((inlined, num_bytes, num_handles)) =
2655 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2656 {
2657 let member_inline_size = <fidl_fuchsia_ui_views::ViewCreationToken as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2658 if inlined != (member_inline_size <= 4) {
2659 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2660 }
2661 let inner_offset;
2662 let mut inner_depth = depth.clone();
2663 if inlined {
2664 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2665 inner_offset = next_offset;
2666 } else {
2667 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2668 inner_depth.increment()?;
2669 }
2670 let val_ref = self.view_creation_token.get_or_insert_with(|| {
2671 fidl::new_empty!(
2672 fidl_fuchsia_ui_views::ViewCreationToken,
2673 fidl::encoding::DefaultFuchsiaResourceDialect
2674 )
2675 });
2676 fidl::decode!(
2677 fidl_fuchsia_ui_views::ViewCreationToken,
2678 fidl::encoding::DefaultFuchsiaResourceDialect,
2679 val_ref,
2680 decoder,
2681 inner_offset,
2682 inner_depth
2683 )?;
2684 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2685 {
2686 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2687 }
2688 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2689 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2690 }
2691 }
2692
2693 next_offset += envelope_size;
2694
2695 while next_offset < end_offset {
2697 _next_ordinal_to_read += 1;
2698 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2699 next_offset += envelope_size;
2700 }
2701
2702 Ok(())
2703 }
2704 }
2705
2706 impl PuppetFactoryCreateResponse {
2707 #[inline(always)]
2708 fn max_ordinal_present(&self) -> u64 {
2709 if let Some(_) = self.view_ref {
2710 return 2;
2711 }
2712 if let Some(_) = self.result {
2713 return 1;
2714 }
2715 0
2716 }
2717 }
2718
2719 impl fidl::encoding::ResourceTypeMarker for PuppetFactoryCreateResponse {
2720 type Borrowed<'a> = &'a mut Self;
2721 fn take_or_borrow<'a>(
2722 value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
2723 ) -> Self::Borrowed<'a> {
2724 value
2725 }
2726 }
2727
2728 unsafe impl fidl::encoding::TypeMarker for PuppetFactoryCreateResponse {
2729 type Owned = Self;
2730
2731 #[inline(always)]
2732 fn inline_align(_context: fidl::encoding::Context) -> usize {
2733 8
2734 }
2735
2736 #[inline(always)]
2737 fn inline_size(_context: fidl::encoding::Context) -> usize {
2738 16
2739 }
2740 }
2741
2742 unsafe impl
2743 fidl::encoding::Encode<
2744 PuppetFactoryCreateResponse,
2745 fidl::encoding::DefaultFuchsiaResourceDialect,
2746 > for &mut PuppetFactoryCreateResponse
2747 {
2748 unsafe fn encode(
2749 self,
2750 encoder: &mut fidl::encoding::Encoder<
2751 '_,
2752 fidl::encoding::DefaultFuchsiaResourceDialect,
2753 >,
2754 offset: usize,
2755 mut depth: fidl::encoding::Depth,
2756 ) -> fidl::Result<()> {
2757 encoder.debug_check_bounds::<PuppetFactoryCreateResponse>(offset);
2758 let max_ordinal: u64 = self.max_ordinal_present();
2760 encoder.write_num(max_ordinal, offset);
2761 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
2762 if max_ordinal == 0 {
2764 return Ok(());
2765 }
2766 depth.increment()?;
2767 let envelope_size = 8;
2768 let bytes_len = max_ordinal as usize * envelope_size;
2769 #[allow(unused_variables)]
2770 let offset = encoder.out_of_line_offset(bytes_len);
2771 let mut _prev_end_offset: usize = 0;
2772 if 1 > max_ordinal {
2773 return Ok(());
2774 }
2775
2776 let cur_offset: usize = (1 - 1) * envelope_size;
2779
2780 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2782
2783 fidl::encoding::encode_in_envelope_optional::<
2788 Result_,
2789 fidl::encoding::DefaultFuchsiaResourceDialect,
2790 >(
2791 self.result.as_ref().map(<Result_ as fidl::encoding::ValueTypeMarker>::borrow),
2792 encoder,
2793 offset + cur_offset,
2794 depth,
2795 )?;
2796
2797 _prev_end_offset = cur_offset + envelope_size;
2798 if 2 > max_ordinal {
2799 return Ok(());
2800 }
2801
2802 let cur_offset: usize = (2 - 1) * envelope_size;
2805
2806 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2808
2809 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_ui_views::ViewRef, fidl::encoding::DefaultFuchsiaResourceDialect>(
2814 self.view_ref.as_mut().map(<fidl_fuchsia_ui_views::ViewRef as fidl::encoding::ResourceTypeMarker>::take_or_borrow),
2815 encoder, offset + cur_offset, depth
2816 )?;
2817
2818 _prev_end_offset = cur_offset + envelope_size;
2819
2820 Ok(())
2821 }
2822 }
2823
2824 impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
2825 for PuppetFactoryCreateResponse
2826 {
2827 #[inline(always)]
2828 fn new_empty() -> Self {
2829 Self::default()
2830 }
2831
2832 unsafe fn decode(
2833 &mut self,
2834 decoder: &mut fidl::encoding::Decoder<
2835 '_,
2836 fidl::encoding::DefaultFuchsiaResourceDialect,
2837 >,
2838 offset: usize,
2839 mut depth: fidl::encoding::Depth,
2840 ) -> fidl::Result<()> {
2841 decoder.debug_check_bounds::<Self>(offset);
2842 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
2843 None => return Err(fidl::Error::NotNullable),
2844 Some(len) => len,
2845 };
2846 if len == 0 {
2848 return Ok(());
2849 };
2850 depth.increment()?;
2851 let envelope_size = 8;
2852 let bytes_len = len * envelope_size;
2853 let offset = decoder.out_of_line_offset(bytes_len)?;
2854 let mut _next_ordinal_to_read = 0;
2856 let mut next_offset = offset;
2857 let end_offset = offset + bytes_len;
2858 _next_ordinal_to_read += 1;
2859 if next_offset >= end_offset {
2860 return Ok(());
2861 }
2862
2863 while _next_ordinal_to_read < 1 {
2865 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2866 _next_ordinal_to_read += 1;
2867 next_offset += envelope_size;
2868 }
2869
2870 let next_out_of_line = decoder.next_out_of_line();
2871 let handles_before = decoder.remaining_handles();
2872 if let Some((inlined, num_bytes, num_handles)) =
2873 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2874 {
2875 let member_inline_size =
2876 <Result_ as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2877 if inlined != (member_inline_size <= 4) {
2878 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2879 }
2880 let inner_offset;
2881 let mut inner_depth = depth.clone();
2882 if inlined {
2883 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2884 inner_offset = next_offset;
2885 } else {
2886 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2887 inner_depth.increment()?;
2888 }
2889 let val_ref = self.result.get_or_insert_with(|| {
2890 fidl::new_empty!(Result_, fidl::encoding::DefaultFuchsiaResourceDialect)
2891 });
2892 fidl::decode!(
2893 Result_,
2894 fidl::encoding::DefaultFuchsiaResourceDialect,
2895 val_ref,
2896 decoder,
2897 inner_offset,
2898 inner_depth
2899 )?;
2900 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2901 {
2902 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2903 }
2904 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2905 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2906 }
2907 }
2908
2909 next_offset += envelope_size;
2910 _next_ordinal_to_read += 1;
2911 if next_offset >= end_offset {
2912 return Ok(());
2913 }
2914
2915 while _next_ordinal_to_read < 2 {
2917 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2918 _next_ordinal_to_read += 1;
2919 next_offset += envelope_size;
2920 }
2921
2922 let next_out_of_line = decoder.next_out_of_line();
2923 let handles_before = decoder.remaining_handles();
2924 if let Some((inlined, num_bytes, num_handles)) =
2925 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2926 {
2927 let member_inline_size =
2928 <fidl_fuchsia_ui_views::ViewRef as fidl::encoding::TypeMarker>::inline_size(
2929 decoder.context,
2930 );
2931 if inlined != (member_inline_size <= 4) {
2932 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2933 }
2934 let inner_offset;
2935 let mut inner_depth = depth.clone();
2936 if inlined {
2937 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2938 inner_offset = next_offset;
2939 } else {
2940 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2941 inner_depth.increment()?;
2942 }
2943 let val_ref = self.view_ref.get_or_insert_with(|| {
2944 fidl::new_empty!(
2945 fidl_fuchsia_ui_views::ViewRef,
2946 fidl::encoding::DefaultFuchsiaResourceDialect
2947 )
2948 });
2949 fidl::decode!(
2950 fidl_fuchsia_ui_views::ViewRef,
2951 fidl::encoding::DefaultFuchsiaResourceDialect,
2952 val_ref,
2953 decoder,
2954 inner_offset,
2955 inner_depth
2956 )?;
2957 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2958 {
2959 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2960 }
2961 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2962 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2963 }
2964 }
2965
2966 next_offset += envelope_size;
2967
2968 while next_offset < end_offset {
2970 _next_ordinal_to_read += 1;
2971 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2972 next_offset += envelope_size;
2973 }
2974
2975 Ok(())
2976 }
2977 }
2978}