Crate minivec[][src]

A space-optimized version of alloc::vec::Vec that's only the size of a single pointer! Ideal for low-level APIs where ABI calling conventions will typically require most structs be spilled onto the stack and copied instead of being passed solely in registers.

For example, in the x64 msvc ABI:

There's a strict one-to-one correspondence between a function call's arguments and the registers used for those arguments. Any argument that doesn't fit in 8 bytes, or isn't 1, 2, 4, or 8 bytes, must be passed by reference. A single argument is never spread across multiple registers.

In addition, its single word size makes it ideal for use as a struct member where multiple inclusions of Vec as a field can balloon the size.


In general, MiniVec aims to be API compatible with what's currently stable in the stdlib so Nightly features are not supported. MiniVec also supports myriad extensions, one such being support for over-alignment via the associated function with_alignment.

Macros

mini_vec

mini_vec! is a macro similar in spirit to the stdlib's vec!.

Structs

Drain
DrainFilter
IntoIter
MiniVec
Splice

Enums

LayoutErr