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 | // from gst-gir-files (https://gitlab.freedesktop.org/gstreamer/gir-files-rs.git) |
4 | // DO NOT EDIT |
5 | |
6 | use crate::ffi; |
7 | use glib::{prelude::*, translate::*}; |
8 | |
9 | #[cfg (feature = "v1_20" )] |
10 | #[cfg_attr (docsrs, doc(cfg(feature = "v1_20" )))] |
11 | #[derive (Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)] |
12 | #[non_exhaustive ] |
13 | #[doc (alias = "GstAppLeakyType" )] |
14 | pub enum AppLeakyType { |
15 | #[doc (alias = "GST_APP_LEAKY_TYPE_NONE" )] |
16 | None, |
17 | #[doc (alias = "GST_APP_LEAKY_TYPE_UPSTREAM" )] |
18 | Upstream, |
19 | #[doc (alias = "GST_APP_LEAKY_TYPE_DOWNSTREAM" )] |
20 | Downstream, |
21 | #[doc (hidden)] |
22 | __Unknown(i32), |
23 | } |
24 | |
25 | #[cfg (feature = "v1_20" )] |
26 | #[cfg_attr (docsrs, doc(cfg(feature = "v1_20" )))] |
27 | #[doc (hidden)] |
28 | impl IntoGlib for AppLeakyType { |
29 | type GlibType = ffi::GstAppLeakyType; |
30 | |
31 | #[inline ] |
32 | fn into_glib(self) -> ffi::GstAppLeakyType { |
33 | match self { |
34 | Self::None => ffi::GST_APP_LEAKY_TYPE_NONE, |
35 | Self::Upstream => ffi::GST_APP_LEAKY_TYPE_UPSTREAM, |
36 | Self::Downstream => ffi::GST_APP_LEAKY_TYPE_DOWNSTREAM, |
37 | Self::__Unknown(value) => value, |
38 | } |
39 | } |
40 | } |
41 | |
42 | #[cfg (feature = "v1_20" )] |
43 | #[cfg_attr (docsrs, doc(cfg(feature = "v1_20" )))] |
44 | #[doc (hidden)] |
45 | impl FromGlib<ffi::GstAppLeakyType> for AppLeakyType { |
46 | #[inline ] |
47 | unsafe fn from_glib(value: ffi::GstAppLeakyType) -> Self { |
48 | skip_assert_initialized!(); |
49 | |
50 | match value { |
51 | ffi::GST_APP_LEAKY_TYPE_NONE => Self::None, |
52 | ffi::GST_APP_LEAKY_TYPE_UPSTREAM => Self::Upstream, |
53 | ffi::GST_APP_LEAKY_TYPE_DOWNSTREAM => Self::Downstream, |
54 | value => Self::__Unknown(value), |
55 | } |
56 | } |
57 | } |
58 | |
59 | #[cfg (feature = "v1_20" )] |
60 | #[cfg_attr (docsrs, doc(cfg(feature = "v1_20" )))] |
61 | impl StaticType for AppLeakyType { |
62 | #[inline ] |
63 | #[doc (alias = "gst_app_leaky_type_get_type" )] |
64 | fn static_type() -> glib::Type { |
65 | unsafe { from_glib(ffi::gst_app_leaky_type_get_type()) } |
66 | } |
67 | } |
68 | |
69 | #[cfg (feature = "v1_20" )] |
70 | #[cfg_attr (docsrs, doc(cfg(feature = "v1_20" )))] |
71 | impl glib::HasParamSpec for AppLeakyType { |
72 | type ParamSpec = glib::ParamSpecEnum; |
73 | type SetValue = Self; |
74 | type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>; |
75 | |
76 | fn param_spec_builder() -> Self::BuilderFn { |
77 | Self::ParamSpec::builder_with_default |
78 | } |
79 | } |
80 | |
81 | #[cfg (feature = "v1_20" )] |
82 | #[cfg_attr (docsrs, doc(cfg(feature = "v1_20" )))] |
83 | impl glib::value::ValueType for AppLeakyType { |
84 | type Type = Self; |
85 | } |
86 | |
87 | #[cfg (feature = "v1_20" )] |
88 | #[cfg_attr (docsrs, doc(cfg(feature = "v1_20" )))] |
89 | unsafe impl<'a> glib::value::FromValue<'a> for AppLeakyType { |
90 | type Checker = glib::value::GenericValueTypeChecker<Self>; |
91 | |
92 | #[inline ] |
93 | unsafe fn from_value(value: &'a glib::Value) -> Self { |
94 | skip_assert_initialized!(); |
95 | from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) |
96 | } |
97 | } |
98 | |
99 | #[cfg (feature = "v1_20" )] |
100 | #[cfg_attr (docsrs, doc(cfg(feature = "v1_20" )))] |
101 | impl ToValue for AppLeakyType { |
102 | #[inline ] |
103 | fn to_value(&self) -> glib::Value { |
104 | let mut value = glib::Value::for_value_type::<Self>(); |
105 | unsafe { |
106 | glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib()); |
107 | } |
108 | value |
109 | } |
110 | |
111 | #[inline ] |
112 | fn value_type(&self) -> glib::Type { |
113 | Self::static_type() |
114 | } |
115 | } |
116 | |
117 | #[cfg (feature = "v1_20" )] |
118 | #[cfg_attr (docsrs, doc(cfg(feature = "v1_20" )))] |
119 | impl From<AppLeakyType> for glib::Value { |
120 | #[inline ] |
121 | fn from(v: AppLeakyType) -> Self { |
122 | skip_assert_initialized!(); |
123 | ToValue::to_value(&v) |
124 | } |
125 | } |
126 | |
127 | #[derive (Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)] |
128 | #[non_exhaustive ] |
129 | #[doc (alias = "GstAppStreamType" )] |
130 | pub enum AppStreamType { |
131 | #[doc (alias = "GST_APP_STREAM_TYPE_STREAM" )] |
132 | Stream, |
133 | #[doc (alias = "GST_APP_STREAM_TYPE_SEEKABLE" )] |
134 | Seekable, |
135 | #[doc (alias = "GST_APP_STREAM_TYPE_RANDOM_ACCESS" )] |
136 | RandomAccess, |
137 | #[doc (hidden)] |
138 | __Unknown(i32), |
139 | } |
140 | |
141 | #[doc (hidden)] |
142 | impl IntoGlib for AppStreamType { |
143 | type GlibType = ffi::GstAppStreamType; |
144 | |
145 | #[inline ] |
146 | fn into_glib(self) -> ffi::GstAppStreamType { |
147 | match self { |
148 | Self::Stream => ffi::GST_APP_STREAM_TYPE_STREAM, |
149 | Self::Seekable => ffi::GST_APP_STREAM_TYPE_SEEKABLE, |
150 | Self::RandomAccess => ffi::GST_APP_STREAM_TYPE_RANDOM_ACCESS, |
151 | Self::__Unknown(value: i32) => value, |
152 | } |
153 | } |
154 | } |
155 | |
156 | #[doc (hidden)] |
157 | impl FromGlib<ffi::GstAppStreamType> for AppStreamType { |
158 | #[inline ] |
159 | unsafe fn from_glib(value: ffi::GstAppStreamType) -> Self { |
160 | skip_assert_initialized!(); |
161 | |
162 | match value { |
163 | ffi::GST_APP_STREAM_TYPE_STREAM => Self::Stream, |
164 | ffi::GST_APP_STREAM_TYPE_SEEKABLE => Self::Seekable, |
165 | ffi::GST_APP_STREAM_TYPE_RANDOM_ACCESS => Self::RandomAccess, |
166 | value: i32 => Self::__Unknown(value), |
167 | } |
168 | } |
169 | } |
170 | |
171 | impl StaticType for AppStreamType { |
172 | #[inline ] |
173 | #[doc (alias = "gst_app_stream_type_get_type" )] |
174 | fn static_type() -> glib::Type { |
175 | unsafe { from_glib(val:ffi::gst_app_stream_type_get_type()) } |
176 | } |
177 | } |
178 | |
179 | impl glib::HasParamSpec for AppStreamType { |
180 | type ParamSpec = glib::ParamSpecEnum; |
181 | type SetValue = Self; |
182 | type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>; |
183 | |
184 | fn param_spec_builder() -> Self::BuilderFn { |
185 | Self::ParamSpec::builder_with_default |
186 | } |
187 | } |
188 | |
189 | impl glib::value::ValueType for AppStreamType { |
190 | type Type = Self; |
191 | } |
192 | |
193 | unsafe impl<'a> glib::value::FromValue<'a> for AppStreamType { |
194 | type Checker = glib::value::GenericValueTypeChecker<Self>; |
195 | |
196 | #[inline ] |
197 | unsafe fn from_value(value: &'a glib::Value) -> Self { |
198 | skip_assert_initialized!(); |
199 | from_glib(val:glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) |
200 | } |
201 | } |
202 | |
203 | impl ToValue for AppStreamType { |
204 | #[inline ] |
205 | fn to_value(&self) -> glib::Value { |
206 | let mut value: Value = glib::Value::for_value_type::<Self>(); |
207 | unsafe { |
208 | glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib()); |
209 | } |
210 | value |
211 | } |
212 | |
213 | #[inline ] |
214 | fn value_type(&self) -> glib::Type { |
215 | Self::static_type() |
216 | } |
217 | } |
218 | |
219 | impl From<AppStreamType> for glib::Value { |
220 | #[inline ] |
221 | fn from(v: AppStreamType) -> Self { |
222 | skip_assert_initialized!(); |
223 | ToValue::to_value(&v) |
224 | } |
225 | } |
226 | |