typed-ident 0.0.1

Type-safe identifier validation, inspection, and mutation.
Documentation
Syntax definitions for segmentation strategies.

These are additional syntax rules that are meant to be set on a [`Profile`].

This module defines two segmentation strategies:

* [`Char`] - segment the in-profile characters by individual character code points.
* [`Grapheme`] - segment the in-profile characters by graphemes.

# Which Should I Use?

Technically you could use either regardless of the profile, but it just changes how boundary segmentation works.

For instance, using [`Char`] on the [`Unicode`] profile would still *work*, it just may fail to identify certain chunk boundaries, because the fact that we process everything on individual character code points would lead to slightly different boundaries being identified (mainly by *removing* boundaries).

If you care really badly about efficiency, *and* you don't mind losing some of these boundaries, then you can use [`Char`], just be aware of what that means.

**I do not recommend this!**

I think you should just use what makes sense for the profile.

* If you have a profile consisting purely of ASCII characters, you can use [`Char`] segmentation.
* Otherwise, you probably should just use [`Grapheme`] segmentation.

[`Profile`]: crate::syntax::profile::Profile
[`Unicode`]: crate::syntax::profile::chars::Unicode