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 在 过程宏 中
9,189 每月下载量
用于 27 个crates (12 直接)
9KB
168 行
Casey
案例转换宏
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
令牌都将应用案例转换(关键字和属性宏将被忽略)。
注意事项
类型名称,包括内置类型,不是关键字,例如 bool
、usize
、i32
等,并且 将会 通过Casey进行转换。
pascal!(let test: bool = true); // renders: `let Test: Bool = true;`
依赖
~1.5MB
~35K SLoC