Crates.io | constptr |
lib.rs | constptr |
version | 0.2.0 |
source | src |
created_at | 2023-03-06 15:33:11.562295 |
updated_at | 2023-03-06 19:25:45.415288 |
description | NonNull without mutability |
homepage | |
repository | https://git.pipapo.org/cehteh/constptr.git |
max_upload_size | |
id | 802716 |
size | 19,173 |
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.
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.