#lower-bounds #bounds #type #limit #vector #bounded-vec

bounded-vector

Vec 包装器,在类型级别保证上界和下界

6 个版本

0.2.1 2024 年 4 月 16 日
0.2.0 2024 年 4 月 15 日
0.1.3 2024 年 4 月 15 日

#695 in Rust 模式


用于 terra-plr

MIT/Apache

27KB
627

bounded-vector

crates.io

BoundedVec<T, LOW, UPP> - Vec 包装器,在类型级别保证上界和下界。是 bounded-vec 的替代方案,支持空向量,提供更多方法,以及类似于 vec! 宏的 bvec!

示例

use bounded_vector::{BoundedVec, bvec};
let mut data: BoundedVec<u8, 2, 4> = [1, 2].try_into()?;

assert_eq!(data.first(), Some(1));
assert_eq!(data.last(), Some(2));

data.iter_mut().for_each(|x| *x *= 2);
assert_eq!(data, bvec![2, 4]?);

许可证

根据您的选择,在 MITApache-2.0 许可证下授权。

除非您明确声明,否则您提交给此包的任何有意贡献,根据 Apache-2.0 许可证的定义,将作为上述双重许可证,不附加任何其他条款或条件。


lib.rs:

[BoundedVec<T, LOW, UPP>] - Vec 包装器,在类型级别保证上界和下界。是 bounded-vec 的替代方案,支持空向量,提供更多方法,以及类似于 vec! 宏的 bvec!

示例

#
use bounded_vector::{BoundedVec, bvec};
let mut data: BoundedVec<u8, 2, 4> = [1, 2].try_into()?;

assert_eq!(data.first(), Some(&1));
assert_eq!(data.last(), Some(&2));

data.iter_mut().for_each(|x| *x *= 2);
assert_eq!(data, bvec![2, 4]?);

依赖项

~265–720KB
~17K SLoC