# `ConstPtr`
Rusts `std::ptr::NonNull` is a mutable pointer. Sometimes this has implications that are not
desired. `ConstPtr` wraps `NullPtr` but removes the mutable and uninit API's. As consequence
it can only be constructed to point to a valid object (although it may become dangling when
the object becomes destroyed). This simplifies handling lifetime erased references because a
`&reference` implicitly coerces to a `*const pointer` and adds some safety net as in one can't
accidentally get a mutable reference to something that should be const.
## `no_std` compatibility
By default the 'std' feature is enabled which pulls in dependencies on rusts stdlib. When one
disables this in 'default' then `ConstPtr` becomes no-std compatible.