commit | c6ca0de9dec2c9c423fd8833f6058f39961d7672 | [log] [tgz] |
---|---|---|
author | Bob Badour <[email protected]> | Thu Feb 23 06:24:20 2023 -0800 |
committer | Bob Badour <[email protected]> | Thu Feb 23 06:24:20 2023 -0800 |
tree | 6d84e41f01a0446c420ef2e650db0b924a0c1b40 | |
parent | 73afd77d00f815981f3994544fbef0c5fc692cad [diff] |
[LSC] Add LOCAL_LICENSE_KINDS to external/rust/crates/inflector Added SPDX-license-identifier-BSD to: Android.bp Bug: 68860345 Bug: 151177513 Bug: 151953481 Test: m all Change-Id: I708e8cfc8c7dd600de191c820701f4958962c2b5
Adds String based inflections for Rust. Snake, kebab, train, camel, sentence, class, and title cases as well as ordinalize, deordinalize, demodulize, deconstantize, foreign key, table case, and pluralize/singularize are supported as both traits and pure functions acting on &str and String types.
Documentation can be found here at the README or via rust docs below.
[dependencies] Inflector = "*"
... // 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(); ... }
Or
... // 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"); ... }
If the project doesn't require singularize, pluralize, class, table, demodulize, deconstantize. Then in your cargo.toml
you may wish to specify:
[dependencies.Inflector] version = "*" default-features = false
Or
Inflector = {version="*", default-features=false}
To test this crate locally with features off try:
cargo test --no-default-features
This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the Contributor Covenant code of conduct.