8 个版本

0.3.0 2022年5月11日
0.2.3 2022年5月10日
0.2.0 2019年6月21日
0.1.0 2019年6月19日

#45 in #proc-macro-attributes

Download history 22334/week @ 2024-03-14 19972/week @ 2024-03-21 19391/week @ 2024-03-28 19278/week @ 2024-04-04 20210/week @ 2024-04-11 20026/week @ 2024-04-18 18061/week @ 2024-04-25 14449/week @ 2024-05-02 16211/week @ 2024-05-09 18383/week @ 2024-05-16 13826/week @ 2024-05-23 18242/week @ 2024-05-30 16440/week @ 2024-06-06 14262/week @ 2024-06-13 18791/week @ 2024-06-20 13625/week @ 2024-06-27

67,951 每月下载量
用于 99 个crate(通过 function_name

MIT 许可证

6KB
133

::function_name

函数属性 #[named],在函数体作用域内生成一个 function_name! 宏。

生成的 function_name!() 宏将展开为注解函数的名称,作为一个字符串字面量。

Repository Latest version Documentation MSRV unsafe forbidden no_std compatible License CI

示例

use ::function_name::named;

#[named]
fn my_super_duper_function ()
{
    assert_eq!(
        function_name!(),
        "my_super_duper_function",
    );
}

由于生成的 function_name! 展开为一个字符串字面量,它可以与其他宏(如 concat!)一起使用。

#[macro_use] extern crate function_name;

macro_rules! function_path {() => (concat!(
    module_path!(), "::", function_name!()
))}

pub mod foo {
    pub mod bar {
        #[named]
        pub fn baz ()
        {
            assert_eq!(
                function_path!(),
                [
                    env!("CARGO_PKG_NAME"),
                    "foo", "bar",
                    "baz",
                ].join("::"),
            );
        }
    }
}

无运行时依赖