8个版本

0.4.0 2023年5月15日
0.3.3 2020年10月6日
0.3.2 2020年9月30日
0.3.0 2020年7月16日
0.1.1 2019年5月7日

#386过程宏

Download history 1383/week @ 2024-03-14 1436/week @ 2024-03-21 1831/week @ 2024-03-28 1318/week @ 2024-04-04 1891/week @ 2024-04-11 1604/week @ 2024-04-18 1763/week @ 2024-04-25 1679/week @ 2024-05-02 1677/week @ 2024-05-09 1492/week @ 2024-05-16 1501/week @ 2024-05-23 1403/week @ 2024-05-30 1909/week @ 2024-06-06 2357/week @ 2024-06-13 2005/week @ 2024-06-20 2679/week @ 2024-06-27

9,189 每月下载量
用于 27 个crates (12 直接)

MIT 许可证

9KB
168

Casey

Build

案例转换宏

Casey将给定输入ident的案例进行转换。
虽然是小众但可能在其他宏中很有用。

use casey::{pascal, lower, shouty, snake, upper};

lower!(ABC);    // renders: `abc`
upper!(abc);    // `ABC`
snake!(ABC);    // `a_b_c`
pascal!(ab_c);  // `AbC`
shouty!(a_b_c); // `A_B_C`

令牌流

Casey宏可以对TokenStream进行操作,例如。

    snake!(
        #[derive(PartialEq)]
        struct MockStruct {}
        impl MockStruct {
            fn test() -> bool { true }
        }
    );
    assert!(mock_struct::test());
    assert!(mock_struct::test() == mock_struct::test())

流中的所有ident令牌都将应用案例转换(关键字和属性宏将被忽略)。

注意事项

类型名称,包括内置类型,不是关键字,例如 boolusizei32等,并且 将会 通过Casey进行转换。

pascal!(let test: bool = true); // renders: `let Test: Bool = true;`

依赖

~1.5MB
~35K SLoC