7个版本 (4个稳定版)

使用旧的Rust 2015

1.1.0 2017年8月26日
1.0.2 2017年6月3日
1.0.1 2017年1月20日
1.0.0 2016年12月27日
0.1.2 2016年12月19日

#2049Rust模式

Download history 912/week @ 2023-11-20 1538/week @ 2023-11-27 1672/week @ 2023-12-04 1506/week @ 2023-12-11 1223/week @ 2023-12-18 1365/week @ 2023-12-25 1147/week @ 2024-01-01 1318/week @ 2024-01-08 1563/week @ 2024-01-15 1313/week @ 2024-01-22 1647/week @ 2024-01-29 1378/week @ 2024-02-05 1080/week @ 2024-02-12 1135/week @ 2024-02-19 1143/week @ 2024-02-26 1380/week @ 2024-03-04

4,912 每月下载量
18 个crate中使用 (3个直接使用)

Unlicense

8KB
85

init_with

文档

你想要能够通过调用函数来创建每个元素来初始化Rust中的固定数组吗?现在你可以了!

use init_with::InitWith;

let my_array = {
    let mut seed = Vec::new();
    let mut next_val = 0;

    <[Vec<u32>; 3]>::init_with(|| {
        seed.push(next_val);
        next_val += 1;
        seed.clone()
    })
};

assert_eq!(my_array, [vec![0], vec![0, 1], vec![0, 1, 2]]);

或者,可以使用 init_with_indices 来更轻松地根据索引创建数组条目

use init_with::InitWith;

let squares = <[usize; 5]>::init_with_indices(|i| i*i);

assert_eq!(squares, [0,1,4,9,16]);

此crate允许你以函数式方式初始化数组元素,同时隐藏执行此操作所需的不可安全代码。

要导入此crate,将以下内容放入你的Cargo.toml

[dependencies]
init_with = "1.1.0"

...并在你的crate根目录中放入以下内容

extern crate init_with;

无运行时依赖