constptr 0.3.0

NonNull without mutability
1
2
3
4
5
6
7
8
9
10
11
12
13
14
# `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.