voladdress 1.2.2

A crate for easy volatile memory abstraction.
Documentation
# Changelog

## 1.2.2

* **Soundness:** Previous versions of the iterators in
  this crate (since 0.4) had a math error in the `nth`
  method, causing them to potentially go out of bounds.

## 1.2

* The `Safe` and `Unsafe` types now also derive `Default`, `Clone`, and `Copy`.
  This doesn't do too much since they're already ZSTs with a public constructor,
  but it doesn't hurt.
* `VolAddress`: Added const fn `as_ptr` and `as_mut_ptr`.
* `VolBlock`: Added const fn `as_usize`, `as_ptr`, `as_mut_ptr`, and non-const
  fn `as_slice_ptr` and `as_slice_mut_ptr`.
* It turns out that getting the pointer to a `VolBlock` by indexing to the 0th
  element and then turning that into a usize and then turning that into a
  pointer was enough layers to confuse LLVM. Specifically, all volatile accesses
  have an "aligned and non-null" debug check, which wasn't getting optimized out
  of debug builds with `build-std`, even with `opt-level=3`. Providing these
  more direct conversion methods does seem to help LLVM eliminate that non-null
  check more often.
* Added `core::fmt::Pointer` impls. While `Debug` formats the address along with
  extra metadata, `Pointer` just formats the address.

## 1.1

* Added `VolAddress::as_volblock` for (unsafely) converting from a `VolAddress`
  to an array into a `VolBlock`. This is totally fine in any case I've ever
  seen, but the general policy of the crate is that any creation of a `VolBlock`
  be an unsafe action, and so this is unsafe for consistency.

* Also adds the `experimental_volmatrix` cargo feature, which adds another
  opt-in type for people to experiment with.

## 1.0.2

* Temporarily adds the `experimental_volregion` feature, allowing a person to
  *experimentally* opt-in to the `VolRegion` type. This type will be part of a
  1.1 release of the crate at some point. This feature is **not** part of the
  crate's SemVer, and it will go away entirely once `VolRegion` becomes a stable
  part of the crate.

## 1.0.0

* Initial stable release.