Struct EnumClass

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§

§

impl EnumClass

pub fn new<T>() -> EnumClass
where T: StaticType + HasParamSpec<ParamSpec = ParamSpecEnum>,

Create a new EnumClass from a static type T.

Panics if T is not representing an enum.

pub fn with_type(type_: Type) -> Option<EnumClass>

Create a new EnumClass from a Type.

Returns None if type_ is not representing an enum.

pub fn type_(&self) -> Type

Type of the enum.

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.

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.

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.

pub fn values(&self) -> &[EnumValue]

Gets all EnumValue of this EnumClass.

pub fn to_value(&self, value: i32) -> Option<Value>

Converts integer value to a Value, if part of the enum.

pub fn to_value_by_name(&self, name: &str) -> Option<Value>

Converts string name name to a Value, if part of the enum.

pub fn to_value_by_nick(&self, nick: &str) -> Option<Value>

Converts string nick nick to a Value, if part of the enum.

pub fn complete_type_info( type_: Type, const_static_values: &'static EnumerationValues<EnumValue>, ) -> 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 Clone for EnumClass

§

fn clone(&self) -> EnumClass

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
§

impl Debug for EnumClass

§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
§

impl Drop for EnumClass

§

fn drop(&mut self)

Executes the destructor for this type. Read more
§

impl Send for EnumClass

§

impl Sync for EnumClass

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<C> AsyncPosition<()> for C

§

fn position(_index: usize)

Returns the position. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
§

impl<T> PolicyExt for T
where T: ?Sized,

§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns [Action::Follow] only if self and other return Action::Follow. Read more
§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns [Action::Follow] if either self or other returns Action::Follow. Read more
§

impl<C, I> Position<(), I> for C

§

fn position(&self, _index: &I)

Returns the position. Read more
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

impl<T> ErasedDestructor for T
where T: 'static,