1 个不稳定版本
0.1.0 | 2022年5月11日 |
---|
#2653 在 Rust 模式
每月下载量 691
用于 9 个包(通过 veilid-tools)
7KB
fn_name
生成调用其内的函数名称的宏。
未实例化的名称
uninstantiated!
宏生成周围函数或方法的名称,不包括 实例化的泛型;例如。
struct GenericType<A>(A);
impl<A> GenericType<A> {
fn generic_method<B>(self, _: B) -> &'static str {
fn_name::uninstantiated!()
}
}
fn main() {
assert_eq!(
GenericType(42u8).generic_method(false),
"GenericType<_>::generic_method"
);
}
实例化的名称
instantiated!
宏生成周围函数或方法的名称,包括 实例化的泛型(如果有);例如。
struct GenericType<A>(A);
impl<A> GenericType<A> {
fn generic_method<B>(self, _: B) -> &'static str {
fn_name::instantiated!()
}
}
fn main() {
assert_eq!(
GenericType(42u8).generic_method(false),
"GenericType<u8>::generic_method<bool>"
);
}
限制
这些宏的展开目前不可进行恒等评估;它们的实现依赖于 core::any::type_name
,它不是一个 const fn
。