# ConstPtr Rusts `std::ptr::NonNull` wraps a `*mut` 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 been const. ## 'nostd' 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.