#convert-string #camel-case #pascal-case #case #ascii-text #pascal #snake

stringcase

Converts string cases between camelCase, COBOL-CASE, kebab-case, and so on

4 releases

0.2.1 Feb 26, 2024
0.2.0 Feb 25, 2024
0.1.1 Feb 23, 2024
0.1.0 Feb 18, 2024

#232 in Text processing

Download history 6/week @ 2024-03-13 12/week @ 2024-03-20 314/week @ 2024-03-27 30/week @ 2024-04-03 25/week @ 2024-04-10 126/week @ 2024-04-17 274/week @ 2024-04-24 382/week @ 2024-05-01 650/week @ 2024-05-08 1209/week @ 2024-05-15 756/week @ 2024-05-22 918/week @ 2024-05-29 710/week @ 2024-06-05 575/week @ 2024-06-12 1025/week @ 2024-06-19 702/week @ 2024-06-26

3,158 downloads per month

MIT license

135KB
3K SLoC

stringcase-rust crate.io doc.rs CI Status MIT License

This library provides some functions that convert string cases between camelCase, COBOL-CASE, kebab-case, MACRO_CASE, PascalCase, snake_case and Train-Case. And this library also provides a trait Caser which makes strings enable to convert their cases by their own methods.

Basically, these functions targets the upper and lower cases of only ASCII alphabets for capitalization, and all characters except ASCII alphabets and ASCII numbers are eliminated as word separators.

To limit characters using as separators, the functions named like *_with_sep are provided, and to keep specified characters, the functions named like *_with_keep are provided.

Install

In Cargo.toml, write this crate as a dependency.

[dependencies]
stringcase = "0.2.1"

Usage

The function contained in this crate can be executed as follows:

use stringcase::camel_case;

fn main() {
    let input = "foo-bar-baz";
    let camel = camel_case(input);
    assert_eq!(camel, "fooBarBaz");
}

And by bringing Caser with use declaration, it will be able to execute methods of strings, String or &str, to convert their cases.

use stringcase::Caser;

func main() {
    let input = "foo-bar-baz";
    let camel = input.to_camel_case();
    assert_eq!(camel, "fooBarBaz");
}

Supporting Rust versions

This library supports Rust 1.56.1 or later.

% cargo msrv
Fetching index
Determining the Minimum Supported Rust Version (MSRV) for toolchain x86_64-apple-darwin
Using check command cargo check
Check for toolchain '1.66.1-x86_64-apple-darwin' succeeded
Check for toolchain '1.61.0-x86_64-apple-darwin' succeeded
Check for toolchain '1.58.1-x86_64-apple-darwin' succeeded
Check for toolchain '1.57.0-x86_64-apple-darwin' succeeded
Check for toolchain '1.56.1-x86_64-apple-darwin' succeeded
   Finished The MSRV is: 1.56.1   █████████████████████████████████████ 00:00:20

License

Copyright (C) 2024 Takayuki Sato

This program is free software under MIT License.
See the file LICENSE in this distribution for more details.

No runtime deps