Voca rs
Voca_rs is the ultimate Rust [unicode] string library, implemented as independent functions and on Foreign Types (String and str).
**Voca_rs is a Rust library for manipulating [unicode] strings.** The project is written primarily in Rust, distributed under the Other license, first published in 2018. Key topics include: rust, string, string-formatter, string-manipulation, string-matching.
voca_rs
Voca_rs is a Rust library for manipulating [unicode] strings.
Voca_rs is implemented on Foreign Types, i.e. String and str. Respects Unicode.
Voca_rs is inspired by Voca.js (JavaScript), string.py (Python), Inflector (Rust), and Grafite (PHP).
TL;DR
Using functions:
rustuse voca_rs::*; let input_string = "LazyLoad with XMLHttpRequest and snake_case"; let string_in_words = split::words(&input_string); // => ["Lazy", "Load", "with", "XML", "Http", "Request", "and", "snake", "case"] let words_in_string = &string_in_words.join(" "); // => "Lazy Load with XML Http Request and snake case" let truncated_string = chop::prune(&words_in_string, 21, ""); // => "Lazy Load with XML..." let sliced_string = chop::slice(&truncated_string, 5, -2); // => "Load with XML." let snaked_string = case::snake_case(&sliced_string); // => "load_with_xml"
Using traits (all methods start from the underscore symbol):
rustuse voca_rs::Voca; "LazyLoad with XMLHttpRequest and snake_case" ._words() // => ["Lazy", "Load", "with", "XML", "Http", "Request", "and", "snake", "case"] .join(" ") // => "Lazy Load with XML Http Request and snake case" ._prune(21, "") // => "Lazy Load with XML..." ._slice(5, -2) // => "Load with XML." ._snake_case(); // => "load_with_xml"
Documentation
See the complete documentation at https://docs.rs/voca_rs/
Run tests: cargo test<br>
Build docs: cargo doc -> ./target/doc/voca_rs/index.html <br>
Build a project: cargo build -> ./target/debug
Functions
Case
- camel_case
- capitalize
- decapitalize
- kebab_case
- lower_case
- lower_first
- pascal_case
- shouty_kebab_case
- shouty_snake_case
- snake_case
- swap_case
- title_case
- train_case
- upper_case
- upper_first
Chop
- after
- after_last
- before
- before_last
- char_at
- code_point_at
- first
- foreign_key
- grapheme_at
- last
- limit_words
- max
- min
- prune
- removeprefix
- removesuffix
- slice
- substr
- substring
- truncate
Count
Escape
Index
Manipulate
- expand_spaces
- expand_tabs
- finish
- insert
- latinise
- pad
- pad_left
- pad_right
- repeat
- replace
- replace_all
- reverse
- reverse_grapheme
- slugify
- splice
- start
- tr
- trim
- trim_left
- trim_right
- word_wrap
- zfill
Query
- ends_with
- includes
- is_alpha
- is_alphadigit
- is_blank
- is_camel_case
- is_capitalize
- is_decapitalize
- is_digit
- is_empty
- is_foreign_key
- is_lowercase
- is_lower_first
- is_kebab_case
- is_shouty_kebab_case
- is_numeric
- is_pascal_case
- is_snake_case
- is_shouty_snake_case
- is_title
- is_train_case
- is_uppercase
- is_upper_first
- matches
- query
- starts_with
Split
Strip
Utils
- ASCII_LETTERS
- ASCII_LOWERCASE
- ASCII_UPPERCASE
- DIGITS
- HEXDIGITS
- OCTDIGITS
- PUNCTUATION
- PRINTABLE
- WHITESPACE
- VERSION
Copyright
Coded by A. Merezhanyi
License
Licensed under MIT License
Contributors
Showing top 7 contributors by commit count.
