#vec #no-std #no-std

no-std tinyvec

tinyvec provides 100% safe vec-like data structures

30 releases (11 stable)

1.6.0 Apr 25, 2022
1.5.1 Nov 9, 2021
1.5.0 Sep 25, 2021
1.3.1 Jul 22, 2021
0.3.3 Mar 26, 2020

#7 in Data structures

Download history 516109/week @ 2022-02-05 522899/week @ 2022-02-12 516998/week @ 2022-02-19 605947/week @ 2022-02-26 583776/week @ 2022-03-05 567821/week @ 2022-03-12 575233/week @ 2022-03-19 598320/week @ 2022-03-26 594391/week @ 2022-04-02 589881/week @ 2022-04-09 593219/week @ 2022-04-16 655168/week @ 2022-04-23 643011/week @ 2022-04-30 673580/week @ 2022-05-07 626497/week @ 2022-05-14 620148/week @ 2022-05-21

2,672,528 downloads per month
Used in 13,286 crates (50 directly)

Zlib OR Apache-2.0 OR MIT

345KB
13K SLoC

License:Zlib Minimum Rust Version crates.io docs.rs

Unsafe-Zero-Percent

tinyvec

A 100% safe crate of vec-like types. #![forbid(unsafe_code)]

Main types are as follows:

  • ArrayVec is an array-backed vec-like data structure. It panics on overflow.
  • SliceVec is the same deal, but using a &mut [T].
  • TinyVec (alloc feature) is an enum that's either an Inline(ArrayVec) or a Heap(Vec). If a TinyVec is Inline and would overflow it automatically transitions to Heap and continues whatever it was doing.

To attain this "100% safe code" status there is one compromise: the element type of the vecs must implement Default.

For more details, please see the docs.rs documentation

Dependencies