pub struct ConstParamInfo { /* private fields */ }
Expand description
Type information for a const generic parameter.
An example of a const parameter would be N
in struct Foo<const N: usize>
.
Implementations§
Source§impl ConstParamInfo
impl ConstParamInfo
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 const parameter with the given name.
Sourcepub fn with_default<T: Reflect + 'static>(self, default: T) -> Self
pub fn with_default<T: Reflect + 'static>(self, default: T) -> Self
Sets the default value for the parameter.
Sourcepub fn default(&self) -> Option<&dyn Reflect>
pub fn default(&self) -> Option<&dyn Reflect>
The default value for the parameter, if any.
§Example
#[derive(Reflect)]
struct Foo<const N: usize = 10>([u8; N]);
let generics = Foo::<5>::type_info().generics();
let GenericInfo::Const(info) = generics.get_named("N").unwrap() else {
panic!("expected a const parameter");
};
let default = info.default().unwrap();
assert_eq!(default.downcast_ref::<usize>().unwrap(), &10);
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 ConstParamInfo
impl Clone for ConstParamInfo
Source§fn clone(&self) -> ConstParamInfo
fn clone(&self) -> ConstParamInfo
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 ConstParamInfo
impl Debug for ConstParamInfo
Source§impl From<ConstParamInfo> for GenericInfo
impl From<ConstParamInfo> for GenericInfo
Source§fn from(value: ConstParamInfo) -> Self
fn from(value: ConstParamInfo) -> Self
Converts to this type from the input type.
Auto Trait Implementations§
impl Freeze for ConstParamInfo
impl !RefUnwindSafe for ConstParamInfo
impl Send for ConstParamInfo
impl Sync for ConstParamInfo
impl Unpin for ConstParamInfo
impl !UnwindSafe for ConstParamInfo
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.