#data-structure #containers #generic


Generic traits over Rust collections library

20 releases (7 stable)

Uses old Rust 2015

1.5.0 Sep 20, 2021
1.4.0 Jul 1, 2018
1.3.0 Jun 29, 2018
0.3.5 Oct 13, 2017
0.2.1 Apr 6, 2016

#712 in Data structures

Download history 3816/week @ 2023-10-10 5098/week @ 2023-10-17 3832/week @ 2023-10-24 4603/week @ 2023-10-31 4916/week @ 2023-11-07 6029/week @ 2023-11-14 4928/week @ 2023-11-21 4335/week @ 2023-11-28 5656/week @ 2023-12-05 5298/week @ 2023-12-12 3748/week @ 2023-12-19 1998/week @ 2023-12-26 5312/week @ 2024-01-02 6127/week @ 2024-01-09 8333/week @ 2024-01-16 4178/week @ 2024-01-23

24,167 downloads per month
Used in 89 crates (8 directly)


1.5K SLoC

Generic Collection Library

Build Status

This library provides a set of generic traits over Rust collections library. Examples and more in the documentation.

This library compiles on Rust stable. To enjoy specialization of some traits, use cargo build --features="nightly". You can manage Rust compiler's channels and versions with rustup.


Licensed under either of


Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you shall be dual licensed as above, without any additional terms or conditions.


Wrappers of the standard collection library for generic programming.

This library categorizes operations on collections such as sets, tuples or vectors. The goal is to allow designing generic algorithms by specifying trait bounds on type parameters.

It acts as a temporary substitute and will be replaced when proper generic supports will be added on standard collections. Generic operations are implemented on wrappers of the standard collections (available in wrappers::*), this is due to name conflicts between existing methods and traits function names.

If the feature nightly is defined (use cargo build --features="nightly"), then some of the traits are implemented using specialization. On stable they are implemented for every type satisfying some trait bounds, but a user cannot override the definitions.