Struct Variant
pub struct Variant<T> { /* private fields */ }Expand description
Union container for manipulating an object from a heterogeneous set of types in a uniform manner.
Implementations§
§impl<T> Variant<T>
impl<T> Variant<T>
pub const fn as_ptr(&self) -> *mut VariantWrapper
§impl<T> Variant<T>
impl<T> Variant<T>
pub fn get_type(&self) -> Result<VariantDataType, Error>
pub fn get_type(&self) -> Result<VariantDataType, Error>
Gets the data type of a Variant.
§impl Variant<()>
impl Variant<()>
pub fn cast<T>(self) -> Result<Option<Variant<T>>, Error>where
T: VariantConstraint,
pub fn cast<T>(self) -> Result<Option<Variant<T>>, Error>where
T: VariantConstraint,
Casts a generic Variant to a more specific type.
pub fn cast_ref<T>(&self) -> Result<Option<&Variant<T>>, Error>where
T: VariantConstraint,
pub fn cast_ref<T>(&self) -> Result<Option<&Variant<T>>, Error>where
T: VariantConstraint,
Casts a generic Variant reference to a more specific type.
pub unsafe fn cast_unchecked<T>(self) -> Variant<T>where
T: VariantConstraint,
pub unsafe fn cast_unchecked<T>(self) -> Variant<T>where
T: VariantConstraint,
pub unsafe fn cast_ref_unchecked<T>(&self) -> &Variant<T>where
T: VariantConstraint,
pub unsafe fn cast_ref_unchecked<T>(&self) -> &Variant<T>where
T: VariantConstraint,
§impl<T> Variant<T>where
T: VariantConstraint,
impl<T> Variant<T>where
T: VariantConstraint,
pub fn create(
domain: &Domain,
value: <T as VariantConstraint>::DataArg<'_>,
) -> Result<Variant<T>, Error>
pub fn create( domain: &Domain, value: <T as VariantConstraint>::DataArg<'_>, ) -> Result<Variant<T>, Error>
pub fn get(&self) -> Result<<T as VariantConstraint>::RetArg, Error>
pub fn get(&self) -> Result<<T as VariantConstraint>::RetArg, Error>
Returns the value stored in the Variant.
pub fn as_abstract(&self) -> &Variant<()>
pub fn as_abstract(&self) -> &Variant<()>
Casts a Variant reference to its abstract representation.
Trait Implementations§
§impl<T> Debug for Variant<T>where
T: VariantConstraint,
let variant = Variant::<Vector2>::create(
&domain,
Vector2::ONE,
)?;
assert_eq!(
format!("{variant:?}"),
"Variant: vector2 = 'Vector2 { data: [1.0, 1.0] }'",
);
impl<T> Debug for Variant<T>where
T: VariantConstraint,
let variant = Variant::<Vector2>::create(
&domain,
Vector2::ONE,
)?;
assert_eq!(
format!("{variant:?}"),
"Variant: vector2 = 'Vector2 { data: [1.0, 1.0] }'",
);
§impl<T> Display for Variant<T>where
T: VariantConstraint,
impl<T> Display for Variant<T>where
T: VariantConstraint,
Auto Trait Implementations§
impl<T> Freeze for Variant<T>
impl<T> RefUnwindSafe for Variant<T>where
T: RefUnwindSafe,
impl<T> !Send for Variant<T>
impl<T> !Sync for Variant<T>
impl<T> Unpin for Variant<T>where
T: Unpin,
impl<T> UnwindSafe for Variant<T>where
T: UnwindSafe,
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
Mutably borrows from an owned value. Read more