sets 0.1.0

Sets implemented as generic vectors. Efficiently sorting, merging, ranking, searching, reversing, intersecting, etc.
Documentation

Sets

Crates.io GitHub last commit (branch)

Usage

Insert into your Cargo.toml file [dependencies] section:

sets = "^0.1" 

Import into your source file(s) macro here, structs and functions, as needed.

use sets::{here,Set,OrderedSet,IndexedSet,RankedSet,functions::*};

See tests/tests.rs for examples of usage. To run the tests, use single thread. It may be slower but will produce the results in the right order:

cargo test --release -- --test-threads=1 --nocapture --color always

Description

Sets consists mostly of structs and type-safe wrappers for the more primitive functions and methods of crate indxvec.
The capabilities of sets include: efficient sorting, ranking, merging, searching and indices manipulations. They are implemented over generic vectors Vec<T> (or generic slices &[T]). Thus they will work with vectors/slices of primitive types but also on any arbitrarily complex end type T. As long as the required traits, mostly just PartialOrd and/or Copy, are implemented for T.

Functions

Most of the functions are associated with the supplied structs: Set, OrderedSet, IndexedSet, RankedSet. Thus they need to be caled such as: Set::from_slice(&v);
Helper functions are in the module src/functions.rs.

Release Notes (Latest First)

Version 0.1.0 - first version, includes creation and conversions of the structs representing the four types of sets.