sorted_containers 0.1.1

A sorted collections library
Documentation
#![feature(test)]

extern crate rand;
extern crate sorted_containers;
extern crate test;

use rand::{Rand, Rng};
use sorted_containers::SortedVec;

use test::Bencher;

fn sorted_vec_add<T: Ord + Clone + Rand>(size: usize) {
    let mut rng = rand::thread_rng();
    let mut sorted = SortedVec::<T>::new();

    for elem in rng.gen_iter().take(size) {
        sorted.add(elem)
    }

    let vec = sorted.into_vec();
}

fn vector_add<T: Ord + Rand>(size: usize) {
    let mut rng = rand::thread_rng();
    let mut vec = Vec::<T>::with_capacity(size);

    for elem in rng.gen_iter().take(size) {
        let i = vec.binary_search(&elem).unwrap_or_else(|e| e);
        vec.insert(i, elem);
    }
}

#[bench]
fn bench_vector(b: &mut Bencher) {
    b.iter(|| vector_add::<u32>(100000));
}

#[bench]
fn bench_sorted_vec(b: &mut Bencher) {
    b.iter(|| sorted_vec_add::<u32>(100000));
}