3个不稳定版本
0.2.1 | 2020年3月15日 |
---|---|
0.2.0 | 2020年3月14日 |
0.1.0 | 2020年3月1日 |
#1532 in 文本处理
每月 71 次下载
在 6 个crates中使用了(5个直接使用)
28KB
640 行
case_style
在不同的大小写风格之间进行转换
示例
使用此库有两种方式。一种是你事先知道类型
use case_style::CaseStyle;
let kebab = CaseStyle::from_camelcase("camelCase").to_kebabcase();
println!("{}", kebab);
assert_eq!("camel-case", kebab);
或从字符串
use case_style::CaseStyle;
let pascal = CaseStyle::from_case("kebab", "kebab-case")
.expect("kebab is an existing format")
.to_case("Pascal")
.expect("pascal is an existing format");
println!("{}", pascal);
assert_eq!("KebabCase", pascal);
另一种是你不知道确切类型
use case_style::CaseStyle;
let kebab = CaseStyle::guess("snake_case").unwrap().to_kebabcase();
println!("{}", kebab);
assert_eq!("snake-case", kebab);
由于猜测方法设计上受限,因此你应该自己决定备用类型,例如
use case_style::CaseStyle;
let input = "user just typed this in :P";
let snake = CaseStyle::guess(input)
.unwrap_or(CaseStyle::from_sentencecase(input))
.to_snakecase();
println!("{}", snake);
assert_eq!("user_just_typed_this_in_:p", snake);
在上面的示例中,你可以看到风格的转换不会移除奇数字符。这也应该由你自己完成。
use case_style::CaseStyle;
let input = "this is just some random input 🦖 ";
let filtered_input: String = input
.chars()
.filter(|x| x == &' ' || x.is_ascii_alphanumeric())
.collect();
let filtered_input = filtered_input.trim();
let snake = CaseStyle::guess(filtered_input)
.unwrap_or(CaseStyle::from_lowercase_spacecase(filtered_input))
.to_camelcase();
println!("{}", snake);
assert_eq!("thisIsJustSomeRandomInput", snake);
当前支持的格式
- 蛇形大小写
- 驼峰大小写
- 常量大小写
- 中划线大小写
- 小写空格大小写
- 帕斯卡大小写
- 句子大小写
查看最新的列表,请参阅文档
许可证:无许可证