Skip to content

withoutboats/heck

Repository files navigation

heck is a case conversion library

"I specifically requested the opposite of this."

This library exists to provide case conversion between common cases like CamelCase and snake_case. It is intended to be unicode aware, internally consistent, and reasonably well performing.

Definition of a word boundary

Word boundaries are defined by non-alphanumeric characters, as well as within those words in this manner:

  1. If an uppercase character is followed by lowercase letters, a word boundary is considered to be just prior to that uppercase character.
  2. If multiple uppercase characters are consecutive, they are considered to be within a single word, except that the last will be part of the next word if it is followed by lowercase characters (see rule 1).

That is, "HelloWorld" is segmented Hello|World whereas "XMLHttpRequest" is segmented XML|Http|Request.

Characters not within words (such as spaces, punctuations, and underscores) are not included in the output string except as they are a part of the case being converted to. Multiple adjacent word boundaries (such as a series of underscores) are folded into one. ("hello__world" in snake case is therefore "hello_world", not the exact same string). Leading or trailing word boundary indicators are dropped, except insofar as CamelCase capitalizes the first word.

Cases contained in this library:

  1. UpperCamelCase
  2. lowerCamelCase
  3. snake_case
  4. kebab-case
  5. SHOUTY_SNAKE_CASE
  6. Title Case
  7. SHOUTY-KEBAB-CASE
  8. Train-Case

MSRV

The minimum supported Rust version for this crate is 1.56.0. This may change in minor or patch releases, but we probably won't ever require a very recent version. If you would like to have a stronger guarantee than that, please open an issue.

License

heck is distributed under the terms of both the MIT license and the Apache License (Version 2.0).

See LICENSE-APACHE and LICENSE-MIT for details.

About

oh heck, a case conversion library

Resources

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 10

Languages

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy