///
/// * `dst` must be properly aligned.
///
+/// * `dst` must point to a properly initialized value of type `T`.
+///
/// Note that even if `T` has size `0`, the pointer must be non-NULL and properly aligned.
///
/// [valid]: ../ptr/index.html#safety
/// * `src` must be properly aligned. Use [`read_unaligned`] if this is not the
/// case.
///
+/// * `src` must point to a properly initialized value of type `T`.
+///
/// Note that even if `T` has size `0`, the pointer must be non-NULL and properly aligned.
///
/// # Examples
///
/// * `src` must be [valid] for reads.
///
+/// * `src` must point to a properly initialized value of type `T`.
+///
/// Like [`read`], `read_unaligned` creates a bitwise copy of `T`, regardless of
/// whether `T` is [`Copy`]. If `T` is not [`Copy`], using both the returned
/// value and the value at `*src` can [violate memory safety][read-ownership].
///
/// * `src` must be properly aligned.
///
+/// * `src` must point to a properly initialized value of type `T`.
+///
/// Like [`read`], `read_volatile` creates a bitwise copy of `T`, regardless of
/// whether `T` is [`Copy`]. If `T` is not [`Copy`], using both the returned
/// value and the value at `*src` can [violate memory safety][read-ownership].