1 个不稳定版本
0.1.0 | 2020 年 11 月 11 日 |
---|
#2808 in Rust 模式
19KB
469 行
stack-vec - 临时堆栈向量
这个软件包定义了宏 stack![]
,可以用来在堆栈上创建具有特定编译时大小的类似 Vec<T>
的结构体。
这些结构体永远不会在堆上分配,并且公开了一个类似于 Vec<T>
的 API。
用法
该宏可以使用类似于 vec!
的方式使用,带有可选的类型推断。
let sv = stack![100]; // Implicitly typed. Will cause a type inference error if the compiler cannot find the type of `sv` later.
let sv = stack![usize; 100]; // Explicitly typed, circumvents that error.
要查看类型本身的文档,请查看软件包根目录中预定义的 StackVec
类型之一。
预定义类型
此软件包还定义了 2 的幂直到 4096 的 StackVec
类型。您还可以使用宏创建自己的命名非透明 StackVec
类型。
stack!(pub type S10Elements S10IntoIter 10); // A `StackVec` type with a capacity of 10.
许可证
MIT
lib.rs
:
临时堆栈向量
这个软件包定义了宏 stack![]
,可以用来创建具有特定编译时大小的类似 Vec<T>
的结构体。这些结构体永远不会在堆上分配,并且公开了一个类似于 Vec<T>
的 API。
用法
该宏可以使用类似于 vec!
的方式使用,带有可选的类型推断。
let mut sv = stack![100]; // Implicitly typed.
sv.push(10usize);
let sv = stack![usize; 100]; // Explicitly typed, circumvents that error.
要查看类型本身的文档,请查看软件包根目录中预定义的 StackVec
类型之一。
预定义类型
此软件包还定义了 2 的幂直到 4096 的 StackVec
类型。
您还可以使用宏创建自己的命名非透明 StackVec
类型。
stack!(pub type S10Elements S10IntoIter 10); // A `StackVec` type with a capacity of 10.