Skip to content

Latest commit

 

History

History
233 lines (182 loc) · 12.4 KB

README.md

File metadata and controls

233 lines (182 loc) · 12.4 KB

voca_rs Build Status Crates version dependency status codecov Codacy Badge license

Voca_rs is a Rust library for manipulating strings.

Voca_rs is inspired by Voca.js, string.py and Inflector

Voca_rs is implemented on Foreign Types, i.e. String and str.

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://e1r0nd.github.io/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

Chop

Count

Escape

Index

Manipulate

Query

Split

Strip

Utils

Roadmap

  • Possible refactoring: all position indexes covert to zero-based and add a comment to each doc
  • Change all inner arguments to Enums (instead string or bool)
  • To ensure that all regexp expressions are wrapped by lazy_static

Chop

Count

  • countWhere - link
  • count_unique_words - link: Counting occurrences of words using a hash map that stores words and counts

Format

Chop

  • limint_words (from "words") - link
  • deconstantize - link
  • demodulize - link

Manipulate

Copyright

coded by Anatol Marezhanyi @e1r0nd_crg

https://linkedin.com/in/merezhany/
https://www.youtube.com/c/AnatolMerezhanyi

License

Licensed under MIT License