22 stable releases
Uses old Rust 2015
1.15.2 | Nov 10, 2022 |
---|---|
1.15.0 | Oct 1, 2022 |
1.14.0 | Sep 18, 2021 |
1.13.0 | Oct 4, 2020 |
0.5.0 | Oct 19, 2018 |
#204 in Encoding
6,994 downloads per month
Used in 30 crates
(20 directly)
2MB
68K
SLoC
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:
use 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):
use 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
Build docs: cargo doc
-> ./target/doc/voca_rs/index.html
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
Dependencies
~2.5–3.5MB
~59K SLoC