queues 1.1.0

Efficient FIFO Queue data structures
Documentation
extern crate queues;

use queues::{Buffer, IsQueue};

fn main() {
    println!("\nBuffer - typical usage");
    println!("--");

    println!("\nCreate a new empty buffer:");
    println!("let mut buf: Buffer<isize> = Buffer::new(3);");
    let mut buf: Buffer<isize> = Buffer::new(3);

    println!("\nAdd elements to it:");
    println!("buf.add(1);");
    println!("> {:?}", buf.add(1));
    println!("buf.add(-2);");
    println!("> {:?}", buf.add(-2));
    println!("buf.add(3);");
    println!("> {:?}", buf.add(3));

    println!("\nAttempt to add elements when full:");
    println!("buf.add(-4);  // Should raise an error");
    println!("> {:?}", buf.add(-4));

    println!("\nCheck the buffer's size:");
    println!("buf.size();  // Should be 3");
    println!("> {}", buf.size());

    println!("\nRemove elements from it:");
    println!("buf.remove();  // Should be Ok(1)");
    println!("> {:?}", buf.remove());

    println!("\nCheck the buffer's size:");
    println!("buf.size();  // Should be 2");
    println!("> {}", buf.size());

    println!("\nPeek at the next element to be removed:");
    println!("buf.peek();  // Should be Ok(-2)");
    println!("> {:?}", buf.peek());

    println!("\nCheck the queue's size:");
    println!("buf.size();  // Should be 2");
    println!("> {}", buf.size());

    println!("\nRemove more elements from it:");
    println!("buf.remove();  // Should be Ok(-2)");
    println!("> {:?}", buf.remove());
    println!("buf.remove();  // Should be Ok(3)");
    println!("> {:?}", buf.remove());

    println!("\nPeek at the next element to be removed:");
    println!("buf.peek();  // Should raise an error");
    println!("> {:?}", buf.peek());

    println!("\nAttempt to remove elements from it:");
    println!("buf.remove();  // Should raise an error");
    println!("> {:?}", buf.remove());

    println!("\n--\n")
}