#array #variables #serde #benefits #length #vec #replace

heap-array

可变长度数组的实现,其主要优点是比Vec占用更少的空间

9个版本

0.1.9 2024年7月7日
0.1.8 2024年4月11日
0.1.7 2024年1月10日
0.1.6 2023年12月30日
0.1.3 2023年8月27日

#503编码

Download history 5/week @ 2024-05-18 1/week @ 2024-05-25 1/week @ 2024-06-01 3/week @ 2024-06-08 1/week @ 2024-06-15 162/week @ 2024-07-06 34/week @ 2024-07-13 80/week @ 2024-07-20 69/week @ 2024-07-27 63/week @ 2024-08-03 36/week @ 2024-08-10

每月下载量 251次
用于 ilgda-ipc

MIT 许可

77KB
935 代码行

HeapArray

可变长度数组的实现,其主要优点是比Vec占用更少的空间,因为HeapArray表示为(指针,长度),而Vec是(指针,长度,容量),并打算作为Box<[T]>的替代品

希望拥有:与serde兼容

示例

use heap_array::{heap_array, HeapArray};

fn main() {
    let arr = heap_array![1, 2, 5, 8];

    assert_eq!(arr[0], 1);
    assert_eq!(arr[1], 2);
    assert_eq!(arr[2], 5);
    assert_eq!(arr[3], 8);
    assert_eq!(arr.len(), 4);

    let arr = HeapArray::from_fn(10, |i| i);
    assert_eq!(*arr, [0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
}

lib.rs:

HeapArray

可变长度数组的实现,其主要优点是比Vec占用更少的空间,因为HeapArray表示为(指针,长度),而Vec是(指针,长度,容量),并打算作为Box<[T]>的替代品

希望拥有:与serde兼容

示例

use heap_array::{heap_array, HeapArray};
let arr = heap_array![1, 2, 5, 8];

assert_eq!(arr[0], 1);
assert_eq!(arr[1], 2);
assert_eq!(arr[2], 5);
assert_eq!(arr[3], 8);
assert_eq!(arr.len(), 4);

let arr = HeapArray::from_fn(10, |i| i);
assert_eq!(*arr, [0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

依赖关系

~0–1.4MB
~26K SLoC