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