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.