1#[cfg(feature = "v1_50")]
4use crate::ffi;
5#[cfg(feature = "v1_50")]
6use glib::{prelude::*, translate::*, Quark};
7
8#[cfg(feature = "v1_50")]
10#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
11#[non_exhaustive]
12#[doc(alias = "PangoLayoutDeserializeError")]
13pub enum LayoutDeserializeError {
14 #[doc(alias = "PANGO_LAYOUT_DESERIALIZE_INVALID")]
16 Invalid,
17 #[doc(alias = "PANGO_LAYOUT_DESERIALIZE_INVALID_VALUE")]
20 InvalidValue,
21 #[doc(alias = "PANGO_LAYOUT_DESERIALIZE_MISSING_VALUE")]
24 MissingValue,
25 #[doc(hidden)]
26 __Unknown(i32),
27}
28
29#[cfg(feature = "v1_50")]
30#[cfg_attr(docsrs, doc(cfg(feature = "v1_50")))]
31#[doc(hidden)]
32impl IntoGlib for LayoutDeserializeError {
33 type GlibType = ffi::PangoLayoutDeserializeError;
34
35 #[inline]
36 fn into_glib(self) -> ffi::PangoLayoutDeserializeError {
37 match self {
38 Self::Invalid => ffi::PANGO_LAYOUT_DESERIALIZE_INVALID,
39 Self::InvalidValue => ffi::PANGO_LAYOUT_DESERIALIZE_INVALID_VALUE,
40 Self::MissingValue => ffi::PANGO_LAYOUT_DESERIALIZE_MISSING_VALUE,
41 Self::__Unknown(value) => value,
42 }
43 }
44}
45
46#[cfg(feature = "v1_50")]
47#[cfg_attr(docsrs, doc(cfg(feature = "v1_50")))]
48#[doc(hidden)]
49impl FromGlib<ffi::PangoLayoutDeserializeError> for LayoutDeserializeError {
50 #[inline]
51 unsafe fn from_glib(value: ffi::PangoLayoutDeserializeError) -> Self {
52 match value {
53 ffi::PANGO_LAYOUT_DESERIALIZE_INVALID => Self::Invalid,
54 ffi::PANGO_LAYOUT_DESERIALIZE_INVALID_VALUE => Self::InvalidValue,
55 ffi::PANGO_LAYOUT_DESERIALIZE_MISSING_VALUE => Self::MissingValue,
56 value => Self::__Unknown(value),
57 }
58 }
59}
60
61#[cfg(feature = "v1_50")]
62#[cfg_attr(docsrs, doc(cfg(feature = "v1_50")))]
63impl ErrorDomain for LayoutDeserializeError {
64 #[doc(alias = "pango_layout_deserialize_error_quark")]
66 fn domain() -> Quark {
67 unsafe { from_glib(ffi::pango_layout_deserialize_error_quark()) }
68 }
69
70 fn code(self) -> i32 {
71 self.into_glib()
72 }
73
74 fn from(code: i32) -> Option<Self> {
75 match code {
76 ffi::PANGO_LAYOUT_DESERIALIZE_INVALID => Some(Self::Invalid),
77 ffi::PANGO_LAYOUT_DESERIALIZE_INVALID_VALUE => Some(Self::InvalidValue),
78 ffi::PANGO_LAYOUT_DESERIALIZE_MISSING_VALUE => Some(Self::MissingValue),
79 value => Some(Self::__Unknown(value)),
80 }
81 }
82}
83
84#[cfg(feature = "v1_50")]
85#[cfg_attr(docsrs, doc(cfg(feature = "v1_50")))]
86impl StaticType for LayoutDeserializeError {
87 #[inline]
88 fn static_type() -> glib::Type {
89 unsafe { from_glib(ffi::pango_layout_deserialize_error_get_type()) }
90 }
91}
92
93#[cfg(feature = "v1_50")]
94#[cfg_attr(docsrs, doc(cfg(feature = "v1_50")))]
95impl glib::value::ValueType for LayoutDeserializeError {
96 type Type = Self;
97}
98
99#[cfg(feature = "v1_50")]
100#[cfg_attr(docsrs, doc(cfg(feature = "v1_50")))]
101unsafe impl<'a> glib::value::FromValue<'a> for LayoutDeserializeError {
102 type Checker = glib::value::GenericValueTypeChecker<Self>;
103
104 unsafe fn from_value(value: &'a glib::Value) -> Self {
105 from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
106 }
107}
108
109#[cfg(feature = "v1_50")]
110#[cfg_attr(docsrs, doc(cfg(feature = "v1_50")))]
111impl ToValue for LayoutDeserializeError {
112 fn to_value(&self) -> glib::Value {
113 let mut value = glib::Value::for_value_type::<Self>();
114 unsafe {
115 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
116 }
117 value
118 }
119
120 fn value_type(&self) -> glib::Type {
121 Self::static_type()
122 }
123}
124
125#[cfg(feature = "v1_50")]
126#[cfg_attr(docsrs, doc(cfg(feature = "v1_50")))]
127impl From<LayoutDeserializeError> for glib::Value {
128 #[inline]
129 fn from(v: LayoutDeserializeError) -> Self {
130 v.to_value()
131 }
132}