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),
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)
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)
Opaque(&'a dyn PartialReflect)
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>
. Box<dyn Any>
can
then be further downcast
into Box<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>
. Rc<Any>
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.