Struct FlagsClass
pub struct FlagsClass(/* private fields */);Expand description
Representation of a flags for dynamically, at runtime, querying the values of the enum and
using them
Implementations§
§impl FlagsClass
impl FlagsClass
pub fn new<T>() -> FlagsClass
pub fn new<T>() -> FlagsClass
Create a new FlagsClass from a static type T.
Panics if T is not representing an flags type.
pub fn with_type(type_: Type) -> Option<FlagsClass>
pub fn with_type(type_: Type) -> Option<FlagsClass>
Create a new FlagsClass from a Type
Returns None if type_ is not representing a flags type.
pub fn value(&self, value: u32) -> Option<&FlagsValue>
pub fn value(&self, value: u32) -> Option<&FlagsValue>
Gets FlagsValue by integer value, if existing.
Returns None if the flags do not contain any value
with value.
pub fn value_by_name(&self, name: &str) -> Option<&FlagsValue>
pub fn value_by_name(&self, name: &str) -> Option<&FlagsValue>
Gets FlagsValue by string name name, if existing.
Returns None if the flags do not contain any value
with name name.
pub fn value_by_nick(&self, nick: &str) -> Option<&FlagsValue>
pub fn value_by_nick(&self, nick: &str) -> Option<&FlagsValue>
Gets FlagsValue by string nick nick, if existing.
Returns None if the flags do not contain any value
with nick nick.
pub fn values(&self) -> &[FlagsValue]
pub fn values(&self) -> &[FlagsValue]
Gets all FlagsValue of this FlagsClass.
pub fn to_value(&self, value: u32) -> Option<Value>
pub fn to_value(&self, value: u32) -> Option<Value>
Converts integer value to a Value, if part of the flags.
pub 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 flags.
pub 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 flags.
pub fn is_set(&self, value: &Value, f: u32) -> bool
pub fn is_set(&self, value: &Value, f: u32) -> bool
Checks if the flags corresponding to integer f is set in value.
pub fn is_set_by_name(&self, value: &Value, name: &str) -> bool
pub fn is_set_by_name(&self, value: &Value, name: &str) -> bool
Checks if the flags corresponding to string name name is set in value.
pub fn is_set_by_nick(&self, value: &Value, nick: &str) -> bool
pub fn is_set_by_nick(&self, value: &Value, nick: &str) -> bool
Checks if the flags corresponding to string nick nick is set in value.
pub fn set(&self, value: Value, f: u32) -> Result<Value, Value>
pub fn set(&self, value: Value, f: u32) -> Result<Value, Value>
Set flags value corresponding to integer f in value, if part of that flags. If the
flag is already set, it will succeed without doing any changes.
Returns Ok(value) with the flag set if successful, or Err(value) with the original
value otherwise.
pub fn set_by_name(&self, value: Value, name: &str) -> Result<Value, Value>
pub fn set_by_name(&self, value: Value, name: &str) -> Result<Value, Value>
Set flags value corresponding to string name name in value, if part of that flags.
If the flag is already set, it will succeed without doing any changes.
Returns Ok(value) with the flag set if successful, or Err(value) with the original
value otherwise.
pub fn set_by_nick(&self, value: Value, nick: &str) -> Result<Value, Value>
pub fn set_by_nick(&self, value: Value, nick: &str) -> Result<Value, Value>
Set flags value corresponding to string nick nick in value, if part of that flags.
If the flag is already set, it will succeed without doing any changes.
Returns Ok(value) with the flag set if successful, or Err(value) with the original
value otherwise.
pub fn unset(&self, value: Value, f: u32) -> Result<Value, Value>
pub fn unset(&self, value: Value, f: u32) -> Result<Value, Value>
Unset flags value corresponding to integer f in value, if part of that flags.
If the flag is already unset, it will succeed without doing any changes.
Returns Ok(value) with the flag unset if successful, or Err(value) with the original
value otherwise.
pub fn unset_by_name(&self, value: Value, name: &str) -> Result<Value, Value>
pub fn unset_by_name(&self, value: Value, name: &str) -> Result<Value, Value>
Unset flags value corresponding to string name name in value, if part of that flags.
If the flag is already unset, it will succeed without doing any changes.
Returns Ok(value) with the flag unset if successful, or Err(value) with the original
value otherwise.
pub fn unset_by_nick(&self, value: Value, nick: &str) -> Result<Value, Value>
pub fn unset_by_nick(&self, value: Value, nick: &str) -> Result<Value, Value>
Unset flags value corresponding to string nick nick in value, if part of that flags.
If the flag is already unset, it will succeed without doing any changes.
Returns Ok(value) with the flag unset if successful, or Err(value) with the original
value otherwise.
pub fn to_nick_string(&self, value: u32) -> String
pub fn to_nick_string(&self, value: u32) -> String
Converts an integer value to a string of nicks separated by |.
pub fn from_nick_string(&self, s: &str) -> Result<u32, ParseFlagsError>
pub fn from_nick_string(&self, s: &str) -> Result<u32, ParseFlagsError>
Converts a string of nicks s separated by | to an integer value.
pub fn builder(&self) -> FlagsBuilder<'_>
pub fn builder(&self) -> FlagsBuilder<'_>
Returns a new FlagsBuilder for conveniently setting/unsetting flags
and building a Value.
pub fn builder_with_value(&self, value: Value) -> Option<FlagsBuilder<'_>>
pub fn builder_with_value(&self, value: Value) -> Option<FlagsBuilder<'_>>
Returns a new FlagsBuilder for conveniently setting/unsetting flags
and building a Value. The Value is initialized with value.
pub fn complete_type_info(
type_: Type,
const_static_values: &'static EnumerationValues<FlagsValue>,
) -> Option<TypeInfo>
pub fn complete_type_info( type_: Type, const_static_values: &'static EnumerationValues<FlagsValue>, ) -> Option<TypeInfo>
Complete TypeInfo for the flags 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 FlagsClass instance by calling FlagsClass::with_type() which indirectly
calls TypePluginRegisterImpl::register_dynamic_flags() and TypePluginImpl::complete_type_info()
and one of them should call FlagsClass::with_type() before calling this method.
const_static_values is a reference on a wrapper of a slice of FlagsValue.
It must be static to ensure flags values are never dropped, and ensures that slice is terminated
by an FlagsValue with all members being 0, as expected by GLib.
Trait Implementations§
§impl Clone for FlagsClass
impl Clone for FlagsClass
§fn clone(&self) -> FlagsClass
fn clone(&self) -> FlagsClass
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more§impl Debug for FlagsClass
impl Debug for FlagsClass
impl Send for FlagsClass
impl Sync for FlagsClass
Auto Trait Implementations§
impl Freeze for FlagsClass
impl RefUnwindSafe for FlagsClass
impl Unpin for FlagsClass
impl UnwindSafe for FlagsClass
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,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
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