rust-locale 0.1.4

POSIX.1 locale extension for Rust
Documentation
# rust-locale

[![CircleCI](https://circleci.com/gh/a-takahashi223/rust-locale/tree/main.svg?style=shield)](https://circleci.com/gh/a-takahashi223/rust-locale/tree/main)

`rust_locale` provides various functions dependent on locale specified in POSIX.1.

The main purpose is to provide something that is not in `char` methods or that differs in behavior from `char` methods.

## Dependency

```
[dependencies]
rust-locale = "0.1"
```

## Examples

```rust
use rust_locale::CType;

// space is different from whitespace
assert!('\x0c'.is_space());  # form feed
std::env::set_var("LC_ALL", "en_US");
assert!('\u{2003}'.is_space());  # Em Space
assert!(!'\u{1361}'.is_space());  # Ethiopic Wordspace
std::env::set_var("LC_ALL", "am_ET");
assert!('\u{1361}'.is_space());

// different behavior from char::to_uppercase
std::env::set_var("LC_ALL", "en_US");
assert_eq!(CType::to_uppercase(&'i'), 'I');
std::env::set_var("LC_ALL", "tr_TR");
assert_eq!(CType::to_uppercase(&'i'), '\u{0130}');  # Latin Capital Letter I with Dot Above
```

These tests may fail depending on the locales' definition.

## Future plan

Feature requests are welcome.

## License

`rust-locale` uses [Gnulib](https://www.gnu.org/software/gnulib/) for the platform compatibility. Gnulib is LGPL and `rust-locale` links to it statically, therefore `rust-locale` is also LGPL.

If you use `rust-locale` and not want to adapt LGPL, you may need to link to `rust-locale` dynamically.  
If that is difficult, I will consider linking `rust-locale` to Gnulib dynamically and change `rust-locale`'s license to MIT.