Utilities for working with uninitialized arrays
This crate provides a few sets of APIs:
uninit_buf
and mark_initialized
These are a pair of functions which are generally used as follows:
- stack-allocate an uninitialized array with uninit_buf
- initialize each element
- unsafely convert it to an initialized array with mark_initialized
For example: ```rust use unarray::*;
fn main() {
let mut buffer = uninit_buf::
for slot in &mut buffer { slot.write(123); }
let array = unsafe { mark_initialized(buffer) };
assert_eq!(array, [123; 10]); } ```
This is simple to understand, but still requires unsafe
, which is hard to justify in many cases
build_array_*
Licensed under either of
at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.