#stack #vec #macro

stack-vec

堆栈上的临时编译时大小的 Vec<T> 类类型

1 个不稳定版本

0.1.0 2020 年 11 月 11 日

#2808 in Rust 模式

MIT 许可证

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.

没有运行时依赖