pub struct TypeParamInfo { /* private fields */ }
Expand description
Type information for a generic type parameter.
An example of a type parameter would be T
in struct Foo<T>
.
Implementations§
Source§impl TypeParamInfo
impl TypeParamInfo
Sourcepub fn new<T: TypePath + ?Sized>(name: impl Into<Cow<'static, str>>) -> Self
pub fn new<T: TypePath + ?Sized>(name: impl Into<Cow<'static, str>>) -> Self
Creates a new type parameter with the given name.
Sourcepub fn with_default<T: TypePath + ?Sized>(self) -> Self
pub fn with_default<T: TypePath + ?Sized>(self) -> Self
Sets the default type for the parameter.
Sourcepub fn default(&self) -> Option<&Type>
pub fn default(&self) -> Option<&Type>
The default type for the parameter, if any.
§Example
#[derive(Reflect)]
struct Foo<T = f32>(T);
let generics = Foo::<String>::type_info().generics();
let GenericInfo::Type(info) = generics.get_named("T").unwrap() else {
panic!("expected a type parameter");
};
let default = info.default().unwrap();
assert!(default.is::<f32>());
Sourcepub fn type_path(&self) -> &'static str
pub fn type_path(&self) -> &'static str
The stable, full type path of this type.
Use type_path_table
if you need access to the other methods on TypePath
.
Sourcepub fn type_path_table(&self) -> &TypePathTable
pub fn type_path_table(&self) -> &TypePathTable
A representation of the type path of this type.
Provides dynamic access to all methods on TypePath
.
Trait Implementations§
Source§impl Clone for TypeParamInfo
impl Clone for TypeParamInfo
Source§fn clone(&self) -> TypeParamInfo
fn clone(&self) -> TypeParamInfo
Returns a copy of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moreSource§impl Debug for TypeParamInfo
impl Debug for TypeParamInfo
Source§impl From<TypeParamInfo> for GenericInfo
impl From<TypeParamInfo> for GenericInfo
Source§fn from(value: TypeParamInfo) -> Self
fn from(value: TypeParamInfo) -> Self
Converts to this type from the input type.
Auto Trait Implementations§
impl Freeze for TypeParamInfo
impl RefUnwindSafe for TypeParamInfo
impl Send for TypeParamInfo
impl Sync for TypeParamInfo
impl Unpin for TypeParamInfo
impl UnwindSafe for TypeParamInfo
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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>
Convert
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>
Convert
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)
Convert
&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)
Convert
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.