6 releases
0.2.1 | Apr 16, 2024 |
---|---|
0.2.0 | Apr 15, 2024 |
0.1.3 | Apr 15, 2024 |
#1261 in Rust patterns
Used in terra-plr
27KB
627 lines
bounded-vector
BoundedVec<T, LOW, UPP>
- Vec wrapper that guarantees upper and lower bounds on type level.
Alternative to bounded-vec that offers compatibility with empty vector, has more methods and bvec!
that works like vec! macro.
Example
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]?);
License
Licensed under either of MIT or Apache-2.0 at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in this crate by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.
lib.rs
:
[BoundedVec<T, LOW, UPP>
] - Vec wrapper that guarantees upper and lower bounds on type level.
Alternative to bounded-vec that offers compatibility with empty vector, has more methods and bvec!
that works like vec! macro.
Example
#
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]?);
Dependencies
~240–690KB
~16K SLoC