encode_unicode
Alternatives and extensions to to the unstable char.encode_utf{8,16}()
methods.
Features:
- Utf8Char: A
char
stored as UTF-8. Can be borrowed as astr
. - Utf16Char: A
char
stored as UTF-16. Can be borrowed as au16
slice. - 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
u32
fails.
[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:AsciiExt
doesn't exist, butis_ascii()
is made available as an inherent impl.Error
doesn't exist, butdescription()
is made available as an inherent impl.- There is no
io
, soUtf8Iterator
doesn't implementRead
. - The iterators doesn't implement
Debug
.
- ascii: Convert
Utf8Char
andUtf16Char
to 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.