#name #macro #function #methods

no-std fn_name

生成调用其内的函数名称的宏

1 个不稳定版本

0.1.0 2022年5月11日

#2653Rust 模式

Download history • Rust 包仓库 180/week @ 2024-04-03 • Rust 包仓库 180/week @ 2024-04-10 • Rust 包仓库 221/week @ 2024-04-17 • Rust 包仓库 263/week @ 2024-04-24 • Rust 包仓库 427/week @ 2024-05-01 • Rust 包仓库 146/week @ 2024-05-08 • Rust 包仓库 219/week @ 2024-05-15 • Rust 包仓库 149/week @ 2024-05-22 • Rust 包仓库 187/week @ 2024-05-29 • Rust 包仓库 290/week @ 2024-06-05 • Rust 包仓库 177/week @ 2024-06-12 • Rust 包仓库 205/week @ 2024-06-19 • Rust 包仓库 161/week @ 2024-06-26 • Rust 包仓库 125/week @ 2024-07-03 • Rust 包仓库 136/week @ 2024-07-10 • Rust 包仓库 236/week @ 2024-07-17 • Rust 包仓库

每月下载量 691
用于 9 个包(通过 veilid-tools

MIT/Apache 协议

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

无运行时依赖