encode_unicode
Alternatives and extensions to to the unstable char.encode_utf{8,16}() methods.
Features:
- Utf8Char: A
charstored as UTF-8. Can be borrowed as astr. - Utf16Char: A
charstored as UTF-16. Can be borrowed as au16slice. - Conversion methods on
char:- to UTF-8 as
[u8; 4]or into&mut[u8]. and vice versa. - to UTF-16 as
(u16, Option<u16>)or into&mut[u16]. and vice versa.
- to UTF-8 as
- Precise errors when decoding a char fro9m UTF-8, UTF-16 or
u32fails.
[See the documentation for the remaining.
The goal was to fill in those methods for stable via a trait, but that didn't work since the methods already exist; they're just un-callable.
Optional Features:
- no_std: Use
#[no_std]; There are some differences:AsciiExtdoesn't exist, butis_ascii()is made available as an inherent impl.Errordoesn't exist, butdescription()is made available as an inherent impl.- There is no
io, soUtf8Iteratordoesn't implementRead. - The iterators doesn't implement
Debug.
- ascii: Convert
Utf8CharandUtf16Charto and from ascii::AsciiChar. - ascii_no_std: You need to use this feature instead of both ascii and no_std.
This is because the ascii crate needs to know about#[no_std], but the features are otherwize independent.
The tests require nightly because they use compare against encode_utf{8,16}(),
License
Licensed under either of
- Apache License, Version 2.0, (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.