# Rust split-identifier package
This package provides functions to split programmatic identifiers according to
case conventions. This package takes it's implementation directly from the
[convert_case](https://github.com/rutrum/convert-case) crate.
[![License-Apache_2.0](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)
[![Rust Workflow](https://github.com/johnstonskj/split-identifier/actions/workflows/rust.yml/badge.svg)](https://github.com/johnstonskj/split-identifier/actions/workflows/rust.yml)
[![Security Audit Workflow](https://github.com/johnstonskj/split-identifier/actions/workflows/security-audit.yml/badge.svg)](https://github.com/johnstonskj/split-identifier/actions/workflows/security-audit.yml)
[![Coverage Status](https://codecov.io/gh/johnstonskj/split-identifier/branch/main/graph/badge.svg?token=1HGN6M4KIT)](https://codecov.io/gh/johnstonskj/split-identifier)
[![Stargazer Count](https://img.shields.io/github/stars/johnstonskj/split-identifier.svg)](https://github.com/johnstonskj/split-identifier/stargazers)
This package provides two functions, described below, and uses the segmentation
code from the [convert_case](https://github.com/rutrum/convert-case) crate to break a long identifier into it's component
parts according to word breaks identified by it's case convention. For example
the identifier "/halt after 3 attempts/" is represented in the following manner
in different conventions:
| [Lower] Camel | Ll·Lu, Nd | `haltAfter3Tries` | Ll |
| UpperCamel | Ll·Lu, Nd | `haltAfter3Tries` | Lu |
| [Lower] Snake | '_' | `halt_after_3_tries` | Ll |
| UpperSnake | '_' | `HALT_AFTER_3_TRIES` | Lu |
| Kebab | '-' | `halt-after-3-tries` | Ll |
| UpperKebab | '-' | `HALT-AFTER-3-TRIES` | Lu |
| Train | '-' | `Halt-After-3-Tries` | Lu |
## Examples
TBD
## Changes
### Version 0.1.0
* Initial release
* Provides the functions `split_id_string` and `guess_id_case`.
* Documentation is *sparse*.
* Copies the modules `case` and `segmentation` from the `convert_case` crate and
edits out unnecessary elements.
* This editing also means there is no dependency on the original crate.