1use crate::ffi;
6use glib::translate::*;
7
8#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
10#[non_exhaustive]
11#[doc(alias = "GWin32OSType")]
12pub enum OSType {
13 #[doc(alias = "G_WIN32_OS_ANY")]
16 Any,
17 #[doc(alias = "G_WIN32_OS_WORKSTATION")]
20 Workstation,
21 #[doc(alias = "G_WIN32_OS_SERVER")]
24 Server,
25 #[doc(hidden)]
26 __Unknown(i32),
27}
28
29#[doc(hidden)]
30impl IntoGlib for OSType {
31 type GlibType = ffi::GWin32OSType;
32
33 #[inline]
34 fn into_glib(self) -> ffi::GWin32OSType {
35 match self {
36 Self::Any => ffi::G_WIN32_OS_ANY,
37 Self::Workstation => ffi::G_WIN32_OS_WORKSTATION,
38 Self::Server => ffi::G_WIN32_OS_SERVER,
39 Self::__Unknown(value) => value,
40 }
41 }
42}
43
44#[doc(hidden)]
45impl FromGlib<ffi::GWin32OSType> for OSType {
46 #[inline]
47 unsafe fn from_glib(value: ffi::GWin32OSType) -> Self {
48 match value {
49 ffi::G_WIN32_OS_ANY => Self::Any,
50 ffi::G_WIN32_OS_WORKSTATION => Self::Workstation,
51 ffi::G_WIN32_OS_SERVER => Self::Server,
52 value => Self::__Unknown(value),
53 }
54 }
55}