Awesome
maybeuninit
This is a userlevel implementation of the undefined
keyword in Zig.<br>
It is inspired by MaybeUninit in Rust.
Minimum supported Zig
master
Each day will be tested in CI whether this project still builds on Zig master.
Recent changes
- 0.6.1
- Add
withByte
as initializer function. - Remove all use of
inline
, as the usage ofinline
was considered wrong.
- Add
- 0.6
- Rename
assume_init
toassumeInit
. - rename
as_ptr
andas_mut_ptr
toasPtr
andasMutPtr
. - rename
first_ptr
andfirst_ptr_mut
tofirstPtr
andfirstPtrMut
.
- Rename
- 0.5.2
- Only support Zig's Master branch.
- 0.5.1
- Add a private constant uninit intializer, to get around https://github.com/ziglang/zig/issues/3994.
- 0.5
- Do not call
@memset
inMaybeUninit(T).zeroed()
ifT
has a size of 0.
- Do not call
- 0.4
- Prevent
MaybeUninit(noreturn)
from being created. See https://github.com/ziglang/zig/issues/3603.
- Prevent
- 0.3
- Change the return type of
first_ptr_mut
from*Self
to*T
. - Adds a test that calls
first_ptr_mut
on an empty slice.
- Change the return type of
- 0.2
- Change the definition of
MaybeUninit
frompacked union
toextern union
, due topacked union
's setting the alignment always to 1.
- Change the definition of
- 0.1
- Initial library setup.
Issues
At the point of writing, it is impossible to create an uninitialized MaybeUninit(T)
, and later initialize it at compiletime.<br>
This is an issue of the compiler, which tracks the current active field of packed and extern unions when used at compiletime, while it shouldn't.<br>
The issue is reported to the Zig compiler, and can be followed here.