pub struct EnumClass(/* private fields */);
Expand description
Representation of an enum
for dynamically, at runtime, querying the values of the enum and
using them.
Implementations§
source§impl EnumClass
impl EnumClass
sourcepub fn new<T: StaticType + HasParamSpec<ParamSpec = ParamSpecEnum>>() -> Self
pub fn new<T: StaticType + HasParamSpec<ParamSpec = ParamSpecEnum>>() -> Self
Create a new EnumClass
from a static type T
.
Panics if T
is not representing an enum.
sourcepub fn with_type(type_: Type) -> Option<Self>
pub fn with_type(type_: Type) -> Option<Self>
Create a new EnumClass
from a Type
.
Returns None
if type_
is not representing an enum.
sourcepub fn value(&self, value: i32) -> Option<&EnumValue>
pub fn value(&self, value: i32) -> Option<&EnumValue>
Gets EnumValue
by integer value
, if existing.
Returns None
if the enum does not contain any value
with value
.
sourcepub fn value_by_name(&self, name: &str) -> Option<&EnumValue>
pub fn value_by_name(&self, name: &str) -> Option<&EnumValue>
Gets EnumValue
by string name name
, if existing.
Returns None
if the enum does not contain any value
with name name
.
sourcepub fn value_by_nick(&self, nick: &str) -> Option<&EnumValue>
pub fn value_by_nick(&self, nick: &str) -> Option<&EnumValue>
Gets EnumValue
by string nick nick
, if existing.
Returns None
if the enum does not contain any value
with nick nick
.
sourcepub fn to_value(&self, value: i32) -> Option<Value>
pub fn to_value(&self, value: i32) -> Option<Value>
Converts integer value
to a Value
, if part of the enum.
sourcepub fn to_value_by_name(&self, name: &str) -> Option<Value>
pub fn to_value_by_name(&self, name: &str) -> Option<Value>
Converts string name name
to a Value
, if part of the enum.
sourcepub fn to_value_by_nick(&self, nick: &str) -> Option<Value>
pub fn to_value_by_nick(&self, nick: &str) -> Option<Value>
Converts string nick nick
to a Value
, if part of the enum.
sourcepub fn complete_type_info(
type_: Type,
const_static_values: &'static EnumValues,
) -> Option<TypeInfo>
pub fn complete_type_info( type_: Type, const_static_values: &'static EnumValues, ) -> Option<TypeInfo>
Complete TypeInfo
for an enum with values.
This is an associated function. A method would result in a stack overflow due to a recurvice call:
callers should first create an EnumClass
instance by calling EnumClass::with_type()
which indirectly
calls TypePluginRegisterImpl::register_dynamic_enum()
and TypePluginImpl::complete_type_info()
and one of them should call EnumClass::with_type()
before calling this method.
const_static_values
is a reference on a wrapper of a slice of EnumValue
.
It must be static to ensure enumeration values are never dropped, and ensures that slice is terminated
by an EnumValue
with all members being 0, as expected by GLib.
Trait Implementations§
impl Send for EnumClass
impl Sync for EnumClass
Auto Trait Implementations§
impl Freeze for EnumClass
impl RefUnwindSafe for EnumClass
impl Unpin for EnumClass
impl UnwindSafe for EnumClass
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§default unsafe fn clone_to_uninit(&self, dst: *mut T)
default unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)