gsk4/auto/
enums.rs

1// This file was generated by gir (https://github.com/gtk-rs/gir)
2// from gir-files (https://github.com/gtk-rs/gir-files)
3// DO NOT EDIT
4
5use crate::ffi;
6use glib::{prelude::*, translate::*};
7
8#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
9#[non_exhaustive]
10#[doc(alias = "GskBlendMode")]
11pub enum BlendMode {
12    #[doc(alias = "GSK_BLEND_MODE_DEFAULT")]
13    Default,
14    #[doc(alias = "GSK_BLEND_MODE_MULTIPLY")]
15    Multiply,
16    #[doc(alias = "GSK_BLEND_MODE_SCREEN")]
17    Screen,
18    #[doc(alias = "GSK_BLEND_MODE_OVERLAY")]
19    Overlay,
20    #[doc(alias = "GSK_BLEND_MODE_DARKEN")]
21    Darken,
22    #[doc(alias = "GSK_BLEND_MODE_LIGHTEN")]
23    Lighten,
24    #[doc(alias = "GSK_BLEND_MODE_COLOR_DODGE")]
25    ColorDodge,
26    #[doc(alias = "GSK_BLEND_MODE_COLOR_BURN")]
27    ColorBurn,
28    #[doc(alias = "GSK_BLEND_MODE_HARD_LIGHT")]
29    HardLight,
30    #[doc(alias = "GSK_BLEND_MODE_SOFT_LIGHT")]
31    SoftLight,
32    #[doc(alias = "GSK_BLEND_MODE_DIFFERENCE")]
33    Difference,
34    #[doc(alias = "GSK_BLEND_MODE_EXCLUSION")]
35    Exclusion,
36    #[doc(alias = "GSK_BLEND_MODE_COLOR")]
37    Color,
38    #[doc(alias = "GSK_BLEND_MODE_HUE")]
39    Hue,
40    #[doc(alias = "GSK_BLEND_MODE_SATURATION")]
41    Saturation,
42    #[doc(alias = "GSK_BLEND_MODE_LUMINOSITY")]
43    Luminosity,
44    #[doc(hidden)]
45    __Unknown(i32),
46}
47
48#[doc(hidden)]
49impl IntoGlib for BlendMode {
50    type GlibType = ffi::GskBlendMode;
51
52    fn into_glib(self) -> ffi::GskBlendMode {
53        match self {
54            Self::Default => ffi::GSK_BLEND_MODE_DEFAULT,
55            Self::Multiply => ffi::GSK_BLEND_MODE_MULTIPLY,
56            Self::Screen => ffi::GSK_BLEND_MODE_SCREEN,
57            Self::Overlay => ffi::GSK_BLEND_MODE_OVERLAY,
58            Self::Darken => ffi::GSK_BLEND_MODE_DARKEN,
59            Self::Lighten => ffi::GSK_BLEND_MODE_LIGHTEN,
60            Self::ColorDodge => ffi::GSK_BLEND_MODE_COLOR_DODGE,
61            Self::ColorBurn => ffi::GSK_BLEND_MODE_COLOR_BURN,
62            Self::HardLight => ffi::GSK_BLEND_MODE_HARD_LIGHT,
63            Self::SoftLight => ffi::GSK_BLEND_MODE_SOFT_LIGHT,
64            Self::Difference => ffi::GSK_BLEND_MODE_DIFFERENCE,
65            Self::Exclusion => ffi::GSK_BLEND_MODE_EXCLUSION,
66            Self::Color => ffi::GSK_BLEND_MODE_COLOR,
67            Self::Hue => ffi::GSK_BLEND_MODE_HUE,
68            Self::Saturation => ffi::GSK_BLEND_MODE_SATURATION,
69            Self::Luminosity => ffi::GSK_BLEND_MODE_LUMINOSITY,
70            Self::__Unknown(value) => value,
71        }
72    }
73}
74
75#[doc(hidden)]
76impl FromGlib<ffi::GskBlendMode> for BlendMode {
77    unsafe fn from_glib(value: ffi::GskBlendMode) -> Self {
78        skip_assert_initialized!();
79
80        match value {
81            ffi::GSK_BLEND_MODE_DEFAULT => Self::Default,
82            ffi::GSK_BLEND_MODE_MULTIPLY => Self::Multiply,
83            ffi::GSK_BLEND_MODE_SCREEN => Self::Screen,
84            ffi::GSK_BLEND_MODE_OVERLAY => Self::Overlay,
85            ffi::GSK_BLEND_MODE_DARKEN => Self::Darken,
86            ffi::GSK_BLEND_MODE_LIGHTEN => Self::Lighten,
87            ffi::GSK_BLEND_MODE_COLOR_DODGE => Self::ColorDodge,
88            ffi::GSK_BLEND_MODE_COLOR_BURN => Self::ColorBurn,
89            ffi::GSK_BLEND_MODE_HARD_LIGHT => Self::HardLight,
90            ffi::GSK_BLEND_MODE_SOFT_LIGHT => Self::SoftLight,
91            ffi::GSK_BLEND_MODE_DIFFERENCE => Self::Difference,
92            ffi::GSK_BLEND_MODE_EXCLUSION => Self::Exclusion,
93            ffi::GSK_BLEND_MODE_COLOR => Self::Color,
94            ffi::GSK_BLEND_MODE_HUE => Self::Hue,
95            ffi::GSK_BLEND_MODE_SATURATION => Self::Saturation,
96            ffi::GSK_BLEND_MODE_LUMINOSITY => Self::Luminosity,
97            value => Self::__Unknown(value),
98        }
99    }
100}
101
102impl StaticType for BlendMode {
103    #[inline]
104    #[doc(alias = "gsk_blend_mode_get_type")]
105    fn static_type() -> glib::Type {
106        unsafe { from_glib(ffi::gsk_blend_mode_get_type()) }
107    }
108}
109
110impl glib::HasParamSpec for BlendMode {
111    type ParamSpec = glib::ParamSpecEnum;
112    type SetValue = Self;
113    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
114
115    fn param_spec_builder() -> Self::BuilderFn {
116        Self::ParamSpec::builder_with_default
117    }
118}
119
120impl glib::value::ValueType for BlendMode {
121    type Type = Self;
122}
123
124unsafe impl<'a> glib::value::FromValue<'a> for BlendMode {
125    type Checker = glib::value::GenericValueTypeChecker<Self>;
126
127    #[inline]
128    unsafe fn from_value(value: &'a glib::Value) -> Self {
129        skip_assert_initialized!();
130        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
131    }
132}
133
134impl ToValue for BlendMode {
135    #[inline]
136    fn to_value(&self) -> glib::Value {
137        let mut value = glib::Value::for_value_type::<Self>();
138        unsafe {
139            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
140        }
141        value
142    }
143
144    #[inline]
145    fn value_type(&self) -> glib::Type {
146        Self::static_type()
147    }
148}
149
150impl From<BlendMode> for glib::Value {
151    #[inline]
152    fn from(v: BlendMode) -> Self {
153        skip_assert_initialized!();
154        ToValue::to_value(&v)
155    }
156}
157
158#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
159#[non_exhaustive]
160#[doc(alias = "GskCorner")]
161pub enum Corner {
162    #[doc(alias = "GSK_CORNER_TOP_LEFT")]
163    TopLeft,
164    #[doc(alias = "GSK_CORNER_TOP_RIGHT")]
165    TopRight,
166    #[doc(alias = "GSK_CORNER_BOTTOM_RIGHT")]
167    BottomRight,
168    #[doc(alias = "GSK_CORNER_BOTTOM_LEFT")]
169    BottomLeft,
170    #[doc(hidden)]
171    __Unknown(i32),
172}
173
174#[doc(hidden)]
175impl IntoGlib for Corner {
176    type GlibType = ffi::GskCorner;
177
178    #[inline]
179    fn into_glib(self) -> ffi::GskCorner {
180        match self {
181            Self::TopLeft => ffi::GSK_CORNER_TOP_LEFT,
182            Self::TopRight => ffi::GSK_CORNER_TOP_RIGHT,
183            Self::BottomRight => ffi::GSK_CORNER_BOTTOM_RIGHT,
184            Self::BottomLeft => ffi::GSK_CORNER_BOTTOM_LEFT,
185            Self::__Unknown(value) => value,
186        }
187    }
188}
189
190#[doc(hidden)]
191impl FromGlib<ffi::GskCorner> for Corner {
192    #[inline]
193    unsafe fn from_glib(value: ffi::GskCorner) -> Self {
194        skip_assert_initialized!();
195
196        match value {
197            ffi::GSK_CORNER_TOP_LEFT => Self::TopLeft,
198            ffi::GSK_CORNER_TOP_RIGHT => Self::TopRight,
199            ffi::GSK_CORNER_BOTTOM_RIGHT => Self::BottomRight,
200            ffi::GSK_CORNER_BOTTOM_LEFT => Self::BottomLeft,
201            value => Self::__Unknown(value),
202        }
203    }
204}
205
206impl StaticType for Corner {
207    #[inline]
208    #[doc(alias = "gsk_corner_get_type")]
209    fn static_type() -> glib::Type {
210        unsafe { from_glib(ffi::gsk_corner_get_type()) }
211    }
212}
213
214impl glib::HasParamSpec for Corner {
215    type ParamSpec = glib::ParamSpecEnum;
216    type SetValue = Self;
217    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
218
219    fn param_spec_builder() -> Self::BuilderFn {
220        Self::ParamSpec::builder_with_default
221    }
222}
223
224impl glib::value::ValueType for Corner {
225    type Type = Self;
226}
227
228unsafe impl<'a> glib::value::FromValue<'a> for Corner {
229    type Checker = glib::value::GenericValueTypeChecker<Self>;
230
231    #[inline]
232    unsafe fn from_value(value: &'a glib::Value) -> Self {
233        skip_assert_initialized!();
234        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
235    }
236}
237
238impl ToValue for Corner {
239    #[inline]
240    fn to_value(&self) -> glib::Value {
241        let mut value = glib::Value::for_value_type::<Self>();
242        unsafe {
243            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
244        }
245        value
246    }
247
248    #[inline]
249    fn value_type(&self) -> glib::Type {
250        Self::static_type()
251    }
252}
253
254impl From<Corner> for glib::Value {
255    #[inline]
256    fn from(v: Corner) -> Self {
257        skip_assert_initialized!();
258        ToValue::to_value(&v)
259    }
260}
261
262#[cfg(feature = "v4_14")]
263#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
264#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
265#[non_exhaustive]
266#[doc(alias = "GskFillRule")]
267pub enum FillRule {
268    #[doc(alias = "GSK_FILL_RULE_WINDING")]
269    Winding,
270    #[doc(alias = "GSK_FILL_RULE_EVEN_ODD")]
271    EvenOdd,
272    #[doc(hidden)]
273    __Unknown(i32),
274}
275
276#[cfg(feature = "v4_14")]
277#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
278#[doc(hidden)]
279impl IntoGlib for FillRule {
280    type GlibType = ffi::GskFillRule;
281
282    #[inline]
283    fn into_glib(self) -> ffi::GskFillRule {
284        match self {
285            Self::Winding => ffi::GSK_FILL_RULE_WINDING,
286            Self::EvenOdd => ffi::GSK_FILL_RULE_EVEN_ODD,
287            Self::__Unknown(value) => value,
288        }
289    }
290}
291
292#[cfg(feature = "v4_14")]
293#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
294#[doc(hidden)]
295impl FromGlib<ffi::GskFillRule> for FillRule {
296    #[inline]
297    unsafe fn from_glib(value: ffi::GskFillRule) -> Self {
298        skip_assert_initialized!();
299
300        match value {
301            ffi::GSK_FILL_RULE_WINDING => Self::Winding,
302            ffi::GSK_FILL_RULE_EVEN_ODD => Self::EvenOdd,
303            value => Self::__Unknown(value),
304        }
305    }
306}
307
308#[cfg(feature = "v4_14")]
309#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
310impl StaticType for FillRule {
311    #[inline]
312    #[doc(alias = "gsk_fill_rule_get_type")]
313    fn static_type() -> glib::Type {
314        unsafe { from_glib(ffi::gsk_fill_rule_get_type()) }
315    }
316}
317
318#[cfg(feature = "v4_14")]
319#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
320impl glib::HasParamSpec for FillRule {
321    type ParamSpec = glib::ParamSpecEnum;
322    type SetValue = Self;
323    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
324
325    fn param_spec_builder() -> Self::BuilderFn {
326        Self::ParamSpec::builder_with_default
327    }
328}
329
330#[cfg(feature = "v4_14")]
331#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
332impl glib::value::ValueType for FillRule {
333    type Type = Self;
334}
335
336#[cfg(feature = "v4_14")]
337#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
338unsafe impl<'a> glib::value::FromValue<'a> for FillRule {
339    type Checker = glib::value::GenericValueTypeChecker<Self>;
340
341    #[inline]
342    unsafe fn from_value(value: &'a glib::Value) -> Self {
343        skip_assert_initialized!();
344        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
345    }
346}
347
348#[cfg(feature = "v4_14")]
349#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
350impl ToValue for FillRule {
351    #[inline]
352    fn to_value(&self) -> glib::Value {
353        let mut value = glib::Value::for_value_type::<Self>();
354        unsafe {
355            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
356        }
357        value
358    }
359
360    #[inline]
361    fn value_type(&self) -> glib::Type {
362        Self::static_type()
363    }
364}
365
366#[cfg(feature = "v4_14")]
367#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
368impl From<FillRule> for glib::Value {
369    #[inline]
370    fn from(v: FillRule) -> Self {
371        skip_assert_initialized!();
372        ToValue::to_value(&v)
373    }
374}
375
376#[cfg_attr(feature = "v4_16", deprecated = "Since 4.16")]
377#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
378#[non_exhaustive]
379#[doc(alias = "GskGLUniformType")]
380pub enum GLUniformType {
381    #[doc(alias = "GSK_GL_UNIFORM_TYPE_NONE")]
382    None,
383    #[doc(alias = "GSK_GL_UNIFORM_TYPE_FLOAT")]
384    Float,
385    #[doc(alias = "GSK_GL_UNIFORM_TYPE_INT")]
386    Int,
387    #[doc(alias = "GSK_GL_UNIFORM_TYPE_UINT")]
388    Uint,
389    #[doc(alias = "GSK_GL_UNIFORM_TYPE_BOOL")]
390    Bool,
391    #[doc(alias = "GSK_GL_UNIFORM_TYPE_VEC2")]
392    Vec2,
393    #[doc(alias = "GSK_GL_UNIFORM_TYPE_VEC3")]
394    Vec3,
395    #[doc(alias = "GSK_GL_UNIFORM_TYPE_VEC4")]
396    Vec4,
397    #[doc(hidden)]
398    __Unknown(i32),
399}
400
401#[allow(deprecated)]
402#[doc(hidden)]
403impl IntoGlib for GLUniformType {
404    type GlibType = ffi::GskGLUniformType;
405
406    #[inline]
407    fn into_glib(self) -> ffi::GskGLUniformType {
408        match self {
409            Self::None => ffi::GSK_GL_UNIFORM_TYPE_NONE,
410            Self::Float => ffi::GSK_GL_UNIFORM_TYPE_FLOAT,
411            Self::Int => ffi::GSK_GL_UNIFORM_TYPE_INT,
412            Self::Uint => ffi::GSK_GL_UNIFORM_TYPE_UINT,
413            Self::Bool => ffi::GSK_GL_UNIFORM_TYPE_BOOL,
414            Self::Vec2 => ffi::GSK_GL_UNIFORM_TYPE_VEC2,
415            Self::Vec3 => ffi::GSK_GL_UNIFORM_TYPE_VEC3,
416            Self::Vec4 => ffi::GSK_GL_UNIFORM_TYPE_VEC4,
417            Self::__Unknown(value) => value,
418        }
419    }
420}
421
422#[allow(deprecated)]
423#[doc(hidden)]
424impl FromGlib<ffi::GskGLUniformType> for GLUniformType {
425    #[inline]
426    unsafe fn from_glib(value: ffi::GskGLUniformType) -> Self {
427        skip_assert_initialized!();
428
429        match value {
430            ffi::GSK_GL_UNIFORM_TYPE_NONE => Self::None,
431            ffi::GSK_GL_UNIFORM_TYPE_FLOAT => Self::Float,
432            ffi::GSK_GL_UNIFORM_TYPE_INT => Self::Int,
433            ffi::GSK_GL_UNIFORM_TYPE_UINT => Self::Uint,
434            ffi::GSK_GL_UNIFORM_TYPE_BOOL => Self::Bool,
435            ffi::GSK_GL_UNIFORM_TYPE_VEC2 => Self::Vec2,
436            ffi::GSK_GL_UNIFORM_TYPE_VEC3 => Self::Vec3,
437            ffi::GSK_GL_UNIFORM_TYPE_VEC4 => Self::Vec4,
438            value => Self::__Unknown(value),
439        }
440    }
441}
442
443#[allow(deprecated)]
444impl StaticType for GLUniformType {
445    #[inline]
446    #[doc(alias = "gsk_gl_uniform_type_get_type")]
447    fn static_type() -> glib::Type {
448        unsafe { from_glib(ffi::gsk_gl_uniform_type_get_type()) }
449    }
450}
451
452#[allow(deprecated)]
453impl glib::HasParamSpec for GLUniformType {
454    type ParamSpec = glib::ParamSpecEnum;
455    type SetValue = Self;
456    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
457
458    fn param_spec_builder() -> Self::BuilderFn {
459        Self::ParamSpec::builder_with_default
460    }
461}
462
463#[allow(deprecated)]
464impl glib::value::ValueType for GLUniformType {
465    type Type = Self;
466}
467
468#[allow(deprecated)]
469unsafe impl<'a> glib::value::FromValue<'a> for GLUniformType {
470    type Checker = glib::value::GenericValueTypeChecker<Self>;
471
472    #[inline]
473    unsafe fn from_value(value: &'a glib::Value) -> Self {
474        skip_assert_initialized!();
475        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
476    }
477}
478
479#[allow(deprecated)]
480impl ToValue for GLUniformType {
481    #[inline]
482    fn to_value(&self) -> glib::Value {
483        let mut value = glib::Value::for_value_type::<Self>();
484        unsafe {
485            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
486        }
487        value
488    }
489
490    #[inline]
491    fn value_type(&self) -> glib::Type {
492        Self::static_type()
493    }
494}
495
496#[allow(deprecated)]
497impl From<GLUniformType> for glib::Value {
498    #[inline]
499    fn from(v: GLUniformType) -> Self {
500        skip_assert_initialized!();
501        ToValue::to_value(&v)
502    }
503}
504
505#[cfg(feature = "v4_14")]
506#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
507#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
508#[non_exhaustive]
509#[doc(alias = "GskLineCap")]
510pub enum LineCap {
511    #[doc(alias = "GSK_LINE_CAP_BUTT")]
512    Butt,
513    #[doc(alias = "GSK_LINE_CAP_ROUND")]
514    Round,
515    #[doc(alias = "GSK_LINE_CAP_SQUARE")]
516    Square,
517    #[doc(hidden)]
518    __Unknown(i32),
519}
520
521#[cfg(feature = "v4_14")]
522#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
523#[doc(hidden)]
524impl IntoGlib for LineCap {
525    type GlibType = ffi::GskLineCap;
526
527    #[inline]
528    fn into_glib(self) -> ffi::GskLineCap {
529        match self {
530            Self::Butt => ffi::GSK_LINE_CAP_BUTT,
531            Self::Round => ffi::GSK_LINE_CAP_ROUND,
532            Self::Square => ffi::GSK_LINE_CAP_SQUARE,
533            Self::__Unknown(value) => value,
534        }
535    }
536}
537
538#[cfg(feature = "v4_14")]
539#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
540#[doc(hidden)]
541impl FromGlib<ffi::GskLineCap> for LineCap {
542    #[inline]
543    unsafe fn from_glib(value: ffi::GskLineCap) -> Self {
544        skip_assert_initialized!();
545
546        match value {
547            ffi::GSK_LINE_CAP_BUTT => Self::Butt,
548            ffi::GSK_LINE_CAP_ROUND => Self::Round,
549            ffi::GSK_LINE_CAP_SQUARE => Self::Square,
550            value => Self::__Unknown(value),
551        }
552    }
553}
554
555#[cfg(feature = "v4_14")]
556#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
557impl StaticType for LineCap {
558    #[inline]
559    #[doc(alias = "gsk_line_cap_get_type")]
560    fn static_type() -> glib::Type {
561        unsafe { from_glib(ffi::gsk_line_cap_get_type()) }
562    }
563}
564
565#[cfg(feature = "v4_14")]
566#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
567impl glib::HasParamSpec for LineCap {
568    type ParamSpec = glib::ParamSpecEnum;
569    type SetValue = Self;
570    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
571
572    fn param_spec_builder() -> Self::BuilderFn {
573        Self::ParamSpec::builder_with_default
574    }
575}
576
577#[cfg(feature = "v4_14")]
578#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
579impl glib::value::ValueType for LineCap {
580    type Type = Self;
581}
582
583#[cfg(feature = "v4_14")]
584#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
585unsafe impl<'a> glib::value::FromValue<'a> for LineCap {
586    type Checker = glib::value::GenericValueTypeChecker<Self>;
587
588    #[inline]
589    unsafe fn from_value(value: &'a glib::Value) -> Self {
590        skip_assert_initialized!();
591        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
592    }
593}
594
595#[cfg(feature = "v4_14")]
596#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
597impl ToValue for LineCap {
598    #[inline]
599    fn to_value(&self) -> glib::Value {
600        let mut value = glib::Value::for_value_type::<Self>();
601        unsafe {
602            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
603        }
604        value
605    }
606
607    #[inline]
608    fn value_type(&self) -> glib::Type {
609        Self::static_type()
610    }
611}
612
613#[cfg(feature = "v4_14")]
614#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
615impl From<LineCap> for glib::Value {
616    #[inline]
617    fn from(v: LineCap) -> Self {
618        skip_assert_initialized!();
619        ToValue::to_value(&v)
620    }
621}
622
623#[cfg(feature = "v4_14")]
624#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
625#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
626#[non_exhaustive]
627#[doc(alias = "GskLineJoin")]
628pub enum LineJoin {
629    #[doc(alias = "GSK_LINE_JOIN_MITER")]
630    Miter,
631    #[doc(alias = "GSK_LINE_JOIN_ROUND")]
632    Round,
633    #[doc(alias = "GSK_LINE_JOIN_BEVEL")]
634    Bevel,
635    #[doc(hidden)]
636    __Unknown(i32),
637}
638
639#[cfg(feature = "v4_14")]
640#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
641#[doc(hidden)]
642impl IntoGlib for LineJoin {
643    type GlibType = ffi::GskLineJoin;
644
645    #[inline]
646    fn into_glib(self) -> ffi::GskLineJoin {
647        match self {
648            Self::Miter => ffi::GSK_LINE_JOIN_MITER,
649            Self::Round => ffi::GSK_LINE_JOIN_ROUND,
650            Self::Bevel => ffi::GSK_LINE_JOIN_BEVEL,
651            Self::__Unknown(value) => value,
652        }
653    }
654}
655
656#[cfg(feature = "v4_14")]
657#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
658#[doc(hidden)]
659impl FromGlib<ffi::GskLineJoin> for LineJoin {
660    #[inline]
661    unsafe fn from_glib(value: ffi::GskLineJoin) -> Self {
662        skip_assert_initialized!();
663
664        match value {
665            ffi::GSK_LINE_JOIN_MITER => Self::Miter,
666            ffi::GSK_LINE_JOIN_ROUND => Self::Round,
667            ffi::GSK_LINE_JOIN_BEVEL => Self::Bevel,
668            value => Self::__Unknown(value),
669        }
670    }
671}
672
673#[cfg(feature = "v4_14")]
674#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
675impl StaticType for LineJoin {
676    #[inline]
677    #[doc(alias = "gsk_line_join_get_type")]
678    fn static_type() -> glib::Type {
679        unsafe { from_glib(ffi::gsk_line_join_get_type()) }
680    }
681}
682
683#[cfg(feature = "v4_14")]
684#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
685impl glib::HasParamSpec for LineJoin {
686    type ParamSpec = glib::ParamSpecEnum;
687    type SetValue = Self;
688    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
689
690    fn param_spec_builder() -> Self::BuilderFn {
691        Self::ParamSpec::builder_with_default
692    }
693}
694
695#[cfg(feature = "v4_14")]
696#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
697impl glib::value::ValueType for LineJoin {
698    type Type = Self;
699}
700
701#[cfg(feature = "v4_14")]
702#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
703unsafe impl<'a> glib::value::FromValue<'a> for LineJoin {
704    type Checker = glib::value::GenericValueTypeChecker<Self>;
705
706    #[inline]
707    unsafe fn from_value(value: &'a glib::Value) -> Self {
708        skip_assert_initialized!();
709        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
710    }
711}
712
713#[cfg(feature = "v4_14")]
714#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
715impl ToValue for LineJoin {
716    #[inline]
717    fn to_value(&self) -> glib::Value {
718        let mut value = glib::Value::for_value_type::<Self>();
719        unsafe {
720            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
721        }
722        value
723    }
724
725    #[inline]
726    fn value_type(&self) -> glib::Type {
727        Self::static_type()
728    }
729}
730
731#[cfg(feature = "v4_14")]
732#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
733impl From<LineJoin> for glib::Value {
734    #[inline]
735    fn from(v: LineJoin) -> Self {
736        skip_assert_initialized!();
737        ToValue::to_value(&v)
738    }
739}
740
741#[cfg(feature = "v4_10")]
742#[cfg_attr(docsrs, doc(cfg(feature = "v4_10")))]
743#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
744#[non_exhaustive]
745#[doc(alias = "GskMaskMode")]
746pub enum MaskMode {
747    #[doc(alias = "GSK_MASK_MODE_ALPHA")]
748    Alpha,
749    #[doc(alias = "GSK_MASK_MODE_INVERTED_ALPHA")]
750    InvertedAlpha,
751    #[doc(alias = "GSK_MASK_MODE_LUMINANCE")]
752    Luminance,
753    #[doc(alias = "GSK_MASK_MODE_INVERTED_LUMINANCE")]
754    InvertedLuminance,
755    #[doc(hidden)]
756    __Unknown(i32),
757}
758
759#[cfg(feature = "v4_10")]
760#[cfg_attr(docsrs, doc(cfg(feature = "v4_10")))]
761#[doc(hidden)]
762impl IntoGlib for MaskMode {
763    type GlibType = ffi::GskMaskMode;
764
765    #[inline]
766    fn into_glib(self) -> ffi::GskMaskMode {
767        match self {
768            Self::Alpha => ffi::GSK_MASK_MODE_ALPHA,
769            Self::InvertedAlpha => ffi::GSK_MASK_MODE_INVERTED_ALPHA,
770            Self::Luminance => ffi::GSK_MASK_MODE_LUMINANCE,
771            Self::InvertedLuminance => ffi::GSK_MASK_MODE_INVERTED_LUMINANCE,
772            Self::__Unknown(value) => value,
773        }
774    }
775}
776
777#[cfg(feature = "v4_10")]
778#[cfg_attr(docsrs, doc(cfg(feature = "v4_10")))]
779#[doc(hidden)]
780impl FromGlib<ffi::GskMaskMode> for MaskMode {
781    #[inline]
782    unsafe fn from_glib(value: ffi::GskMaskMode) -> Self {
783        skip_assert_initialized!();
784
785        match value {
786            ffi::GSK_MASK_MODE_ALPHA => Self::Alpha,
787            ffi::GSK_MASK_MODE_INVERTED_ALPHA => Self::InvertedAlpha,
788            ffi::GSK_MASK_MODE_LUMINANCE => Self::Luminance,
789            ffi::GSK_MASK_MODE_INVERTED_LUMINANCE => Self::InvertedLuminance,
790            value => Self::__Unknown(value),
791        }
792    }
793}
794
795#[cfg(feature = "v4_10")]
796#[cfg_attr(docsrs, doc(cfg(feature = "v4_10")))]
797impl StaticType for MaskMode {
798    #[inline]
799    #[doc(alias = "gsk_mask_mode_get_type")]
800    fn static_type() -> glib::Type {
801        unsafe { from_glib(ffi::gsk_mask_mode_get_type()) }
802    }
803}
804
805#[cfg(feature = "v4_10")]
806#[cfg_attr(docsrs, doc(cfg(feature = "v4_10")))]
807impl glib::HasParamSpec for MaskMode {
808    type ParamSpec = glib::ParamSpecEnum;
809    type SetValue = Self;
810    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
811
812    fn param_spec_builder() -> Self::BuilderFn {
813        Self::ParamSpec::builder_with_default
814    }
815}
816
817#[cfg(feature = "v4_10")]
818#[cfg_attr(docsrs, doc(cfg(feature = "v4_10")))]
819impl glib::value::ValueType for MaskMode {
820    type Type = Self;
821}
822
823#[cfg(feature = "v4_10")]
824#[cfg_attr(docsrs, doc(cfg(feature = "v4_10")))]
825unsafe impl<'a> glib::value::FromValue<'a> for MaskMode {
826    type Checker = glib::value::GenericValueTypeChecker<Self>;
827
828    #[inline]
829    unsafe fn from_value(value: &'a glib::Value) -> Self {
830        skip_assert_initialized!();
831        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
832    }
833}
834
835#[cfg(feature = "v4_10")]
836#[cfg_attr(docsrs, doc(cfg(feature = "v4_10")))]
837impl ToValue for MaskMode {
838    #[inline]
839    fn to_value(&self) -> glib::Value {
840        let mut value = glib::Value::for_value_type::<Self>();
841        unsafe {
842            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
843        }
844        value
845    }
846
847    #[inline]
848    fn value_type(&self) -> glib::Type {
849        Self::static_type()
850    }
851}
852
853#[cfg(feature = "v4_10")]
854#[cfg_attr(docsrs, doc(cfg(feature = "v4_10")))]
855impl From<MaskMode> for glib::Value {
856    #[inline]
857    fn from(v: MaskMode) -> Self {
858        skip_assert_initialized!();
859        ToValue::to_value(&v)
860    }
861}
862
863#[cfg(feature = "v4_14")]
864#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
865#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
866#[non_exhaustive]
867#[doc(alias = "GskPathDirection")]
868pub enum PathDirection {
869    #[doc(alias = "GSK_PATH_FROM_START")]
870    FromStart,
871    #[doc(alias = "GSK_PATH_TO_START")]
872    ToStart,
873    #[doc(alias = "GSK_PATH_TO_END")]
874    ToEnd,
875    #[doc(alias = "GSK_PATH_FROM_END")]
876    FromEnd,
877    #[doc(hidden)]
878    __Unknown(i32),
879}
880
881#[cfg(feature = "v4_14")]
882#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
883#[doc(hidden)]
884impl IntoGlib for PathDirection {
885    type GlibType = ffi::GskPathDirection;
886
887    #[inline]
888    fn into_glib(self) -> ffi::GskPathDirection {
889        match self {
890            Self::FromStart => ffi::GSK_PATH_FROM_START,
891            Self::ToStart => ffi::GSK_PATH_TO_START,
892            Self::ToEnd => ffi::GSK_PATH_TO_END,
893            Self::FromEnd => ffi::GSK_PATH_FROM_END,
894            Self::__Unknown(value) => value,
895        }
896    }
897}
898
899#[cfg(feature = "v4_14")]
900#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
901#[doc(hidden)]
902impl FromGlib<ffi::GskPathDirection> for PathDirection {
903    #[inline]
904    unsafe fn from_glib(value: ffi::GskPathDirection) -> Self {
905        skip_assert_initialized!();
906
907        match value {
908            ffi::GSK_PATH_FROM_START => Self::FromStart,
909            ffi::GSK_PATH_TO_START => Self::ToStart,
910            ffi::GSK_PATH_TO_END => Self::ToEnd,
911            ffi::GSK_PATH_FROM_END => Self::FromEnd,
912            value => Self::__Unknown(value),
913        }
914    }
915}
916
917#[cfg(feature = "v4_14")]
918#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
919impl StaticType for PathDirection {
920    #[inline]
921    #[doc(alias = "gsk_path_direction_get_type")]
922    fn static_type() -> glib::Type {
923        unsafe { from_glib(ffi::gsk_path_direction_get_type()) }
924    }
925}
926
927#[cfg(feature = "v4_14")]
928#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
929impl glib::HasParamSpec for PathDirection {
930    type ParamSpec = glib::ParamSpecEnum;
931    type SetValue = Self;
932    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
933
934    fn param_spec_builder() -> Self::BuilderFn {
935        Self::ParamSpec::builder_with_default
936    }
937}
938
939#[cfg(feature = "v4_14")]
940#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
941impl glib::value::ValueType for PathDirection {
942    type Type = Self;
943}
944
945#[cfg(feature = "v4_14")]
946#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
947unsafe impl<'a> glib::value::FromValue<'a> for PathDirection {
948    type Checker = glib::value::GenericValueTypeChecker<Self>;
949
950    #[inline]
951    unsafe fn from_value(value: &'a glib::Value) -> Self {
952        skip_assert_initialized!();
953        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
954    }
955}
956
957#[cfg(feature = "v4_14")]
958#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
959impl ToValue for PathDirection {
960    #[inline]
961    fn to_value(&self) -> glib::Value {
962        let mut value = glib::Value::for_value_type::<Self>();
963        unsafe {
964            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
965        }
966        value
967    }
968
969    #[inline]
970    fn value_type(&self) -> glib::Type {
971        Self::static_type()
972    }
973}
974
975#[cfg(feature = "v4_14")]
976#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
977impl From<PathDirection> for glib::Value {
978    #[inline]
979    fn from(v: PathDirection) -> Self {
980        skip_assert_initialized!();
981        ToValue::to_value(&v)
982    }
983}
984
985#[cfg(feature = "v4_20")]
986#[cfg_attr(docsrs, doc(cfg(feature = "v4_20")))]
987#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
988#[non_exhaustive]
989#[doc(alias = "GskPathIntersection")]
990pub enum PathIntersection {
991    #[doc(alias = "GSK_PATH_INTERSECTION_NONE")]
992    None,
993    #[doc(alias = "GSK_PATH_INTERSECTION_NORMAL")]
994    Normal,
995    #[doc(alias = "GSK_PATH_INTERSECTION_START")]
996    Start,
997    #[doc(alias = "GSK_PATH_INTERSECTION_END")]
998    End,
999    #[doc(hidden)]
1000    __Unknown(i32),
1001}
1002
1003#[cfg(feature = "v4_20")]
1004#[cfg_attr(docsrs, doc(cfg(feature = "v4_20")))]
1005#[doc(hidden)]
1006impl IntoGlib for PathIntersection {
1007    type GlibType = ffi::GskPathIntersection;
1008
1009    #[inline]
1010    fn into_glib(self) -> ffi::GskPathIntersection {
1011        match self {
1012            Self::None => ffi::GSK_PATH_INTERSECTION_NONE,
1013            Self::Normal => ffi::GSK_PATH_INTERSECTION_NORMAL,
1014            Self::Start => ffi::GSK_PATH_INTERSECTION_START,
1015            Self::End => ffi::GSK_PATH_INTERSECTION_END,
1016            Self::__Unknown(value) => value,
1017        }
1018    }
1019}
1020
1021#[cfg(feature = "v4_20")]
1022#[cfg_attr(docsrs, doc(cfg(feature = "v4_20")))]
1023#[doc(hidden)]
1024impl FromGlib<ffi::GskPathIntersection> for PathIntersection {
1025    #[inline]
1026    unsafe fn from_glib(value: ffi::GskPathIntersection) -> Self {
1027        skip_assert_initialized!();
1028
1029        match value {
1030            ffi::GSK_PATH_INTERSECTION_NONE => Self::None,
1031            ffi::GSK_PATH_INTERSECTION_NORMAL => Self::Normal,
1032            ffi::GSK_PATH_INTERSECTION_START => Self::Start,
1033            ffi::GSK_PATH_INTERSECTION_END => Self::End,
1034            value => Self::__Unknown(value),
1035        }
1036    }
1037}
1038
1039#[cfg(feature = "v4_20")]
1040#[cfg_attr(docsrs, doc(cfg(feature = "v4_20")))]
1041impl StaticType for PathIntersection {
1042    #[inline]
1043    #[doc(alias = "gsk_path_intersection_get_type")]
1044    fn static_type() -> glib::Type {
1045        unsafe { from_glib(ffi::gsk_path_intersection_get_type()) }
1046    }
1047}
1048
1049#[cfg(feature = "v4_20")]
1050#[cfg_attr(docsrs, doc(cfg(feature = "v4_20")))]
1051impl glib::HasParamSpec for PathIntersection {
1052    type ParamSpec = glib::ParamSpecEnum;
1053    type SetValue = Self;
1054    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
1055
1056    fn param_spec_builder() -> Self::BuilderFn {
1057        Self::ParamSpec::builder_with_default
1058    }
1059}
1060
1061#[cfg(feature = "v4_20")]
1062#[cfg_attr(docsrs, doc(cfg(feature = "v4_20")))]
1063impl glib::value::ValueType for PathIntersection {
1064    type Type = Self;
1065}
1066
1067#[cfg(feature = "v4_20")]
1068#[cfg_attr(docsrs, doc(cfg(feature = "v4_20")))]
1069unsafe impl<'a> glib::value::FromValue<'a> for PathIntersection {
1070    type Checker = glib::value::GenericValueTypeChecker<Self>;
1071
1072    #[inline]
1073    unsafe fn from_value(value: &'a glib::Value) -> Self {
1074        skip_assert_initialized!();
1075        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
1076    }
1077}
1078
1079#[cfg(feature = "v4_20")]
1080#[cfg_attr(docsrs, doc(cfg(feature = "v4_20")))]
1081impl ToValue for PathIntersection {
1082    #[inline]
1083    fn to_value(&self) -> glib::Value {
1084        let mut value = glib::Value::for_value_type::<Self>();
1085        unsafe {
1086            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1087        }
1088        value
1089    }
1090
1091    #[inline]
1092    fn value_type(&self) -> glib::Type {
1093        Self::static_type()
1094    }
1095}
1096
1097#[cfg(feature = "v4_20")]
1098#[cfg_attr(docsrs, doc(cfg(feature = "v4_20")))]
1099impl From<PathIntersection> for glib::Value {
1100    #[inline]
1101    fn from(v: PathIntersection) -> Self {
1102        skip_assert_initialized!();
1103        ToValue::to_value(&v)
1104    }
1105}
1106
1107#[cfg(feature = "v4_14")]
1108#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
1109#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1110#[non_exhaustive]
1111#[doc(alias = "GskPathOperation")]
1112pub enum PathOperation {
1113    #[doc(alias = "GSK_PATH_MOVE")]
1114    Move,
1115    #[doc(alias = "GSK_PATH_CLOSE")]
1116    Close,
1117    #[doc(alias = "GSK_PATH_LINE")]
1118    Line,
1119    #[doc(alias = "GSK_PATH_QUAD")]
1120    Quad,
1121    #[doc(alias = "GSK_PATH_CUBIC")]
1122    Cubic,
1123    #[doc(alias = "GSK_PATH_CONIC")]
1124    Conic,
1125    #[doc(hidden)]
1126    __Unknown(i32),
1127}
1128
1129#[cfg(feature = "v4_14")]
1130#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
1131#[doc(hidden)]
1132impl IntoGlib for PathOperation {
1133    type GlibType = ffi::GskPathOperation;
1134
1135    #[inline]
1136    fn into_glib(self) -> ffi::GskPathOperation {
1137        match self {
1138            Self::Move => ffi::GSK_PATH_MOVE,
1139            Self::Close => ffi::GSK_PATH_CLOSE,
1140            Self::Line => ffi::GSK_PATH_LINE,
1141            Self::Quad => ffi::GSK_PATH_QUAD,
1142            Self::Cubic => ffi::GSK_PATH_CUBIC,
1143            Self::Conic => ffi::GSK_PATH_CONIC,
1144            Self::__Unknown(value) => value,
1145        }
1146    }
1147}
1148
1149#[cfg(feature = "v4_14")]
1150#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
1151#[doc(hidden)]
1152impl FromGlib<ffi::GskPathOperation> for PathOperation {
1153    #[inline]
1154    unsafe fn from_glib(value: ffi::GskPathOperation) -> Self {
1155        skip_assert_initialized!();
1156
1157        match value {
1158            ffi::GSK_PATH_MOVE => Self::Move,
1159            ffi::GSK_PATH_CLOSE => Self::Close,
1160            ffi::GSK_PATH_LINE => Self::Line,
1161            ffi::GSK_PATH_QUAD => Self::Quad,
1162            ffi::GSK_PATH_CUBIC => Self::Cubic,
1163            ffi::GSK_PATH_CONIC => Self::Conic,
1164            value => Self::__Unknown(value),
1165        }
1166    }
1167}
1168
1169#[cfg(feature = "v4_14")]
1170#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
1171impl StaticType for PathOperation {
1172    #[inline]
1173    #[doc(alias = "gsk_path_operation_get_type")]
1174    fn static_type() -> glib::Type {
1175        unsafe { from_glib(ffi::gsk_path_operation_get_type()) }
1176    }
1177}
1178
1179#[cfg(feature = "v4_14")]
1180#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
1181impl glib::HasParamSpec for PathOperation {
1182    type ParamSpec = glib::ParamSpecEnum;
1183    type SetValue = Self;
1184    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
1185
1186    fn param_spec_builder() -> Self::BuilderFn {
1187        Self::ParamSpec::builder_with_default
1188    }
1189}
1190
1191#[cfg(feature = "v4_14")]
1192#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
1193impl glib::value::ValueType for PathOperation {
1194    type Type = Self;
1195}
1196
1197#[cfg(feature = "v4_14")]
1198#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
1199unsafe impl<'a> glib::value::FromValue<'a> for PathOperation {
1200    type Checker = glib::value::GenericValueTypeChecker<Self>;
1201
1202    #[inline]
1203    unsafe fn from_value(value: &'a glib::Value) -> Self {
1204        skip_assert_initialized!();
1205        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
1206    }
1207}
1208
1209#[cfg(feature = "v4_14")]
1210#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
1211impl ToValue for PathOperation {
1212    #[inline]
1213    fn to_value(&self) -> glib::Value {
1214        let mut value = glib::Value::for_value_type::<Self>();
1215        unsafe {
1216            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1217        }
1218        value
1219    }
1220
1221    #[inline]
1222    fn value_type(&self) -> glib::Type {
1223        Self::static_type()
1224    }
1225}
1226
1227#[cfg(feature = "v4_14")]
1228#[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
1229impl From<PathOperation> for glib::Value {
1230    #[inline]
1231    fn from(v: PathOperation) -> Self {
1232        skip_assert_initialized!();
1233        ToValue::to_value(&v)
1234    }
1235}
1236
1237#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1238#[non_exhaustive]
1239#[doc(alias = "GskRenderNodeType")]
1240pub enum RenderNodeType {
1241    #[doc(alias = "GSK_NOT_A_RENDER_NODE")]
1242    NotARenderNode,
1243    #[doc(alias = "GSK_CONTAINER_NODE")]
1244    ContainerNode,
1245    #[doc(alias = "GSK_CAIRO_NODE")]
1246    CairoNode,
1247    #[doc(alias = "GSK_COLOR_NODE")]
1248    ColorNode,
1249    #[doc(alias = "GSK_LINEAR_GRADIENT_NODE")]
1250    LinearGradientNode,
1251    #[doc(alias = "GSK_REPEATING_LINEAR_GRADIENT_NODE")]
1252    RepeatingLinearGradientNode,
1253    #[doc(alias = "GSK_RADIAL_GRADIENT_NODE")]
1254    RadialGradientNode,
1255    #[doc(alias = "GSK_REPEATING_RADIAL_GRADIENT_NODE")]
1256    RepeatingRadialGradientNode,
1257    #[doc(alias = "GSK_CONIC_GRADIENT_NODE")]
1258    ConicGradientNode,
1259    #[doc(alias = "GSK_BORDER_NODE")]
1260    BorderNode,
1261    #[doc(alias = "GSK_TEXTURE_NODE")]
1262    TextureNode,
1263    #[doc(alias = "GSK_INSET_SHADOW_NODE")]
1264    InsetShadowNode,
1265    #[doc(alias = "GSK_OUTSET_SHADOW_NODE")]
1266    OutsetShadowNode,
1267    #[doc(alias = "GSK_TRANSFORM_NODE")]
1268    TransformNode,
1269    #[doc(alias = "GSK_OPACITY_NODE")]
1270    OpacityNode,
1271    #[doc(alias = "GSK_COLOR_MATRIX_NODE")]
1272    ColorMatrixNode,
1273    #[doc(alias = "GSK_REPEAT_NODE")]
1274    RepeatNode,
1275    #[doc(alias = "GSK_CLIP_NODE")]
1276    ClipNode,
1277    #[doc(alias = "GSK_ROUNDED_CLIP_NODE")]
1278    RoundedClipNode,
1279    #[doc(alias = "GSK_SHADOW_NODE")]
1280    ShadowNode,
1281    #[doc(alias = "GSK_BLEND_NODE")]
1282    BlendNode,
1283    #[doc(alias = "GSK_CROSS_FADE_NODE")]
1284    CrossFadeNode,
1285    #[doc(alias = "GSK_TEXT_NODE")]
1286    TextNode,
1287    #[doc(alias = "GSK_BLUR_NODE")]
1288    BlurNode,
1289    #[doc(alias = "GSK_DEBUG_NODE")]
1290    DebugNode,
1291    #[doc(alias = "GSK_GL_SHADER_NODE")]
1292    GlShaderNode,
1293    #[cfg(feature = "v4_10")]
1294    #[cfg_attr(docsrs, doc(cfg(feature = "v4_10")))]
1295    #[doc(alias = "GSK_TEXTURE_SCALE_NODE")]
1296    TextureScaleNode,
1297    #[cfg(feature = "v4_10")]
1298    #[cfg_attr(docsrs, doc(cfg(feature = "v4_10")))]
1299    #[doc(alias = "GSK_MASK_NODE")]
1300    MaskNode,
1301    #[cfg(feature = "v4_14")]
1302    #[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
1303    #[doc(alias = "GSK_FILL_NODE")]
1304    FillNode,
1305    #[cfg(feature = "v4_14")]
1306    #[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
1307    #[doc(alias = "GSK_STROKE_NODE")]
1308    StrokeNode,
1309    #[cfg(feature = "v4_14")]
1310    #[cfg_attr(docsrs, doc(cfg(feature = "v4_14")))]
1311    #[doc(alias = "GSK_SUBSURFACE_NODE")]
1312    SubsurfaceNode,
1313    #[cfg(feature = "v4_20")]
1314    #[cfg_attr(docsrs, doc(cfg(feature = "v4_20")))]
1315    #[doc(alias = "GSK_COMPONENT_TRANSFER_NODE")]
1316    ComponentTransferNode,
1317    #[doc(hidden)]
1318    __Unknown(i32),
1319}
1320
1321#[doc(hidden)]
1322impl IntoGlib for RenderNodeType {
1323    type GlibType = ffi::GskRenderNodeType;
1324
1325    fn into_glib(self) -> ffi::GskRenderNodeType {
1326        match self {
1327            Self::NotARenderNode => ffi::GSK_NOT_A_RENDER_NODE,
1328            Self::ContainerNode => ffi::GSK_CONTAINER_NODE,
1329            Self::CairoNode => ffi::GSK_CAIRO_NODE,
1330            Self::ColorNode => ffi::GSK_COLOR_NODE,
1331            Self::LinearGradientNode => ffi::GSK_LINEAR_GRADIENT_NODE,
1332            Self::RepeatingLinearGradientNode => ffi::GSK_REPEATING_LINEAR_GRADIENT_NODE,
1333            Self::RadialGradientNode => ffi::GSK_RADIAL_GRADIENT_NODE,
1334            Self::RepeatingRadialGradientNode => ffi::GSK_REPEATING_RADIAL_GRADIENT_NODE,
1335            Self::ConicGradientNode => ffi::GSK_CONIC_GRADIENT_NODE,
1336            Self::BorderNode => ffi::GSK_BORDER_NODE,
1337            Self::TextureNode => ffi::GSK_TEXTURE_NODE,
1338            Self::InsetShadowNode => ffi::GSK_INSET_SHADOW_NODE,
1339            Self::OutsetShadowNode => ffi::GSK_OUTSET_SHADOW_NODE,
1340            Self::TransformNode => ffi::GSK_TRANSFORM_NODE,
1341            Self::OpacityNode => ffi::GSK_OPACITY_NODE,
1342            Self::ColorMatrixNode => ffi::GSK_COLOR_MATRIX_NODE,
1343            Self::RepeatNode => ffi::GSK_REPEAT_NODE,
1344            Self::ClipNode => ffi::GSK_CLIP_NODE,
1345            Self::RoundedClipNode => ffi::GSK_ROUNDED_CLIP_NODE,
1346            Self::ShadowNode => ffi::GSK_SHADOW_NODE,
1347            Self::BlendNode => ffi::GSK_BLEND_NODE,
1348            Self::CrossFadeNode => ffi::GSK_CROSS_FADE_NODE,
1349            Self::TextNode => ffi::GSK_TEXT_NODE,
1350            Self::BlurNode => ffi::GSK_BLUR_NODE,
1351            Self::DebugNode => ffi::GSK_DEBUG_NODE,
1352            Self::GlShaderNode => ffi::GSK_GL_SHADER_NODE,
1353            #[cfg(feature = "v4_10")]
1354            Self::TextureScaleNode => ffi::GSK_TEXTURE_SCALE_NODE,
1355            #[cfg(feature = "v4_10")]
1356            Self::MaskNode => ffi::GSK_MASK_NODE,
1357            #[cfg(feature = "v4_14")]
1358            Self::FillNode => ffi::GSK_FILL_NODE,
1359            #[cfg(feature = "v4_14")]
1360            Self::StrokeNode => ffi::GSK_STROKE_NODE,
1361            #[cfg(feature = "v4_14")]
1362            Self::SubsurfaceNode => ffi::GSK_SUBSURFACE_NODE,
1363            #[cfg(feature = "v4_20")]
1364            Self::ComponentTransferNode => ffi::GSK_COMPONENT_TRANSFER_NODE,
1365            Self::__Unknown(value) => value,
1366        }
1367    }
1368}
1369
1370#[doc(hidden)]
1371impl FromGlib<ffi::GskRenderNodeType> for RenderNodeType {
1372    unsafe fn from_glib(value: ffi::GskRenderNodeType) -> Self {
1373        skip_assert_initialized!();
1374
1375        match value {
1376            ffi::GSK_NOT_A_RENDER_NODE => Self::NotARenderNode,
1377            ffi::GSK_CONTAINER_NODE => Self::ContainerNode,
1378            ffi::GSK_CAIRO_NODE => Self::CairoNode,
1379            ffi::GSK_COLOR_NODE => Self::ColorNode,
1380            ffi::GSK_LINEAR_GRADIENT_NODE => Self::LinearGradientNode,
1381            ffi::GSK_REPEATING_LINEAR_GRADIENT_NODE => Self::RepeatingLinearGradientNode,
1382            ffi::GSK_RADIAL_GRADIENT_NODE => Self::RadialGradientNode,
1383            ffi::GSK_REPEATING_RADIAL_GRADIENT_NODE => Self::RepeatingRadialGradientNode,
1384            ffi::GSK_CONIC_GRADIENT_NODE => Self::ConicGradientNode,
1385            ffi::GSK_BORDER_NODE => Self::BorderNode,
1386            ffi::GSK_TEXTURE_NODE => Self::TextureNode,
1387            ffi::GSK_INSET_SHADOW_NODE => Self::InsetShadowNode,
1388            ffi::GSK_OUTSET_SHADOW_NODE => Self::OutsetShadowNode,
1389            ffi::GSK_TRANSFORM_NODE => Self::TransformNode,
1390            ffi::GSK_OPACITY_NODE => Self::OpacityNode,
1391            ffi::GSK_COLOR_MATRIX_NODE => Self::ColorMatrixNode,
1392            ffi::GSK_REPEAT_NODE => Self::RepeatNode,
1393            ffi::GSK_CLIP_NODE => Self::ClipNode,
1394            ffi::GSK_ROUNDED_CLIP_NODE => Self::RoundedClipNode,
1395            ffi::GSK_SHADOW_NODE => Self::ShadowNode,
1396            ffi::GSK_BLEND_NODE => Self::BlendNode,
1397            ffi::GSK_CROSS_FADE_NODE => Self::CrossFadeNode,
1398            ffi::GSK_TEXT_NODE => Self::TextNode,
1399            ffi::GSK_BLUR_NODE => Self::BlurNode,
1400            ffi::GSK_DEBUG_NODE => Self::DebugNode,
1401            ffi::GSK_GL_SHADER_NODE => Self::GlShaderNode,
1402            #[cfg(feature = "v4_10")]
1403            ffi::GSK_TEXTURE_SCALE_NODE => Self::TextureScaleNode,
1404            #[cfg(feature = "v4_10")]
1405            ffi::GSK_MASK_NODE => Self::MaskNode,
1406            #[cfg(feature = "v4_14")]
1407            ffi::GSK_FILL_NODE => Self::FillNode,
1408            #[cfg(feature = "v4_14")]
1409            ffi::GSK_STROKE_NODE => Self::StrokeNode,
1410            #[cfg(feature = "v4_14")]
1411            ffi::GSK_SUBSURFACE_NODE => Self::SubsurfaceNode,
1412            #[cfg(feature = "v4_20")]
1413            ffi::GSK_COMPONENT_TRANSFER_NODE => Self::ComponentTransferNode,
1414            value => Self::__Unknown(value),
1415        }
1416    }
1417}
1418
1419impl StaticType for RenderNodeType {
1420    #[inline]
1421    #[doc(alias = "gsk_render_node_type_get_type")]
1422    fn static_type() -> glib::Type {
1423        unsafe { from_glib(ffi::gsk_render_node_type_get_type()) }
1424    }
1425}
1426
1427impl glib::HasParamSpec for RenderNodeType {
1428    type ParamSpec = glib::ParamSpecEnum;
1429    type SetValue = Self;
1430    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
1431
1432    fn param_spec_builder() -> Self::BuilderFn {
1433        Self::ParamSpec::builder_with_default
1434    }
1435}
1436
1437impl glib::value::ValueType for RenderNodeType {
1438    type Type = Self;
1439}
1440
1441unsafe impl<'a> glib::value::FromValue<'a> for RenderNodeType {
1442    type Checker = glib::value::GenericValueTypeChecker<Self>;
1443
1444    #[inline]
1445    unsafe fn from_value(value: &'a glib::Value) -> Self {
1446        skip_assert_initialized!();
1447        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
1448    }
1449}
1450
1451impl ToValue for RenderNodeType {
1452    #[inline]
1453    fn to_value(&self) -> glib::Value {
1454        let mut value = glib::Value::for_value_type::<Self>();
1455        unsafe {
1456            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1457        }
1458        value
1459    }
1460
1461    #[inline]
1462    fn value_type(&self) -> glib::Type {
1463        Self::static_type()
1464    }
1465}
1466
1467impl From<RenderNodeType> for glib::Value {
1468    #[inline]
1469    fn from(v: RenderNodeType) -> Self {
1470        skip_assert_initialized!();
1471        ToValue::to_value(&v)
1472    }
1473}
1474
1475#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1476#[non_exhaustive]
1477#[doc(alias = "GskScalingFilter")]
1478pub enum ScalingFilter {
1479    #[doc(alias = "GSK_SCALING_FILTER_LINEAR")]
1480    Linear,
1481    #[doc(alias = "GSK_SCALING_FILTER_NEAREST")]
1482    Nearest,
1483    #[doc(alias = "GSK_SCALING_FILTER_TRILINEAR")]
1484    Trilinear,
1485    #[doc(hidden)]
1486    __Unknown(i32),
1487}
1488
1489#[doc(hidden)]
1490impl IntoGlib for ScalingFilter {
1491    type GlibType = ffi::GskScalingFilter;
1492
1493    #[inline]
1494    fn into_glib(self) -> ffi::GskScalingFilter {
1495        match self {
1496            Self::Linear => ffi::GSK_SCALING_FILTER_LINEAR,
1497            Self::Nearest => ffi::GSK_SCALING_FILTER_NEAREST,
1498            Self::Trilinear => ffi::GSK_SCALING_FILTER_TRILINEAR,
1499            Self::__Unknown(value) => value,
1500        }
1501    }
1502}
1503
1504#[doc(hidden)]
1505impl FromGlib<ffi::GskScalingFilter> for ScalingFilter {
1506    #[inline]
1507    unsafe fn from_glib(value: ffi::GskScalingFilter) -> Self {
1508        skip_assert_initialized!();
1509
1510        match value {
1511            ffi::GSK_SCALING_FILTER_LINEAR => Self::Linear,
1512            ffi::GSK_SCALING_FILTER_NEAREST => Self::Nearest,
1513            ffi::GSK_SCALING_FILTER_TRILINEAR => Self::Trilinear,
1514            value => Self::__Unknown(value),
1515        }
1516    }
1517}
1518
1519impl StaticType for ScalingFilter {
1520    #[inline]
1521    #[doc(alias = "gsk_scaling_filter_get_type")]
1522    fn static_type() -> glib::Type {
1523        unsafe { from_glib(ffi::gsk_scaling_filter_get_type()) }
1524    }
1525}
1526
1527impl glib::HasParamSpec for ScalingFilter {
1528    type ParamSpec = glib::ParamSpecEnum;
1529    type SetValue = Self;
1530    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
1531
1532    fn param_spec_builder() -> Self::BuilderFn {
1533        Self::ParamSpec::builder_with_default
1534    }
1535}
1536
1537impl glib::value::ValueType for ScalingFilter {
1538    type Type = Self;
1539}
1540
1541unsafe impl<'a> glib::value::FromValue<'a> for ScalingFilter {
1542    type Checker = glib::value::GenericValueTypeChecker<Self>;
1543
1544    #[inline]
1545    unsafe fn from_value(value: &'a glib::Value) -> Self {
1546        skip_assert_initialized!();
1547        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
1548    }
1549}
1550
1551impl ToValue for ScalingFilter {
1552    #[inline]
1553    fn to_value(&self) -> glib::Value {
1554        let mut value = glib::Value::for_value_type::<Self>();
1555        unsafe {
1556            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1557        }
1558        value
1559    }
1560
1561    #[inline]
1562    fn value_type(&self) -> glib::Type {
1563        Self::static_type()
1564    }
1565}
1566
1567impl From<ScalingFilter> for glib::Value {
1568    #[inline]
1569    fn from(v: ScalingFilter) -> Self {
1570        skip_assert_initialized!();
1571        ToValue::to_value(&v)
1572    }
1573}
1574
1575#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1576#[non_exhaustive]
1577#[doc(alias = "GskSerializationError")]
1578pub enum SerializationError {
1579    #[doc(alias = "GSK_SERIALIZATION_UNSUPPORTED_FORMAT")]
1580    UnsupportedFormat,
1581    #[doc(alias = "GSK_SERIALIZATION_UNSUPPORTED_VERSION")]
1582    UnsupportedVersion,
1583    #[doc(alias = "GSK_SERIALIZATION_INVALID_DATA")]
1584    InvalidData,
1585    #[doc(hidden)]
1586    __Unknown(i32),
1587}
1588
1589#[doc(hidden)]
1590impl IntoGlib for SerializationError {
1591    type GlibType = ffi::GskSerializationError;
1592
1593    #[inline]
1594    fn into_glib(self) -> ffi::GskSerializationError {
1595        match self {
1596            Self::UnsupportedFormat => ffi::GSK_SERIALIZATION_UNSUPPORTED_FORMAT,
1597            Self::UnsupportedVersion => ffi::GSK_SERIALIZATION_UNSUPPORTED_VERSION,
1598            Self::InvalidData => ffi::GSK_SERIALIZATION_INVALID_DATA,
1599            Self::__Unknown(value) => value,
1600        }
1601    }
1602}
1603
1604#[doc(hidden)]
1605impl FromGlib<ffi::GskSerializationError> for SerializationError {
1606    #[inline]
1607    unsafe fn from_glib(value: ffi::GskSerializationError) -> Self {
1608        skip_assert_initialized!();
1609
1610        match value {
1611            ffi::GSK_SERIALIZATION_UNSUPPORTED_FORMAT => Self::UnsupportedFormat,
1612            ffi::GSK_SERIALIZATION_UNSUPPORTED_VERSION => Self::UnsupportedVersion,
1613            ffi::GSK_SERIALIZATION_INVALID_DATA => Self::InvalidData,
1614            value => Self::__Unknown(value),
1615        }
1616    }
1617}
1618
1619impl glib::error::ErrorDomain for SerializationError {
1620    #[inline]
1621    fn domain() -> glib::Quark {
1622        skip_assert_initialized!();
1623
1624        unsafe { from_glib(ffi::gsk_serialization_error_quark()) }
1625    }
1626
1627    #[inline]
1628    fn code(self) -> i32 {
1629        self.into_glib()
1630    }
1631
1632    #[inline]
1633    #[allow(clippy::match_single_binding)]
1634    fn from(code: i32) -> Option<Self> {
1635        skip_assert_initialized!();
1636        match unsafe { from_glib(code) } {
1637            value => Some(value),
1638        }
1639    }
1640}
1641
1642impl StaticType for SerializationError {
1643    #[inline]
1644    #[doc(alias = "gsk_serialization_error_get_type")]
1645    fn static_type() -> glib::Type {
1646        unsafe { from_glib(ffi::gsk_serialization_error_get_type()) }
1647    }
1648}
1649
1650impl glib::HasParamSpec for SerializationError {
1651    type ParamSpec = glib::ParamSpecEnum;
1652    type SetValue = Self;
1653    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
1654
1655    fn param_spec_builder() -> Self::BuilderFn {
1656        Self::ParamSpec::builder_with_default
1657    }
1658}
1659
1660impl glib::value::ValueType for SerializationError {
1661    type Type = Self;
1662}
1663
1664unsafe impl<'a> glib::value::FromValue<'a> for SerializationError {
1665    type Checker = glib::value::GenericValueTypeChecker<Self>;
1666
1667    #[inline]
1668    unsafe fn from_value(value: &'a glib::Value) -> Self {
1669        skip_assert_initialized!();
1670        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
1671    }
1672}
1673
1674impl ToValue for SerializationError {
1675    #[inline]
1676    fn to_value(&self) -> glib::Value {
1677        let mut value = glib::Value::for_value_type::<Self>();
1678        unsafe {
1679            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1680        }
1681        value
1682    }
1683
1684    #[inline]
1685    fn value_type(&self) -> glib::Type {
1686        Self::static_type()
1687    }
1688}
1689
1690impl From<SerializationError> for glib::Value {
1691    #[inline]
1692    fn from(v: SerializationError) -> Self {
1693        skip_assert_initialized!();
1694        ToValue::to_value(&v)
1695    }
1696}
1697
1698#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1699#[non_exhaustive]
1700#[doc(alias = "GskTransformCategory")]
1701pub enum TransformCategory {
1702    #[doc(alias = "GSK_TRANSFORM_CATEGORY_UNKNOWN")]
1703    Unknown,
1704    #[doc(alias = "GSK_TRANSFORM_CATEGORY_ANY")]
1705    Any,
1706    #[doc(alias = "GSK_TRANSFORM_CATEGORY_3D")]
1707    _3d,
1708    #[doc(alias = "GSK_TRANSFORM_CATEGORY_2D")]
1709    _2d,
1710    #[doc(alias = "GSK_TRANSFORM_CATEGORY_2D_AFFINE")]
1711    _2dAffine,
1712    #[doc(alias = "GSK_TRANSFORM_CATEGORY_2D_TRANSLATE")]
1713    _2dTranslate,
1714    #[doc(alias = "GSK_TRANSFORM_CATEGORY_IDENTITY")]
1715    Identity,
1716    #[doc(hidden)]
1717    __Unknown(i32),
1718}
1719
1720#[doc(hidden)]
1721impl IntoGlib for TransformCategory {
1722    type GlibType = ffi::GskTransformCategory;
1723
1724    #[inline]
1725    fn into_glib(self) -> ffi::GskTransformCategory {
1726        match self {
1727            Self::Unknown => ffi::GSK_TRANSFORM_CATEGORY_UNKNOWN,
1728            Self::Any => ffi::GSK_TRANSFORM_CATEGORY_ANY,
1729            Self::_3d => ffi::GSK_TRANSFORM_CATEGORY_3D,
1730            Self::_2d => ffi::GSK_TRANSFORM_CATEGORY_2D,
1731            Self::_2dAffine => ffi::GSK_TRANSFORM_CATEGORY_2D_AFFINE,
1732            Self::_2dTranslate => ffi::GSK_TRANSFORM_CATEGORY_2D_TRANSLATE,
1733            Self::Identity => ffi::GSK_TRANSFORM_CATEGORY_IDENTITY,
1734            Self::__Unknown(value) => value,
1735        }
1736    }
1737}
1738
1739#[doc(hidden)]
1740impl FromGlib<ffi::GskTransformCategory> for TransformCategory {
1741    #[inline]
1742    unsafe fn from_glib(value: ffi::GskTransformCategory) -> Self {
1743        skip_assert_initialized!();
1744
1745        match value {
1746            ffi::GSK_TRANSFORM_CATEGORY_UNKNOWN => Self::Unknown,
1747            ffi::GSK_TRANSFORM_CATEGORY_ANY => Self::Any,
1748            ffi::GSK_TRANSFORM_CATEGORY_3D => Self::_3d,
1749            ffi::GSK_TRANSFORM_CATEGORY_2D => Self::_2d,
1750            ffi::GSK_TRANSFORM_CATEGORY_2D_AFFINE => Self::_2dAffine,
1751            ffi::GSK_TRANSFORM_CATEGORY_2D_TRANSLATE => Self::_2dTranslate,
1752            ffi::GSK_TRANSFORM_CATEGORY_IDENTITY => Self::Identity,
1753            value => Self::__Unknown(value),
1754        }
1755    }
1756}
1757
1758impl StaticType for TransformCategory {
1759    #[inline]
1760    #[doc(alias = "gsk_transform_category_get_type")]
1761    fn static_type() -> glib::Type {
1762        unsafe { from_glib(ffi::gsk_transform_category_get_type()) }
1763    }
1764}
1765
1766impl glib::HasParamSpec for TransformCategory {
1767    type ParamSpec = glib::ParamSpecEnum;
1768    type SetValue = Self;
1769    type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
1770
1771    fn param_spec_builder() -> Self::BuilderFn {
1772        Self::ParamSpec::builder_with_default
1773    }
1774}
1775
1776impl glib::value::ValueType for TransformCategory {
1777    type Type = Self;
1778}
1779
1780unsafe impl<'a> glib::value::FromValue<'a> for TransformCategory {
1781    type Checker = glib::value::GenericValueTypeChecker<Self>;
1782
1783    #[inline]
1784    unsafe fn from_value(value: &'a glib::Value) -> Self {
1785        skip_assert_initialized!();
1786        from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
1787    }
1788}
1789
1790impl ToValue for TransformCategory {
1791    #[inline]
1792    fn to_value(&self) -> glib::Value {
1793        let mut value = glib::Value::for_value_type::<Self>();
1794        unsafe {
1795            glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1796        }
1797        value
1798    }
1799
1800    #[inline]
1801    fn value_type(&self) -> glib::Type {
1802        Self::static_type()
1803    }
1804}
1805
1806impl From<TransformCategory> for glib::Value {
1807    #[inline]
1808    fn from(v: TransformCategory) -> Self {
1809        skip_assert_initialized!();
1810        ToValue::to_value(&v)
1811    }
1812}