#list #static #no-std

nightly no-std static-linkedlist

静态数组上的链表实现。适用于没有动态内存分配的环境。

3个版本

0.1.2 2019年1月13日
0.1.1 2019年1月13日
0.1.0 2019年1月9日

1152嵌入式开发

Apache-2.0

22KB
561

Static-LinkedList

使用静态数组作为任意数量链表的后备内存的链表实现。

使用方法

要创建链表,首先需要创建一个 StaticLinkedListBackingArray,传递给它一个 u8 数组。然后,您可以使用 new_list() 创建任意数量的由该数组支持的列表。请注意,无法创建零大小类型的数组。

由于创建的列表共享底层内存的后备数组,所有列表的总条目数不能超过数组的容量。

列表需要一些内存用于缓冲区中的元数据(指向下一个元素的指针)。如果用于创建 StaticLinkedListBackingArray 的缓冲区不足以容纳 n 条数据条目 加上 列表元数据,则数组将只有 n - 1 个条目。剩余的字节将被浪费。设计 capacity_for() 函数是为了计算存储 n 条数据条目所需的精确字节数。


lib.rs:

使用静态数组作为任意数量链表的后备内存的链表实现。

使用方法

要创建链表,首先需要创建一个 StaticLinkedListBackingArray,传递给它一个 u8 数组。然后,您可以使用 new_list() 创建任意数量的由该数组支持的列表。请注意,无法创建零大小类型的数组。

由于创建的列表共享底层内存的后备数组,所有列表的总条目数不能超过数组的容量。

列表需要在缓冲区中为其元数据(指向下一个元素的指针)分配一些内存。如果用于创建StaticLinkedListBackingArray的缓冲区不足以容纳n条数据条目以及列表元数据,则数组将只有n - 1个条目容量。剩余的字节将被浪费。函数capacity_for()旨在计算容纳n条数据条目所需的精确字节数。

无运行时依赖