1 个不稳定版本
0.1.0 | 2024年4月1日 |
---|
2423 在 Rust模式
16KB
325 行
const-sub-array
允许从具有编译时长度和偏移量检查的数组中提取固定大小的子数组。
基于sub-array
包。
示例
获取子数组
use const_sub_array::SubArray;
let arr: [u8; 7] = [1, 2, 3, 4, 5, 6, 7];
// Get a sub-array starting at offset 1 with 3 items.
let sub: &[u8; 3] = arr.sub_array_ref::<1, 3>();
assert_eq!(sub, &[2, 3, 4]);
使用[u8; 10]
初始化一个数组,并使用(u16, u32, u32)
use const_sub_array::SubArray;
let foo: u16 = 42;
let bar: u32 = 0x1234;
let baz: u32 = 0x5678;
let mut arr = [0u8; 10];
*arr.sub_array_mut::<0, 2>() = foo.to_be_bytes();
*arr.sub_array_mut::<2, 4>() = bar.to_be_bytes();
*arr.sub_array_mut::<6, 4>() = baz.to_be_bytes();
assert_eq!(
arr,
[
0, 42, // foo
0x0, 0x0, 0x12, 0x34, // bar
0x0, 0x0, 0x56, 0x78, // baz
]
);
许可证:MIT
lib.rs
:
允许从具有编译时长度和偏移量检查的数组中提取固定大小的子数组。
基于sub-array
包。
示例
获取子数组
use const_sub_array::SubArray;
let arr: [u8; 7] = [1, 2, 3, 4, 5, 6, 7];
// Get a sub-array starting at offset 1 with 3 items.
let sub: &[u8; 3] = arr.sub_array_ref::<1, 3>();
assert_eq!(sub, &[2, 3, 4]);
使用[u8; 10]
初始化一个数组,并使用(u16, u32, u32)
use const_sub_array::SubArray;
let foo: u16 = 42;
let bar: u32 = 0x1234;
let baz: u32 = 0x5678;
let mut arr = [0u8; 10];
*arr.sub_array_mut::<0, 2>() = foo.to_be_bytes();
*arr.sub_array_mut::<2, 4>() = bar.to_be_bytes();
*arr.sub_array_mut::<6, 4>() = baz.to_be_bytes();
assert_eq!(
arr,
[
0, 42, // foo
0x0, 0x0, 0x12, 0x34, // bar
0x0, 0x0, 0x56, 0x78, // baz
]
);