#maybe-uninit #uninit #safe #unsafe #no-alloc

no-std maybe-uninit-ext

扩展maybe-uninit类型

6个版本 (破坏性)

0.6.0 2024年1月3日
0.5.0 2023年7月29日
0.4.0 2023年5月7日
0.3.0 2023年4月19日
0.1.0 2023年4月7日

#1926 in Rust模式

每月25次下载

Unlicense

22KB
345

maybe_uninit_ext

crates.io docs.rs Dependency Status Pipeline Status Unlicense Minimum Supported Rust Version is 1.75

扩展maybe-uninit类型。


lib.rs:

maybe_uninit_ext

crates.io Dependency Status Unlicense Minimum Supported Rust Version is 1.75

支持“扩展”的maybe-uninit类型。

示例

// Creates a 4x4 grid of `MaybeUninit` values.
let mut grid = maybe_uninit_ext::uninit::<[[MaybeUninit<usize>; 4]; 4]>();
grid.iter_mut().enumerate().for_each(|(i, row)| {
    row.iter_mut().enumerate().for_each(|(j, tile)| {
        tile.write(i * j);
    });
});

// SAFETY: The grid was fully initialized.
let grid = unsafe { maybe_uninit_ext::assume_init(grid) };
assert_eq!(
    grid,
    [[0, 0, 0, 0], [0, 1, 2, 3], [0, 2, 4, 6], [0, 3, 6, 9]],
);

夜间特性

启用nightly特性标志后,此crate提供的许多函数变为const。请注意,这需要夜间工具链,并依赖于许多不稳定特性。请谨慎使用。

依赖项

~110KB