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§
Source§impl FlagsClass
impl FlagsClass
Sourcepub fn new<T: StaticType + HasParamSpec<ParamSpec = ParamSpecFlags>>() -> Self
pub fn new<T: StaticType + HasParamSpec<ParamSpec = ParamSpecFlags>>() -> Self
Create a new FlagsClass
from a static type T
.
Panics if T
is not representing an flags type.
Sourcepub fn with_type(type_: Type) -> Option<Self>
pub fn with_type(type_: Type) -> Option<Self>
Create a new FlagsClass
from a Type
Returns None
if type_
is not representing a flags type.
Sourcepub 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
.
Sourcepub 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
.
Sourcepub 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
.
Sourcepub fn values(&self) -> &[FlagsValue]
pub fn values(&self) -> &[FlagsValue]
Gets all FlagsValue
of this FlagsClass
.
Sourcepub 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.
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 flags.
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 flags.
Sourcepub 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
.
Sourcepub 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
.
Sourcepub 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
.
Sourcepub 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.
Sourcepub 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.
Sourcepub 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.
Sourcepub 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.
Sourcepub 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.
Sourcepub 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.
Sourcepub 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 |
.
Sourcepub 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.
Sourcepub fn builder(&self) -> FlagsBuilder<'_>
pub fn builder(&self) -> FlagsBuilder<'_>
Returns a new FlagsBuilder
for conveniently setting/unsetting flags
and building a Value
.
Sourcepub 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
.
Sourcepub fn complete_type_info(
type_: Type,
const_static_values: &'static FlagsValues,
) -> Option<TypeInfo>
pub fn complete_type_info( type_: Type, const_static_values: &'static FlagsValues, ) -> 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.