ReCase
Changes the input text to the desired convention case.
Install
Add this to your Cargo.toml:
[]
= "0.5.0"
Features
- Zero Allocation Logic: Heavily optimized runtime and memory usage. It allocates exactly once (for the result string).
- Unicode Aware: Handles complex graphemes, and acronyms correctly aside from emojis, they are treated the same as lowercase characters for now.
Example:
use ;
All supported convention cases:
| Convention Case | Trait Method (on &str / String) |
Struct Method (ReCase) |
Example Result |
|---|---|---|---|
| camelCase | .to_camel_case() |
.camel_case() |
exampleString |
| snake_case | .to_snake_case() |
.snake_case() |
example_string |
| PascalCase | .to_pascal_case() |
.pascal_case() |
ExampleString |
| kebab-case | .to_kebab_case() |
.kebab_case() |
example-string |
| dot.case | .to_dot_case() |
.dot_case() |
example.string |
| path/case | .to_path_case() |
.path_case() |
example/string |
| windows\path\case | .to_windows_path_case() |
.windows_path_case() |
example\string |
| normal case | .to_normal_case() |
.normal_case() |
example string |
| Title Case | .to_title_case() |
.title_case() |
Example String |
| Sentence case | .to_sentence_case() |
.sentence_case() |
Example string |
| Header-Case | .to_header_case() |
.header_case() |
Example-String |
| UPPER_SNAKE_CASE | .to_upper_snake_case() |
.upper_snake_case() |
EXAMPLE_STRING |
| AlTeRnAtInG cAsE | .to_alternating_case() |
.alternating_case() |
eXaMpLe StRiNg |
Limitations
- Emojis are treated the same as lEmoji will be counted as lowercase characterowercase characters.
- Some UTF-8 characters can't be lowercased, like "SS" which is the uppercased form of "ß" or the dotless I (I) will turn into a normal i. There might be more cases that I failed to notice.
Acknowledgements
Heavily influenced by ReCase from techniboogie-dart.