# `Unicode.String.Segment`
[🔗](https://github.com/elixir-unicode/unicode_string/blob/v2.1.0/lib/unicode/segment.ex#L1)

Implements the compilation of the Unicode
segment rules.

# `ancestors`

Returns a list of the ancestor locales
of the a given locale.

The list includes the given locale.

# `compile_rule`

Compiles a segment rule in the context of a list
of variables.

The compile rule can then be inserted into a
rule set.

# `compile_rules`

# `evaluate_rules`

Evaluates a list of rules against a given
string.

# `expand_variables`

# `is_id_continue`
*macro* 

Identifies if a codepoint is a valid identifier character

# `is_id_start`
*macro* 

Identifies if a codepoint is a valid start of an identifier

# `known_segmentation_locales`

Returns a list of the known locales that have
segmentation data.

# `rules`

Return the rules as defined by CLDR for a given
locale and break type.

# `rules!`

Return the rules as defined by CLDR for a given
locale and break type and raises on error.

# `suppressions`

Returns a list of the suppressions for a given
locale and segment type.

# `suppressions!`

Returns a list of the suppressions for a given
locale and segment type and raises on error.

---

*Consult [api-reference.md](api-reference.md) for complete listing*
