4 个版本 (稳定)
使用旧的 Rust 2015
1.1.1 | 2018年6月21日 |
---|---|
1.1.0 | 2016年2月9日 |
1.0.0 | 2016年2月9日 |
0.1.0 | 2016年1月13日 |
#2 in #null-terminated
49,911 每月下载量
用于 198 个crate(4 直接使用)
14KB
275 行
c_linked_list
这是一个用于处理 NULL-终止的 C 链表的 Rust 库。您可以使用此库将 C 库提供的链表包装为 Rust 类型。
lib.rs
:
此 crate 提供了处理由 C 代码提供的 NULL-终止链表的工具。假设您调用一个返回 NULL 或指向以下 C 类型节点的指针的外部函数。
struct LinkedListNode {
int value;
struct LinkedListNode *next;
};
您可以使用此库将 C 链表包装为 rust 类型,从而允许对其进行迭代等操作。
let some_c_linked_list = foreign_function_which_returns_c_linked_list();
let rust_linked_list = unsafe { CLinkedListMut::from_ptr(some_c_linked_list, |n| n.next) };
for (i, node) in rust_linked_list.iter().enumerate() {
println!("some_c_linked_list[{}] == {}", i, node.value);
}