Experimenting with more structured ways to handle command-line input/output in Rust
# `locale_select`
A simple library for selecting the user's locale preferences for various ICU4X modules, such as calendar, datetime and decimals.

## Alternatives
This library is specific to ICU4X, but there are many Rust APIs with a similar focus. Here are some that I could find, and what they seem to do differently:
- [`simple-locale`]https://github.com/johnstonskj/simple-locale: very close to this crate, but doesn't use ICU4X libraries
- [`locale_settings`]https://docs.rs/locale-settings/latest/locale_settings: unmaintained(?) version of `simple-locale::settings`
- [`sys_locale`]https://github.com/1password/sys-locale: single locale instead of per-category
- [`utf8-locale`]https://gitlab.com/ppentchev/utf8-locale, [`locale-config`]https://github.com/rust-locale/locale_config: categories are less strongly typed
- [`gettextrs::setlocale()`]https://docs.rs/gettext-rs/latest/gettextrs/fn.setlocale.html: `gettext` bindings, this function can query the locale by setting the locale to a null string

## Useful links
- POSIX:
  - Locale category data: https://www.man7.org/linux/man-pages/man5/locale.5.html
  - Locale category definitions: https://www.man7.org/linux/man-pages/man7/locale.7.html
  - Description of locale names: https://www.gnu.org/software/libc/manual/html_node/Locale-Names.html
  - Locale spec: https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap07.html
  - Localization variables spec: https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap08.html#tag_08_02
  - Unicode handling of POSIX identifiers: https://unicode.org/reports/tr35/tr35.html#Legacy_Variants