You signed in with another tab or window.Reload to refresh your session.You signed out in another tab or window.Reload to refresh your session.You switched accounts on another tab or window.Reload to refresh your session.Dismiss alert
This library exists to provide case conversion between common cases likeCamelCase and snake_case. It is intended to be unicode aware, internallyconsistent, and reasonably well performing.
Definition of a word boundary
Word boundaries are defined by non-alphanumeric characters, as well aswithin those words in this manner:
If an uppercase character is followed by lowercase letters, a wordboundary is considered to be just prior to that uppercase character.
If multiple uppercase characters are consecutive, they are considered tobe within a single word, except that the last will be part of the next wordif it is followed by lowercase characters (see rule 1).
That is, "HelloWorld" is segmentedHello|World whereas "XMLHttpRequest" issegmentedXML|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 casebeing converted to. Multiple adjacent word boundaries (such as a series ofunderscores) are folded into one. ("hello__world" in snake case is therefore"hello_world", not the exact same string). Leading or trailing word boundaryindicators are dropped, except insofar as CamelCase capitalizes the first word.
Cases contained in this library:
UpperCamelCase
lowerCamelCase
snake_case
kebab-case
SHOUTY_SNAKE_CASE
Title Case
SHOUTY-KEBAB-CASE
Train-Case
MSRV
The minimum supported Rust version for this crate is 1.56.0. This may change inminor or patch releases, but we probably won't ever require a very recentversion. If you would like to have a stronger guarantee than that, please openan issue.
License
heck is distributed under the terms of both the MIT license and theApache License (Version 2.0).