ncase

Crates.ioncase
lib.rsncase
version0.2.2
sourcesrc
created_at2022-07-22 16:17:57.049861
updated_at2024-03-22 22:47:39.884718
descriptionEnforce a case style
homepage
repositoryhttps://codeberg.org/xmyst/ncase.git
max_upload_size
id630901
size45,712
Stanislau Miasnikou (xmyst)

documentation

README

ncase [ɪn'keɪs] — enforce a case style

Why?

So that I could

% for f in *.pdf; do
	mv "$f" "$(ncase -s `basename "$f" .pdf`).pdf"
done

Binary

Install

% cargo install ncase

Usage

Enforce a case style on a string and write that to the standard output

% ncase --pascal this is a test string
ThisIsATestString
% ncase --lower ThisIsATestString
this is a test string

If built with the rand feature, enforce rANdOm cASe by default

% ncase this is a test string
ThiS IS A tesT stRINg

Otherwise, enforce tOGGLE cASE by default

% ncase this is a test string
tHIS iS a tEST sTRING

Library

Install

Add the dependency to your Cargo.toml

[dependencies]
ncase = "0.2"

Or from the command line

% cargo add ncase@0.2

Usage

Use the free functions for one-off case conversions

assert_eq!(ncase::camel("camel case"), "camelCase");
assert_eq!(ncase::snake("snake case"), "snake_case");

Use Words if you need to convert one string into many case styles

use ncase::Words;

let s = "Lorem ipsum dolor sit amet";
let w = Words::from(s);

assert_eq!(w.kebab(), "lorem-ipsum-dolor-sit-amet");
assert_eq!(w.title(), "Lorem Ipsum Dolor Sit Amet");

Or if you want to use the separator regex (requires the regex feature)

use ncase::Words;
use regex::Regex;

let s = "Lorem, ipsum (dolor _sit)_ amet";
let sep = Regex::new(r"[\pP\s]+").unwrap();
let w = Words::with_separator(s, &sep);

assert_eq!(w.lower(), "lorem ipsum dolor sit amet");
assert_eq!(w.upper(), "LOREM IPSUM DOLOR SIT AMET");
Commit count: 0

cargo fmt