ascii 0.8.3

ASCII-only equivalents to `char`, `str` and `String`.
Documentation
Version 0.8.3 (2017-04-18)
==========================
* Bugfix: `<AsciiStr as AsciiExt>::to_ascii_lowercase` did erroneously convert to uppercase.

Version 0.8.2 (2017-04-17)
==========================
* Implement `IntoAsciiString` for `&'a str` and `&'a [u8]`.
* Implement the `quickcheck::Arbitrary` trait for `AsciiChar` and `AsciiString`.
  The implementation is enabled by the `quickcheck` feature.

Version 0.8.1 (2017-02-11)
==========================
* Add `Chars`, `CharsMut` and `Lines` iterators.
* Implement `std::fmt::Write` for `AsciiString`.

Version 0.8.0 (2017-01-02)
==========================

Breaking changes:

* Return `FromAsciiError` instead of the input when `AsciiString::from_ascii()` or `into_ascii_string()` fails.
* Replace the `no_std` feature with the additive `std` feature, which is part of the default features. (Issue #29)
* `AsciiChar::is_*()` and `::as_{byte,char}()` take `self` by value instead of by reference.

Additions:

* Make `AsciiChar` comparable with `char` and `u8`.
* Add `AsciiChar::as_printable_char()` and the free functions `caret_encode()` and `caret_decode()`.
* Implement some methods from `AsciiExt` and `Error` (which are not in libcore) directly in `core` mode:
  * `Ascii{Char,Str}::eq_ignore_ascii_case()`
  * `AsciiChar::to_ascii_{upper,lower}case()`
  * `AsciiStr::make_ascii_{upper,lower}case()`
  * `{ToAsciiChar,AsAsciiStr}Error::description()`

Version 0.7.1 (2016-08-15)
==========================
* Fix the implementation of `AsciiExt::to_ascii_lowercase()` for `AsciiChar` converting to uppercase. (introduced in 0.7.0)

Version 0.7.0 (2016-06-25)
==========================
* Rename `Ascii` to `AsciiChar` and convert it into an enum.
  (with a variant for every ASCII character)
* Replace `OwnedAsciiCast` with `IntoAsciiString`.
* Replace `AsciiCast` with `As[Mut]AsciiStr` and `IntoAsciiChar`.
* Add *from[_ascii]_unchecked* methods.
* Replace *from_bytes* with *from_ascii* in method names.
* Return `std::error::Error`-implementing types instead of `()` and `None` when
  conversion to `AsciiStr` or `AsciiChar` fails.
* Implement `AsciiExt` without the `unstable` Cargo feature flag, which is removed.
* Require Rust 1.9 or later.
* Add `#[no_std]` support in a Cargo feature.
* Implement `From<{&,&mut,Box<}AsciiStr>` for `[Ascii]`, `[u8]` and `str`
* Implement `From<{&,&mut,Box<}[Ascii]>`, `As{Ref,Mut}<[Ascii]>` and Default for `AsciiStr`
* Implement `From<Vec<Ascii>>` for `AsciiString`.
* Implement `AsMut<AsciiStr>` for `AsciiString`.
* Stop some `Ascii::is_xxx()` methods from panicking.
* Add `Ascii::is_whitespace()`.
* Add `AsciiString::as_mut_slice()`.
* Add raw pointer methods on `AsciiString`:
  * `from_raw_parts`
  * `as_ptr`
  * `as_mut_ptr`

Version 0.6.0 (2015-12-30)
==========================
* Add `Ascii::from_byte()`
* Add `AsciiStr::trim[_{left,right}]()`

Version 0.5.4 (2015-07-29)
==========================
Implement `IndexMut` for AsciiStr and AsciiString.

Version 0.5.1 (2015-06-13)
==========================
* Add `Ascii::from()`.
* Implement `Index` for `AsciiStr` and `AsciiString`.
* Implement `Default`,`FromIterator`,`Extend` and `Add` for `AsciiString`
* Added inherent methods on `AsciiString`:
  * `with_capacity`
  * `push_str`
  * `capacity`
  * `reserve`
  * `reserve_exact`
  * `shrink_to_fit`
  * `push`
  * `truncate`
  * `pop`
  * `remove`
  * `insert`
  * `len`
  * `is_empty`
  * `clear`

Version 0.5.0 (2015-05-05)
==========================
First release compatible with Rust 1.0.0.