Skip to content

Voca_rs is the ultimate Rust string library inspired by Voca.js, string.py and Inflector, implemented as independent functions and on Foreign Types (String and str).

License

Notifications You must be signed in to change notification settings

RohanArepally/voca_rs

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

About

Voca_rs is the ultimate Rust string library inspired by Voca.js, string.py and Inflector, implemented as independent functions and on Foreign Types (String and str).

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Rust 100.0%