# `Agentic.Cldr.Rbnf.Spellout`

Functions to implement the spellout rule-based-number-format rules of CLDR.

As CLDR notes, the data is incomplete or non-existent for many languages.  It
is considered complete for English however.

The standard public API for RBNF is via the `Cldr.Number.to_string/2` function.

The functions on this module are defined at compile time based upon the RBNF rules
defined in the Unicode CLDR data repository.  Available rules are identified by:

    iex> Agentic.Cldr.Rbnf.Spellout.rule_sets("en")
    ...> |> Enum.sort()
    [
      :spellout_cardinal,
      :spellout_cardinal_verbose,
      :spellout_numbering,
      :spellout_numbering_verbose,
      :spellout_numbering_year,
      :spellout_ordinal,
      :spellout_ordinal_verbose
    ]

A rule can then be invoked on an available rule_set. For example:

    iex> Agentic.Cldr.Rbnf.Spellout.spellout_ordinal(123, "en")
    "one hundred twenty-third"

This call is equivalent to the call through the public API of:

    iex> Agentic.Cldr.Number.to_string(123, format: :spellout)
    {:ok, "one hundred twenty-three"}

# `all_rule_sets`

# `and`

# `and_o`

# `commas`

# `commas_o`

# `r2d_year`

# `rule_sets`

# `rule_sets`

# `spellout_cardinal`

# `spellout_cardinal_verbose`

# `spellout_numbering`

# `spellout_numbering_verbose`

# `spellout_numbering_year`

# `spellout_ordinal`

# `spellout_ordinal_verbose`

# `th`

# `tieth`

---

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