Crates.io | case_style |
lib.rs | case_style |
version | 0.2.1 |
source | src |
created_at | 2020-03-01 14:46:09.776497 |
updated_at | 2020-03-15 15:16:11.002995 |
description | Converts from and to different case styles |
homepage | |
repository | https://github.com/thomas9911/case_style |
max_upload_size | |
id | 214182 |
size | 34,192 |
Converts from and to different case styles
There are two ways to use this libary. One is when you know the type upfront:
use case_style::CaseStyle;
let kebab = CaseStyle::from_camelcase("camelCase").to_kebabcase();
println!("{}", kebab);
assert_eq!("camel-case", kebab);
Or from string
use case_style::CaseStyle;
let pascal = CaseStyle::from_case("kebab", "kebab-case")
.expect("kebab is an existing format")
.to_case("Pascal")
.expect("pascal is an existing format");
println!("{}", pascal);
assert_eq!("KebabCase", pascal);
And one where you don't know exactly:
use case_style::CaseStyle;
let kebab = CaseStyle::guess("snake_case").unwrap().to_kebabcase();
println!("{}", kebab);
assert_eq!("snake-case", kebab);
The guess method is restrictive by design, so you should decide a backup type yourself like:
use case_style::CaseStyle;
let input = "user just typed this in :P";
let snake = CaseStyle::guess(input)
.unwrap_or(CaseStyle::from_sentencecase(input))
.to_snakecase();
println!("{}", snake);
assert_eq!("user_just_typed_this_in_:p", snake);
In the previous example you can see that the convertion of styles does not remove odd characters. This you should also do youself.
use case_style::CaseStyle;
let input = "this is just some random input 🦖 ";
let filtered_input: String = input
.chars()
.filter(|x| x == &' ' || x.is_ascii_alphanumeric())
.collect();
let filtered_input = filtered_input.trim();
let snake = CaseStyle::guess(filtered_input)
.unwrap_or(CaseStyle::from_lowercase_spacecase(filtered_input))
.to_camelcase();
println!("{}", snake);
assert_eq!("thisIsJustSomeRandomInput", snake);
Current supported formats:
for a up to date list look at the docs
License: Unlicense