#snake #inflection #pluralize #camel

Inflector

为 Rust 添加基于 String 的词形变化。支持 snake、kebab、camel、sentence、class、title 等词形,以及 ordinalize、deordinalize、demodulize、外键、复数/单数等,作为特质和纯函数作用于 String 类型。

26 个版本

使用旧的 Rust 2015

0.11.4 2019 年 1 月 20 日
0.11.3 2018 年 5 月 5 日
0.11.2 2018 年 3 月 5 日
0.11.1 2017 年 12 月 14 日
0.1.6 2015 年 10 月 27 日

文本处理 中排名 21

Download history 347592/week @ 2024-03-14 343501/week @ 2024-03-21 370608/week @ 2024-03-28 410040/week @ 2024-04-04 394019/week @ 2024-04-11 372919/week @ 2024-04-18 320106/week @ 2024-04-25 327273/week @ 2024-05-02 324068/week @ 2024-05-09 355840/week @ 2024-05-16 364455/week @ 2024-05-23 386164/week @ 2024-05-30 379581/week @ 2024-06-06 395607/week @ 2024-06-13 378923/week @ 2024-06-20 327503/week @ 2024-06-27

每月下载量 864,423
3,444 个 crates (309 个直接使用) 中使用

BSD-2-Clause 协议

175KB
2.5K SLoC

Rust Inflector

Build Status Crates.ioCrate downloads

为 Rust 添加基于 String 的词形变化。支持 snake、kebab、train、camel、sentence、class、title 等词形,以及 ordinalize、deordinalize、demodulize、deconstantize、外键、表格形式、复数/单数等,作为特质和纯函数作用于 &str 和 String 类型。


文档

文档可在 README 中找到,或通过以下 rust 文档查看。

Rust 文档及示例


安装

作为一个 crate

[dependencies]
Inflector = "*"

自行编译

  1. 安装 Rust 和 cargo
  2. git clone https://github.com/whatisinternet/Inflector
  3. 库:cd inflector && cargo build --release --lib
  4. 您可以在 target/release 中找到库

使用/示例

...
// to use methods like String.to_lower_case();
extern crate inflector;
use inflector::Inflector;
...
fn main() {
...
  let camel_case_string: String = "some_string".to_camel_case();
...
}

...
// to use methods like to_snake_case(&str);
extern crate inflector;

// use inflector::cases::classcase::to_class_case;
// use inflector::cases::classcase::is_class_case;

// use inflector::cases::camelcase::to_camel_case;
// use inflector::cases::camelcase::is_camel_case;

// use inflector::cases::pascalcase::to_pascal_case;
// use inflector::cases::pascalcase::is_pascal_case;

// use inflector::cases::screamingsnakecase::to_screamingsnake_case;
// use inflector::cases::screamingsnakecase::is_screamingsnake_case;

// use inflector::cases::snakecase::to_snake_case;
// use inflector::cases::snakecase::is_snake_case;

// use inflector::cases::kebabcase::to_kebab_case;
// use inflector::cases::kebabcase::is_kebab_case;

// use inflector::cases::traincase::to_train_case;
// use inflector::cases::traincase::is_train_case;

// use inflector::cases::sentencecase::to_sentence_case;
// use inflector::cases::sentencecase::is_sentence_case;

// use inflector::cases::titlecase::to_title_case;
// use inflector::cases::titlecase::is_title_case;

// use inflector::cases::tablecase::to_table_case;
// use inflector::cases::tablecase::is_table_case;

// use inflector::numbers::ordinalize::ordinalize;
// use inflector::numbers::deordinalize::deordinalize;

// use inflector::suffix::foreignkey::to_foreign_key;
// use inflector::suffix::foreignkey::is_foreign_key;

// use inflector::string::demodulize::demodulize;
// use inflector::string::deconstantize::deconstantize;

// use inflector::string::pluralize::to_plural;
// use inflector::string::singularize::to_singular;
...
fn main() {
...
  let camel_case_string: String = to_camel_case("some_string");
...
}

高级安装和用法

如果项目不需要 singularize、pluralize、class、table、demodulize、deconstantize。那么在您的 cargo.toml 中,您可能希望指定

[dependencies.Inflector]
version = "*"
default-features = false

Inflector = {version="*", default-features=false}

要本地测试此 crate 并关闭特性,请尝试

cargo test --no-default-features

贡献

该项目旨在成为一个安全、欢迎的协作空间,贡献者应遵守 贡献者公约 行为准则。

依赖

~0–510KB