pub enum ReflectRef<'a> {
Struct(&'a dyn Struct),
TupleStruct(&'a dyn TupleStruct),
Tuple(&'a dyn Tuple),
List(&'a dyn List),
Array(&'a dyn Array),
Map(&'a dyn Map),
Set(&'a dyn Set),
Enum(&'a dyn Enum),
Function(&'a dyn Function),
Opaque(&'a dyn PartialReflect),
}
Expand description
An immutable enumeration of “kinds” of a reflected type.
Each variant contains a trait object with methods specific to a kind of type.
A ReflectRef
is obtained via PartialReflect::reflect_ref
.
Variants§
Struct(&'a dyn Struct)
An immutable reference to a struct-like type.
TupleStruct(&'a dyn TupleStruct)
An immutable reference to a tuple-struct-like type.
Tuple(&'a dyn Tuple)
An immutable reference to a tuple-like type.
List(&'a dyn List)
An immutable reference to a list-like type.
Array(&'a dyn Array)
An immutable reference to an array-like type.
Map(&'a dyn Map)
An immutable reference to a map-like type.
Set(&'a dyn Set)
An immutable reference to a set-like type.
Enum(&'a dyn Enum)
An immutable reference to an enum-like type.
Function(&'a dyn Function)
functions
only.An immutable reference to a function-like type.
Opaque(&'a dyn PartialReflect)
An immutable reference to an opaque type.
Implementations§
Source§impl ReflectRef<'_>
impl ReflectRef<'_>
Sourcepub fn kind(&self) -> ReflectKind
pub fn kind(&self) -> ReflectKind
Returns the “kind” of this reflected type without any information.
Source§impl<'a> ReflectRef<'a>
impl<'a> ReflectRef<'a>
Sourcepub fn as_struct(self) -> Result<&'a dyn Struct, ReflectKindMismatchError>
pub fn as_struct(self) -> Result<&'a dyn Struct, ReflectKindMismatchError>
Attempts a cast to a Struct
trait object.
Returns an error if self
is not the Self::Struct
variant.
Sourcepub fn as_tuple_struct(
self,
) -> Result<&'a dyn TupleStruct, ReflectKindMismatchError>
pub fn as_tuple_struct( self, ) -> Result<&'a dyn TupleStruct, ReflectKindMismatchError>
Attempts a cast to a TupleStruct
trait object.
Returns an error if self
is not the Self::TupleStruct
variant.
Sourcepub fn as_tuple(self) -> Result<&'a dyn Tuple, ReflectKindMismatchError>
pub fn as_tuple(self) -> Result<&'a dyn Tuple, ReflectKindMismatchError>
Attempts a cast to a Tuple
trait object.
Returns an error if self
is not the Self::Tuple
variant.
Sourcepub fn as_list(self) -> Result<&'a dyn List, ReflectKindMismatchError>
pub fn as_list(self) -> Result<&'a dyn List, ReflectKindMismatchError>
Attempts a cast to a List
trait object.
Returns an error if self
is not the Self::List
variant.
Sourcepub fn as_array(self) -> Result<&'a dyn Array, ReflectKindMismatchError>
pub fn as_array(self) -> Result<&'a dyn Array, ReflectKindMismatchError>
Attempts a cast to a Array
trait object.
Returns an error if self
is not the Self::Array
variant.
Sourcepub fn as_map(self) -> Result<&'a dyn Map, ReflectKindMismatchError>
pub fn as_map(self) -> Result<&'a dyn Map, ReflectKindMismatchError>
Sourcepub fn as_set(self) -> Result<&'a dyn Set, ReflectKindMismatchError>
pub fn as_set(self) -> Result<&'a dyn Set, ReflectKindMismatchError>
Sourcepub fn as_enum(self) -> Result<&'a dyn Enum, ReflectKindMismatchError>
pub fn as_enum(self) -> Result<&'a dyn Enum, ReflectKindMismatchError>
Attempts a cast to a Enum
trait object.
Returns an error if self
is not the Self::Enum
variant.
Sourcepub fn as_opaque(
self,
) -> Result<&'a dyn PartialReflect, ReflectKindMismatchError>
pub fn as_opaque( self, ) -> Result<&'a dyn PartialReflect, ReflectKindMismatchError>
Attempts a cast to a PartialReflect
trait object.
Returns an error if self
is not the Self::Opaque
variant.
Trait Implementations§
Source§impl From<ReflectRef<'_>> for ReflectKind
impl From<ReflectRef<'_>> for ReflectKind
Source§fn from(value: ReflectRef<'_>) -> Self
fn from(value: ReflectRef<'_>) -> Self
Auto Trait Implementations§
impl<'a> Freeze for ReflectRef<'a>
impl<'a> !RefUnwindSafe for ReflectRef<'a>
impl<'a> Send for ReflectRef<'a>
impl<'a> Sync for ReflectRef<'a>
impl<'a> Unpin for ReflectRef<'a>
impl<'a> !UnwindSafe for ReflectRef<'a>
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> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
, which can then be
downcast
into Box<dyn ConcreteType>
where ConcreteType
implements Trait
.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
, which can then be further
downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.