#snake #inflector #inflection #camel #pluralize

inflector-plus

为 Rust 添加基于 String 的屈折形式。支持蛇形、短横线、驼峰、单词、句子、类、标题和小写表格形式,以及序数、去序数、去模数、外键、复数/单数等作为特性和对 String 类型执行操作的纯函数。

3 个版本

使用旧的 Rust 2015

0.11.7 2022 年 9 月 11 日
0.11.6 2022 年 9 月 10 日
0.11.5 2022 年 9 月 5 日

#603 in 文本处理

Download history 56/week @ 2024-04-22 78/week @ 2024-04-29 88/week @ 2024-05-06 157/week @ 2024-05-13 40/week @ 2024-05-20 25/week @ 2024-05-27 38/week @ 2024-06-03 77/week @ 2024-06-10 32/week @ 2024-06-17 31/week @ 2024-06-24 7/week @ 2024-07-01 4/week @ 2024-07-08 58/week @ 2024-07-15 14/week @ 2024-07-22 17/week @ 2024-07-29 22/week @ 2024-08-05

112 每月下载次数
5 个crate中(2 个直接) 使用

BSD-2-Clause

195KB
3K SLoC

inflector-plus

Build Status Crates.ioCrate downloads

此项目是从 https://github.com/whatisinternet/Inflector 分叉的。原始作者不再维护此项目。

为 Rust 添加基于 String 的屈折形式。支持蛇形、短横线、kebab、驼峰、单词、句子、类、标题和小写表格形式,以及序数化、去序数化、去模数化、外键、表形式和复数/单数等作为特性和对 &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::wordcase::to_word_case;
// use inflector::cases::wordcase::is_word_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;

// use inflector::string::articlize::articlize;
// use inflector::string::articlize::dearticlize;
...
fn main() {
...
  let camel_case_string: String = to_camel_case("some_string");
...
}

高级安装和用法

如果项目不需要单复数化、复数/单数、类、表、去模数化、去常量化。那么在您的 cargo.toml 中,您可能希望指定

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

或者

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

要本地测试此 crate 且不启用功能,请尝试

cargo test --no-default-features

贡献

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

依赖关系

~0–510KB