#array #macro #concat #fixed-size #concatenating

macro concat-arrays

固定大小数组连接宏

1个不稳定版本

0.1.2 2021年5月9日
0.1.1 2021年5月8日
0.1.0 2021年5月8日

577进程宏

Download history 2817/week @ 2024-03-13 3413/week @ 2024-03-20 2980/week @ 2024-03-27 3045/week @ 2024-04-03 3154/week @ 2024-04-10 2816/week @ 2024-04-17 2809/week @ 2024-04-24 2687/week @ 2024-05-01 2847/week @ 2024-05-08 2738/week @ 2024-05-15 2552/week @ 2024-05-22 3109/week @ 2024-05-29 2567/week @ 2024-06-05 2524/week @ 2024-06-12 2933/week @ 2024-06-19 2923/week @ 2024-06-26

11,439 每月下载量
用于 15 个crate(7个直接使用)

LGPL-2.0

7KB
102

concat-arrays:用于连接固定大小数组的Rust宏

该crate定义了concat_arrays!宏,允许您连接数组。

示例

use concat_arrays::concat_arrays;

fn main() {
    let x = [0];
    let y = [1, 2];
    let z = [3, 4, 5];
    let concatenated = concat_arrays!(x, y, z);
    assert_eq!(concatenated, [0, 1, 2, 3, 4, 5]);
}

限制

由于Rust的限制,concat_arrays!无法告知编译器返回数组的长度。因此,长度需要从周围的环境中推断出来。例如,在上面的示例中,长度是通过调用assert_eq!推断出来的。虽然可以错误地指定长度,但是这是安全的,因为您将得到编译错误而不是损坏的代码。

致谢

实现此功能的灵感主要来自const-concat crate(该crate实现了编译时数组连接)。

依赖

~1.5MB
~36K SLoC