#style #case #convert #different #libary #pascal #format

case_style

在不同的大小写风格之间进行转换

3个不稳定版本

0.2.1 2020年3月15日
0.2.0 2020年3月14日
0.1.0 2020年3月1日

#1532 in 文本处理

Download history 6/week @ 2024-04-08 8/week @ 2024-04-22 5/week @ 2024-05-13 3/week @ 2024-05-20 5/week @ 2024-06-03 1/week @ 2024-06-10 5/week @ 2024-06-24 49/week @ 2024-07-15 22/week @ 2024-07-22

每月 71 次下载
6 个crates中使用了(5个直接使用)

无许可证

28KB
640

case_style

Crates.io Documentation Crates.io

在不同的大小写风格之间进行转换

示例

使用此库有两种方式。一种是你事先知道类型

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);

当前支持的格式

  • 蛇形大小写
  • 驼峰大小写
  • 常量大小写
  • 中划线大小写
  • 小写空格大小写
  • 帕斯卡大小写
  • 句子大小写

查看最新的列表,请参阅文档

许可证:无许可证

无运行时依赖项