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 _};
10use futures::future::{self, MaybeDone, TryFutureExt};
11use zx_status;
12
13pub type Weight = u16;
14
15pub const DEFAULT_SLANT: Slant = Slant::Upright;
17
18pub const DEFAULT_WEIGHT: u16 = WEIGHT_NORMAL as u16;
20
21pub const DEFAULT_WIDTH: Width = Width::Normal;
23
24pub const MAX_FACE_QUERY_CODE_POINTS: u32 = 128;
26
27pub const MAX_FACE_QUERY_LANGUAGES: u32 = 8;
29
30pub const MAX_FAMILY_NAME_LENGTH: u32 = 128;
32
33pub const MAX_FAMILY_STYLES: u32 = 300;
35
36pub const MAX_POSTSCRIPT_TYPEFACE_NAME_LENGTH: u32 = 63;
39
40pub const MAX_TYPEFACE_NAME_LENGTH: u32 = 128;
42
43pub const REQUEST_FLAG_EXACT_MATCH: u32 = 2;
47
48pub const REQUEST_FLAG_NO_FALLBACK: u32 = 1;
53
54pub const WEIGHT_BLACK: u16 = 900;
55
56pub const WEIGHT_BOLD: u16 = 700;
57
58pub const WEIGHT_EXTRA_BOLD: u16 = 800;
59
60pub const WEIGHT_EXTRA_LIGHT: u16 = 200;
61
62pub const WEIGHT_LIGHT: u16 = 300;
63
64pub const WEIGHT_MEDIUM: u16 = 500;
65
66pub const WEIGHT_NORMAL: u16 = 400;
67
68pub const WEIGHT_SEMI_BOLD: u16 = 600;
69
70pub const WEIGHT_THIN: u16 = 100;
71
72bitflags! {
73 #[derive(Clone, Copy, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Hash)]
75 pub struct TypefaceRequestFlags: u32 {
76 const EXACT_FAMILY = 1;
79 const EXACT_STYLE = 2;
83 }
84}
85
86impl TypefaceRequestFlags {
87 #[deprecated = "Strict bits should not use `has_unknown_bits`"]
88 #[inline(always)]
89 pub fn has_unknown_bits(&self) -> bool {
90 false
91 }
92
93 #[deprecated = "Strict bits should not use `get_unknown_bits`"]
94 #[inline(always)]
95 pub fn get_unknown_bits(&self) -> u32 {
96 0
97 }
98}
99
100#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
103#[repr(u32)]
104pub enum CacheMissPolicy {
105 BlockUntilDownloaded = 1,
111 ReturnEmptyResponse = 2,
117 ReturnFallback = 3,
123}
124
125impl CacheMissPolicy {
126 #[inline]
127 pub fn from_primitive(prim: u32) -> Option<Self> {
128 match prim {
129 1 => Some(Self::BlockUntilDownloaded),
130 2 => Some(Self::ReturnEmptyResponse),
131 3 => Some(Self::ReturnFallback),
132 _ => None,
133 }
134 }
135
136 #[inline]
137 pub const fn into_primitive(self) -> u32 {
138 self as u32
139 }
140
141 #[deprecated = "Strict enums should not use `is_unknown`"]
142 #[inline]
143 pub fn is_unknown(&self) -> bool {
144 false
145 }
146}
147
148#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
150#[repr(u32)]
151pub enum FallbackGroup {
152 None = 0,
153 Serif = 1,
154 SansSerif = 2,
155 Monospace = 3,
156 Cursive = 4,
157 Fantasy = 5,
158}
159
160impl FallbackGroup {
161 #[inline]
162 pub fn from_primitive(prim: u32) -> Option<Self> {
163 match prim {
164 0 => Some(Self::None),
165 1 => Some(Self::Serif),
166 2 => Some(Self::SansSerif),
167 3 => Some(Self::Monospace),
168 4 => Some(Self::Cursive),
169 5 => Some(Self::Fantasy),
170 _ => None,
171 }
172 }
173
174 #[inline]
175 pub const fn into_primitive(self) -> u32 {
176 self as u32
177 }
178
179 #[deprecated = "Strict enums should not use `is_unknown`"]
180 #[inline]
181 pub fn is_unknown(&self) -> bool {
182 false
183 }
184}
185
186#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
198#[repr(u32)]
199pub enum GenericFontFamily {
200 Serif = 1,
203 SansSerif = 2,
206 Monospace = 3,
209 Cursive = 4,
212 Fantasy = 5,
215 SystemUi = 6,
222 Emoji = 7,
225 Math = 8,
229 Fangsong = 9,
234}
235
236impl GenericFontFamily {
237 #[inline]
238 pub fn from_primitive(prim: u32) -> Option<Self> {
239 match prim {
240 1 => Some(Self::Serif),
241 2 => Some(Self::SansSerif),
242 3 => Some(Self::Monospace),
243 4 => Some(Self::Cursive),
244 5 => Some(Self::Fantasy),
245 6 => Some(Self::SystemUi),
246 7 => Some(Self::Emoji),
247 8 => Some(Self::Math),
248 9 => Some(Self::Fangsong),
249 _ => None,
250 }
251 }
252
253 #[inline]
254 pub const fn into_primitive(self) -> u32 {
255 self as u32
256 }
257
258 #[deprecated = "Strict enums should not use `is_unknown`"]
259 #[inline]
260 pub fn is_unknown(&self) -> bool {
261 false
262 }
263}
264
265#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
267#[repr(u32)]
268pub enum Slant {
269 Upright = 1,
271 Italic = 2,
273 Oblique = 3,
276}
277
278impl Slant {
279 #[inline]
280 pub fn from_primitive(prim: u32) -> Option<Self> {
281 match prim {
282 1 => Some(Self::Upright),
283 2 => Some(Self::Italic),
284 3 => Some(Self::Oblique),
285 _ => None,
286 }
287 }
288
289 #[inline]
290 pub const fn into_primitive(self) -> u32 {
291 self as u32
292 }
293
294 #[deprecated = "Strict enums should not use `is_unknown`"]
295 #[inline]
296 pub fn is_unknown(&self) -> bool {
297 false
298 }
299}
300
301#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
305#[repr(u32)]
306pub enum Width {
307 UltraCondensed = 1,
309 ExtraCondensed = 2,
311 Condensed = 3,
313 SemiCondensed = 4,
315 Normal = 5,
317 SemiExpanded = 6,
319 Expanded = 7,
321 ExtraExpanded = 8,
323 UltraExpanded = 9,
325}
326
327impl Width {
328 #[inline]
329 pub fn from_primitive(prim: u32) -> Option<Self> {
330 match prim {
331 1 => Some(Self::UltraCondensed),
332 2 => Some(Self::ExtraCondensed),
333 3 => Some(Self::Condensed),
334 4 => Some(Self::SemiCondensed),
335 5 => Some(Self::Normal),
336 6 => Some(Self::SemiExpanded),
337 7 => Some(Self::Expanded),
338 8 => Some(Self::ExtraExpanded),
339 9 => Some(Self::UltraExpanded),
340 _ => None,
341 }
342 }
343
344 #[inline]
345 pub const fn into_primitive(self) -> u32 {
346 self as u32
347 }
348
349 #[deprecated = "Strict enums should not use `is_unknown`"]
350 #[inline]
351 pub fn is_unknown(&self) -> bool {
352 false
353 }
354}
355
356#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
360pub struct FamilyInfo {
361 pub name: String,
366 pub styles: Vec<Style>,
368}
369
370impl fidl::Persistable for FamilyInfo {}
371
372#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
376pub struct FamilyName {
377 pub name: String,
379}
380
381impl fidl::Persistable for FamilyName {}
382
383#[derive(Clone, Debug, PartialEq)]
384pub struct FontSetEventListenerOnFontSetUpdatedRequest {
385 pub event: FontSetUpdatedEvent,
386}
387
388impl fidl::Persistable for FontSetEventListenerOnFontSetUpdatedRequest {}
389
390#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
391pub struct ProviderGetFamilyInfoRequest {
392 pub family: String,
393}
394
395impl fidl::Persistable for ProviderGetFamilyInfoRequest {}
396
397#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
398pub struct ProviderGetFamilyInfoResponse {
399 pub family_info: Option<Box<FamilyInfo>>,
400}
401
402impl fidl::Persistable for ProviderGetFamilyInfoResponse {}
403
404#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
405pub struct ProviderGetFontFamilyInfoRequest {
406 pub family: FamilyName,
407}
408
409impl fidl::Persistable for ProviderGetFontFamilyInfoRequest {}
410
411#[derive(Clone, Debug, PartialEq)]
412pub struct ProviderGetFontFamilyInfoResponse {
413 pub family_info: FontFamilyInfo,
414}
415
416impl fidl::Persistable for ProviderGetFontFamilyInfoResponse {}
417
418#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
419pub struct ProviderGetFontRequest {
420 pub request: Request,
421}
422
423impl fidl::Persistable for ProviderGetFontRequest {}
424
425#[derive(Debug, PartialEq)]
426pub struct ProviderGetFontResponse {
427 pub response: Option<Box<Response>>,
428}
429
430impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect> for ProviderGetFontResponse {}
431
432#[derive(Clone, Debug, PartialEq)]
433pub struct ProviderGetTypefaceRequest {
434 pub request: TypefaceRequest,
435}
436
437impl fidl::Persistable for ProviderGetTypefaceRequest {}
438
439#[derive(Debug, PartialEq)]
440pub struct ProviderGetTypefaceResponse {
441 pub response: TypefaceResponse,
442}
443
444impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect>
445 for ProviderGetTypefaceResponse
446{
447}
448
449#[derive(Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
450pub struct ProviderRegisterFontSetEventListenerRequest {
451 pub listener: fidl::endpoints::ClientEnd<FontSetEventListenerMarker>,
452}
453
454impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect>
455 for ProviderRegisterFontSetEventListenerRequest
456{
457}
458
459#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
461pub struct Request {
462 pub family: Option<String>,
468 pub weight: u32,
470 pub width: u32,
474 pub slant: Slant,
475 pub language: Option<Vec<String>>,
478 pub character: u32,
483 pub fallback_group: FallbackGroup,
487 pub flags: u32,
488}
489
490impl fidl::Persistable for Request {}
491
492#[derive(Debug, PartialEq)]
493pub struct Response {
494 pub buffer: fidl_fuchsia_mem::Buffer,
495 pub buffer_id: u32,
499 pub font_index: u32,
502}
503
504impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect> for Response {}
505
506#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
509pub struct Style {
510 pub weight: u32,
511 pub width: u32,
512 pub slant: Slant,
513}
514
515impl fidl::Persistable for Style {}
516
517#[derive(Clone, Debug, Default, PartialEq)]
521pub struct FontFamilyInfo {
522 pub name: Option<FamilyName>,
526 pub styles: Option<Vec<Style2>>,
528 #[doc(hidden)]
529 pub __source_breaking: fidl::marker::SourceBreaking,
530}
531
532impl fidl::Persistable for FontFamilyInfo {}
533
534#[derive(Clone, Debug, Default, PartialEq)]
538pub struct FontSetUpdatedEvent {
539 #[doc(hidden)]
540 pub __source_breaking: fidl::marker::SourceBreaking,
541}
542
543impl fidl::Persistable for FontSetUpdatedEvent {}
544
545#[derive(Clone, Debug, Default, PartialEq)]
547pub struct Style2 {
548 pub slant: Option<Slant>,
550 pub weight: Option<u16>,
558 pub width: Option<Width>,
560 #[doc(hidden)]
561 pub __source_breaking: fidl::marker::SourceBreaking,
562}
563
564impl fidl::Persistable for Style2 {}
565
566#[derive(Clone, Debug, Default, PartialEq)]
568pub struct TypefaceQuery {
569 pub family: Option<FamilyName>,
575 pub style: Option<Style2>,
577 pub languages: Option<Vec<fidl_fuchsia_intl::LocaleId>>,
582 pub code_points: Option<Vec<u32>>,
587 pub fallback_family: Option<GenericFontFamily>,
597 pub postscript_name: Option<String>,
605 pub full_name: Option<String>,
610 #[doc(hidden)]
611 pub __source_breaking: fidl::marker::SourceBreaking,
612}
613
614impl fidl::Persistable for TypefaceQuery {}
615
616#[derive(Clone, Debug, Default, PartialEq)]
618pub struct TypefaceRequest {
619 pub query: Option<TypefaceQuery>,
621 pub flags: Option<TypefaceRequestFlags>,
623 pub cache_miss_policy: Option<CacheMissPolicy>,
633 #[doc(hidden)]
634 pub __source_breaking: fidl::marker::SourceBreaking,
635}
636
637impl fidl::Persistable for TypefaceRequest {}
638
639#[derive(Debug, Default, PartialEq)]
644pub struct TypefaceResponse {
645 pub buffer: Option<fidl_fuchsia_mem::Buffer>,
649 pub buffer_id: Option<u32>,
653 pub font_index: Option<u32>,
656 #[doc(hidden)]
657 pub __source_breaking: fidl::marker::SourceBreaking,
658}
659
660impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect> for TypefaceResponse {}
661
662#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
663pub struct FontSetEventListenerMarker;
664
665impl fidl::endpoints::ProtocolMarker for FontSetEventListenerMarker {
666 type Proxy = FontSetEventListenerProxy;
667 type RequestStream = FontSetEventListenerRequestStream;
668 #[cfg(target_os = "fuchsia")]
669 type SynchronousProxy = FontSetEventListenerSynchronousProxy;
670
671 const DEBUG_NAME: &'static str = "(anonymous) FontSetEventListener";
672}
673
674pub trait FontSetEventListenerProxyInterface: Send + Sync {
675 type OnFontSetUpdatedResponseFut: std::future::Future<Output = Result<(), fidl::Error>> + Send;
676 fn r#on_font_set_updated(
677 &self,
678 event: &FontSetUpdatedEvent,
679 ) -> Self::OnFontSetUpdatedResponseFut;
680}
681#[derive(Debug)]
682#[cfg(target_os = "fuchsia")]
683pub struct FontSetEventListenerSynchronousProxy {
684 client: fidl::client::sync::Client,
685}
686
687#[cfg(target_os = "fuchsia")]
688impl fidl::endpoints::SynchronousProxy for FontSetEventListenerSynchronousProxy {
689 type Proxy = FontSetEventListenerProxy;
690 type Protocol = FontSetEventListenerMarker;
691
692 fn from_channel(inner: fidl::Channel) -> Self {
693 Self::new(inner)
694 }
695
696 fn into_channel(self) -> fidl::Channel {
697 self.client.into_channel()
698 }
699
700 fn as_channel(&self) -> &fidl::Channel {
701 self.client.as_channel()
702 }
703}
704
705#[cfg(target_os = "fuchsia")]
706impl FontSetEventListenerSynchronousProxy {
707 pub fn new(channel: fidl::Channel) -> Self {
708 let protocol_name =
709 <FontSetEventListenerMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
710 Self { client: fidl::client::sync::Client::new(channel, protocol_name) }
711 }
712
713 pub fn into_channel(self) -> fidl::Channel {
714 self.client.into_channel()
715 }
716
717 pub fn wait_for_event(
720 &self,
721 deadline: zx::MonotonicInstant,
722 ) -> Result<FontSetEventListenerEvent, fidl::Error> {
723 FontSetEventListenerEvent::decode(self.client.wait_for_event(deadline)?)
724 }
725
726 pub fn r#on_font_set_updated(
729 &self,
730 mut event: &FontSetUpdatedEvent,
731 ___deadline: zx::MonotonicInstant,
732 ) -> Result<(), fidl::Error> {
733 let _response = self.client.send_query::<
734 FontSetEventListenerOnFontSetUpdatedRequest,
735 fidl::encoding::EmptyPayload,
736 >(
737 (event,),
738 0xf0cd2d121f881f9,
739 fidl::encoding::DynamicFlags::empty(),
740 ___deadline,
741 )?;
742 Ok(_response)
743 }
744}
745
746#[derive(Debug, Clone)]
747pub struct FontSetEventListenerProxy {
748 client: fidl::client::Client<fidl::encoding::DefaultFuchsiaResourceDialect>,
749}
750
751impl fidl::endpoints::Proxy for FontSetEventListenerProxy {
752 type Protocol = FontSetEventListenerMarker;
753
754 fn from_channel(inner: ::fidl::AsyncChannel) -> Self {
755 Self::new(inner)
756 }
757
758 fn into_channel(self) -> Result<::fidl::AsyncChannel, Self> {
759 self.client.into_channel().map_err(|client| Self { client })
760 }
761
762 fn as_channel(&self) -> &::fidl::AsyncChannel {
763 self.client.as_channel()
764 }
765}
766
767impl FontSetEventListenerProxy {
768 pub fn new(channel: ::fidl::AsyncChannel) -> Self {
770 let protocol_name =
771 <FontSetEventListenerMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
772 Self { client: fidl::client::Client::new(channel, protocol_name) }
773 }
774
775 pub fn take_event_stream(&self) -> FontSetEventListenerEventStream {
781 FontSetEventListenerEventStream { event_receiver: self.client.take_event_receiver() }
782 }
783
784 pub fn r#on_font_set_updated(
787 &self,
788 mut event: &FontSetUpdatedEvent,
789 ) -> fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect> {
790 FontSetEventListenerProxyInterface::r#on_font_set_updated(self, event)
791 }
792}
793
794impl FontSetEventListenerProxyInterface for FontSetEventListenerProxy {
795 type OnFontSetUpdatedResponseFut =
796 fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect>;
797 fn r#on_font_set_updated(
798 &self,
799 mut event: &FontSetUpdatedEvent,
800 ) -> Self::OnFontSetUpdatedResponseFut {
801 fn _decode(
802 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
803 ) -> Result<(), fidl::Error> {
804 let _response = fidl::client::decode_transaction_body::<
805 fidl::encoding::EmptyPayload,
806 fidl::encoding::DefaultFuchsiaResourceDialect,
807 0xf0cd2d121f881f9,
808 >(_buf?)?;
809 Ok(_response)
810 }
811 self.client.send_query_and_decode::<FontSetEventListenerOnFontSetUpdatedRequest, ()>(
812 (event,),
813 0xf0cd2d121f881f9,
814 fidl::encoding::DynamicFlags::empty(),
815 _decode,
816 )
817 }
818}
819
820pub struct FontSetEventListenerEventStream {
821 event_receiver: fidl::client::EventReceiver<fidl::encoding::DefaultFuchsiaResourceDialect>,
822}
823
824impl std::marker::Unpin for FontSetEventListenerEventStream {}
825
826impl futures::stream::FusedStream for FontSetEventListenerEventStream {
827 fn is_terminated(&self) -> bool {
828 self.event_receiver.is_terminated()
829 }
830}
831
832impl futures::Stream for FontSetEventListenerEventStream {
833 type Item = Result<FontSetEventListenerEvent, fidl::Error>;
834
835 fn poll_next(
836 mut self: std::pin::Pin<&mut Self>,
837 cx: &mut std::task::Context<'_>,
838 ) -> std::task::Poll<Option<Self::Item>> {
839 match futures::ready!(futures::stream::StreamExt::poll_next_unpin(
840 &mut self.event_receiver,
841 cx
842 )?) {
843 Some(buf) => std::task::Poll::Ready(Some(FontSetEventListenerEvent::decode(buf))),
844 None => std::task::Poll::Ready(None),
845 }
846 }
847}
848
849#[derive(Debug)]
850pub enum FontSetEventListenerEvent {}
851
852impl FontSetEventListenerEvent {
853 fn decode(
855 mut buf: <fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc,
856 ) -> Result<FontSetEventListenerEvent, fidl::Error> {
857 let (bytes, _handles) = buf.split_mut();
858 let (tx_header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
859 debug_assert_eq!(tx_header.tx_id, 0);
860 match tx_header.ordinal {
861 _ => Err(fidl::Error::UnknownOrdinal {
862 ordinal: tx_header.ordinal,
863 protocol_name:
864 <FontSetEventListenerMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
865 }),
866 }
867 }
868}
869
870pub struct FontSetEventListenerRequestStream {
872 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
873 is_terminated: bool,
874}
875
876impl std::marker::Unpin for FontSetEventListenerRequestStream {}
877
878impl futures::stream::FusedStream for FontSetEventListenerRequestStream {
879 fn is_terminated(&self) -> bool {
880 self.is_terminated
881 }
882}
883
884impl fidl::endpoints::RequestStream for FontSetEventListenerRequestStream {
885 type Protocol = FontSetEventListenerMarker;
886 type ControlHandle = FontSetEventListenerControlHandle;
887
888 fn from_channel(channel: ::fidl::AsyncChannel) -> Self {
889 Self { inner: std::sync::Arc::new(fidl::ServeInner::new(channel)), is_terminated: false }
890 }
891
892 fn control_handle(&self) -> Self::ControlHandle {
893 FontSetEventListenerControlHandle { inner: self.inner.clone() }
894 }
895
896 fn into_inner(
897 self,
898 ) -> (::std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>, bool)
899 {
900 (self.inner, self.is_terminated)
901 }
902
903 fn from_inner(
904 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
905 is_terminated: bool,
906 ) -> Self {
907 Self { inner, is_terminated }
908 }
909}
910
911impl futures::Stream for FontSetEventListenerRequestStream {
912 type Item = Result<FontSetEventListenerRequest, fidl::Error>;
913
914 fn poll_next(
915 mut self: std::pin::Pin<&mut Self>,
916 cx: &mut std::task::Context<'_>,
917 ) -> std::task::Poll<Option<Self::Item>> {
918 let this = &mut *self;
919 if this.inner.check_shutdown(cx) {
920 this.is_terminated = true;
921 return std::task::Poll::Ready(None);
922 }
923 if this.is_terminated {
924 panic!("polled FontSetEventListenerRequestStream after completion");
925 }
926 fidl::encoding::with_tls_decode_buf::<_, fidl::encoding::DefaultFuchsiaResourceDialect>(
927 |bytes, handles| {
928 match this.inner.channel().read_etc(cx, bytes, handles) {
929 std::task::Poll::Ready(Ok(())) => {}
930 std::task::Poll::Pending => return std::task::Poll::Pending,
931 std::task::Poll::Ready(Err(zx_status::Status::PEER_CLOSED)) => {
932 this.is_terminated = true;
933 return std::task::Poll::Ready(None);
934 }
935 std::task::Poll::Ready(Err(e)) => {
936 return std::task::Poll::Ready(Some(Err(fidl::Error::ServerRequestRead(
937 e.into(),
938 ))))
939 }
940 }
941
942 let (header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
944
945 std::task::Poll::Ready(Some(match header.ordinal {
946 0xf0cd2d121f881f9 => {
947 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
948 let mut req = fidl::new_empty!(FontSetEventListenerOnFontSetUpdatedRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
949 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<FontSetEventListenerOnFontSetUpdatedRequest>(&header, _body_bytes, handles, &mut req)?;
950 let control_handle = FontSetEventListenerControlHandle {
951 inner: this.inner.clone(),
952 };
953 Ok(FontSetEventListenerRequest::OnFontSetUpdated {event: req.event,
954
955 responder: FontSetEventListenerOnFontSetUpdatedResponder {
956 control_handle: std::mem::ManuallyDrop::new(control_handle),
957 tx_id: header.tx_id,
958 },
959 })
960 }
961 _ => Err(fidl::Error::UnknownOrdinal {
962 ordinal: header.ordinal,
963 protocol_name: <FontSetEventListenerMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
964 }),
965 }))
966 },
967 )
968 }
969}
970
971#[derive(Debug)]
975pub enum FontSetEventListenerRequest {
976 OnFontSetUpdated {
979 event: FontSetUpdatedEvent,
980 responder: FontSetEventListenerOnFontSetUpdatedResponder,
981 },
982}
983
984impl FontSetEventListenerRequest {
985 #[allow(irrefutable_let_patterns)]
986 pub fn into_on_font_set_updated(
987 self,
988 ) -> Option<(FontSetUpdatedEvent, FontSetEventListenerOnFontSetUpdatedResponder)> {
989 if let FontSetEventListenerRequest::OnFontSetUpdated { event, responder } = self {
990 Some((event, responder))
991 } else {
992 None
993 }
994 }
995
996 pub fn method_name(&self) -> &'static str {
998 match *self {
999 FontSetEventListenerRequest::OnFontSetUpdated { .. } => "on_font_set_updated",
1000 }
1001 }
1002}
1003
1004#[derive(Debug, Clone)]
1005pub struct FontSetEventListenerControlHandle {
1006 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
1007}
1008
1009impl fidl::endpoints::ControlHandle for FontSetEventListenerControlHandle {
1010 fn shutdown(&self) {
1011 self.inner.shutdown()
1012 }
1013 fn shutdown_with_epitaph(&self, status: zx_status::Status) {
1014 self.inner.shutdown_with_epitaph(status)
1015 }
1016
1017 fn is_closed(&self) -> bool {
1018 self.inner.channel().is_closed()
1019 }
1020 fn on_closed(&self) -> fidl::OnSignalsRef<'_> {
1021 self.inner.channel().on_closed()
1022 }
1023
1024 #[cfg(target_os = "fuchsia")]
1025 fn signal_peer(
1026 &self,
1027 clear_mask: zx::Signals,
1028 set_mask: zx::Signals,
1029 ) -> Result<(), zx_status::Status> {
1030 use fidl::Peered;
1031 self.inner.channel().signal_peer(clear_mask, set_mask)
1032 }
1033}
1034
1035impl FontSetEventListenerControlHandle {}
1036
1037#[must_use = "FIDL methods require a response to be sent"]
1038#[derive(Debug)]
1039pub struct FontSetEventListenerOnFontSetUpdatedResponder {
1040 control_handle: std::mem::ManuallyDrop<FontSetEventListenerControlHandle>,
1041 tx_id: u32,
1042}
1043
1044impl std::ops::Drop for FontSetEventListenerOnFontSetUpdatedResponder {
1048 fn drop(&mut self) {
1049 self.control_handle.shutdown();
1050 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
1052 }
1053}
1054
1055impl fidl::endpoints::Responder for FontSetEventListenerOnFontSetUpdatedResponder {
1056 type ControlHandle = FontSetEventListenerControlHandle;
1057
1058 fn control_handle(&self) -> &FontSetEventListenerControlHandle {
1059 &self.control_handle
1060 }
1061
1062 fn drop_without_shutdown(mut self) {
1063 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
1065 std::mem::forget(self);
1067 }
1068}
1069
1070impl FontSetEventListenerOnFontSetUpdatedResponder {
1071 pub fn send(self) -> Result<(), fidl::Error> {
1075 let _result = self.send_raw();
1076 if _result.is_err() {
1077 self.control_handle.shutdown();
1078 }
1079 self.drop_without_shutdown();
1080 _result
1081 }
1082
1083 pub fn send_no_shutdown_on_err(self) -> Result<(), fidl::Error> {
1085 let _result = self.send_raw();
1086 self.drop_without_shutdown();
1087 _result
1088 }
1089
1090 fn send_raw(&self) -> Result<(), fidl::Error> {
1091 self.control_handle.inner.send::<fidl::encoding::EmptyPayload>(
1092 (),
1093 self.tx_id,
1094 0xf0cd2d121f881f9,
1095 fidl::encoding::DynamicFlags::empty(),
1096 )
1097 }
1098}
1099
1100#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
1101pub struct ProviderMarker;
1102
1103impl fidl::endpoints::ProtocolMarker for ProviderMarker {
1104 type Proxy = ProviderProxy;
1105 type RequestStream = ProviderRequestStream;
1106 #[cfg(target_os = "fuchsia")]
1107 type SynchronousProxy = ProviderSynchronousProxy;
1108
1109 const DEBUG_NAME: &'static str = "fuchsia.fonts.Provider";
1110}
1111impl fidl::endpoints::DiscoverableProtocolMarker for ProviderMarker {}
1112
1113pub trait ProviderProxyInterface: Send + Sync {
1114 type GetFontResponseFut: std::future::Future<Output = Result<Option<Box<Response>>, fidl::Error>>
1115 + Send;
1116 fn r#get_font(&self, request: &Request) -> Self::GetFontResponseFut;
1117 type GetFamilyInfoResponseFut: std::future::Future<Output = Result<Option<Box<FamilyInfo>>, fidl::Error>>
1118 + Send;
1119 fn r#get_family_info(&self, family: &str) -> Self::GetFamilyInfoResponseFut;
1120 type GetTypefaceResponseFut: std::future::Future<Output = Result<TypefaceResponse, fidl::Error>>
1121 + Send;
1122 fn r#get_typeface(&self, request: &TypefaceRequest) -> Self::GetTypefaceResponseFut;
1123 type GetFontFamilyInfoResponseFut: std::future::Future<Output = Result<FontFamilyInfo, fidl::Error>>
1124 + Send;
1125 fn r#get_font_family_info(&self, family: &FamilyName) -> Self::GetFontFamilyInfoResponseFut;
1126 type RegisterFontSetEventListenerResponseFut: std::future::Future<Output = Result<(), fidl::Error>>
1127 + Send;
1128 fn r#register_font_set_event_listener(
1129 &self,
1130 listener: fidl::endpoints::ClientEnd<FontSetEventListenerMarker>,
1131 ) -> Self::RegisterFontSetEventListenerResponseFut;
1132}
1133#[derive(Debug)]
1134#[cfg(target_os = "fuchsia")]
1135pub struct ProviderSynchronousProxy {
1136 client: fidl::client::sync::Client,
1137}
1138
1139#[cfg(target_os = "fuchsia")]
1140impl fidl::endpoints::SynchronousProxy for ProviderSynchronousProxy {
1141 type Proxy = ProviderProxy;
1142 type Protocol = ProviderMarker;
1143
1144 fn from_channel(inner: fidl::Channel) -> Self {
1145 Self::new(inner)
1146 }
1147
1148 fn into_channel(self) -> fidl::Channel {
1149 self.client.into_channel()
1150 }
1151
1152 fn as_channel(&self) -> &fidl::Channel {
1153 self.client.as_channel()
1154 }
1155}
1156
1157#[cfg(target_os = "fuchsia")]
1158impl ProviderSynchronousProxy {
1159 pub fn new(channel: fidl::Channel) -> Self {
1160 let protocol_name = <ProviderMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
1161 Self { client: fidl::client::sync::Client::new(channel, protocol_name) }
1162 }
1163
1164 pub fn into_channel(self) -> fidl::Channel {
1165 self.client.into_channel()
1166 }
1167
1168 pub fn wait_for_event(
1171 &self,
1172 deadline: zx::MonotonicInstant,
1173 ) -> Result<ProviderEvent, fidl::Error> {
1174 ProviderEvent::decode(self.client.wait_for_event(deadline)?)
1175 }
1176
1177 pub fn r#get_font(
1181 &self,
1182 mut request: &Request,
1183 ___deadline: zx::MonotonicInstant,
1184 ) -> Result<Option<Box<Response>>, fidl::Error> {
1185 let _response = self.client.send_query::<ProviderGetFontRequest, ProviderGetFontResponse>(
1186 (request,),
1187 0x6daeaad83184076b,
1188 fidl::encoding::DynamicFlags::empty(),
1189 ___deadline,
1190 )?;
1191 Ok(_response.response)
1192 }
1193
1194 pub fn r#get_family_info(
1201 &self,
1202 mut family: &str,
1203 ___deadline: zx::MonotonicInstant,
1204 ) -> Result<Option<Box<FamilyInfo>>, fidl::Error> {
1205 let _response =
1206 self.client.send_query::<ProviderGetFamilyInfoRequest, ProviderGetFamilyInfoResponse>(
1207 (family,),
1208 0x27aba13280090db3,
1209 fidl::encoding::DynamicFlags::empty(),
1210 ___deadline,
1211 )?;
1212 Ok(_response.family_info)
1213 }
1214
1215 pub fn r#get_typeface(
1219 &self,
1220 mut request: &TypefaceRequest,
1221 ___deadline: zx::MonotonicInstant,
1222 ) -> Result<TypefaceResponse, fidl::Error> {
1223 let _response =
1224 self.client.send_query::<ProviderGetTypefaceRequest, ProviderGetTypefaceResponse>(
1225 (request,),
1226 0x5481d24f1a4b0671,
1227 fidl::encoding::DynamicFlags::empty(),
1228 ___deadline,
1229 )?;
1230 Ok(_response.response)
1231 }
1232
1233 pub fn r#get_font_family_info(
1240 &self,
1241 mut family: &FamilyName,
1242 ___deadline: zx::MonotonicInstant,
1243 ) -> Result<FontFamilyInfo, fidl::Error> {
1244 let _response = self
1245 .client
1246 .send_query::<ProviderGetFontFamilyInfoRequest, ProviderGetFontFamilyInfoResponse>(
1247 (family,),
1248 0x7520ee83bf25c9ca,
1249 fidl::encoding::DynamicFlags::empty(),
1250 ___deadline,
1251 )?;
1252 Ok(_response.family_info)
1253 }
1254
1255 pub fn r#register_font_set_event_listener(
1260 &self,
1261 mut listener: fidl::endpoints::ClientEnd<FontSetEventListenerMarker>,
1262 ___deadline: zx::MonotonicInstant,
1263 ) -> Result<(), fidl::Error> {
1264 let _response = self.client.send_query::<
1265 ProviderRegisterFontSetEventListenerRequest,
1266 fidl::encoding::EmptyPayload,
1267 >(
1268 (listener,),
1269 0x196898fd17cb694c,
1270 fidl::encoding::DynamicFlags::empty(),
1271 ___deadline,
1272 )?;
1273 Ok(_response)
1274 }
1275}
1276
1277#[derive(Debug, Clone)]
1278pub struct ProviderProxy {
1279 client: fidl::client::Client<fidl::encoding::DefaultFuchsiaResourceDialect>,
1280}
1281
1282impl fidl::endpoints::Proxy for ProviderProxy {
1283 type Protocol = ProviderMarker;
1284
1285 fn from_channel(inner: ::fidl::AsyncChannel) -> Self {
1286 Self::new(inner)
1287 }
1288
1289 fn into_channel(self) -> Result<::fidl::AsyncChannel, Self> {
1290 self.client.into_channel().map_err(|client| Self { client })
1291 }
1292
1293 fn as_channel(&self) -> &::fidl::AsyncChannel {
1294 self.client.as_channel()
1295 }
1296}
1297
1298impl ProviderProxy {
1299 pub fn new(channel: ::fidl::AsyncChannel) -> Self {
1301 let protocol_name = <ProviderMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
1302 Self { client: fidl::client::Client::new(channel, protocol_name) }
1303 }
1304
1305 pub fn take_event_stream(&self) -> ProviderEventStream {
1311 ProviderEventStream { event_receiver: self.client.take_event_receiver() }
1312 }
1313
1314 pub fn r#get_font(
1318 &self,
1319 mut request: &Request,
1320 ) -> fidl::client::QueryResponseFut<
1321 Option<Box<Response>>,
1322 fidl::encoding::DefaultFuchsiaResourceDialect,
1323 > {
1324 ProviderProxyInterface::r#get_font(self, request)
1325 }
1326
1327 pub fn r#get_family_info(
1334 &self,
1335 mut family: &str,
1336 ) -> fidl::client::QueryResponseFut<
1337 Option<Box<FamilyInfo>>,
1338 fidl::encoding::DefaultFuchsiaResourceDialect,
1339 > {
1340 ProviderProxyInterface::r#get_family_info(self, family)
1341 }
1342
1343 pub fn r#get_typeface(
1347 &self,
1348 mut request: &TypefaceRequest,
1349 ) -> fidl::client::QueryResponseFut<
1350 TypefaceResponse,
1351 fidl::encoding::DefaultFuchsiaResourceDialect,
1352 > {
1353 ProviderProxyInterface::r#get_typeface(self, request)
1354 }
1355
1356 pub fn r#get_font_family_info(
1363 &self,
1364 mut family: &FamilyName,
1365 ) -> fidl::client::QueryResponseFut<FontFamilyInfo, fidl::encoding::DefaultFuchsiaResourceDialect>
1366 {
1367 ProviderProxyInterface::r#get_font_family_info(self, family)
1368 }
1369
1370 pub fn r#register_font_set_event_listener(
1375 &self,
1376 mut listener: fidl::endpoints::ClientEnd<FontSetEventListenerMarker>,
1377 ) -> fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect> {
1378 ProviderProxyInterface::r#register_font_set_event_listener(self, listener)
1379 }
1380}
1381
1382impl ProviderProxyInterface for ProviderProxy {
1383 type GetFontResponseFut = fidl::client::QueryResponseFut<
1384 Option<Box<Response>>,
1385 fidl::encoding::DefaultFuchsiaResourceDialect,
1386 >;
1387 fn r#get_font(&self, mut request: &Request) -> Self::GetFontResponseFut {
1388 fn _decode(
1389 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
1390 ) -> Result<Option<Box<Response>>, fidl::Error> {
1391 let _response = fidl::client::decode_transaction_body::<
1392 ProviderGetFontResponse,
1393 fidl::encoding::DefaultFuchsiaResourceDialect,
1394 0x6daeaad83184076b,
1395 >(_buf?)?;
1396 Ok(_response.response)
1397 }
1398 self.client.send_query_and_decode::<ProviderGetFontRequest, Option<Box<Response>>>(
1399 (request,),
1400 0x6daeaad83184076b,
1401 fidl::encoding::DynamicFlags::empty(),
1402 _decode,
1403 )
1404 }
1405
1406 type GetFamilyInfoResponseFut = fidl::client::QueryResponseFut<
1407 Option<Box<FamilyInfo>>,
1408 fidl::encoding::DefaultFuchsiaResourceDialect,
1409 >;
1410 fn r#get_family_info(&self, mut family: &str) -> Self::GetFamilyInfoResponseFut {
1411 fn _decode(
1412 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
1413 ) -> Result<Option<Box<FamilyInfo>>, fidl::Error> {
1414 let _response = fidl::client::decode_transaction_body::<
1415 ProviderGetFamilyInfoResponse,
1416 fidl::encoding::DefaultFuchsiaResourceDialect,
1417 0x27aba13280090db3,
1418 >(_buf?)?;
1419 Ok(_response.family_info)
1420 }
1421 self.client.send_query_and_decode::<ProviderGetFamilyInfoRequest, Option<Box<FamilyInfo>>>(
1422 (family,),
1423 0x27aba13280090db3,
1424 fidl::encoding::DynamicFlags::empty(),
1425 _decode,
1426 )
1427 }
1428
1429 type GetTypefaceResponseFut = fidl::client::QueryResponseFut<
1430 TypefaceResponse,
1431 fidl::encoding::DefaultFuchsiaResourceDialect,
1432 >;
1433 fn r#get_typeface(&self, mut request: &TypefaceRequest) -> Self::GetTypefaceResponseFut {
1434 fn _decode(
1435 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
1436 ) -> Result<TypefaceResponse, fidl::Error> {
1437 let _response = fidl::client::decode_transaction_body::<
1438 ProviderGetTypefaceResponse,
1439 fidl::encoding::DefaultFuchsiaResourceDialect,
1440 0x5481d24f1a4b0671,
1441 >(_buf?)?;
1442 Ok(_response.response)
1443 }
1444 self.client.send_query_and_decode::<ProviderGetTypefaceRequest, TypefaceResponse>(
1445 (request,),
1446 0x5481d24f1a4b0671,
1447 fidl::encoding::DynamicFlags::empty(),
1448 _decode,
1449 )
1450 }
1451
1452 type GetFontFamilyInfoResponseFut = fidl::client::QueryResponseFut<
1453 FontFamilyInfo,
1454 fidl::encoding::DefaultFuchsiaResourceDialect,
1455 >;
1456 fn r#get_font_family_info(
1457 &self,
1458 mut family: &FamilyName,
1459 ) -> Self::GetFontFamilyInfoResponseFut {
1460 fn _decode(
1461 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
1462 ) -> Result<FontFamilyInfo, fidl::Error> {
1463 let _response = fidl::client::decode_transaction_body::<
1464 ProviderGetFontFamilyInfoResponse,
1465 fidl::encoding::DefaultFuchsiaResourceDialect,
1466 0x7520ee83bf25c9ca,
1467 >(_buf?)?;
1468 Ok(_response.family_info)
1469 }
1470 self.client.send_query_and_decode::<ProviderGetFontFamilyInfoRequest, FontFamilyInfo>(
1471 (family,),
1472 0x7520ee83bf25c9ca,
1473 fidl::encoding::DynamicFlags::empty(),
1474 _decode,
1475 )
1476 }
1477
1478 type RegisterFontSetEventListenerResponseFut =
1479 fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect>;
1480 fn r#register_font_set_event_listener(
1481 &self,
1482 mut listener: fidl::endpoints::ClientEnd<FontSetEventListenerMarker>,
1483 ) -> Self::RegisterFontSetEventListenerResponseFut {
1484 fn _decode(
1485 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
1486 ) -> Result<(), fidl::Error> {
1487 let _response = fidl::client::decode_transaction_body::<
1488 fidl::encoding::EmptyPayload,
1489 fidl::encoding::DefaultFuchsiaResourceDialect,
1490 0x196898fd17cb694c,
1491 >(_buf?)?;
1492 Ok(_response)
1493 }
1494 self.client.send_query_and_decode::<ProviderRegisterFontSetEventListenerRequest, ()>(
1495 (listener,),
1496 0x196898fd17cb694c,
1497 fidl::encoding::DynamicFlags::empty(),
1498 _decode,
1499 )
1500 }
1501}
1502
1503pub struct ProviderEventStream {
1504 event_receiver: fidl::client::EventReceiver<fidl::encoding::DefaultFuchsiaResourceDialect>,
1505}
1506
1507impl std::marker::Unpin for ProviderEventStream {}
1508
1509impl futures::stream::FusedStream for ProviderEventStream {
1510 fn is_terminated(&self) -> bool {
1511 self.event_receiver.is_terminated()
1512 }
1513}
1514
1515impl futures::Stream for ProviderEventStream {
1516 type Item = Result<ProviderEvent, fidl::Error>;
1517
1518 fn poll_next(
1519 mut self: std::pin::Pin<&mut Self>,
1520 cx: &mut std::task::Context<'_>,
1521 ) -> std::task::Poll<Option<Self::Item>> {
1522 match futures::ready!(futures::stream::StreamExt::poll_next_unpin(
1523 &mut self.event_receiver,
1524 cx
1525 )?) {
1526 Some(buf) => std::task::Poll::Ready(Some(ProviderEvent::decode(buf))),
1527 None => std::task::Poll::Ready(None),
1528 }
1529 }
1530}
1531
1532#[derive(Debug)]
1533pub enum ProviderEvent {}
1534
1535impl ProviderEvent {
1536 fn decode(
1538 mut buf: <fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc,
1539 ) -> Result<ProviderEvent, fidl::Error> {
1540 let (bytes, _handles) = buf.split_mut();
1541 let (tx_header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
1542 debug_assert_eq!(tx_header.tx_id, 0);
1543 match tx_header.ordinal {
1544 _ => Err(fidl::Error::UnknownOrdinal {
1545 ordinal: tx_header.ordinal,
1546 protocol_name: <ProviderMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
1547 }),
1548 }
1549 }
1550}
1551
1552pub struct ProviderRequestStream {
1554 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
1555 is_terminated: bool,
1556}
1557
1558impl std::marker::Unpin for ProviderRequestStream {}
1559
1560impl futures::stream::FusedStream for ProviderRequestStream {
1561 fn is_terminated(&self) -> bool {
1562 self.is_terminated
1563 }
1564}
1565
1566impl fidl::endpoints::RequestStream for ProviderRequestStream {
1567 type Protocol = ProviderMarker;
1568 type ControlHandle = ProviderControlHandle;
1569
1570 fn from_channel(channel: ::fidl::AsyncChannel) -> Self {
1571 Self { inner: std::sync::Arc::new(fidl::ServeInner::new(channel)), is_terminated: false }
1572 }
1573
1574 fn control_handle(&self) -> Self::ControlHandle {
1575 ProviderControlHandle { inner: self.inner.clone() }
1576 }
1577
1578 fn into_inner(
1579 self,
1580 ) -> (::std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>, bool)
1581 {
1582 (self.inner, self.is_terminated)
1583 }
1584
1585 fn from_inner(
1586 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
1587 is_terminated: bool,
1588 ) -> Self {
1589 Self { inner, is_terminated }
1590 }
1591}
1592
1593impl futures::Stream for ProviderRequestStream {
1594 type Item = Result<ProviderRequest, fidl::Error>;
1595
1596 fn poll_next(
1597 mut self: std::pin::Pin<&mut Self>,
1598 cx: &mut std::task::Context<'_>,
1599 ) -> std::task::Poll<Option<Self::Item>> {
1600 let this = &mut *self;
1601 if this.inner.check_shutdown(cx) {
1602 this.is_terminated = true;
1603 return std::task::Poll::Ready(None);
1604 }
1605 if this.is_terminated {
1606 panic!("polled ProviderRequestStream after completion");
1607 }
1608 fidl::encoding::with_tls_decode_buf::<_, fidl::encoding::DefaultFuchsiaResourceDialect>(
1609 |bytes, handles| {
1610 match this.inner.channel().read_etc(cx, bytes, handles) {
1611 std::task::Poll::Ready(Ok(())) => {}
1612 std::task::Poll::Pending => return std::task::Poll::Pending,
1613 std::task::Poll::Ready(Err(zx_status::Status::PEER_CLOSED)) => {
1614 this.is_terminated = true;
1615 return std::task::Poll::Ready(None);
1616 }
1617 std::task::Poll::Ready(Err(e)) => {
1618 return std::task::Poll::Ready(Some(Err(fidl::Error::ServerRequestRead(
1619 e.into(),
1620 ))))
1621 }
1622 }
1623
1624 let (header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
1626
1627 std::task::Poll::Ready(Some(match header.ordinal {
1628 0x6daeaad83184076b => {
1629 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
1630 let mut req = fidl::new_empty!(
1631 ProviderGetFontRequest,
1632 fidl::encoding::DefaultFuchsiaResourceDialect
1633 );
1634 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<ProviderGetFontRequest>(&header, _body_bytes, handles, &mut req)?;
1635 let control_handle = ProviderControlHandle { inner: this.inner.clone() };
1636 Ok(ProviderRequest::GetFont {
1637 request: req.request,
1638
1639 responder: ProviderGetFontResponder {
1640 control_handle: std::mem::ManuallyDrop::new(control_handle),
1641 tx_id: header.tx_id,
1642 },
1643 })
1644 }
1645 0x27aba13280090db3 => {
1646 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
1647 let mut req = fidl::new_empty!(
1648 ProviderGetFamilyInfoRequest,
1649 fidl::encoding::DefaultFuchsiaResourceDialect
1650 );
1651 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<ProviderGetFamilyInfoRequest>(&header, _body_bytes, handles, &mut req)?;
1652 let control_handle = ProviderControlHandle { inner: this.inner.clone() };
1653 Ok(ProviderRequest::GetFamilyInfo {
1654 family: req.family,
1655
1656 responder: ProviderGetFamilyInfoResponder {
1657 control_handle: std::mem::ManuallyDrop::new(control_handle),
1658 tx_id: header.tx_id,
1659 },
1660 })
1661 }
1662 0x5481d24f1a4b0671 => {
1663 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
1664 let mut req = fidl::new_empty!(
1665 ProviderGetTypefaceRequest,
1666 fidl::encoding::DefaultFuchsiaResourceDialect
1667 );
1668 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<ProviderGetTypefaceRequest>(&header, _body_bytes, handles, &mut req)?;
1669 let control_handle = ProviderControlHandle { inner: this.inner.clone() };
1670 Ok(ProviderRequest::GetTypeface {
1671 request: req.request,
1672
1673 responder: ProviderGetTypefaceResponder {
1674 control_handle: std::mem::ManuallyDrop::new(control_handle),
1675 tx_id: header.tx_id,
1676 },
1677 })
1678 }
1679 0x7520ee83bf25c9ca => {
1680 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
1681 let mut req = fidl::new_empty!(
1682 ProviderGetFontFamilyInfoRequest,
1683 fidl::encoding::DefaultFuchsiaResourceDialect
1684 );
1685 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<ProviderGetFontFamilyInfoRequest>(&header, _body_bytes, handles, &mut req)?;
1686 let control_handle = ProviderControlHandle { inner: this.inner.clone() };
1687 Ok(ProviderRequest::GetFontFamilyInfo {
1688 family: req.family,
1689
1690 responder: ProviderGetFontFamilyInfoResponder {
1691 control_handle: std::mem::ManuallyDrop::new(control_handle),
1692 tx_id: header.tx_id,
1693 },
1694 })
1695 }
1696 0x196898fd17cb694c => {
1697 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
1698 let mut req = fidl::new_empty!(
1699 ProviderRegisterFontSetEventListenerRequest,
1700 fidl::encoding::DefaultFuchsiaResourceDialect
1701 );
1702 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<ProviderRegisterFontSetEventListenerRequest>(&header, _body_bytes, handles, &mut req)?;
1703 let control_handle = ProviderControlHandle { inner: this.inner.clone() };
1704 Ok(ProviderRequest::RegisterFontSetEventListener {
1705 listener: req.listener,
1706
1707 responder: ProviderRegisterFontSetEventListenerResponder {
1708 control_handle: std::mem::ManuallyDrop::new(control_handle),
1709 tx_id: header.tx_id,
1710 },
1711 })
1712 }
1713 _ => Err(fidl::Error::UnknownOrdinal {
1714 ordinal: header.ordinal,
1715 protocol_name:
1716 <ProviderMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
1717 }),
1718 }))
1719 },
1720 )
1721 }
1722}
1723
1724#[derive(Debug)]
1728pub enum ProviderRequest {
1729 GetFont { request: Request, responder: ProviderGetFontResponder },
1733 GetFamilyInfo { family: String, responder: ProviderGetFamilyInfoResponder },
1740 GetTypeface { request: TypefaceRequest, responder: ProviderGetTypefaceResponder },
1744 GetFontFamilyInfo { family: FamilyName, responder: ProviderGetFontFamilyInfoResponder },
1751 RegisterFontSetEventListener {
1756 listener: fidl::endpoints::ClientEnd<FontSetEventListenerMarker>,
1757 responder: ProviderRegisterFontSetEventListenerResponder,
1758 },
1759}
1760
1761impl ProviderRequest {
1762 #[allow(irrefutable_let_patterns)]
1763 pub fn into_get_font(self) -> Option<(Request, ProviderGetFontResponder)> {
1764 if let ProviderRequest::GetFont { request, responder } = self {
1765 Some((request, responder))
1766 } else {
1767 None
1768 }
1769 }
1770
1771 #[allow(irrefutable_let_patterns)]
1772 pub fn into_get_family_info(self) -> Option<(String, ProviderGetFamilyInfoResponder)> {
1773 if let ProviderRequest::GetFamilyInfo { family, responder } = self {
1774 Some((family, responder))
1775 } else {
1776 None
1777 }
1778 }
1779
1780 #[allow(irrefutable_let_patterns)]
1781 pub fn into_get_typeface(self) -> Option<(TypefaceRequest, ProviderGetTypefaceResponder)> {
1782 if let ProviderRequest::GetTypeface { request, responder } = self {
1783 Some((request, responder))
1784 } else {
1785 None
1786 }
1787 }
1788
1789 #[allow(irrefutable_let_patterns)]
1790 pub fn into_get_font_family_info(
1791 self,
1792 ) -> Option<(FamilyName, ProviderGetFontFamilyInfoResponder)> {
1793 if let ProviderRequest::GetFontFamilyInfo { family, responder } = self {
1794 Some((family, responder))
1795 } else {
1796 None
1797 }
1798 }
1799
1800 #[allow(irrefutable_let_patterns)]
1801 pub fn into_register_font_set_event_listener(
1802 self,
1803 ) -> Option<(
1804 fidl::endpoints::ClientEnd<FontSetEventListenerMarker>,
1805 ProviderRegisterFontSetEventListenerResponder,
1806 )> {
1807 if let ProviderRequest::RegisterFontSetEventListener { listener, responder } = self {
1808 Some((listener, responder))
1809 } else {
1810 None
1811 }
1812 }
1813
1814 pub fn method_name(&self) -> &'static str {
1816 match *self {
1817 ProviderRequest::GetFont { .. } => "get_font",
1818 ProviderRequest::GetFamilyInfo { .. } => "get_family_info",
1819 ProviderRequest::GetTypeface { .. } => "get_typeface",
1820 ProviderRequest::GetFontFamilyInfo { .. } => "get_font_family_info",
1821 ProviderRequest::RegisterFontSetEventListener { .. } => {
1822 "register_font_set_event_listener"
1823 }
1824 }
1825 }
1826}
1827
1828#[derive(Debug, Clone)]
1829pub struct ProviderControlHandle {
1830 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
1831}
1832
1833impl fidl::endpoints::ControlHandle for ProviderControlHandle {
1834 fn shutdown(&self) {
1835 self.inner.shutdown()
1836 }
1837 fn shutdown_with_epitaph(&self, status: zx_status::Status) {
1838 self.inner.shutdown_with_epitaph(status)
1839 }
1840
1841 fn is_closed(&self) -> bool {
1842 self.inner.channel().is_closed()
1843 }
1844 fn on_closed(&self) -> fidl::OnSignalsRef<'_> {
1845 self.inner.channel().on_closed()
1846 }
1847
1848 #[cfg(target_os = "fuchsia")]
1849 fn signal_peer(
1850 &self,
1851 clear_mask: zx::Signals,
1852 set_mask: zx::Signals,
1853 ) -> Result<(), zx_status::Status> {
1854 use fidl::Peered;
1855 self.inner.channel().signal_peer(clear_mask, set_mask)
1856 }
1857}
1858
1859impl ProviderControlHandle {}
1860
1861#[must_use = "FIDL methods require a response to be sent"]
1862#[derive(Debug)]
1863pub struct ProviderGetFontResponder {
1864 control_handle: std::mem::ManuallyDrop<ProviderControlHandle>,
1865 tx_id: u32,
1866}
1867
1868impl std::ops::Drop for ProviderGetFontResponder {
1872 fn drop(&mut self) {
1873 self.control_handle.shutdown();
1874 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
1876 }
1877}
1878
1879impl fidl::endpoints::Responder for ProviderGetFontResponder {
1880 type ControlHandle = ProviderControlHandle;
1881
1882 fn control_handle(&self) -> &ProviderControlHandle {
1883 &self.control_handle
1884 }
1885
1886 fn drop_without_shutdown(mut self) {
1887 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
1889 std::mem::forget(self);
1891 }
1892}
1893
1894impl ProviderGetFontResponder {
1895 pub fn send(self, mut response: Option<Response>) -> Result<(), fidl::Error> {
1899 let _result = self.send_raw(response);
1900 if _result.is_err() {
1901 self.control_handle.shutdown();
1902 }
1903 self.drop_without_shutdown();
1904 _result
1905 }
1906
1907 pub fn send_no_shutdown_on_err(
1909 self,
1910 mut response: Option<Response>,
1911 ) -> Result<(), fidl::Error> {
1912 let _result = self.send_raw(response);
1913 self.drop_without_shutdown();
1914 _result
1915 }
1916
1917 fn send_raw(&self, mut response: Option<Response>) -> Result<(), fidl::Error> {
1918 self.control_handle.inner.send::<ProviderGetFontResponse>(
1919 (response.as_mut(),),
1920 self.tx_id,
1921 0x6daeaad83184076b,
1922 fidl::encoding::DynamicFlags::empty(),
1923 )
1924 }
1925}
1926
1927#[must_use = "FIDL methods require a response to be sent"]
1928#[derive(Debug)]
1929pub struct ProviderGetFamilyInfoResponder {
1930 control_handle: std::mem::ManuallyDrop<ProviderControlHandle>,
1931 tx_id: u32,
1932}
1933
1934impl std::ops::Drop for ProviderGetFamilyInfoResponder {
1938 fn drop(&mut self) {
1939 self.control_handle.shutdown();
1940 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
1942 }
1943}
1944
1945impl fidl::endpoints::Responder for ProviderGetFamilyInfoResponder {
1946 type ControlHandle = ProviderControlHandle;
1947
1948 fn control_handle(&self) -> &ProviderControlHandle {
1949 &self.control_handle
1950 }
1951
1952 fn drop_without_shutdown(mut self) {
1953 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
1955 std::mem::forget(self);
1957 }
1958}
1959
1960impl ProviderGetFamilyInfoResponder {
1961 pub fn send(self, mut family_info: Option<&FamilyInfo>) -> Result<(), fidl::Error> {
1965 let _result = self.send_raw(family_info);
1966 if _result.is_err() {
1967 self.control_handle.shutdown();
1968 }
1969 self.drop_without_shutdown();
1970 _result
1971 }
1972
1973 pub fn send_no_shutdown_on_err(
1975 self,
1976 mut family_info: Option<&FamilyInfo>,
1977 ) -> Result<(), fidl::Error> {
1978 let _result = self.send_raw(family_info);
1979 self.drop_without_shutdown();
1980 _result
1981 }
1982
1983 fn send_raw(&self, mut family_info: Option<&FamilyInfo>) -> Result<(), fidl::Error> {
1984 self.control_handle.inner.send::<ProviderGetFamilyInfoResponse>(
1985 (family_info,),
1986 self.tx_id,
1987 0x27aba13280090db3,
1988 fidl::encoding::DynamicFlags::empty(),
1989 )
1990 }
1991}
1992
1993#[must_use = "FIDL methods require a response to be sent"]
1994#[derive(Debug)]
1995pub struct ProviderGetTypefaceResponder {
1996 control_handle: std::mem::ManuallyDrop<ProviderControlHandle>,
1997 tx_id: u32,
1998}
1999
2000impl std::ops::Drop for ProviderGetTypefaceResponder {
2004 fn drop(&mut self) {
2005 self.control_handle.shutdown();
2006 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2008 }
2009}
2010
2011impl fidl::endpoints::Responder for ProviderGetTypefaceResponder {
2012 type ControlHandle = ProviderControlHandle;
2013
2014 fn control_handle(&self) -> &ProviderControlHandle {
2015 &self.control_handle
2016 }
2017
2018 fn drop_without_shutdown(mut self) {
2019 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2021 std::mem::forget(self);
2023 }
2024}
2025
2026impl ProviderGetTypefaceResponder {
2027 pub fn send(self, mut response: TypefaceResponse) -> Result<(), fidl::Error> {
2031 let _result = self.send_raw(response);
2032 if _result.is_err() {
2033 self.control_handle.shutdown();
2034 }
2035 self.drop_without_shutdown();
2036 _result
2037 }
2038
2039 pub fn send_no_shutdown_on_err(
2041 self,
2042 mut response: TypefaceResponse,
2043 ) -> Result<(), fidl::Error> {
2044 let _result = self.send_raw(response);
2045 self.drop_without_shutdown();
2046 _result
2047 }
2048
2049 fn send_raw(&self, mut response: TypefaceResponse) -> Result<(), fidl::Error> {
2050 self.control_handle.inner.send::<ProviderGetTypefaceResponse>(
2051 (&mut response,),
2052 self.tx_id,
2053 0x5481d24f1a4b0671,
2054 fidl::encoding::DynamicFlags::empty(),
2055 )
2056 }
2057}
2058
2059#[must_use = "FIDL methods require a response to be sent"]
2060#[derive(Debug)]
2061pub struct ProviderGetFontFamilyInfoResponder {
2062 control_handle: std::mem::ManuallyDrop<ProviderControlHandle>,
2063 tx_id: u32,
2064}
2065
2066impl std::ops::Drop for ProviderGetFontFamilyInfoResponder {
2070 fn drop(&mut self) {
2071 self.control_handle.shutdown();
2072 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2074 }
2075}
2076
2077impl fidl::endpoints::Responder for ProviderGetFontFamilyInfoResponder {
2078 type ControlHandle = ProviderControlHandle;
2079
2080 fn control_handle(&self) -> &ProviderControlHandle {
2081 &self.control_handle
2082 }
2083
2084 fn drop_without_shutdown(mut self) {
2085 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2087 std::mem::forget(self);
2089 }
2090}
2091
2092impl ProviderGetFontFamilyInfoResponder {
2093 pub fn send(self, mut family_info: &FontFamilyInfo) -> Result<(), fidl::Error> {
2097 let _result = self.send_raw(family_info);
2098 if _result.is_err() {
2099 self.control_handle.shutdown();
2100 }
2101 self.drop_without_shutdown();
2102 _result
2103 }
2104
2105 pub fn send_no_shutdown_on_err(
2107 self,
2108 mut family_info: &FontFamilyInfo,
2109 ) -> Result<(), fidl::Error> {
2110 let _result = self.send_raw(family_info);
2111 self.drop_without_shutdown();
2112 _result
2113 }
2114
2115 fn send_raw(&self, mut family_info: &FontFamilyInfo) -> Result<(), fidl::Error> {
2116 self.control_handle.inner.send::<ProviderGetFontFamilyInfoResponse>(
2117 (family_info,),
2118 self.tx_id,
2119 0x7520ee83bf25c9ca,
2120 fidl::encoding::DynamicFlags::empty(),
2121 )
2122 }
2123}
2124
2125#[must_use = "FIDL methods require a response to be sent"]
2126#[derive(Debug)]
2127pub struct ProviderRegisterFontSetEventListenerResponder {
2128 control_handle: std::mem::ManuallyDrop<ProviderControlHandle>,
2129 tx_id: u32,
2130}
2131
2132impl std::ops::Drop for ProviderRegisterFontSetEventListenerResponder {
2136 fn drop(&mut self) {
2137 self.control_handle.shutdown();
2138 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2140 }
2141}
2142
2143impl fidl::endpoints::Responder for ProviderRegisterFontSetEventListenerResponder {
2144 type ControlHandle = ProviderControlHandle;
2145
2146 fn control_handle(&self) -> &ProviderControlHandle {
2147 &self.control_handle
2148 }
2149
2150 fn drop_without_shutdown(mut self) {
2151 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2153 std::mem::forget(self);
2155 }
2156}
2157
2158impl ProviderRegisterFontSetEventListenerResponder {
2159 pub fn send(self) -> Result<(), fidl::Error> {
2163 let _result = self.send_raw();
2164 if _result.is_err() {
2165 self.control_handle.shutdown();
2166 }
2167 self.drop_without_shutdown();
2168 _result
2169 }
2170
2171 pub fn send_no_shutdown_on_err(self) -> Result<(), fidl::Error> {
2173 let _result = self.send_raw();
2174 self.drop_without_shutdown();
2175 _result
2176 }
2177
2178 fn send_raw(&self) -> Result<(), fidl::Error> {
2179 self.control_handle.inner.send::<fidl::encoding::EmptyPayload>(
2180 (),
2181 self.tx_id,
2182 0x196898fd17cb694c,
2183 fidl::encoding::DynamicFlags::empty(),
2184 )
2185 }
2186}
2187
2188mod internal {
2189 use super::*;
2190 unsafe impl fidl::encoding::TypeMarker for TypefaceRequestFlags {
2191 type Owned = Self;
2192
2193 #[inline(always)]
2194 fn inline_align(_context: fidl::encoding::Context) -> usize {
2195 4
2196 }
2197
2198 #[inline(always)]
2199 fn inline_size(_context: fidl::encoding::Context) -> usize {
2200 4
2201 }
2202 }
2203
2204 impl fidl::encoding::ValueTypeMarker for TypefaceRequestFlags {
2205 type Borrowed<'a> = Self;
2206 #[inline(always)]
2207 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2208 *value
2209 }
2210 }
2211
2212 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
2213 for TypefaceRequestFlags
2214 {
2215 #[inline]
2216 unsafe fn encode(
2217 self,
2218 encoder: &mut fidl::encoding::Encoder<'_, D>,
2219 offset: usize,
2220 _depth: fidl::encoding::Depth,
2221 ) -> fidl::Result<()> {
2222 encoder.debug_check_bounds::<Self>(offset);
2223 if self.bits() & Self::all().bits() != self.bits() {
2224 return Err(fidl::Error::InvalidBitsValue);
2225 }
2226 encoder.write_num(self.bits(), offset);
2227 Ok(())
2228 }
2229 }
2230
2231 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for TypefaceRequestFlags {
2232 #[inline(always)]
2233 fn new_empty() -> Self {
2234 Self::empty()
2235 }
2236
2237 #[inline]
2238 unsafe fn decode(
2239 &mut self,
2240 decoder: &mut fidl::encoding::Decoder<'_, D>,
2241 offset: usize,
2242 _depth: fidl::encoding::Depth,
2243 ) -> fidl::Result<()> {
2244 decoder.debug_check_bounds::<Self>(offset);
2245 let prim = decoder.read_num::<u32>(offset);
2246 *self = Self::from_bits(prim).ok_or(fidl::Error::InvalidBitsValue)?;
2247 Ok(())
2248 }
2249 }
2250 unsafe impl fidl::encoding::TypeMarker for CacheMissPolicy {
2251 type Owned = Self;
2252
2253 #[inline(always)]
2254 fn inline_align(_context: fidl::encoding::Context) -> usize {
2255 std::mem::align_of::<u32>()
2256 }
2257
2258 #[inline(always)]
2259 fn inline_size(_context: fidl::encoding::Context) -> usize {
2260 std::mem::size_of::<u32>()
2261 }
2262
2263 #[inline(always)]
2264 fn encode_is_copy() -> bool {
2265 true
2266 }
2267
2268 #[inline(always)]
2269 fn decode_is_copy() -> bool {
2270 false
2271 }
2272 }
2273
2274 impl fidl::encoding::ValueTypeMarker for CacheMissPolicy {
2275 type Borrowed<'a> = Self;
2276 #[inline(always)]
2277 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2278 *value
2279 }
2280 }
2281
2282 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
2283 for CacheMissPolicy
2284 {
2285 #[inline]
2286 unsafe fn encode(
2287 self,
2288 encoder: &mut fidl::encoding::Encoder<'_, D>,
2289 offset: usize,
2290 _depth: fidl::encoding::Depth,
2291 ) -> fidl::Result<()> {
2292 encoder.debug_check_bounds::<Self>(offset);
2293 encoder.write_num(self.into_primitive(), offset);
2294 Ok(())
2295 }
2296 }
2297
2298 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for CacheMissPolicy {
2299 #[inline(always)]
2300 fn new_empty() -> Self {
2301 Self::BlockUntilDownloaded
2302 }
2303
2304 #[inline]
2305 unsafe fn decode(
2306 &mut self,
2307 decoder: &mut fidl::encoding::Decoder<'_, D>,
2308 offset: usize,
2309 _depth: fidl::encoding::Depth,
2310 ) -> fidl::Result<()> {
2311 decoder.debug_check_bounds::<Self>(offset);
2312 let prim = decoder.read_num::<u32>(offset);
2313
2314 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
2315 Ok(())
2316 }
2317 }
2318 unsafe impl fidl::encoding::TypeMarker for FallbackGroup {
2319 type Owned = Self;
2320
2321 #[inline(always)]
2322 fn inline_align(_context: fidl::encoding::Context) -> usize {
2323 std::mem::align_of::<u32>()
2324 }
2325
2326 #[inline(always)]
2327 fn inline_size(_context: fidl::encoding::Context) -> usize {
2328 std::mem::size_of::<u32>()
2329 }
2330
2331 #[inline(always)]
2332 fn encode_is_copy() -> bool {
2333 true
2334 }
2335
2336 #[inline(always)]
2337 fn decode_is_copy() -> bool {
2338 false
2339 }
2340 }
2341
2342 impl fidl::encoding::ValueTypeMarker for FallbackGroup {
2343 type Borrowed<'a> = Self;
2344 #[inline(always)]
2345 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2346 *value
2347 }
2348 }
2349
2350 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for FallbackGroup {
2351 #[inline]
2352 unsafe fn encode(
2353 self,
2354 encoder: &mut fidl::encoding::Encoder<'_, D>,
2355 offset: usize,
2356 _depth: fidl::encoding::Depth,
2357 ) -> fidl::Result<()> {
2358 encoder.debug_check_bounds::<Self>(offset);
2359 encoder.write_num(self.into_primitive(), offset);
2360 Ok(())
2361 }
2362 }
2363
2364 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for FallbackGroup {
2365 #[inline(always)]
2366 fn new_empty() -> Self {
2367 Self::None
2368 }
2369
2370 #[inline]
2371 unsafe fn decode(
2372 &mut self,
2373 decoder: &mut fidl::encoding::Decoder<'_, D>,
2374 offset: usize,
2375 _depth: fidl::encoding::Depth,
2376 ) -> fidl::Result<()> {
2377 decoder.debug_check_bounds::<Self>(offset);
2378 let prim = decoder.read_num::<u32>(offset);
2379
2380 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
2381 Ok(())
2382 }
2383 }
2384 unsafe impl fidl::encoding::TypeMarker for GenericFontFamily {
2385 type Owned = Self;
2386
2387 #[inline(always)]
2388 fn inline_align(_context: fidl::encoding::Context) -> usize {
2389 std::mem::align_of::<u32>()
2390 }
2391
2392 #[inline(always)]
2393 fn inline_size(_context: fidl::encoding::Context) -> usize {
2394 std::mem::size_of::<u32>()
2395 }
2396
2397 #[inline(always)]
2398 fn encode_is_copy() -> bool {
2399 true
2400 }
2401
2402 #[inline(always)]
2403 fn decode_is_copy() -> bool {
2404 false
2405 }
2406 }
2407
2408 impl fidl::encoding::ValueTypeMarker for GenericFontFamily {
2409 type Borrowed<'a> = Self;
2410 #[inline(always)]
2411 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2412 *value
2413 }
2414 }
2415
2416 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
2417 for GenericFontFamily
2418 {
2419 #[inline]
2420 unsafe fn encode(
2421 self,
2422 encoder: &mut fidl::encoding::Encoder<'_, D>,
2423 offset: usize,
2424 _depth: fidl::encoding::Depth,
2425 ) -> fidl::Result<()> {
2426 encoder.debug_check_bounds::<Self>(offset);
2427 encoder.write_num(self.into_primitive(), offset);
2428 Ok(())
2429 }
2430 }
2431
2432 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for GenericFontFamily {
2433 #[inline(always)]
2434 fn new_empty() -> Self {
2435 Self::Serif
2436 }
2437
2438 #[inline]
2439 unsafe fn decode(
2440 &mut self,
2441 decoder: &mut fidl::encoding::Decoder<'_, D>,
2442 offset: usize,
2443 _depth: fidl::encoding::Depth,
2444 ) -> fidl::Result<()> {
2445 decoder.debug_check_bounds::<Self>(offset);
2446 let prim = decoder.read_num::<u32>(offset);
2447
2448 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
2449 Ok(())
2450 }
2451 }
2452 unsafe impl fidl::encoding::TypeMarker for Slant {
2453 type Owned = Self;
2454
2455 #[inline(always)]
2456 fn inline_align(_context: fidl::encoding::Context) -> usize {
2457 std::mem::align_of::<u32>()
2458 }
2459
2460 #[inline(always)]
2461 fn inline_size(_context: fidl::encoding::Context) -> usize {
2462 std::mem::size_of::<u32>()
2463 }
2464
2465 #[inline(always)]
2466 fn encode_is_copy() -> bool {
2467 true
2468 }
2469
2470 #[inline(always)]
2471 fn decode_is_copy() -> bool {
2472 false
2473 }
2474 }
2475
2476 impl fidl::encoding::ValueTypeMarker for Slant {
2477 type Borrowed<'a> = Self;
2478 #[inline(always)]
2479 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2480 *value
2481 }
2482 }
2483
2484 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for Slant {
2485 #[inline]
2486 unsafe fn encode(
2487 self,
2488 encoder: &mut fidl::encoding::Encoder<'_, D>,
2489 offset: usize,
2490 _depth: fidl::encoding::Depth,
2491 ) -> fidl::Result<()> {
2492 encoder.debug_check_bounds::<Self>(offset);
2493 encoder.write_num(self.into_primitive(), offset);
2494 Ok(())
2495 }
2496 }
2497
2498 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Slant {
2499 #[inline(always)]
2500 fn new_empty() -> Self {
2501 Self::Upright
2502 }
2503
2504 #[inline]
2505 unsafe fn decode(
2506 &mut self,
2507 decoder: &mut fidl::encoding::Decoder<'_, D>,
2508 offset: usize,
2509 _depth: fidl::encoding::Depth,
2510 ) -> fidl::Result<()> {
2511 decoder.debug_check_bounds::<Self>(offset);
2512 let prim = decoder.read_num::<u32>(offset);
2513
2514 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
2515 Ok(())
2516 }
2517 }
2518 unsafe impl fidl::encoding::TypeMarker for Width {
2519 type Owned = Self;
2520
2521 #[inline(always)]
2522 fn inline_align(_context: fidl::encoding::Context) -> usize {
2523 std::mem::align_of::<u32>()
2524 }
2525
2526 #[inline(always)]
2527 fn inline_size(_context: fidl::encoding::Context) -> usize {
2528 std::mem::size_of::<u32>()
2529 }
2530
2531 #[inline(always)]
2532 fn encode_is_copy() -> bool {
2533 true
2534 }
2535
2536 #[inline(always)]
2537 fn decode_is_copy() -> bool {
2538 false
2539 }
2540 }
2541
2542 impl fidl::encoding::ValueTypeMarker for Width {
2543 type Borrowed<'a> = Self;
2544 #[inline(always)]
2545 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2546 *value
2547 }
2548 }
2549
2550 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for Width {
2551 #[inline]
2552 unsafe fn encode(
2553 self,
2554 encoder: &mut fidl::encoding::Encoder<'_, D>,
2555 offset: usize,
2556 _depth: fidl::encoding::Depth,
2557 ) -> fidl::Result<()> {
2558 encoder.debug_check_bounds::<Self>(offset);
2559 encoder.write_num(self.into_primitive(), offset);
2560 Ok(())
2561 }
2562 }
2563
2564 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Width {
2565 #[inline(always)]
2566 fn new_empty() -> Self {
2567 Self::UltraCondensed
2568 }
2569
2570 #[inline]
2571 unsafe fn decode(
2572 &mut self,
2573 decoder: &mut fidl::encoding::Decoder<'_, D>,
2574 offset: usize,
2575 _depth: fidl::encoding::Depth,
2576 ) -> fidl::Result<()> {
2577 decoder.debug_check_bounds::<Self>(offset);
2578 let prim = decoder.read_num::<u32>(offset);
2579
2580 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
2581 Ok(())
2582 }
2583 }
2584
2585 impl fidl::encoding::ValueTypeMarker for FamilyInfo {
2586 type Borrowed<'a> = &'a Self;
2587 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2588 value
2589 }
2590 }
2591
2592 unsafe impl fidl::encoding::TypeMarker for FamilyInfo {
2593 type Owned = Self;
2594
2595 #[inline(always)]
2596 fn inline_align(_context: fidl::encoding::Context) -> usize {
2597 8
2598 }
2599
2600 #[inline(always)]
2601 fn inline_size(_context: fidl::encoding::Context) -> usize {
2602 32
2603 }
2604 }
2605
2606 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<FamilyInfo, D>
2607 for &FamilyInfo
2608 {
2609 #[inline]
2610 unsafe fn encode(
2611 self,
2612 encoder: &mut fidl::encoding::Encoder<'_, D>,
2613 offset: usize,
2614 _depth: fidl::encoding::Depth,
2615 ) -> fidl::Result<()> {
2616 encoder.debug_check_bounds::<FamilyInfo>(offset);
2617 fidl::encoding::Encode::<FamilyInfo, D>::encode(
2619 (
2620 <fidl::encoding::BoundedString<128> as fidl::encoding::ValueTypeMarker>::borrow(
2621 &self.name,
2622 ),
2623 <fidl::encoding::Vector<Style, 300> as fidl::encoding::ValueTypeMarker>::borrow(
2624 &self.styles,
2625 ),
2626 ),
2627 encoder,
2628 offset,
2629 _depth,
2630 )
2631 }
2632 }
2633 unsafe impl<
2634 D: fidl::encoding::ResourceDialect,
2635 T0: fidl::encoding::Encode<fidl::encoding::BoundedString<128>, D>,
2636 T1: fidl::encoding::Encode<fidl::encoding::Vector<Style, 300>, D>,
2637 > fidl::encoding::Encode<FamilyInfo, D> for (T0, T1)
2638 {
2639 #[inline]
2640 unsafe fn encode(
2641 self,
2642 encoder: &mut fidl::encoding::Encoder<'_, D>,
2643 offset: usize,
2644 depth: fidl::encoding::Depth,
2645 ) -> fidl::Result<()> {
2646 encoder.debug_check_bounds::<FamilyInfo>(offset);
2647 self.0.encode(encoder, offset + 0, depth)?;
2651 self.1.encode(encoder, offset + 16, depth)?;
2652 Ok(())
2653 }
2654 }
2655
2656 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for FamilyInfo {
2657 #[inline(always)]
2658 fn new_empty() -> Self {
2659 Self {
2660 name: fidl::new_empty!(fidl::encoding::BoundedString<128>, D),
2661 styles: fidl::new_empty!(fidl::encoding::Vector<Style, 300>, D),
2662 }
2663 }
2664
2665 #[inline]
2666 unsafe fn decode(
2667 &mut self,
2668 decoder: &mut fidl::encoding::Decoder<'_, D>,
2669 offset: usize,
2670 _depth: fidl::encoding::Depth,
2671 ) -> fidl::Result<()> {
2672 decoder.debug_check_bounds::<Self>(offset);
2673 fidl::decode!(
2675 fidl::encoding::BoundedString<128>,
2676 D,
2677 &mut self.name,
2678 decoder,
2679 offset + 0,
2680 _depth
2681 )?;
2682 fidl::decode!(fidl::encoding::Vector<Style, 300>, D, &mut self.styles, decoder, offset + 16, _depth)?;
2683 Ok(())
2684 }
2685 }
2686
2687 impl fidl::encoding::ValueTypeMarker for FamilyName {
2688 type Borrowed<'a> = &'a Self;
2689 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2690 value
2691 }
2692 }
2693
2694 unsafe impl fidl::encoding::TypeMarker for FamilyName {
2695 type Owned = Self;
2696
2697 #[inline(always)]
2698 fn inline_align(_context: fidl::encoding::Context) -> usize {
2699 8
2700 }
2701
2702 #[inline(always)]
2703 fn inline_size(_context: fidl::encoding::Context) -> usize {
2704 16
2705 }
2706 }
2707
2708 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<FamilyName, D>
2709 for &FamilyName
2710 {
2711 #[inline]
2712 unsafe fn encode(
2713 self,
2714 encoder: &mut fidl::encoding::Encoder<'_, D>,
2715 offset: usize,
2716 _depth: fidl::encoding::Depth,
2717 ) -> fidl::Result<()> {
2718 encoder.debug_check_bounds::<FamilyName>(offset);
2719 fidl::encoding::Encode::<FamilyName, D>::encode(
2721 (<fidl::encoding::BoundedString<128> as fidl::encoding::ValueTypeMarker>::borrow(
2722 &self.name,
2723 ),),
2724 encoder,
2725 offset,
2726 _depth,
2727 )
2728 }
2729 }
2730 unsafe impl<
2731 D: fidl::encoding::ResourceDialect,
2732 T0: fidl::encoding::Encode<fidl::encoding::BoundedString<128>, D>,
2733 > fidl::encoding::Encode<FamilyName, D> for (T0,)
2734 {
2735 #[inline]
2736 unsafe fn encode(
2737 self,
2738 encoder: &mut fidl::encoding::Encoder<'_, D>,
2739 offset: usize,
2740 depth: fidl::encoding::Depth,
2741 ) -> fidl::Result<()> {
2742 encoder.debug_check_bounds::<FamilyName>(offset);
2743 self.0.encode(encoder, offset + 0, depth)?;
2747 Ok(())
2748 }
2749 }
2750
2751 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for FamilyName {
2752 #[inline(always)]
2753 fn new_empty() -> Self {
2754 Self { name: fidl::new_empty!(fidl::encoding::BoundedString<128>, D) }
2755 }
2756
2757 #[inline]
2758 unsafe fn decode(
2759 &mut self,
2760 decoder: &mut fidl::encoding::Decoder<'_, D>,
2761 offset: usize,
2762 _depth: fidl::encoding::Depth,
2763 ) -> fidl::Result<()> {
2764 decoder.debug_check_bounds::<Self>(offset);
2765 fidl::decode!(
2767 fidl::encoding::BoundedString<128>,
2768 D,
2769 &mut self.name,
2770 decoder,
2771 offset + 0,
2772 _depth
2773 )?;
2774 Ok(())
2775 }
2776 }
2777
2778 impl fidl::encoding::ValueTypeMarker for FontSetEventListenerOnFontSetUpdatedRequest {
2779 type Borrowed<'a> = &'a Self;
2780 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2781 value
2782 }
2783 }
2784
2785 unsafe impl fidl::encoding::TypeMarker for FontSetEventListenerOnFontSetUpdatedRequest {
2786 type Owned = Self;
2787
2788 #[inline(always)]
2789 fn inline_align(_context: fidl::encoding::Context) -> usize {
2790 8
2791 }
2792
2793 #[inline(always)]
2794 fn inline_size(_context: fidl::encoding::Context) -> usize {
2795 16
2796 }
2797 }
2798
2799 unsafe impl<D: fidl::encoding::ResourceDialect>
2800 fidl::encoding::Encode<FontSetEventListenerOnFontSetUpdatedRequest, D>
2801 for &FontSetEventListenerOnFontSetUpdatedRequest
2802 {
2803 #[inline]
2804 unsafe fn encode(
2805 self,
2806 encoder: &mut fidl::encoding::Encoder<'_, D>,
2807 offset: usize,
2808 _depth: fidl::encoding::Depth,
2809 ) -> fidl::Result<()> {
2810 encoder.debug_check_bounds::<FontSetEventListenerOnFontSetUpdatedRequest>(offset);
2811 fidl::encoding::Encode::<FontSetEventListenerOnFontSetUpdatedRequest, D>::encode(
2813 (<FontSetUpdatedEvent as fidl::encoding::ValueTypeMarker>::borrow(&self.event),),
2814 encoder,
2815 offset,
2816 _depth,
2817 )
2818 }
2819 }
2820 unsafe impl<
2821 D: fidl::encoding::ResourceDialect,
2822 T0: fidl::encoding::Encode<FontSetUpdatedEvent, D>,
2823 > fidl::encoding::Encode<FontSetEventListenerOnFontSetUpdatedRequest, D> for (T0,)
2824 {
2825 #[inline]
2826 unsafe fn encode(
2827 self,
2828 encoder: &mut fidl::encoding::Encoder<'_, D>,
2829 offset: usize,
2830 depth: fidl::encoding::Depth,
2831 ) -> fidl::Result<()> {
2832 encoder.debug_check_bounds::<FontSetEventListenerOnFontSetUpdatedRequest>(offset);
2833 self.0.encode(encoder, offset + 0, depth)?;
2837 Ok(())
2838 }
2839 }
2840
2841 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2842 for FontSetEventListenerOnFontSetUpdatedRequest
2843 {
2844 #[inline(always)]
2845 fn new_empty() -> Self {
2846 Self { event: fidl::new_empty!(FontSetUpdatedEvent, D) }
2847 }
2848
2849 #[inline]
2850 unsafe fn decode(
2851 &mut self,
2852 decoder: &mut fidl::encoding::Decoder<'_, D>,
2853 offset: usize,
2854 _depth: fidl::encoding::Depth,
2855 ) -> fidl::Result<()> {
2856 decoder.debug_check_bounds::<Self>(offset);
2857 fidl::decode!(FontSetUpdatedEvent, D, &mut self.event, decoder, offset + 0, _depth)?;
2859 Ok(())
2860 }
2861 }
2862
2863 impl fidl::encoding::ValueTypeMarker for ProviderGetFamilyInfoRequest {
2864 type Borrowed<'a> = &'a Self;
2865 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2866 value
2867 }
2868 }
2869
2870 unsafe impl fidl::encoding::TypeMarker for ProviderGetFamilyInfoRequest {
2871 type Owned = Self;
2872
2873 #[inline(always)]
2874 fn inline_align(_context: fidl::encoding::Context) -> usize {
2875 8
2876 }
2877
2878 #[inline(always)]
2879 fn inline_size(_context: fidl::encoding::Context) -> usize {
2880 16
2881 }
2882 }
2883
2884 unsafe impl<D: fidl::encoding::ResourceDialect>
2885 fidl::encoding::Encode<ProviderGetFamilyInfoRequest, D> for &ProviderGetFamilyInfoRequest
2886 {
2887 #[inline]
2888 unsafe fn encode(
2889 self,
2890 encoder: &mut fidl::encoding::Encoder<'_, D>,
2891 offset: usize,
2892 _depth: fidl::encoding::Depth,
2893 ) -> fidl::Result<()> {
2894 encoder.debug_check_bounds::<ProviderGetFamilyInfoRequest>(offset);
2895 fidl::encoding::Encode::<ProviderGetFamilyInfoRequest, D>::encode(
2897 (<fidl::encoding::BoundedString<128> as fidl::encoding::ValueTypeMarker>::borrow(
2898 &self.family,
2899 ),),
2900 encoder,
2901 offset,
2902 _depth,
2903 )
2904 }
2905 }
2906 unsafe impl<
2907 D: fidl::encoding::ResourceDialect,
2908 T0: fidl::encoding::Encode<fidl::encoding::BoundedString<128>, D>,
2909 > fidl::encoding::Encode<ProviderGetFamilyInfoRequest, D> for (T0,)
2910 {
2911 #[inline]
2912 unsafe fn encode(
2913 self,
2914 encoder: &mut fidl::encoding::Encoder<'_, D>,
2915 offset: usize,
2916 depth: fidl::encoding::Depth,
2917 ) -> fidl::Result<()> {
2918 encoder.debug_check_bounds::<ProviderGetFamilyInfoRequest>(offset);
2919 self.0.encode(encoder, offset + 0, depth)?;
2923 Ok(())
2924 }
2925 }
2926
2927 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2928 for ProviderGetFamilyInfoRequest
2929 {
2930 #[inline(always)]
2931 fn new_empty() -> Self {
2932 Self { family: fidl::new_empty!(fidl::encoding::BoundedString<128>, D) }
2933 }
2934
2935 #[inline]
2936 unsafe fn decode(
2937 &mut self,
2938 decoder: &mut fidl::encoding::Decoder<'_, D>,
2939 offset: usize,
2940 _depth: fidl::encoding::Depth,
2941 ) -> fidl::Result<()> {
2942 decoder.debug_check_bounds::<Self>(offset);
2943 fidl::decode!(
2945 fidl::encoding::BoundedString<128>,
2946 D,
2947 &mut self.family,
2948 decoder,
2949 offset + 0,
2950 _depth
2951 )?;
2952 Ok(())
2953 }
2954 }
2955
2956 impl fidl::encoding::ValueTypeMarker for ProviderGetFamilyInfoResponse {
2957 type Borrowed<'a> = &'a Self;
2958 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2959 value
2960 }
2961 }
2962
2963 unsafe impl fidl::encoding::TypeMarker for ProviderGetFamilyInfoResponse {
2964 type Owned = Self;
2965
2966 #[inline(always)]
2967 fn inline_align(_context: fidl::encoding::Context) -> usize {
2968 8
2969 }
2970
2971 #[inline(always)]
2972 fn inline_size(_context: fidl::encoding::Context) -> usize {
2973 8
2974 }
2975 }
2976
2977 unsafe impl<D: fidl::encoding::ResourceDialect>
2978 fidl::encoding::Encode<ProviderGetFamilyInfoResponse, D>
2979 for &ProviderGetFamilyInfoResponse
2980 {
2981 #[inline]
2982 unsafe fn encode(
2983 self,
2984 encoder: &mut fidl::encoding::Encoder<'_, D>,
2985 offset: usize,
2986 _depth: fidl::encoding::Depth,
2987 ) -> fidl::Result<()> {
2988 encoder.debug_check_bounds::<ProviderGetFamilyInfoResponse>(offset);
2989 fidl::encoding::Encode::<ProviderGetFamilyInfoResponse, D>::encode(
2991 (<fidl::encoding::Boxed<FamilyInfo> as fidl::encoding::ValueTypeMarker>::borrow(
2992 &self.family_info,
2993 ),),
2994 encoder,
2995 offset,
2996 _depth,
2997 )
2998 }
2999 }
3000 unsafe impl<
3001 D: fidl::encoding::ResourceDialect,
3002 T0: fidl::encoding::Encode<fidl::encoding::Boxed<FamilyInfo>, D>,
3003 > fidl::encoding::Encode<ProviderGetFamilyInfoResponse, D> for (T0,)
3004 {
3005 #[inline]
3006 unsafe fn encode(
3007 self,
3008 encoder: &mut fidl::encoding::Encoder<'_, D>,
3009 offset: usize,
3010 depth: fidl::encoding::Depth,
3011 ) -> fidl::Result<()> {
3012 encoder.debug_check_bounds::<ProviderGetFamilyInfoResponse>(offset);
3013 self.0.encode(encoder, offset + 0, depth)?;
3017 Ok(())
3018 }
3019 }
3020
3021 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3022 for ProviderGetFamilyInfoResponse
3023 {
3024 #[inline(always)]
3025 fn new_empty() -> Self {
3026 Self { family_info: fidl::new_empty!(fidl::encoding::Boxed<FamilyInfo>, D) }
3027 }
3028
3029 #[inline]
3030 unsafe fn decode(
3031 &mut self,
3032 decoder: &mut fidl::encoding::Decoder<'_, D>,
3033 offset: usize,
3034 _depth: fidl::encoding::Depth,
3035 ) -> fidl::Result<()> {
3036 decoder.debug_check_bounds::<Self>(offset);
3037 fidl::decode!(
3039 fidl::encoding::Boxed<FamilyInfo>,
3040 D,
3041 &mut self.family_info,
3042 decoder,
3043 offset + 0,
3044 _depth
3045 )?;
3046 Ok(())
3047 }
3048 }
3049
3050 impl fidl::encoding::ValueTypeMarker for ProviderGetFontFamilyInfoRequest {
3051 type Borrowed<'a> = &'a Self;
3052 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3053 value
3054 }
3055 }
3056
3057 unsafe impl fidl::encoding::TypeMarker for ProviderGetFontFamilyInfoRequest {
3058 type Owned = Self;
3059
3060 #[inline(always)]
3061 fn inline_align(_context: fidl::encoding::Context) -> usize {
3062 8
3063 }
3064
3065 #[inline(always)]
3066 fn inline_size(_context: fidl::encoding::Context) -> usize {
3067 16
3068 }
3069 }
3070
3071 unsafe impl<D: fidl::encoding::ResourceDialect>
3072 fidl::encoding::Encode<ProviderGetFontFamilyInfoRequest, D>
3073 for &ProviderGetFontFamilyInfoRequest
3074 {
3075 #[inline]
3076 unsafe fn encode(
3077 self,
3078 encoder: &mut fidl::encoding::Encoder<'_, D>,
3079 offset: usize,
3080 _depth: fidl::encoding::Depth,
3081 ) -> fidl::Result<()> {
3082 encoder.debug_check_bounds::<ProviderGetFontFamilyInfoRequest>(offset);
3083 fidl::encoding::Encode::<ProviderGetFontFamilyInfoRequest, D>::encode(
3085 (<FamilyName as fidl::encoding::ValueTypeMarker>::borrow(&self.family),),
3086 encoder,
3087 offset,
3088 _depth,
3089 )
3090 }
3091 }
3092 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<FamilyName, D>>
3093 fidl::encoding::Encode<ProviderGetFontFamilyInfoRequest, D> for (T0,)
3094 {
3095 #[inline]
3096 unsafe fn encode(
3097 self,
3098 encoder: &mut fidl::encoding::Encoder<'_, D>,
3099 offset: usize,
3100 depth: fidl::encoding::Depth,
3101 ) -> fidl::Result<()> {
3102 encoder.debug_check_bounds::<ProviderGetFontFamilyInfoRequest>(offset);
3103 self.0.encode(encoder, offset + 0, depth)?;
3107 Ok(())
3108 }
3109 }
3110
3111 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3112 for ProviderGetFontFamilyInfoRequest
3113 {
3114 #[inline(always)]
3115 fn new_empty() -> Self {
3116 Self { family: fidl::new_empty!(FamilyName, D) }
3117 }
3118
3119 #[inline]
3120 unsafe fn decode(
3121 &mut self,
3122 decoder: &mut fidl::encoding::Decoder<'_, D>,
3123 offset: usize,
3124 _depth: fidl::encoding::Depth,
3125 ) -> fidl::Result<()> {
3126 decoder.debug_check_bounds::<Self>(offset);
3127 fidl::decode!(FamilyName, D, &mut self.family, decoder, offset + 0, _depth)?;
3129 Ok(())
3130 }
3131 }
3132
3133 impl fidl::encoding::ValueTypeMarker for ProviderGetFontFamilyInfoResponse {
3134 type Borrowed<'a> = &'a Self;
3135 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3136 value
3137 }
3138 }
3139
3140 unsafe impl fidl::encoding::TypeMarker for ProviderGetFontFamilyInfoResponse {
3141 type Owned = Self;
3142
3143 #[inline(always)]
3144 fn inline_align(_context: fidl::encoding::Context) -> usize {
3145 8
3146 }
3147
3148 #[inline(always)]
3149 fn inline_size(_context: fidl::encoding::Context) -> usize {
3150 16
3151 }
3152 }
3153
3154 unsafe impl<D: fidl::encoding::ResourceDialect>
3155 fidl::encoding::Encode<ProviderGetFontFamilyInfoResponse, D>
3156 for &ProviderGetFontFamilyInfoResponse
3157 {
3158 #[inline]
3159 unsafe fn encode(
3160 self,
3161 encoder: &mut fidl::encoding::Encoder<'_, D>,
3162 offset: usize,
3163 _depth: fidl::encoding::Depth,
3164 ) -> fidl::Result<()> {
3165 encoder.debug_check_bounds::<ProviderGetFontFamilyInfoResponse>(offset);
3166 fidl::encoding::Encode::<ProviderGetFontFamilyInfoResponse, D>::encode(
3168 (<FontFamilyInfo as fidl::encoding::ValueTypeMarker>::borrow(&self.family_info),),
3169 encoder,
3170 offset,
3171 _depth,
3172 )
3173 }
3174 }
3175 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<FontFamilyInfo, D>>
3176 fidl::encoding::Encode<ProviderGetFontFamilyInfoResponse, D> for (T0,)
3177 {
3178 #[inline]
3179 unsafe fn encode(
3180 self,
3181 encoder: &mut fidl::encoding::Encoder<'_, D>,
3182 offset: usize,
3183 depth: fidl::encoding::Depth,
3184 ) -> fidl::Result<()> {
3185 encoder.debug_check_bounds::<ProviderGetFontFamilyInfoResponse>(offset);
3186 self.0.encode(encoder, offset + 0, depth)?;
3190 Ok(())
3191 }
3192 }
3193
3194 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3195 for ProviderGetFontFamilyInfoResponse
3196 {
3197 #[inline(always)]
3198 fn new_empty() -> Self {
3199 Self { family_info: fidl::new_empty!(FontFamilyInfo, D) }
3200 }
3201
3202 #[inline]
3203 unsafe fn decode(
3204 &mut self,
3205 decoder: &mut fidl::encoding::Decoder<'_, D>,
3206 offset: usize,
3207 _depth: fidl::encoding::Depth,
3208 ) -> fidl::Result<()> {
3209 decoder.debug_check_bounds::<Self>(offset);
3210 fidl::decode!(FontFamilyInfo, D, &mut self.family_info, decoder, offset + 0, _depth)?;
3212 Ok(())
3213 }
3214 }
3215
3216 impl fidl::encoding::ValueTypeMarker for ProviderGetFontRequest {
3217 type Borrowed<'a> = &'a Self;
3218 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3219 value
3220 }
3221 }
3222
3223 unsafe impl fidl::encoding::TypeMarker for ProviderGetFontRequest {
3224 type Owned = Self;
3225
3226 #[inline(always)]
3227 fn inline_align(_context: fidl::encoding::Context) -> usize {
3228 8
3229 }
3230
3231 #[inline(always)]
3232 fn inline_size(_context: fidl::encoding::Context) -> usize {
3233 64
3234 }
3235 }
3236
3237 unsafe impl<D: fidl::encoding::ResourceDialect>
3238 fidl::encoding::Encode<ProviderGetFontRequest, D> for &ProviderGetFontRequest
3239 {
3240 #[inline]
3241 unsafe fn encode(
3242 self,
3243 encoder: &mut fidl::encoding::Encoder<'_, D>,
3244 offset: usize,
3245 _depth: fidl::encoding::Depth,
3246 ) -> fidl::Result<()> {
3247 encoder.debug_check_bounds::<ProviderGetFontRequest>(offset);
3248 fidl::encoding::Encode::<ProviderGetFontRequest, D>::encode(
3250 (<Request as fidl::encoding::ValueTypeMarker>::borrow(&self.request),),
3251 encoder,
3252 offset,
3253 _depth,
3254 )
3255 }
3256 }
3257 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<Request, D>>
3258 fidl::encoding::Encode<ProviderGetFontRequest, D> for (T0,)
3259 {
3260 #[inline]
3261 unsafe fn encode(
3262 self,
3263 encoder: &mut fidl::encoding::Encoder<'_, D>,
3264 offset: usize,
3265 depth: fidl::encoding::Depth,
3266 ) -> fidl::Result<()> {
3267 encoder.debug_check_bounds::<ProviderGetFontRequest>(offset);
3268 self.0.encode(encoder, offset + 0, depth)?;
3272 Ok(())
3273 }
3274 }
3275
3276 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3277 for ProviderGetFontRequest
3278 {
3279 #[inline(always)]
3280 fn new_empty() -> Self {
3281 Self { request: fidl::new_empty!(Request, D) }
3282 }
3283
3284 #[inline]
3285 unsafe fn decode(
3286 &mut self,
3287 decoder: &mut fidl::encoding::Decoder<'_, D>,
3288 offset: usize,
3289 _depth: fidl::encoding::Depth,
3290 ) -> fidl::Result<()> {
3291 decoder.debug_check_bounds::<Self>(offset);
3292 fidl::decode!(Request, D, &mut self.request, decoder, offset + 0, _depth)?;
3294 Ok(())
3295 }
3296 }
3297
3298 impl fidl::encoding::ResourceTypeMarker for ProviderGetFontResponse {
3299 type Borrowed<'a> = &'a mut Self;
3300 fn take_or_borrow<'a>(
3301 value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
3302 ) -> Self::Borrowed<'a> {
3303 value
3304 }
3305 }
3306
3307 unsafe impl fidl::encoding::TypeMarker for ProviderGetFontResponse {
3308 type Owned = Self;
3309
3310 #[inline(always)]
3311 fn inline_align(_context: fidl::encoding::Context) -> usize {
3312 8
3313 }
3314
3315 #[inline(always)]
3316 fn inline_size(_context: fidl::encoding::Context) -> usize {
3317 8
3318 }
3319 }
3320
3321 unsafe impl
3322 fidl::encoding::Encode<
3323 ProviderGetFontResponse,
3324 fidl::encoding::DefaultFuchsiaResourceDialect,
3325 > for &mut ProviderGetFontResponse
3326 {
3327 #[inline]
3328 unsafe fn encode(
3329 self,
3330 encoder: &mut fidl::encoding::Encoder<
3331 '_,
3332 fidl::encoding::DefaultFuchsiaResourceDialect,
3333 >,
3334 offset: usize,
3335 _depth: fidl::encoding::Depth,
3336 ) -> fidl::Result<()> {
3337 encoder.debug_check_bounds::<ProviderGetFontResponse>(offset);
3338 fidl::encoding::Encode::<ProviderGetFontResponse, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
3340 (
3341 <fidl::encoding::Boxed<Response> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.response),
3342 ),
3343 encoder, offset, _depth
3344 )
3345 }
3346 }
3347 unsafe impl<
3348 T0: fidl::encoding::Encode<
3349 fidl::encoding::Boxed<Response>,
3350 fidl::encoding::DefaultFuchsiaResourceDialect,
3351 >,
3352 >
3353 fidl::encoding::Encode<
3354 ProviderGetFontResponse,
3355 fidl::encoding::DefaultFuchsiaResourceDialect,
3356 > for (T0,)
3357 {
3358 #[inline]
3359 unsafe fn encode(
3360 self,
3361 encoder: &mut fidl::encoding::Encoder<
3362 '_,
3363 fidl::encoding::DefaultFuchsiaResourceDialect,
3364 >,
3365 offset: usize,
3366 depth: fidl::encoding::Depth,
3367 ) -> fidl::Result<()> {
3368 encoder.debug_check_bounds::<ProviderGetFontResponse>(offset);
3369 self.0.encode(encoder, offset + 0, depth)?;
3373 Ok(())
3374 }
3375 }
3376
3377 impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
3378 for ProviderGetFontResponse
3379 {
3380 #[inline(always)]
3381 fn new_empty() -> Self {
3382 Self {
3383 response: fidl::new_empty!(
3384 fidl::encoding::Boxed<Response>,
3385 fidl::encoding::DefaultFuchsiaResourceDialect
3386 ),
3387 }
3388 }
3389
3390 #[inline]
3391 unsafe fn decode(
3392 &mut self,
3393 decoder: &mut fidl::encoding::Decoder<
3394 '_,
3395 fidl::encoding::DefaultFuchsiaResourceDialect,
3396 >,
3397 offset: usize,
3398 _depth: fidl::encoding::Depth,
3399 ) -> fidl::Result<()> {
3400 decoder.debug_check_bounds::<Self>(offset);
3401 fidl::decode!(
3403 fidl::encoding::Boxed<Response>,
3404 fidl::encoding::DefaultFuchsiaResourceDialect,
3405 &mut self.response,
3406 decoder,
3407 offset + 0,
3408 _depth
3409 )?;
3410 Ok(())
3411 }
3412 }
3413
3414 impl fidl::encoding::ValueTypeMarker for ProviderGetTypefaceRequest {
3415 type Borrowed<'a> = &'a Self;
3416 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3417 value
3418 }
3419 }
3420
3421 unsafe impl fidl::encoding::TypeMarker for ProviderGetTypefaceRequest {
3422 type Owned = Self;
3423
3424 #[inline(always)]
3425 fn inline_align(_context: fidl::encoding::Context) -> usize {
3426 8
3427 }
3428
3429 #[inline(always)]
3430 fn inline_size(_context: fidl::encoding::Context) -> usize {
3431 16
3432 }
3433 }
3434
3435 unsafe impl<D: fidl::encoding::ResourceDialect>
3436 fidl::encoding::Encode<ProviderGetTypefaceRequest, D> for &ProviderGetTypefaceRequest
3437 {
3438 #[inline]
3439 unsafe fn encode(
3440 self,
3441 encoder: &mut fidl::encoding::Encoder<'_, D>,
3442 offset: usize,
3443 _depth: fidl::encoding::Depth,
3444 ) -> fidl::Result<()> {
3445 encoder.debug_check_bounds::<ProviderGetTypefaceRequest>(offset);
3446 fidl::encoding::Encode::<ProviderGetTypefaceRequest, D>::encode(
3448 (<TypefaceRequest as fidl::encoding::ValueTypeMarker>::borrow(&self.request),),
3449 encoder,
3450 offset,
3451 _depth,
3452 )
3453 }
3454 }
3455 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<TypefaceRequest, D>>
3456 fidl::encoding::Encode<ProviderGetTypefaceRequest, D> for (T0,)
3457 {
3458 #[inline]
3459 unsafe fn encode(
3460 self,
3461 encoder: &mut fidl::encoding::Encoder<'_, D>,
3462 offset: usize,
3463 depth: fidl::encoding::Depth,
3464 ) -> fidl::Result<()> {
3465 encoder.debug_check_bounds::<ProviderGetTypefaceRequest>(offset);
3466 self.0.encode(encoder, offset + 0, depth)?;
3470 Ok(())
3471 }
3472 }
3473
3474 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3475 for ProviderGetTypefaceRequest
3476 {
3477 #[inline(always)]
3478 fn new_empty() -> Self {
3479 Self { request: fidl::new_empty!(TypefaceRequest, D) }
3480 }
3481
3482 #[inline]
3483 unsafe fn decode(
3484 &mut self,
3485 decoder: &mut fidl::encoding::Decoder<'_, D>,
3486 offset: usize,
3487 _depth: fidl::encoding::Depth,
3488 ) -> fidl::Result<()> {
3489 decoder.debug_check_bounds::<Self>(offset);
3490 fidl::decode!(TypefaceRequest, D, &mut self.request, decoder, offset + 0, _depth)?;
3492 Ok(())
3493 }
3494 }
3495
3496 impl fidl::encoding::ResourceTypeMarker for ProviderGetTypefaceResponse {
3497 type Borrowed<'a> = &'a mut Self;
3498 fn take_or_borrow<'a>(
3499 value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
3500 ) -> Self::Borrowed<'a> {
3501 value
3502 }
3503 }
3504
3505 unsafe impl fidl::encoding::TypeMarker for ProviderGetTypefaceResponse {
3506 type Owned = Self;
3507
3508 #[inline(always)]
3509 fn inline_align(_context: fidl::encoding::Context) -> usize {
3510 8
3511 }
3512
3513 #[inline(always)]
3514 fn inline_size(_context: fidl::encoding::Context) -> usize {
3515 16
3516 }
3517 }
3518
3519 unsafe impl
3520 fidl::encoding::Encode<
3521 ProviderGetTypefaceResponse,
3522 fidl::encoding::DefaultFuchsiaResourceDialect,
3523 > for &mut ProviderGetTypefaceResponse
3524 {
3525 #[inline]
3526 unsafe fn encode(
3527 self,
3528 encoder: &mut fidl::encoding::Encoder<
3529 '_,
3530 fidl::encoding::DefaultFuchsiaResourceDialect,
3531 >,
3532 offset: usize,
3533 _depth: fidl::encoding::Depth,
3534 ) -> fidl::Result<()> {
3535 encoder.debug_check_bounds::<ProviderGetTypefaceResponse>(offset);
3536 fidl::encoding::Encode::<
3538 ProviderGetTypefaceResponse,
3539 fidl::encoding::DefaultFuchsiaResourceDialect,
3540 >::encode(
3541 (<TypefaceResponse as fidl::encoding::ResourceTypeMarker>::take_or_borrow(
3542 &mut self.response,
3543 ),),
3544 encoder,
3545 offset,
3546 _depth,
3547 )
3548 }
3549 }
3550 unsafe impl<
3551 T0: fidl::encoding::Encode<TypefaceResponse, fidl::encoding::DefaultFuchsiaResourceDialect>,
3552 >
3553 fidl::encoding::Encode<
3554 ProviderGetTypefaceResponse,
3555 fidl::encoding::DefaultFuchsiaResourceDialect,
3556 > for (T0,)
3557 {
3558 #[inline]
3559 unsafe fn encode(
3560 self,
3561 encoder: &mut fidl::encoding::Encoder<
3562 '_,
3563 fidl::encoding::DefaultFuchsiaResourceDialect,
3564 >,
3565 offset: usize,
3566 depth: fidl::encoding::Depth,
3567 ) -> fidl::Result<()> {
3568 encoder.debug_check_bounds::<ProviderGetTypefaceResponse>(offset);
3569 self.0.encode(encoder, offset + 0, depth)?;
3573 Ok(())
3574 }
3575 }
3576
3577 impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
3578 for ProviderGetTypefaceResponse
3579 {
3580 #[inline(always)]
3581 fn new_empty() -> Self {
3582 Self {
3583 response: fidl::new_empty!(
3584 TypefaceResponse,
3585 fidl::encoding::DefaultFuchsiaResourceDialect
3586 ),
3587 }
3588 }
3589
3590 #[inline]
3591 unsafe fn decode(
3592 &mut self,
3593 decoder: &mut fidl::encoding::Decoder<
3594 '_,
3595 fidl::encoding::DefaultFuchsiaResourceDialect,
3596 >,
3597 offset: usize,
3598 _depth: fidl::encoding::Depth,
3599 ) -> fidl::Result<()> {
3600 decoder.debug_check_bounds::<Self>(offset);
3601 fidl::decode!(
3603 TypefaceResponse,
3604 fidl::encoding::DefaultFuchsiaResourceDialect,
3605 &mut self.response,
3606 decoder,
3607 offset + 0,
3608 _depth
3609 )?;
3610 Ok(())
3611 }
3612 }
3613
3614 impl fidl::encoding::ResourceTypeMarker for ProviderRegisterFontSetEventListenerRequest {
3615 type Borrowed<'a> = &'a mut Self;
3616 fn take_or_borrow<'a>(
3617 value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
3618 ) -> Self::Borrowed<'a> {
3619 value
3620 }
3621 }
3622
3623 unsafe impl fidl::encoding::TypeMarker for ProviderRegisterFontSetEventListenerRequest {
3624 type Owned = Self;
3625
3626 #[inline(always)]
3627 fn inline_align(_context: fidl::encoding::Context) -> usize {
3628 4
3629 }
3630
3631 #[inline(always)]
3632 fn inline_size(_context: fidl::encoding::Context) -> usize {
3633 4
3634 }
3635 }
3636
3637 unsafe impl
3638 fidl::encoding::Encode<
3639 ProviderRegisterFontSetEventListenerRequest,
3640 fidl::encoding::DefaultFuchsiaResourceDialect,
3641 > for &mut ProviderRegisterFontSetEventListenerRequest
3642 {
3643 #[inline]
3644 unsafe fn encode(
3645 self,
3646 encoder: &mut fidl::encoding::Encoder<
3647 '_,
3648 fidl::encoding::DefaultFuchsiaResourceDialect,
3649 >,
3650 offset: usize,
3651 _depth: fidl::encoding::Depth,
3652 ) -> fidl::Result<()> {
3653 encoder.debug_check_bounds::<ProviderRegisterFontSetEventListenerRequest>(offset);
3654 fidl::encoding::Encode::<
3656 ProviderRegisterFontSetEventListenerRequest,
3657 fidl::encoding::DefaultFuchsiaResourceDialect,
3658 >::encode(
3659 (
3660 <fidl::encoding::Endpoint<
3661 fidl::endpoints::ClientEnd<FontSetEventListenerMarker>,
3662 > as fidl::encoding::ResourceTypeMarker>::take_or_borrow(
3663 &mut self.listener
3664 ),
3665 ),
3666 encoder,
3667 offset,
3668 _depth,
3669 )
3670 }
3671 }
3672 unsafe impl<
3673 T0: fidl::encoding::Encode<
3674 fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<FontSetEventListenerMarker>>,
3675 fidl::encoding::DefaultFuchsiaResourceDialect,
3676 >,
3677 >
3678 fidl::encoding::Encode<
3679 ProviderRegisterFontSetEventListenerRequest,
3680 fidl::encoding::DefaultFuchsiaResourceDialect,
3681 > for (T0,)
3682 {
3683 #[inline]
3684 unsafe fn encode(
3685 self,
3686 encoder: &mut fidl::encoding::Encoder<
3687 '_,
3688 fidl::encoding::DefaultFuchsiaResourceDialect,
3689 >,
3690 offset: usize,
3691 depth: fidl::encoding::Depth,
3692 ) -> fidl::Result<()> {
3693 encoder.debug_check_bounds::<ProviderRegisterFontSetEventListenerRequest>(offset);
3694 self.0.encode(encoder, offset + 0, depth)?;
3698 Ok(())
3699 }
3700 }
3701
3702 impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
3703 for ProviderRegisterFontSetEventListenerRequest
3704 {
3705 #[inline(always)]
3706 fn new_empty() -> Self {
3707 Self {
3708 listener: fidl::new_empty!(
3709 fidl::encoding::Endpoint<
3710 fidl::endpoints::ClientEnd<FontSetEventListenerMarker>,
3711 >,
3712 fidl::encoding::DefaultFuchsiaResourceDialect
3713 ),
3714 }
3715 }
3716
3717 #[inline]
3718 unsafe fn decode(
3719 &mut self,
3720 decoder: &mut fidl::encoding::Decoder<
3721 '_,
3722 fidl::encoding::DefaultFuchsiaResourceDialect,
3723 >,
3724 offset: usize,
3725 _depth: fidl::encoding::Depth,
3726 ) -> fidl::Result<()> {
3727 decoder.debug_check_bounds::<Self>(offset);
3728 fidl::decode!(
3730 fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<FontSetEventListenerMarker>>,
3731 fidl::encoding::DefaultFuchsiaResourceDialect,
3732 &mut self.listener,
3733 decoder,
3734 offset + 0,
3735 _depth
3736 )?;
3737 Ok(())
3738 }
3739 }
3740
3741 impl fidl::encoding::ValueTypeMarker for Request {
3742 type Borrowed<'a> = &'a Self;
3743 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3744 value
3745 }
3746 }
3747
3748 unsafe impl fidl::encoding::TypeMarker for Request {
3749 type Owned = Self;
3750
3751 #[inline(always)]
3752 fn inline_align(_context: fidl::encoding::Context) -> usize {
3753 8
3754 }
3755
3756 #[inline(always)]
3757 fn inline_size(_context: fidl::encoding::Context) -> usize {
3758 64
3759 }
3760 }
3761
3762 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Request, D> for &Request {
3763 #[inline]
3764 unsafe fn encode(
3765 self,
3766 encoder: &mut fidl::encoding::Encoder<'_, D>,
3767 offset: usize,
3768 _depth: fidl::encoding::Depth,
3769 ) -> fidl::Result<()> {
3770 encoder.debug_check_bounds::<Request>(offset);
3771 fidl::encoding::Encode::<Request, D>::encode(
3773 (
3774 <fidl::encoding::Optional<fidl::encoding::BoundedString<128>> as fidl::encoding::ValueTypeMarker>::borrow(&self.family),
3775 <u32 as fidl::encoding::ValueTypeMarker>::borrow(&self.weight),
3776 <u32 as fidl::encoding::ValueTypeMarker>::borrow(&self.width),
3777 <Slant as fidl::encoding::ValueTypeMarker>::borrow(&self.slant),
3778 <fidl::encoding::Optional<fidl::encoding::Vector<fidl::encoding::BoundedString<35>, 8>> as fidl::encoding::ValueTypeMarker>::borrow(&self.language),
3779 <u32 as fidl::encoding::ValueTypeMarker>::borrow(&self.character),
3780 <FallbackGroup as fidl::encoding::ValueTypeMarker>::borrow(&self.fallback_group),
3781 <u32 as fidl::encoding::ValueTypeMarker>::borrow(&self.flags),
3782 ),
3783 encoder, offset, _depth
3784 )
3785 }
3786 }
3787 unsafe impl<
3788 D: fidl::encoding::ResourceDialect,
3789 T0: fidl::encoding::Encode<fidl::encoding::Optional<fidl::encoding::BoundedString<128>>, D>,
3790 T1: fidl::encoding::Encode<u32, D>,
3791 T2: fidl::encoding::Encode<u32, D>,
3792 T3: fidl::encoding::Encode<Slant, D>,
3793 T4: fidl::encoding::Encode<
3794 fidl::encoding::Optional<
3795 fidl::encoding::Vector<fidl::encoding::BoundedString<35>, 8>,
3796 >,
3797 D,
3798 >,
3799 T5: fidl::encoding::Encode<u32, D>,
3800 T6: fidl::encoding::Encode<FallbackGroup, D>,
3801 T7: fidl::encoding::Encode<u32, D>,
3802 > fidl::encoding::Encode<Request, D> for (T0, T1, T2, T3, T4, T5, T6, T7)
3803 {
3804 #[inline]
3805 unsafe fn encode(
3806 self,
3807 encoder: &mut fidl::encoding::Encoder<'_, D>,
3808 offset: usize,
3809 depth: fidl::encoding::Depth,
3810 ) -> fidl::Result<()> {
3811 encoder.debug_check_bounds::<Request>(offset);
3812 unsafe {
3815 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(24);
3816 (ptr as *mut u64).write_unaligned(0);
3817 }
3818 unsafe {
3819 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(56);
3820 (ptr as *mut u64).write_unaligned(0);
3821 }
3822 self.0.encode(encoder, offset + 0, depth)?;
3824 self.1.encode(encoder, offset + 16, depth)?;
3825 self.2.encode(encoder, offset + 20, depth)?;
3826 self.3.encode(encoder, offset + 24, depth)?;
3827 self.4.encode(encoder, offset + 32, depth)?;
3828 self.5.encode(encoder, offset + 48, depth)?;
3829 self.6.encode(encoder, offset + 52, depth)?;
3830 self.7.encode(encoder, offset + 56, depth)?;
3831 Ok(())
3832 }
3833 }
3834
3835 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Request {
3836 #[inline(always)]
3837 fn new_empty() -> Self {
3838 Self {
3839 family: fidl::new_empty!(
3840 fidl::encoding::Optional<fidl::encoding::BoundedString<128>>,
3841 D
3842 ),
3843 weight: fidl::new_empty!(u32, D),
3844 width: fidl::new_empty!(u32, D),
3845 slant: fidl::new_empty!(Slant, D),
3846 language: fidl::new_empty!(
3847 fidl::encoding::Optional<
3848 fidl::encoding::Vector<fidl::encoding::BoundedString<35>, 8>,
3849 >,
3850 D
3851 ),
3852 character: fidl::new_empty!(u32, D),
3853 fallback_group: fidl::new_empty!(FallbackGroup, D),
3854 flags: fidl::new_empty!(u32, D),
3855 }
3856 }
3857
3858 #[inline]
3859 unsafe fn decode(
3860 &mut self,
3861 decoder: &mut fidl::encoding::Decoder<'_, D>,
3862 offset: usize,
3863 _depth: fidl::encoding::Depth,
3864 ) -> fidl::Result<()> {
3865 decoder.debug_check_bounds::<Self>(offset);
3866 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(24) };
3868 let padval = unsafe { (ptr as *const u64).read_unaligned() };
3869 let mask = 0xffffffff00000000u64;
3870 let maskedval = padval & mask;
3871 if maskedval != 0 {
3872 return Err(fidl::Error::NonZeroPadding {
3873 padding_start: offset + 24 + ((mask as u64).trailing_zeros() / 8) as usize,
3874 });
3875 }
3876 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(56) };
3877 let padval = unsafe { (ptr as *const u64).read_unaligned() };
3878 let mask = 0xffffffff00000000u64;
3879 let maskedval = padval & mask;
3880 if maskedval != 0 {
3881 return Err(fidl::Error::NonZeroPadding {
3882 padding_start: offset + 56 + ((mask as u64).trailing_zeros() / 8) as usize,
3883 });
3884 }
3885 fidl::decode!(
3886 fidl::encoding::Optional<fidl::encoding::BoundedString<128>>,
3887 D,
3888 &mut self.family,
3889 decoder,
3890 offset + 0,
3891 _depth
3892 )?;
3893 fidl::decode!(u32, D, &mut self.weight, decoder, offset + 16, _depth)?;
3894 fidl::decode!(u32, D, &mut self.width, decoder, offset + 20, _depth)?;
3895 fidl::decode!(Slant, D, &mut self.slant, decoder, offset + 24, _depth)?;
3896 fidl::decode!(
3897 fidl::encoding::Optional<
3898 fidl::encoding::Vector<fidl::encoding::BoundedString<35>, 8>,
3899 >,
3900 D,
3901 &mut self.language,
3902 decoder,
3903 offset + 32,
3904 _depth
3905 )?;
3906 fidl::decode!(u32, D, &mut self.character, decoder, offset + 48, _depth)?;
3907 fidl::decode!(
3908 FallbackGroup,
3909 D,
3910 &mut self.fallback_group,
3911 decoder,
3912 offset + 52,
3913 _depth
3914 )?;
3915 fidl::decode!(u32, D, &mut self.flags, decoder, offset + 56, _depth)?;
3916 Ok(())
3917 }
3918 }
3919
3920 impl fidl::encoding::ResourceTypeMarker for Response {
3921 type Borrowed<'a> = &'a mut Self;
3922 fn take_or_borrow<'a>(
3923 value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
3924 ) -> Self::Borrowed<'a> {
3925 value
3926 }
3927 }
3928
3929 unsafe impl fidl::encoding::TypeMarker for Response {
3930 type Owned = Self;
3931
3932 #[inline(always)]
3933 fn inline_align(_context: fidl::encoding::Context) -> usize {
3934 8
3935 }
3936
3937 #[inline(always)]
3938 fn inline_size(_context: fidl::encoding::Context) -> usize {
3939 24
3940 }
3941 }
3942
3943 unsafe impl fidl::encoding::Encode<Response, fidl::encoding::DefaultFuchsiaResourceDialect>
3944 for &mut Response
3945 {
3946 #[inline]
3947 unsafe fn encode(
3948 self,
3949 encoder: &mut fidl::encoding::Encoder<
3950 '_,
3951 fidl::encoding::DefaultFuchsiaResourceDialect,
3952 >,
3953 offset: usize,
3954 _depth: fidl::encoding::Depth,
3955 ) -> fidl::Result<()> {
3956 encoder.debug_check_bounds::<Response>(offset);
3957 fidl::encoding::Encode::<Response, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
3959 (
3960 <fidl_fuchsia_mem::Buffer as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.buffer),
3961 <u32 as fidl::encoding::ValueTypeMarker>::borrow(&self.buffer_id),
3962 <u32 as fidl::encoding::ValueTypeMarker>::borrow(&self.font_index),
3963 ),
3964 encoder, offset, _depth
3965 )
3966 }
3967 }
3968 unsafe impl<
3969 T0: fidl::encoding::Encode<
3970 fidl_fuchsia_mem::Buffer,
3971 fidl::encoding::DefaultFuchsiaResourceDialect,
3972 >,
3973 T1: fidl::encoding::Encode<u32, fidl::encoding::DefaultFuchsiaResourceDialect>,
3974 T2: fidl::encoding::Encode<u32, fidl::encoding::DefaultFuchsiaResourceDialect>,
3975 > fidl::encoding::Encode<Response, fidl::encoding::DefaultFuchsiaResourceDialect>
3976 for (T0, T1, T2)
3977 {
3978 #[inline]
3979 unsafe fn encode(
3980 self,
3981 encoder: &mut fidl::encoding::Encoder<
3982 '_,
3983 fidl::encoding::DefaultFuchsiaResourceDialect,
3984 >,
3985 offset: usize,
3986 depth: fidl::encoding::Depth,
3987 ) -> fidl::Result<()> {
3988 encoder.debug_check_bounds::<Response>(offset);
3989 self.0.encode(encoder, offset + 0, depth)?;
3993 self.1.encode(encoder, offset + 16, depth)?;
3994 self.2.encode(encoder, offset + 20, depth)?;
3995 Ok(())
3996 }
3997 }
3998
3999 impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect> for Response {
4000 #[inline(always)]
4001 fn new_empty() -> Self {
4002 Self {
4003 buffer: fidl::new_empty!(
4004 fidl_fuchsia_mem::Buffer,
4005 fidl::encoding::DefaultFuchsiaResourceDialect
4006 ),
4007 buffer_id: fidl::new_empty!(u32, fidl::encoding::DefaultFuchsiaResourceDialect),
4008 font_index: fidl::new_empty!(u32, fidl::encoding::DefaultFuchsiaResourceDialect),
4009 }
4010 }
4011
4012 #[inline]
4013 unsafe fn decode(
4014 &mut self,
4015 decoder: &mut fidl::encoding::Decoder<
4016 '_,
4017 fidl::encoding::DefaultFuchsiaResourceDialect,
4018 >,
4019 offset: usize,
4020 _depth: fidl::encoding::Depth,
4021 ) -> fidl::Result<()> {
4022 decoder.debug_check_bounds::<Self>(offset);
4023 fidl::decode!(
4025 fidl_fuchsia_mem::Buffer,
4026 fidl::encoding::DefaultFuchsiaResourceDialect,
4027 &mut self.buffer,
4028 decoder,
4029 offset + 0,
4030 _depth
4031 )?;
4032 fidl::decode!(
4033 u32,
4034 fidl::encoding::DefaultFuchsiaResourceDialect,
4035 &mut self.buffer_id,
4036 decoder,
4037 offset + 16,
4038 _depth
4039 )?;
4040 fidl::decode!(
4041 u32,
4042 fidl::encoding::DefaultFuchsiaResourceDialect,
4043 &mut self.font_index,
4044 decoder,
4045 offset + 20,
4046 _depth
4047 )?;
4048 Ok(())
4049 }
4050 }
4051
4052 impl fidl::encoding::ValueTypeMarker for Style {
4053 type Borrowed<'a> = &'a Self;
4054 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4055 value
4056 }
4057 }
4058
4059 unsafe impl fidl::encoding::TypeMarker for Style {
4060 type Owned = Self;
4061
4062 #[inline(always)]
4063 fn inline_align(_context: fidl::encoding::Context) -> usize {
4064 4
4065 }
4066
4067 #[inline(always)]
4068 fn inline_size(_context: fidl::encoding::Context) -> usize {
4069 12
4070 }
4071 }
4072
4073 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Style, D> for &Style {
4074 #[inline]
4075 unsafe fn encode(
4076 self,
4077 encoder: &mut fidl::encoding::Encoder<'_, D>,
4078 offset: usize,
4079 _depth: fidl::encoding::Depth,
4080 ) -> fidl::Result<()> {
4081 encoder.debug_check_bounds::<Style>(offset);
4082 fidl::encoding::Encode::<Style, D>::encode(
4084 (
4085 <u32 as fidl::encoding::ValueTypeMarker>::borrow(&self.weight),
4086 <u32 as fidl::encoding::ValueTypeMarker>::borrow(&self.width),
4087 <Slant as fidl::encoding::ValueTypeMarker>::borrow(&self.slant),
4088 ),
4089 encoder,
4090 offset,
4091 _depth,
4092 )
4093 }
4094 }
4095 unsafe impl<
4096 D: fidl::encoding::ResourceDialect,
4097 T0: fidl::encoding::Encode<u32, D>,
4098 T1: fidl::encoding::Encode<u32, D>,
4099 T2: fidl::encoding::Encode<Slant, D>,
4100 > fidl::encoding::Encode<Style, D> for (T0, T1, T2)
4101 {
4102 #[inline]
4103 unsafe fn encode(
4104 self,
4105 encoder: &mut fidl::encoding::Encoder<'_, D>,
4106 offset: usize,
4107 depth: fidl::encoding::Depth,
4108 ) -> fidl::Result<()> {
4109 encoder.debug_check_bounds::<Style>(offset);
4110 self.0.encode(encoder, offset + 0, depth)?;
4114 self.1.encode(encoder, offset + 4, depth)?;
4115 self.2.encode(encoder, offset + 8, depth)?;
4116 Ok(())
4117 }
4118 }
4119
4120 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Style {
4121 #[inline(always)]
4122 fn new_empty() -> Self {
4123 Self {
4124 weight: fidl::new_empty!(u32, D),
4125 width: fidl::new_empty!(u32, D),
4126 slant: fidl::new_empty!(Slant, D),
4127 }
4128 }
4129
4130 #[inline]
4131 unsafe fn decode(
4132 &mut self,
4133 decoder: &mut fidl::encoding::Decoder<'_, D>,
4134 offset: usize,
4135 _depth: fidl::encoding::Depth,
4136 ) -> fidl::Result<()> {
4137 decoder.debug_check_bounds::<Self>(offset);
4138 fidl::decode!(u32, D, &mut self.weight, decoder, offset + 0, _depth)?;
4140 fidl::decode!(u32, D, &mut self.width, decoder, offset + 4, _depth)?;
4141 fidl::decode!(Slant, D, &mut self.slant, decoder, offset + 8, _depth)?;
4142 Ok(())
4143 }
4144 }
4145
4146 impl FontFamilyInfo {
4147 #[inline(always)]
4148 fn max_ordinal_present(&self) -> u64 {
4149 if let Some(_) = self.styles {
4150 return 2;
4151 }
4152 if let Some(_) = self.name {
4153 return 1;
4154 }
4155 0
4156 }
4157 }
4158
4159 impl fidl::encoding::ValueTypeMarker for FontFamilyInfo {
4160 type Borrowed<'a> = &'a Self;
4161 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4162 value
4163 }
4164 }
4165
4166 unsafe impl fidl::encoding::TypeMarker for FontFamilyInfo {
4167 type Owned = Self;
4168
4169 #[inline(always)]
4170 fn inline_align(_context: fidl::encoding::Context) -> usize {
4171 8
4172 }
4173
4174 #[inline(always)]
4175 fn inline_size(_context: fidl::encoding::Context) -> usize {
4176 16
4177 }
4178 }
4179
4180 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<FontFamilyInfo, D>
4181 for &FontFamilyInfo
4182 {
4183 unsafe fn encode(
4184 self,
4185 encoder: &mut fidl::encoding::Encoder<'_, D>,
4186 offset: usize,
4187 mut depth: fidl::encoding::Depth,
4188 ) -> fidl::Result<()> {
4189 encoder.debug_check_bounds::<FontFamilyInfo>(offset);
4190 let max_ordinal: u64 = self.max_ordinal_present();
4192 encoder.write_num(max_ordinal, offset);
4193 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
4194 if max_ordinal == 0 {
4196 return Ok(());
4197 }
4198 depth.increment()?;
4199 let envelope_size = 8;
4200 let bytes_len = max_ordinal as usize * envelope_size;
4201 #[allow(unused_variables)]
4202 let offset = encoder.out_of_line_offset(bytes_len);
4203 let mut _prev_end_offset: usize = 0;
4204 if 1 > max_ordinal {
4205 return Ok(());
4206 }
4207
4208 let cur_offset: usize = (1 - 1) * envelope_size;
4211
4212 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4214
4215 fidl::encoding::encode_in_envelope_optional::<FamilyName, D>(
4220 self.name.as_ref().map(<FamilyName as fidl::encoding::ValueTypeMarker>::borrow),
4221 encoder,
4222 offset + cur_offset,
4223 depth,
4224 )?;
4225
4226 _prev_end_offset = cur_offset + envelope_size;
4227 if 2 > max_ordinal {
4228 return Ok(());
4229 }
4230
4231 let cur_offset: usize = (2 - 1) * envelope_size;
4234
4235 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4237
4238 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<Style2, 300>, D>(
4243 self.styles.as_ref().map(<fidl::encoding::Vector<Style2, 300> as fidl::encoding::ValueTypeMarker>::borrow),
4244 encoder, offset + cur_offset, depth
4245 )?;
4246
4247 _prev_end_offset = cur_offset + envelope_size;
4248
4249 Ok(())
4250 }
4251 }
4252
4253 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for FontFamilyInfo {
4254 #[inline(always)]
4255 fn new_empty() -> Self {
4256 Self::default()
4257 }
4258
4259 unsafe fn decode(
4260 &mut self,
4261 decoder: &mut fidl::encoding::Decoder<'_, D>,
4262 offset: usize,
4263 mut depth: fidl::encoding::Depth,
4264 ) -> fidl::Result<()> {
4265 decoder.debug_check_bounds::<Self>(offset);
4266 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
4267 None => return Err(fidl::Error::NotNullable),
4268 Some(len) => len,
4269 };
4270 if len == 0 {
4272 return Ok(());
4273 };
4274 depth.increment()?;
4275 let envelope_size = 8;
4276 let bytes_len = len * envelope_size;
4277 let offset = decoder.out_of_line_offset(bytes_len)?;
4278 let mut _next_ordinal_to_read = 0;
4280 let mut next_offset = offset;
4281 let end_offset = offset + bytes_len;
4282 _next_ordinal_to_read += 1;
4283 if next_offset >= end_offset {
4284 return Ok(());
4285 }
4286
4287 while _next_ordinal_to_read < 1 {
4289 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4290 _next_ordinal_to_read += 1;
4291 next_offset += envelope_size;
4292 }
4293
4294 let next_out_of_line = decoder.next_out_of_line();
4295 let handles_before = decoder.remaining_handles();
4296 if let Some((inlined, num_bytes, num_handles)) =
4297 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4298 {
4299 let member_inline_size =
4300 <FamilyName as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4301 if inlined != (member_inline_size <= 4) {
4302 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4303 }
4304 let inner_offset;
4305 let mut inner_depth = depth.clone();
4306 if inlined {
4307 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4308 inner_offset = next_offset;
4309 } else {
4310 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4311 inner_depth.increment()?;
4312 }
4313 let val_ref = self.name.get_or_insert_with(|| fidl::new_empty!(FamilyName, D));
4314 fidl::decode!(FamilyName, D, val_ref, decoder, inner_offset, inner_depth)?;
4315 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4316 {
4317 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4318 }
4319 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4320 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4321 }
4322 }
4323
4324 next_offset += envelope_size;
4325 _next_ordinal_to_read += 1;
4326 if next_offset >= end_offset {
4327 return Ok(());
4328 }
4329
4330 while _next_ordinal_to_read < 2 {
4332 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4333 _next_ordinal_to_read += 1;
4334 next_offset += envelope_size;
4335 }
4336
4337 let next_out_of_line = decoder.next_out_of_line();
4338 let handles_before = decoder.remaining_handles();
4339 if let Some((inlined, num_bytes, num_handles)) =
4340 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4341 {
4342 let member_inline_size = <fidl::encoding::Vector<Style2, 300> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4343 if inlined != (member_inline_size <= 4) {
4344 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4345 }
4346 let inner_offset;
4347 let mut inner_depth = depth.clone();
4348 if inlined {
4349 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4350 inner_offset = next_offset;
4351 } else {
4352 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4353 inner_depth.increment()?;
4354 }
4355 let val_ref = self.styles.get_or_insert_with(
4356 || fidl::new_empty!(fidl::encoding::Vector<Style2, 300>, D),
4357 );
4358 fidl::decode!(fidl::encoding::Vector<Style2, 300>, D, val_ref, decoder, inner_offset, inner_depth)?;
4359 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4360 {
4361 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4362 }
4363 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4364 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4365 }
4366 }
4367
4368 next_offset += envelope_size;
4369
4370 while next_offset < end_offset {
4372 _next_ordinal_to_read += 1;
4373 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4374 next_offset += envelope_size;
4375 }
4376
4377 Ok(())
4378 }
4379 }
4380
4381 impl FontSetUpdatedEvent {
4382 #[inline(always)]
4383 fn max_ordinal_present(&self) -> u64 {
4384 0
4385 }
4386 }
4387
4388 impl fidl::encoding::ValueTypeMarker for FontSetUpdatedEvent {
4389 type Borrowed<'a> = &'a Self;
4390 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4391 value
4392 }
4393 }
4394
4395 unsafe impl fidl::encoding::TypeMarker for FontSetUpdatedEvent {
4396 type Owned = Self;
4397
4398 #[inline(always)]
4399 fn inline_align(_context: fidl::encoding::Context) -> usize {
4400 8
4401 }
4402
4403 #[inline(always)]
4404 fn inline_size(_context: fidl::encoding::Context) -> usize {
4405 16
4406 }
4407 }
4408
4409 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<FontSetUpdatedEvent, D>
4410 for &FontSetUpdatedEvent
4411 {
4412 unsafe fn encode(
4413 self,
4414 encoder: &mut fidl::encoding::Encoder<'_, D>,
4415 offset: usize,
4416 mut depth: fidl::encoding::Depth,
4417 ) -> fidl::Result<()> {
4418 encoder.debug_check_bounds::<FontSetUpdatedEvent>(offset);
4419 let max_ordinal: u64 = self.max_ordinal_present();
4421 encoder.write_num(max_ordinal, offset);
4422 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
4423 if max_ordinal == 0 {
4425 return Ok(());
4426 }
4427 depth.increment()?;
4428 let envelope_size = 8;
4429 let bytes_len = max_ordinal as usize * envelope_size;
4430 #[allow(unused_variables)]
4431 let offset = encoder.out_of_line_offset(bytes_len);
4432 let mut _prev_end_offset: usize = 0;
4433
4434 Ok(())
4435 }
4436 }
4437
4438 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for FontSetUpdatedEvent {
4439 #[inline(always)]
4440 fn new_empty() -> Self {
4441 Self::default()
4442 }
4443
4444 unsafe fn decode(
4445 &mut self,
4446 decoder: &mut fidl::encoding::Decoder<'_, D>,
4447 offset: usize,
4448 mut depth: fidl::encoding::Depth,
4449 ) -> fidl::Result<()> {
4450 decoder.debug_check_bounds::<Self>(offset);
4451 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
4452 None => return Err(fidl::Error::NotNullable),
4453 Some(len) => len,
4454 };
4455 if len == 0 {
4457 return Ok(());
4458 };
4459 depth.increment()?;
4460 let envelope_size = 8;
4461 let bytes_len = len * envelope_size;
4462 let offset = decoder.out_of_line_offset(bytes_len)?;
4463 let mut _next_ordinal_to_read = 0;
4465 let mut next_offset = offset;
4466 let end_offset = offset + bytes_len;
4467
4468 while next_offset < end_offset {
4470 _next_ordinal_to_read += 1;
4471 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4472 next_offset += envelope_size;
4473 }
4474
4475 Ok(())
4476 }
4477 }
4478
4479 impl Style2 {
4480 #[inline(always)]
4481 fn max_ordinal_present(&self) -> u64 {
4482 if let Some(_) = self.width {
4483 return 3;
4484 }
4485 if let Some(_) = self.weight {
4486 return 2;
4487 }
4488 if let Some(_) = self.slant {
4489 return 1;
4490 }
4491 0
4492 }
4493 }
4494
4495 impl fidl::encoding::ValueTypeMarker for Style2 {
4496 type Borrowed<'a> = &'a Self;
4497 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4498 value
4499 }
4500 }
4501
4502 unsafe impl fidl::encoding::TypeMarker for Style2 {
4503 type Owned = Self;
4504
4505 #[inline(always)]
4506 fn inline_align(_context: fidl::encoding::Context) -> usize {
4507 8
4508 }
4509
4510 #[inline(always)]
4511 fn inline_size(_context: fidl::encoding::Context) -> usize {
4512 16
4513 }
4514 }
4515
4516 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Style2, D> for &Style2 {
4517 unsafe fn encode(
4518 self,
4519 encoder: &mut fidl::encoding::Encoder<'_, D>,
4520 offset: usize,
4521 mut depth: fidl::encoding::Depth,
4522 ) -> fidl::Result<()> {
4523 encoder.debug_check_bounds::<Style2>(offset);
4524 let max_ordinal: u64 = self.max_ordinal_present();
4526 encoder.write_num(max_ordinal, offset);
4527 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
4528 if max_ordinal == 0 {
4530 return Ok(());
4531 }
4532 depth.increment()?;
4533 let envelope_size = 8;
4534 let bytes_len = max_ordinal as usize * envelope_size;
4535 #[allow(unused_variables)]
4536 let offset = encoder.out_of_line_offset(bytes_len);
4537 let mut _prev_end_offset: usize = 0;
4538 if 1 > max_ordinal {
4539 return Ok(());
4540 }
4541
4542 let cur_offset: usize = (1 - 1) * envelope_size;
4545
4546 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4548
4549 fidl::encoding::encode_in_envelope_optional::<Slant, D>(
4554 self.slant.as_ref().map(<Slant as fidl::encoding::ValueTypeMarker>::borrow),
4555 encoder,
4556 offset + cur_offset,
4557 depth,
4558 )?;
4559
4560 _prev_end_offset = cur_offset + envelope_size;
4561 if 2 > max_ordinal {
4562 return Ok(());
4563 }
4564
4565 let cur_offset: usize = (2 - 1) * envelope_size;
4568
4569 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4571
4572 fidl::encoding::encode_in_envelope_optional::<u16, D>(
4577 self.weight.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
4578 encoder,
4579 offset + cur_offset,
4580 depth,
4581 )?;
4582
4583 _prev_end_offset = cur_offset + envelope_size;
4584 if 3 > max_ordinal {
4585 return Ok(());
4586 }
4587
4588 let cur_offset: usize = (3 - 1) * envelope_size;
4591
4592 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4594
4595 fidl::encoding::encode_in_envelope_optional::<Width, D>(
4600 self.width.as_ref().map(<Width as fidl::encoding::ValueTypeMarker>::borrow),
4601 encoder,
4602 offset + cur_offset,
4603 depth,
4604 )?;
4605
4606 _prev_end_offset = cur_offset + envelope_size;
4607
4608 Ok(())
4609 }
4610 }
4611
4612 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Style2 {
4613 #[inline(always)]
4614 fn new_empty() -> Self {
4615 Self::default()
4616 }
4617
4618 unsafe fn decode(
4619 &mut self,
4620 decoder: &mut fidl::encoding::Decoder<'_, D>,
4621 offset: usize,
4622 mut depth: fidl::encoding::Depth,
4623 ) -> fidl::Result<()> {
4624 decoder.debug_check_bounds::<Self>(offset);
4625 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
4626 None => return Err(fidl::Error::NotNullable),
4627 Some(len) => len,
4628 };
4629 if len == 0 {
4631 return Ok(());
4632 };
4633 depth.increment()?;
4634 let envelope_size = 8;
4635 let bytes_len = len * envelope_size;
4636 let offset = decoder.out_of_line_offset(bytes_len)?;
4637 let mut _next_ordinal_to_read = 0;
4639 let mut next_offset = offset;
4640 let end_offset = offset + bytes_len;
4641 _next_ordinal_to_read += 1;
4642 if next_offset >= end_offset {
4643 return Ok(());
4644 }
4645
4646 while _next_ordinal_to_read < 1 {
4648 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4649 _next_ordinal_to_read += 1;
4650 next_offset += envelope_size;
4651 }
4652
4653 let next_out_of_line = decoder.next_out_of_line();
4654 let handles_before = decoder.remaining_handles();
4655 if let Some((inlined, num_bytes, num_handles)) =
4656 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4657 {
4658 let member_inline_size =
4659 <Slant as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4660 if inlined != (member_inline_size <= 4) {
4661 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4662 }
4663 let inner_offset;
4664 let mut inner_depth = depth.clone();
4665 if inlined {
4666 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4667 inner_offset = next_offset;
4668 } else {
4669 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4670 inner_depth.increment()?;
4671 }
4672 let val_ref = self.slant.get_or_insert_with(|| fidl::new_empty!(Slant, D));
4673 fidl::decode!(Slant, D, val_ref, decoder, inner_offset, inner_depth)?;
4674 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4675 {
4676 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4677 }
4678 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4679 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4680 }
4681 }
4682
4683 next_offset += envelope_size;
4684 _next_ordinal_to_read += 1;
4685 if next_offset >= end_offset {
4686 return Ok(());
4687 }
4688
4689 while _next_ordinal_to_read < 2 {
4691 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4692 _next_ordinal_to_read += 1;
4693 next_offset += envelope_size;
4694 }
4695
4696 let next_out_of_line = decoder.next_out_of_line();
4697 let handles_before = decoder.remaining_handles();
4698 if let Some((inlined, num_bytes, num_handles)) =
4699 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4700 {
4701 let member_inline_size =
4702 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4703 if inlined != (member_inline_size <= 4) {
4704 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4705 }
4706 let inner_offset;
4707 let mut inner_depth = depth.clone();
4708 if inlined {
4709 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4710 inner_offset = next_offset;
4711 } else {
4712 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4713 inner_depth.increment()?;
4714 }
4715 let val_ref = self.weight.get_or_insert_with(|| fidl::new_empty!(u16, D));
4716 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
4717 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4718 {
4719 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4720 }
4721 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4722 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4723 }
4724 }
4725
4726 next_offset += envelope_size;
4727 _next_ordinal_to_read += 1;
4728 if next_offset >= end_offset {
4729 return Ok(());
4730 }
4731
4732 while _next_ordinal_to_read < 3 {
4734 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4735 _next_ordinal_to_read += 1;
4736 next_offset += envelope_size;
4737 }
4738
4739 let next_out_of_line = decoder.next_out_of_line();
4740 let handles_before = decoder.remaining_handles();
4741 if let Some((inlined, num_bytes, num_handles)) =
4742 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4743 {
4744 let member_inline_size =
4745 <Width as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4746 if inlined != (member_inline_size <= 4) {
4747 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4748 }
4749 let inner_offset;
4750 let mut inner_depth = depth.clone();
4751 if inlined {
4752 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4753 inner_offset = next_offset;
4754 } else {
4755 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4756 inner_depth.increment()?;
4757 }
4758 let val_ref = self.width.get_or_insert_with(|| fidl::new_empty!(Width, D));
4759 fidl::decode!(Width, D, val_ref, decoder, inner_offset, inner_depth)?;
4760 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4761 {
4762 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4763 }
4764 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4765 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4766 }
4767 }
4768
4769 next_offset += envelope_size;
4770
4771 while next_offset < end_offset {
4773 _next_ordinal_to_read += 1;
4774 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4775 next_offset += envelope_size;
4776 }
4777
4778 Ok(())
4779 }
4780 }
4781
4782 impl TypefaceQuery {
4783 #[inline(always)]
4784 fn max_ordinal_present(&self) -> u64 {
4785 if let Some(_) = self.full_name {
4786 return 7;
4787 }
4788 if let Some(_) = self.postscript_name {
4789 return 6;
4790 }
4791 if let Some(_) = self.fallback_family {
4792 return 5;
4793 }
4794 if let Some(_) = self.code_points {
4795 return 4;
4796 }
4797 if let Some(_) = self.languages {
4798 return 3;
4799 }
4800 if let Some(_) = self.style {
4801 return 2;
4802 }
4803 if let Some(_) = self.family {
4804 return 1;
4805 }
4806 0
4807 }
4808 }
4809
4810 impl fidl::encoding::ValueTypeMarker for TypefaceQuery {
4811 type Borrowed<'a> = &'a Self;
4812 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4813 value
4814 }
4815 }
4816
4817 unsafe impl fidl::encoding::TypeMarker for TypefaceQuery {
4818 type Owned = Self;
4819
4820 #[inline(always)]
4821 fn inline_align(_context: fidl::encoding::Context) -> usize {
4822 8
4823 }
4824
4825 #[inline(always)]
4826 fn inline_size(_context: fidl::encoding::Context) -> usize {
4827 16
4828 }
4829 }
4830
4831 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<TypefaceQuery, D>
4832 for &TypefaceQuery
4833 {
4834 unsafe fn encode(
4835 self,
4836 encoder: &mut fidl::encoding::Encoder<'_, D>,
4837 offset: usize,
4838 mut depth: fidl::encoding::Depth,
4839 ) -> fidl::Result<()> {
4840 encoder.debug_check_bounds::<TypefaceQuery>(offset);
4841 let max_ordinal: u64 = self.max_ordinal_present();
4843 encoder.write_num(max_ordinal, offset);
4844 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
4845 if max_ordinal == 0 {
4847 return Ok(());
4848 }
4849 depth.increment()?;
4850 let envelope_size = 8;
4851 let bytes_len = max_ordinal as usize * envelope_size;
4852 #[allow(unused_variables)]
4853 let offset = encoder.out_of_line_offset(bytes_len);
4854 let mut _prev_end_offset: usize = 0;
4855 if 1 > max_ordinal {
4856 return Ok(());
4857 }
4858
4859 let cur_offset: usize = (1 - 1) * envelope_size;
4862
4863 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4865
4866 fidl::encoding::encode_in_envelope_optional::<FamilyName, D>(
4871 self.family.as_ref().map(<FamilyName as fidl::encoding::ValueTypeMarker>::borrow),
4872 encoder,
4873 offset + cur_offset,
4874 depth,
4875 )?;
4876
4877 _prev_end_offset = cur_offset + envelope_size;
4878 if 2 > max_ordinal {
4879 return Ok(());
4880 }
4881
4882 let cur_offset: usize = (2 - 1) * envelope_size;
4885
4886 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4888
4889 fidl::encoding::encode_in_envelope_optional::<Style2, D>(
4894 self.style.as_ref().map(<Style2 as fidl::encoding::ValueTypeMarker>::borrow),
4895 encoder,
4896 offset + cur_offset,
4897 depth,
4898 )?;
4899
4900 _prev_end_offset = cur_offset + envelope_size;
4901 if 3 > max_ordinal {
4902 return Ok(());
4903 }
4904
4905 let cur_offset: usize = (3 - 1) * envelope_size;
4908
4909 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4911
4912 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<fidl_fuchsia_intl::LocaleId, 8>, D>(
4917 self.languages.as_ref().map(<fidl::encoding::Vector<fidl_fuchsia_intl::LocaleId, 8> as fidl::encoding::ValueTypeMarker>::borrow),
4918 encoder, offset + cur_offset, depth
4919 )?;
4920
4921 _prev_end_offset = cur_offset + envelope_size;
4922 if 4 > max_ordinal {
4923 return Ok(());
4924 }
4925
4926 let cur_offset: usize = (4 - 1) * envelope_size;
4929
4930 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4932
4933 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u32, 128>, D>(
4938 self.code_points.as_ref().map(
4939 <fidl::encoding::Vector<u32, 128> as fidl::encoding::ValueTypeMarker>::borrow,
4940 ),
4941 encoder,
4942 offset + cur_offset,
4943 depth,
4944 )?;
4945
4946 _prev_end_offset = cur_offset + envelope_size;
4947 if 5 > max_ordinal {
4948 return Ok(());
4949 }
4950
4951 let cur_offset: usize = (5 - 1) * envelope_size;
4954
4955 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4957
4958 fidl::encoding::encode_in_envelope_optional::<GenericFontFamily, D>(
4963 self.fallback_family
4964 .as_ref()
4965 .map(<GenericFontFamily as fidl::encoding::ValueTypeMarker>::borrow),
4966 encoder,
4967 offset + cur_offset,
4968 depth,
4969 )?;
4970
4971 _prev_end_offset = cur_offset + envelope_size;
4972 if 6 > max_ordinal {
4973 return Ok(());
4974 }
4975
4976 let cur_offset: usize = (6 - 1) * envelope_size;
4979
4980 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4982
4983 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<63>, D>(
4988 self.postscript_name.as_ref().map(
4989 <fidl::encoding::BoundedString<63> as fidl::encoding::ValueTypeMarker>::borrow,
4990 ),
4991 encoder,
4992 offset + cur_offset,
4993 depth,
4994 )?;
4995
4996 _prev_end_offset = cur_offset + envelope_size;
4997 if 7 > max_ordinal {
4998 return Ok(());
4999 }
5000
5001 let cur_offset: usize = (7 - 1) * envelope_size;
5004
5005 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5007
5008 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<128>, D>(
5013 self.full_name.as_ref().map(
5014 <fidl::encoding::BoundedString<128> as fidl::encoding::ValueTypeMarker>::borrow,
5015 ),
5016 encoder,
5017 offset + cur_offset,
5018 depth,
5019 )?;
5020
5021 _prev_end_offset = cur_offset + envelope_size;
5022
5023 Ok(())
5024 }
5025 }
5026
5027 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for TypefaceQuery {
5028 #[inline(always)]
5029 fn new_empty() -> Self {
5030 Self::default()
5031 }
5032
5033 unsafe fn decode(
5034 &mut self,
5035 decoder: &mut fidl::encoding::Decoder<'_, D>,
5036 offset: usize,
5037 mut depth: fidl::encoding::Depth,
5038 ) -> fidl::Result<()> {
5039 decoder.debug_check_bounds::<Self>(offset);
5040 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
5041 None => return Err(fidl::Error::NotNullable),
5042 Some(len) => len,
5043 };
5044 if len == 0 {
5046 return Ok(());
5047 };
5048 depth.increment()?;
5049 let envelope_size = 8;
5050 let bytes_len = len * envelope_size;
5051 let offset = decoder.out_of_line_offset(bytes_len)?;
5052 let mut _next_ordinal_to_read = 0;
5054 let mut next_offset = offset;
5055 let end_offset = offset + bytes_len;
5056 _next_ordinal_to_read += 1;
5057 if next_offset >= end_offset {
5058 return Ok(());
5059 }
5060
5061 while _next_ordinal_to_read < 1 {
5063 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5064 _next_ordinal_to_read += 1;
5065 next_offset += envelope_size;
5066 }
5067
5068 let next_out_of_line = decoder.next_out_of_line();
5069 let handles_before = decoder.remaining_handles();
5070 if let Some((inlined, num_bytes, num_handles)) =
5071 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5072 {
5073 let member_inline_size =
5074 <FamilyName as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5075 if inlined != (member_inline_size <= 4) {
5076 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5077 }
5078 let inner_offset;
5079 let mut inner_depth = depth.clone();
5080 if inlined {
5081 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5082 inner_offset = next_offset;
5083 } else {
5084 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5085 inner_depth.increment()?;
5086 }
5087 let val_ref = self.family.get_or_insert_with(|| fidl::new_empty!(FamilyName, D));
5088 fidl::decode!(FamilyName, D, val_ref, decoder, inner_offset, inner_depth)?;
5089 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5090 {
5091 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5092 }
5093 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5094 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5095 }
5096 }
5097
5098 next_offset += envelope_size;
5099 _next_ordinal_to_read += 1;
5100 if next_offset >= end_offset {
5101 return Ok(());
5102 }
5103
5104 while _next_ordinal_to_read < 2 {
5106 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5107 _next_ordinal_to_read += 1;
5108 next_offset += envelope_size;
5109 }
5110
5111 let next_out_of_line = decoder.next_out_of_line();
5112 let handles_before = decoder.remaining_handles();
5113 if let Some((inlined, num_bytes, num_handles)) =
5114 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5115 {
5116 let member_inline_size =
5117 <Style2 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5118 if inlined != (member_inline_size <= 4) {
5119 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5120 }
5121 let inner_offset;
5122 let mut inner_depth = depth.clone();
5123 if inlined {
5124 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5125 inner_offset = next_offset;
5126 } else {
5127 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5128 inner_depth.increment()?;
5129 }
5130 let val_ref = self.style.get_or_insert_with(|| fidl::new_empty!(Style2, D));
5131 fidl::decode!(Style2, D, val_ref, decoder, inner_offset, inner_depth)?;
5132 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5133 {
5134 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5135 }
5136 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5137 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5138 }
5139 }
5140
5141 next_offset += envelope_size;
5142 _next_ordinal_to_read += 1;
5143 if next_offset >= end_offset {
5144 return Ok(());
5145 }
5146
5147 while _next_ordinal_to_read < 3 {
5149 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5150 _next_ordinal_to_read += 1;
5151 next_offset += envelope_size;
5152 }
5153
5154 let next_out_of_line = decoder.next_out_of_line();
5155 let handles_before = decoder.remaining_handles();
5156 if let Some((inlined, num_bytes, num_handles)) =
5157 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5158 {
5159 let member_inline_size = <fidl::encoding::Vector<fidl_fuchsia_intl::LocaleId, 8> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5160 if inlined != (member_inline_size <= 4) {
5161 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5162 }
5163 let inner_offset;
5164 let mut inner_depth = depth.clone();
5165 if inlined {
5166 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5167 inner_offset = next_offset;
5168 } else {
5169 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5170 inner_depth.increment()?;
5171 }
5172 let val_ref = self.languages.get_or_insert_with(
5173 || fidl::new_empty!(fidl::encoding::Vector<fidl_fuchsia_intl::LocaleId, 8>, D),
5174 );
5175 fidl::decode!(fidl::encoding::Vector<fidl_fuchsia_intl::LocaleId, 8>, D, val_ref, decoder, inner_offset, inner_depth)?;
5176 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5177 {
5178 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5179 }
5180 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5181 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5182 }
5183 }
5184
5185 next_offset += envelope_size;
5186 _next_ordinal_to_read += 1;
5187 if next_offset >= end_offset {
5188 return Ok(());
5189 }
5190
5191 while _next_ordinal_to_read < 4 {
5193 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5194 _next_ordinal_to_read += 1;
5195 next_offset += envelope_size;
5196 }
5197
5198 let next_out_of_line = decoder.next_out_of_line();
5199 let handles_before = decoder.remaining_handles();
5200 if let Some((inlined, num_bytes, num_handles)) =
5201 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5202 {
5203 let member_inline_size =
5204 <fidl::encoding::Vector<u32, 128> as fidl::encoding::TypeMarker>::inline_size(
5205 decoder.context,
5206 );
5207 if inlined != (member_inline_size <= 4) {
5208 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5209 }
5210 let inner_offset;
5211 let mut inner_depth = depth.clone();
5212 if inlined {
5213 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5214 inner_offset = next_offset;
5215 } else {
5216 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5217 inner_depth.increment()?;
5218 }
5219 let val_ref = self
5220 .code_points
5221 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u32, 128>, D));
5222 fidl::decode!(fidl::encoding::Vector<u32, 128>, D, val_ref, decoder, inner_offset, inner_depth)?;
5223 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5224 {
5225 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5226 }
5227 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5228 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5229 }
5230 }
5231
5232 next_offset += envelope_size;
5233 _next_ordinal_to_read += 1;
5234 if next_offset >= end_offset {
5235 return Ok(());
5236 }
5237
5238 while _next_ordinal_to_read < 5 {
5240 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5241 _next_ordinal_to_read += 1;
5242 next_offset += envelope_size;
5243 }
5244
5245 let next_out_of_line = decoder.next_out_of_line();
5246 let handles_before = decoder.remaining_handles();
5247 if let Some((inlined, num_bytes, num_handles)) =
5248 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5249 {
5250 let member_inline_size =
5251 <GenericFontFamily as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5252 if inlined != (member_inline_size <= 4) {
5253 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5254 }
5255 let inner_offset;
5256 let mut inner_depth = depth.clone();
5257 if inlined {
5258 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5259 inner_offset = next_offset;
5260 } else {
5261 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5262 inner_depth.increment()?;
5263 }
5264 let val_ref = self
5265 .fallback_family
5266 .get_or_insert_with(|| fidl::new_empty!(GenericFontFamily, D));
5267 fidl::decode!(GenericFontFamily, D, val_ref, decoder, inner_offset, inner_depth)?;
5268 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5269 {
5270 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5271 }
5272 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5273 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5274 }
5275 }
5276
5277 next_offset += envelope_size;
5278 _next_ordinal_to_read += 1;
5279 if next_offset >= end_offset {
5280 return Ok(());
5281 }
5282
5283 while _next_ordinal_to_read < 6 {
5285 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5286 _next_ordinal_to_read += 1;
5287 next_offset += envelope_size;
5288 }
5289
5290 let next_out_of_line = decoder.next_out_of_line();
5291 let handles_before = decoder.remaining_handles();
5292 if let Some((inlined, num_bytes, num_handles)) =
5293 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5294 {
5295 let member_inline_size =
5296 <fidl::encoding::BoundedString<63> as fidl::encoding::TypeMarker>::inline_size(
5297 decoder.context,
5298 );
5299 if inlined != (member_inline_size <= 4) {
5300 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5301 }
5302 let inner_offset;
5303 let mut inner_depth = depth.clone();
5304 if inlined {
5305 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5306 inner_offset = next_offset;
5307 } else {
5308 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5309 inner_depth.increment()?;
5310 }
5311 let val_ref = self
5312 .postscript_name
5313 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<63>, D));
5314 fidl::decode!(
5315 fidl::encoding::BoundedString<63>,
5316 D,
5317 val_ref,
5318 decoder,
5319 inner_offset,
5320 inner_depth
5321 )?;
5322 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5323 {
5324 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5325 }
5326 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5327 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5328 }
5329 }
5330
5331 next_offset += envelope_size;
5332 _next_ordinal_to_read += 1;
5333 if next_offset >= end_offset {
5334 return Ok(());
5335 }
5336
5337 while _next_ordinal_to_read < 7 {
5339 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5340 _next_ordinal_to_read += 1;
5341 next_offset += envelope_size;
5342 }
5343
5344 let next_out_of_line = decoder.next_out_of_line();
5345 let handles_before = decoder.remaining_handles();
5346 if let Some((inlined, num_bytes, num_handles)) =
5347 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5348 {
5349 let member_inline_size =
5350 <fidl::encoding::BoundedString<128> as fidl::encoding::TypeMarker>::inline_size(
5351 decoder.context,
5352 );
5353 if inlined != (member_inline_size <= 4) {
5354 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5355 }
5356 let inner_offset;
5357 let mut inner_depth = depth.clone();
5358 if inlined {
5359 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5360 inner_offset = next_offset;
5361 } else {
5362 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5363 inner_depth.increment()?;
5364 }
5365 let val_ref = self
5366 .full_name
5367 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<128>, D));
5368 fidl::decode!(
5369 fidl::encoding::BoundedString<128>,
5370 D,
5371 val_ref,
5372 decoder,
5373 inner_offset,
5374 inner_depth
5375 )?;
5376 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5377 {
5378 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5379 }
5380 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5381 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5382 }
5383 }
5384
5385 next_offset += envelope_size;
5386
5387 while next_offset < end_offset {
5389 _next_ordinal_to_read += 1;
5390 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5391 next_offset += envelope_size;
5392 }
5393
5394 Ok(())
5395 }
5396 }
5397
5398 impl TypefaceRequest {
5399 #[inline(always)]
5400 fn max_ordinal_present(&self) -> u64 {
5401 if let Some(_) = self.cache_miss_policy {
5402 return 3;
5403 }
5404 if let Some(_) = self.flags {
5405 return 2;
5406 }
5407 if let Some(_) = self.query {
5408 return 1;
5409 }
5410 0
5411 }
5412 }
5413
5414 impl fidl::encoding::ValueTypeMarker for TypefaceRequest {
5415 type Borrowed<'a> = &'a Self;
5416 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5417 value
5418 }
5419 }
5420
5421 unsafe impl fidl::encoding::TypeMarker for TypefaceRequest {
5422 type Owned = Self;
5423
5424 #[inline(always)]
5425 fn inline_align(_context: fidl::encoding::Context) -> usize {
5426 8
5427 }
5428
5429 #[inline(always)]
5430 fn inline_size(_context: fidl::encoding::Context) -> usize {
5431 16
5432 }
5433 }
5434
5435 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<TypefaceRequest, D>
5436 for &TypefaceRequest
5437 {
5438 unsafe fn encode(
5439 self,
5440 encoder: &mut fidl::encoding::Encoder<'_, D>,
5441 offset: usize,
5442 mut depth: fidl::encoding::Depth,
5443 ) -> fidl::Result<()> {
5444 encoder.debug_check_bounds::<TypefaceRequest>(offset);
5445 let max_ordinal: u64 = self.max_ordinal_present();
5447 encoder.write_num(max_ordinal, offset);
5448 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
5449 if max_ordinal == 0 {
5451 return Ok(());
5452 }
5453 depth.increment()?;
5454 let envelope_size = 8;
5455 let bytes_len = max_ordinal as usize * envelope_size;
5456 #[allow(unused_variables)]
5457 let offset = encoder.out_of_line_offset(bytes_len);
5458 let mut _prev_end_offset: usize = 0;
5459 if 1 > max_ordinal {
5460 return Ok(());
5461 }
5462
5463 let cur_offset: usize = (1 - 1) * envelope_size;
5466
5467 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5469
5470 fidl::encoding::encode_in_envelope_optional::<TypefaceQuery, D>(
5475 self.query.as_ref().map(<TypefaceQuery as fidl::encoding::ValueTypeMarker>::borrow),
5476 encoder,
5477 offset + cur_offset,
5478 depth,
5479 )?;
5480
5481 _prev_end_offset = cur_offset + envelope_size;
5482 if 2 > max_ordinal {
5483 return Ok(());
5484 }
5485
5486 let cur_offset: usize = (2 - 1) * envelope_size;
5489
5490 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5492
5493 fidl::encoding::encode_in_envelope_optional::<TypefaceRequestFlags, D>(
5498 self.flags
5499 .as_ref()
5500 .map(<TypefaceRequestFlags as fidl::encoding::ValueTypeMarker>::borrow),
5501 encoder,
5502 offset + cur_offset,
5503 depth,
5504 )?;
5505
5506 _prev_end_offset = cur_offset + envelope_size;
5507 if 3 > max_ordinal {
5508 return Ok(());
5509 }
5510
5511 let cur_offset: usize = (3 - 1) * envelope_size;
5514
5515 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5517
5518 fidl::encoding::encode_in_envelope_optional::<CacheMissPolicy, D>(
5523 self.cache_miss_policy
5524 .as_ref()
5525 .map(<CacheMissPolicy as fidl::encoding::ValueTypeMarker>::borrow),
5526 encoder,
5527 offset + cur_offset,
5528 depth,
5529 )?;
5530
5531 _prev_end_offset = cur_offset + envelope_size;
5532
5533 Ok(())
5534 }
5535 }
5536
5537 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for TypefaceRequest {
5538 #[inline(always)]
5539 fn new_empty() -> Self {
5540 Self::default()
5541 }
5542
5543 unsafe fn decode(
5544 &mut self,
5545 decoder: &mut fidl::encoding::Decoder<'_, D>,
5546 offset: usize,
5547 mut depth: fidl::encoding::Depth,
5548 ) -> fidl::Result<()> {
5549 decoder.debug_check_bounds::<Self>(offset);
5550 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
5551 None => return Err(fidl::Error::NotNullable),
5552 Some(len) => len,
5553 };
5554 if len == 0 {
5556 return Ok(());
5557 };
5558 depth.increment()?;
5559 let envelope_size = 8;
5560 let bytes_len = len * envelope_size;
5561 let offset = decoder.out_of_line_offset(bytes_len)?;
5562 let mut _next_ordinal_to_read = 0;
5564 let mut next_offset = offset;
5565 let end_offset = offset + bytes_len;
5566 _next_ordinal_to_read += 1;
5567 if next_offset >= end_offset {
5568 return Ok(());
5569 }
5570
5571 while _next_ordinal_to_read < 1 {
5573 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5574 _next_ordinal_to_read += 1;
5575 next_offset += envelope_size;
5576 }
5577
5578 let next_out_of_line = decoder.next_out_of_line();
5579 let handles_before = decoder.remaining_handles();
5580 if let Some((inlined, num_bytes, num_handles)) =
5581 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5582 {
5583 let member_inline_size =
5584 <TypefaceQuery as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5585 if inlined != (member_inline_size <= 4) {
5586 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5587 }
5588 let inner_offset;
5589 let mut inner_depth = depth.clone();
5590 if inlined {
5591 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5592 inner_offset = next_offset;
5593 } else {
5594 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5595 inner_depth.increment()?;
5596 }
5597 let val_ref = self.query.get_or_insert_with(|| fidl::new_empty!(TypefaceQuery, D));
5598 fidl::decode!(TypefaceQuery, D, val_ref, decoder, inner_offset, inner_depth)?;
5599 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5600 {
5601 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5602 }
5603 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5604 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5605 }
5606 }
5607
5608 next_offset += envelope_size;
5609 _next_ordinal_to_read += 1;
5610 if next_offset >= end_offset {
5611 return Ok(());
5612 }
5613
5614 while _next_ordinal_to_read < 2 {
5616 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5617 _next_ordinal_to_read += 1;
5618 next_offset += envelope_size;
5619 }
5620
5621 let next_out_of_line = decoder.next_out_of_line();
5622 let handles_before = decoder.remaining_handles();
5623 if let Some((inlined, num_bytes, num_handles)) =
5624 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5625 {
5626 let member_inline_size =
5627 <TypefaceRequestFlags as fidl::encoding::TypeMarker>::inline_size(
5628 decoder.context,
5629 );
5630 if inlined != (member_inline_size <= 4) {
5631 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5632 }
5633 let inner_offset;
5634 let mut inner_depth = depth.clone();
5635 if inlined {
5636 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5637 inner_offset = next_offset;
5638 } else {
5639 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5640 inner_depth.increment()?;
5641 }
5642 let val_ref =
5643 self.flags.get_or_insert_with(|| fidl::new_empty!(TypefaceRequestFlags, D));
5644 fidl::decode!(
5645 TypefaceRequestFlags,
5646 D,
5647 val_ref,
5648 decoder,
5649 inner_offset,
5650 inner_depth
5651 )?;
5652 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5653 {
5654 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5655 }
5656 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5657 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5658 }
5659 }
5660
5661 next_offset += envelope_size;
5662 _next_ordinal_to_read += 1;
5663 if next_offset >= end_offset {
5664 return Ok(());
5665 }
5666
5667 while _next_ordinal_to_read < 3 {
5669 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5670 _next_ordinal_to_read += 1;
5671 next_offset += envelope_size;
5672 }
5673
5674 let next_out_of_line = decoder.next_out_of_line();
5675 let handles_before = decoder.remaining_handles();
5676 if let Some((inlined, num_bytes, num_handles)) =
5677 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5678 {
5679 let member_inline_size =
5680 <CacheMissPolicy as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5681 if inlined != (member_inline_size <= 4) {
5682 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5683 }
5684 let inner_offset;
5685 let mut inner_depth = depth.clone();
5686 if inlined {
5687 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5688 inner_offset = next_offset;
5689 } else {
5690 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5691 inner_depth.increment()?;
5692 }
5693 let val_ref = self
5694 .cache_miss_policy
5695 .get_or_insert_with(|| fidl::new_empty!(CacheMissPolicy, D));
5696 fidl::decode!(CacheMissPolicy, D, val_ref, decoder, inner_offset, inner_depth)?;
5697 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5698 {
5699 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5700 }
5701 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5702 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5703 }
5704 }
5705
5706 next_offset += envelope_size;
5707
5708 while next_offset < end_offset {
5710 _next_ordinal_to_read += 1;
5711 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5712 next_offset += envelope_size;
5713 }
5714
5715 Ok(())
5716 }
5717 }
5718
5719 impl TypefaceResponse {
5720 #[inline(always)]
5721 fn max_ordinal_present(&self) -> u64 {
5722 if let Some(_) = self.font_index {
5723 return 3;
5724 }
5725 if let Some(_) = self.buffer_id {
5726 return 2;
5727 }
5728 if let Some(_) = self.buffer {
5729 return 1;
5730 }
5731 0
5732 }
5733 }
5734
5735 impl fidl::encoding::ResourceTypeMarker for TypefaceResponse {
5736 type Borrowed<'a> = &'a mut Self;
5737 fn take_or_borrow<'a>(
5738 value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
5739 ) -> Self::Borrowed<'a> {
5740 value
5741 }
5742 }
5743
5744 unsafe impl fidl::encoding::TypeMarker for TypefaceResponse {
5745 type Owned = Self;
5746
5747 #[inline(always)]
5748 fn inline_align(_context: fidl::encoding::Context) -> usize {
5749 8
5750 }
5751
5752 #[inline(always)]
5753 fn inline_size(_context: fidl::encoding::Context) -> usize {
5754 16
5755 }
5756 }
5757
5758 unsafe impl
5759 fidl::encoding::Encode<TypefaceResponse, fidl::encoding::DefaultFuchsiaResourceDialect>
5760 for &mut TypefaceResponse
5761 {
5762 unsafe fn encode(
5763 self,
5764 encoder: &mut fidl::encoding::Encoder<
5765 '_,
5766 fidl::encoding::DefaultFuchsiaResourceDialect,
5767 >,
5768 offset: usize,
5769 mut depth: fidl::encoding::Depth,
5770 ) -> fidl::Result<()> {
5771 encoder.debug_check_bounds::<TypefaceResponse>(offset);
5772 let max_ordinal: u64 = self.max_ordinal_present();
5774 encoder.write_num(max_ordinal, offset);
5775 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
5776 if max_ordinal == 0 {
5778 return Ok(());
5779 }
5780 depth.increment()?;
5781 let envelope_size = 8;
5782 let bytes_len = max_ordinal as usize * envelope_size;
5783 #[allow(unused_variables)]
5784 let offset = encoder.out_of_line_offset(bytes_len);
5785 let mut _prev_end_offset: usize = 0;
5786 if 1 > max_ordinal {
5787 return Ok(());
5788 }
5789
5790 let cur_offset: usize = (1 - 1) * envelope_size;
5793
5794 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5796
5797 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_mem::Buffer, fidl::encoding::DefaultFuchsiaResourceDialect>(
5802 self.buffer.as_mut().map(<fidl_fuchsia_mem::Buffer as fidl::encoding::ResourceTypeMarker>::take_or_borrow),
5803 encoder, offset + cur_offset, depth
5804 )?;
5805
5806 _prev_end_offset = cur_offset + envelope_size;
5807 if 2 > max_ordinal {
5808 return Ok(());
5809 }
5810
5811 let cur_offset: usize = (2 - 1) * envelope_size;
5814
5815 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5817
5818 fidl::encoding::encode_in_envelope_optional::<
5823 u32,
5824 fidl::encoding::DefaultFuchsiaResourceDialect,
5825 >(
5826 self.buffer_id.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
5827 encoder,
5828 offset + cur_offset,
5829 depth,
5830 )?;
5831
5832 _prev_end_offset = cur_offset + envelope_size;
5833 if 3 > max_ordinal {
5834 return Ok(());
5835 }
5836
5837 let cur_offset: usize = (3 - 1) * envelope_size;
5840
5841 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5843
5844 fidl::encoding::encode_in_envelope_optional::<
5849 u32,
5850 fidl::encoding::DefaultFuchsiaResourceDialect,
5851 >(
5852 self.font_index.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
5853 encoder,
5854 offset + cur_offset,
5855 depth,
5856 )?;
5857
5858 _prev_end_offset = cur_offset + envelope_size;
5859
5860 Ok(())
5861 }
5862 }
5863
5864 impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
5865 for TypefaceResponse
5866 {
5867 #[inline(always)]
5868 fn new_empty() -> Self {
5869 Self::default()
5870 }
5871
5872 unsafe fn decode(
5873 &mut self,
5874 decoder: &mut fidl::encoding::Decoder<
5875 '_,
5876 fidl::encoding::DefaultFuchsiaResourceDialect,
5877 >,
5878 offset: usize,
5879 mut depth: fidl::encoding::Depth,
5880 ) -> fidl::Result<()> {
5881 decoder.debug_check_bounds::<Self>(offset);
5882 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
5883 None => return Err(fidl::Error::NotNullable),
5884 Some(len) => len,
5885 };
5886 if len == 0 {
5888 return Ok(());
5889 };
5890 depth.increment()?;
5891 let envelope_size = 8;
5892 let bytes_len = len * envelope_size;
5893 let offset = decoder.out_of_line_offset(bytes_len)?;
5894 let mut _next_ordinal_to_read = 0;
5896 let mut next_offset = offset;
5897 let end_offset = offset + bytes_len;
5898 _next_ordinal_to_read += 1;
5899 if next_offset >= end_offset {
5900 return Ok(());
5901 }
5902
5903 while _next_ordinal_to_read < 1 {
5905 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5906 _next_ordinal_to_read += 1;
5907 next_offset += envelope_size;
5908 }
5909
5910 let next_out_of_line = decoder.next_out_of_line();
5911 let handles_before = decoder.remaining_handles();
5912 if let Some((inlined, num_bytes, num_handles)) =
5913 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5914 {
5915 let member_inline_size =
5916 <fidl_fuchsia_mem::Buffer as fidl::encoding::TypeMarker>::inline_size(
5917 decoder.context,
5918 );
5919 if inlined != (member_inline_size <= 4) {
5920 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5921 }
5922 let inner_offset;
5923 let mut inner_depth = depth.clone();
5924 if inlined {
5925 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5926 inner_offset = next_offset;
5927 } else {
5928 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5929 inner_depth.increment()?;
5930 }
5931 let val_ref = self.buffer.get_or_insert_with(|| {
5932 fidl::new_empty!(
5933 fidl_fuchsia_mem::Buffer,
5934 fidl::encoding::DefaultFuchsiaResourceDialect
5935 )
5936 });
5937 fidl::decode!(
5938 fidl_fuchsia_mem::Buffer,
5939 fidl::encoding::DefaultFuchsiaResourceDialect,
5940 val_ref,
5941 decoder,
5942 inner_offset,
5943 inner_depth
5944 )?;
5945 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5946 {
5947 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5948 }
5949 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5950 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5951 }
5952 }
5953
5954 next_offset += envelope_size;
5955 _next_ordinal_to_read += 1;
5956 if next_offset >= end_offset {
5957 return Ok(());
5958 }
5959
5960 while _next_ordinal_to_read < 2 {
5962 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5963 _next_ordinal_to_read += 1;
5964 next_offset += envelope_size;
5965 }
5966
5967 let next_out_of_line = decoder.next_out_of_line();
5968 let handles_before = decoder.remaining_handles();
5969 if let Some((inlined, num_bytes, num_handles)) =
5970 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5971 {
5972 let member_inline_size =
5973 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5974 if inlined != (member_inline_size <= 4) {
5975 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5976 }
5977 let inner_offset;
5978 let mut inner_depth = depth.clone();
5979 if inlined {
5980 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5981 inner_offset = next_offset;
5982 } else {
5983 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5984 inner_depth.increment()?;
5985 }
5986 let val_ref = self.buffer_id.get_or_insert_with(|| {
5987 fidl::new_empty!(u32, fidl::encoding::DefaultFuchsiaResourceDialect)
5988 });
5989 fidl::decode!(
5990 u32,
5991 fidl::encoding::DefaultFuchsiaResourceDialect,
5992 val_ref,
5993 decoder,
5994 inner_offset,
5995 inner_depth
5996 )?;
5997 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5998 {
5999 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6000 }
6001 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6002 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6003 }
6004 }
6005
6006 next_offset += envelope_size;
6007 _next_ordinal_to_read += 1;
6008 if next_offset >= end_offset {
6009 return Ok(());
6010 }
6011
6012 while _next_ordinal_to_read < 3 {
6014 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6015 _next_ordinal_to_read += 1;
6016 next_offset += envelope_size;
6017 }
6018
6019 let next_out_of_line = decoder.next_out_of_line();
6020 let handles_before = decoder.remaining_handles();
6021 if let Some((inlined, num_bytes, num_handles)) =
6022 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6023 {
6024 let member_inline_size =
6025 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6026 if inlined != (member_inline_size <= 4) {
6027 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6028 }
6029 let inner_offset;
6030 let mut inner_depth = depth.clone();
6031 if inlined {
6032 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6033 inner_offset = next_offset;
6034 } else {
6035 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6036 inner_depth.increment()?;
6037 }
6038 let val_ref = self.font_index.get_or_insert_with(|| {
6039 fidl::new_empty!(u32, fidl::encoding::DefaultFuchsiaResourceDialect)
6040 });
6041 fidl::decode!(
6042 u32,
6043 fidl::encoding::DefaultFuchsiaResourceDialect,
6044 val_ref,
6045 decoder,
6046 inner_offset,
6047 inner_depth
6048 )?;
6049 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6050 {
6051 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6052 }
6053 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6054 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6055 }
6056 }
6057
6058 next_offset += envelope_size;
6059
6060 while next_offset < end_offset {
6062 _next_ordinal_to_read += 1;
6063 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6064 next_offset += envelope_size;
6065 }
6066
6067 Ok(())
6068 }
6069 }
6070}