1use crate::ffi;
6use glib::{prelude::*, translate::*};
7
8#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
10#[non_exhaustive]
11#[doc(alias = "LightDMGreeterError")]
12pub enum GreeterError {
13 #[doc(alias = "LIGHTDM_GREETER_ERROR_COMMUNICATION_ERROR")]
15 CommunicationError,
16 #[doc(alias = "LIGHTDM_GREETER_ERROR_CONNECTION_FAILED")]
18 ConnectionFailed,
19 #[doc(alias = "LIGHTDM_GREETER_ERROR_SESSION_FAILED")]
21 SessionFailed,
22 #[doc(alias = "LIGHTDM_GREETER_ERROR_NO_AUTOLOGIN")]
24 NoAutologin,
25 #[doc(alias = "LIGHTDM_GREETER_ERROR_INVALID_USER")]
27 InvalidUser,
28 #[doc(hidden)]
29 __Unknown(i32),
30}
31
32#[doc(hidden)]
33impl IntoGlib for GreeterError {
34 type GlibType = ffi::LightDMGreeterError;
35
36 #[inline]
37 fn into_glib(self) -> ffi::LightDMGreeterError {
38 match self {
39 Self::CommunicationError => ffi::LIGHTDM_GREETER_ERROR_COMMUNICATION_ERROR,
40 Self::ConnectionFailed => ffi::LIGHTDM_GREETER_ERROR_CONNECTION_FAILED,
41 Self::SessionFailed => ffi::LIGHTDM_GREETER_ERROR_SESSION_FAILED,
42 Self::NoAutologin => ffi::LIGHTDM_GREETER_ERROR_NO_AUTOLOGIN,
43 Self::InvalidUser => ffi::LIGHTDM_GREETER_ERROR_INVALID_USER,
44 Self::__Unknown(value) => value,
45 }
46 }
47}
48
49#[doc(hidden)]
50impl FromGlib<ffi::LightDMGreeterError> for GreeterError {
51 #[inline]
52 unsafe fn from_glib(value: ffi::LightDMGreeterError) -> Self {
53 skip_assert_initialized!();
54
55 match value {
56 ffi::LIGHTDM_GREETER_ERROR_COMMUNICATION_ERROR => Self::CommunicationError,
57 ffi::LIGHTDM_GREETER_ERROR_CONNECTION_FAILED => Self::ConnectionFailed,
58 ffi::LIGHTDM_GREETER_ERROR_SESSION_FAILED => Self::SessionFailed,
59 ffi::LIGHTDM_GREETER_ERROR_NO_AUTOLOGIN => Self::NoAutologin,
60 ffi::LIGHTDM_GREETER_ERROR_INVALID_USER => Self::InvalidUser,
61 value => Self::__Unknown(value),
62 }
63 }
64}
65
66impl glib::error::ErrorDomain for GreeterError {
67 #[inline]
68 fn domain() -> glib::Quark {
69 skip_assert_initialized!();
70
71 unsafe { from_glib(ffi::lightdm_greeter_error_quark()) }
72 }
73
74 #[inline]
75 fn code(self) -> i32 {
76 self.into_glib()
77 }
78
79 #[inline]
80 #[allow(clippy::match_single_binding)]
81 fn from(code: i32) -> Option<Self> {
82 skip_assert_initialized!();
83 match unsafe { from_glib(code) } {
84 value => Some(value),
85 }
86 }
87}
88
89impl StaticType for GreeterError {
90 #[inline]
91 #[doc(alias = "lightdm_greeter_error_get_type")]
92 fn static_type() -> glib::Type {
93 unsafe { from_glib(ffi::lightdm_greeter_error_get_type()) }
94 }
95}
96
97impl glib::HasParamSpec for GreeterError {
98 type ParamSpec = glib::ParamSpecEnum;
99 type SetValue = Self;
100 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
101
102 fn param_spec_builder() -> Self::BuilderFn {
103 Self::ParamSpec::builder_with_default
104 }
105}
106
107impl glib::value::ValueType for GreeterError {
108 type Type = Self;
109}
110
111unsafe impl<'a> glib::value::FromValue<'a> for GreeterError {
112 type Checker = glib::value::GenericValueTypeChecker<Self>;
113
114 #[inline]
115 unsafe fn from_value(value: &'a glib::Value) -> Self {
116 skip_assert_initialized!();
117 unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
118 }
119}
120
121impl ToValue for GreeterError {
122 #[inline]
123 fn to_value(&self) -> glib::Value {
124 let mut value = glib::Value::for_value_type::<Self>();
125 unsafe {
126 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
127 }
128 value
129 }
130
131 #[inline]
132 fn value_type(&self) -> glib::Type {
133 Self::static_type()
134 }
135}
136
137impl From<GreeterError> for glib::Value {
138 #[inline]
139 fn from(v: GreeterError) -> Self {
140 skip_assert_initialized!();
141 ToValue::to_value(&v)
142 }
143}
144
145#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
146#[non_exhaustive]
147#[doc(alias = "LightDMMessageType")]
148pub enum MessageType {
149 #[doc(alias = "LIGHTDM_MESSAGE_TYPE_INFO")]
151 Info,
152 #[doc(alias = "LIGHTDM_MESSAGE_TYPE_ERROR")]
154 Error,
155 #[doc(hidden)]
156 __Unknown(i32),
157}
158
159#[doc(hidden)]
160impl IntoGlib for MessageType {
161 type GlibType = ffi::LightDMMessageType;
162
163 #[inline]
164 fn into_glib(self) -> ffi::LightDMMessageType {
165 match self {
166 Self::Info => ffi::LIGHTDM_MESSAGE_TYPE_INFO,
167 Self::Error => ffi::LIGHTDM_MESSAGE_TYPE_ERROR,
168 Self::__Unknown(value) => value,
169 }
170 }
171}
172
173#[doc(hidden)]
174impl FromGlib<ffi::LightDMMessageType> for MessageType {
175 #[inline]
176 unsafe fn from_glib(value: ffi::LightDMMessageType) -> Self {
177 skip_assert_initialized!();
178
179 match value {
180 ffi::LIGHTDM_MESSAGE_TYPE_INFO => Self::Info,
181 ffi::LIGHTDM_MESSAGE_TYPE_ERROR => Self::Error,
182 value => Self::__Unknown(value),
183 }
184 }
185}
186
187impl StaticType for MessageType {
188 #[inline]
189 #[doc(alias = "lightdm_message_type_get_type")]
190 fn static_type() -> glib::Type {
191 unsafe { from_glib(ffi::lightdm_message_type_get_type()) }
192 }
193}
194
195impl glib::HasParamSpec for MessageType {
196 type ParamSpec = glib::ParamSpecEnum;
197 type SetValue = Self;
198 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
199
200 fn param_spec_builder() -> Self::BuilderFn {
201 Self::ParamSpec::builder_with_default
202 }
203}
204
205impl glib::value::ValueType for MessageType {
206 type Type = Self;
207}
208
209unsafe impl<'a> glib::value::FromValue<'a> for MessageType {
210 type Checker = glib::value::GenericValueTypeChecker<Self>;
211
212 #[inline]
213 unsafe fn from_value(value: &'a glib::Value) -> Self {
214 skip_assert_initialized!();
215 unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
216 }
217}
218
219impl ToValue for MessageType {
220 #[inline]
221 fn to_value(&self) -> glib::Value {
222 let mut value = glib::Value::for_value_type::<Self>();
223 unsafe {
224 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
225 }
226 value
227 }
228
229 #[inline]
230 fn value_type(&self) -> glib::Type {
231 Self::static_type()
232 }
233}
234
235impl From<MessageType> for glib::Value {
236 #[inline]
237 fn from(v: MessageType) -> Self {
238 skip_assert_initialized!();
239 ToValue::to_value(&v)
240 }
241}
242
243#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
245#[non_exhaustive]
246#[doc(alias = "LightDMPromptType")]
247pub enum PromptType {
248 #[doc(alias = "LIGHTDM_PROMPT_TYPE_QUESTION")]
250 Question,
251 #[doc(alias = "LIGHTDM_PROMPT_TYPE_SECRET")]
253 Secret,
254 #[doc(hidden)]
255 __Unknown(i32),
256}
257
258#[doc(hidden)]
259impl IntoGlib for PromptType {
260 type GlibType = ffi::LightDMPromptType;
261
262 #[inline]
263 fn into_glib(self) -> ffi::LightDMPromptType {
264 match self {
265 Self::Question => ffi::LIGHTDM_PROMPT_TYPE_QUESTION,
266 Self::Secret => ffi::LIGHTDM_PROMPT_TYPE_SECRET,
267 Self::__Unknown(value) => value,
268 }
269 }
270}
271
272#[doc(hidden)]
273impl FromGlib<ffi::LightDMPromptType> for PromptType {
274 #[inline]
275 unsafe fn from_glib(value: ffi::LightDMPromptType) -> Self {
276 skip_assert_initialized!();
277
278 match value {
279 ffi::LIGHTDM_PROMPT_TYPE_QUESTION => Self::Question,
280 ffi::LIGHTDM_PROMPT_TYPE_SECRET => Self::Secret,
281 value => Self::__Unknown(value),
282 }
283 }
284}
285
286impl StaticType for PromptType {
287 #[inline]
288 #[doc(alias = "lightdm_prompt_type_get_type")]
289 fn static_type() -> glib::Type {
290 unsafe { from_glib(ffi::lightdm_prompt_type_get_type()) }
291 }
292}
293
294impl glib::HasParamSpec for PromptType {
295 type ParamSpec = glib::ParamSpecEnum;
296 type SetValue = Self;
297 type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
298
299 fn param_spec_builder() -> Self::BuilderFn {
300 Self::ParamSpec::builder_with_default
301 }
302}
303
304impl glib::value::ValueType for PromptType {
305 type Type = Self;
306}
307
308unsafe impl<'a> glib::value::FromValue<'a> for PromptType {
309 type Checker = glib::value::GenericValueTypeChecker<Self>;
310
311 #[inline]
312 unsafe fn from_value(value: &'a glib::Value) -> Self {
313 skip_assert_initialized!();
314 unsafe { from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
315 }
316}
317
318impl ToValue for PromptType {
319 #[inline]
320 fn to_value(&self) -> glib::Value {
321 let mut value = glib::Value::for_value_type::<Self>();
322 unsafe {
323 glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
324 }
325 value
326 }
327
328 #[inline]
329 fn value_type(&self) -> glib::Type {
330 Self::static_type()
331 }
332}
333
334impl From<PromptType> for glib::Value {
335 #[inline]
336 fn from(v: PromptType) -> Self {
337 skip_assert_initialized!();
338 ToValue::to_value(&v)
339 }
340}