use glib::{prelude::*, translate::*};
#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
#[non_exhaustive]
#[doc(alias = "LfbEventEndReason")]
pub enum EventEndReason {
#[doc(alias = "LFB_EVENT_END_REASON_NOT_FOUND")]
NotFound,
#[doc(alias = "LFB_EVENT_END_REASON_NATURAL")]
Natural,
#[doc(alias = "LFB_EVENT_END_REASON_EXPIRED")]
Expired,
#[doc(alias = "LFB_EVENT_END_REASON_EXPLICIT")]
Explicit,
#[doc(hidden)]
__Unknown(i32),
}
#[doc(hidden)]
impl IntoGlib for EventEndReason {
type GlibType = ffi::LfbEventEndReason;
#[inline]
fn into_glib(self) -> ffi::LfbEventEndReason {
match self {
Self::NotFound => ffi::LFB_EVENT_END_REASON_NOT_FOUND,
Self::Natural => ffi::LFB_EVENT_END_REASON_NATURAL,
Self::Expired => ffi::LFB_EVENT_END_REASON_EXPIRED,
Self::Explicit => ffi::LFB_EVENT_END_REASON_EXPLICIT,
Self::__Unknown(value) => value,
}
}
}
#[doc(hidden)]
impl FromGlib<ffi::LfbEventEndReason> for EventEndReason {
#[inline]
unsafe fn from_glib(value: ffi::LfbEventEndReason) -> Self {
skip_assert_initialized!();
match value {
ffi::LFB_EVENT_END_REASON_NOT_FOUND => Self::NotFound,
ffi::LFB_EVENT_END_REASON_NATURAL => Self::Natural,
ffi::LFB_EVENT_END_REASON_EXPIRED => Self::Expired,
ffi::LFB_EVENT_END_REASON_EXPLICIT => Self::Explicit,
value => Self::__Unknown(value),
}
}
}
impl StaticType for EventEndReason {
#[inline]
#[doc(alias = "lfb_event_end_reason_get_type")]
fn static_type() -> glib::Type {
unsafe { from_glib(ffi::lfb_event_end_reason_get_type()) }
}
}
impl glib::HasParamSpec for EventEndReason {
type ParamSpec = glib::ParamSpecEnum;
type SetValue = Self;
type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
fn param_spec_builder() -> Self::BuilderFn {
Self::ParamSpec::builder_with_default
}
}
impl glib::value::ValueType for EventEndReason {
type Type = Self;
}
unsafe impl<'a> glib::value::FromValue<'a> for EventEndReason {
type Checker = glib::value::GenericValueTypeChecker<Self>;
#[inline]
unsafe fn from_value(value: &'a glib::Value) -> Self {
skip_assert_initialized!();
from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
}
}
impl ToValue for EventEndReason {
#[inline]
fn to_value(&self) -> glib::Value {
let mut value = glib::Value::for_value_type::<Self>();
unsafe {
glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
}
value
}
#[inline]
fn value_type(&self) -> glib::Type {
Self::static_type()
}
}
impl From<EventEndReason> for glib::Value {
#[inline]
fn from(v: EventEndReason) -> Self {
skip_assert_initialized!();
ToValue::to_value(&v)
}
}
#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
#[non_exhaustive]
#[doc(alias = "LfbEventState")]
pub enum EventState {
#[doc(alias = "LFB_EVENT_STATE_ERRORED")]
Errored,
#[doc(alias = "LFB_EVENT_STATE_NONE")]
None,
#[doc(alias = "LFB_EVENT_STATE_RUNNING")]
Running,
#[doc(alias = "LFB_EVENT_STATE_ENDED")]
Ended,
#[doc(hidden)]
__Unknown(i32),
}
#[doc(hidden)]
impl IntoGlib for EventState {
type GlibType = ffi::LfbEventState;
#[inline]
fn into_glib(self) -> ffi::LfbEventState {
match self {
Self::Errored => ffi::LFB_EVENT_STATE_ERRORED,
Self::None => ffi::LFB_EVENT_STATE_NONE,
Self::Running => ffi::LFB_EVENT_STATE_RUNNING,
Self::Ended => ffi::LFB_EVENT_STATE_ENDED,
Self::__Unknown(value) => value,
}
}
}
#[doc(hidden)]
impl FromGlib<ffi::LfbEventState> for EventState {
#[inline]
unsafe fn from_glib(value: ffi::LfbEventState) -> Self {
skip_assert_initialized!();
match value {
ffi::LFB_EVENT_STATE_ERRORED => Self::Errored,
ffi::LFB_EVENT_STATE_NONE => Self::None,
ffi::LFB_EVENT_STATE_RUNNING => Self::Running,
ffi::LFB_EVENT_STATE_ENDED => Self::Ended,
value => Self::__Unknown(value),
}
}
}
impl StaticType for EventState {
#[inline]
#[doc(alias = "lfb_event_state_get_type")]
fn static_type() -> glib::Type {
unsafe { from_glib(ffi::lfb_event_state_get_type()) }
}
}
impl glib::HasParamSpec for EventState {
type ParamSpec = glib::ParamSpecEnum;
type SetValue = Self;
type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder<Self>;
fn param_spec_builder() -> Self::BuilderFn {
Self::ParamSpec::builder_with_default
}
}
impl glib::value::ValueType for EventState {
type Type = Self;
}
unsafe impl<'a> glib::value::FromValue<'a> for EventState {
type Checker = glib::value::GenericValueTypeChecker<Self>;
#[inline]
unsafe fn from_value(value: &'a glib::Value) -> Self {
skip_assert_initialized!();
from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
}
}
impl ToValue for EventState {
#[inline]
fn to_value(&self) -> glib::Value {
let mut value = glib::Value::for_value_type::<Self>();
unsafe {
glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
}
value
}
#[inline]
fn value_type(&self) -> glib::Type {
Self::static_type()
}
}
impl From<EventState> for glib::Value {
#[inline]
fn from(v: EventState) -> Self {
skip_assert_initialized!();
ToValue::to_value(&v)
}
}