Skip to main content

cbuf/
cbuf.rs

1extern crate queues;
2
3use queues::{CircularBuffer, IsQueue};
4
5fn main() {
6    println!("\nCircular buffer - typical usage");
7    println!("--");
8
9    println!("\nCreate an empty circular buffer with capacity 5:");
10    println!("let mut cbuf: CircularBuffer<isize> = CircularBuffer::new(5);");
11    let mut cbuf: CircularBuffer<isize> = CircularBuffer::new(5);
12
13    println!("\nAdd elements to it:");
14    println!("cbuf.add(1);");
15    println!("> {:?}", cbuf.add(1));
16    println!("cbuf.add(-2);");
17    println!("> {:?}", cbuf.add(-2));
18    println!("cbuf.add(3);");
19    println!("> {:?}", cbuf.add(3));
20
21    println!("\nCheck the buffer's size:");
22    println!("cbuf.size();  // Should be 3");
23    println!("> {}", cbuf.size());
24
25    println!("\nRemove elements from it:");
26    println!("cbuf.remove();  // Should be Ok(1)");
27    println!("> {:?}", cbuf.remove());
28
29    println!("\nCheck the buffer's size:");
30    println!("cbuf.size();  // Should be 2");
31    println!("> {}", cbuf.size());
32
33    println!("\nPeek at the next element to be removed:");
34    println!("cbuf.peek();  // Should be Ok(-2)");
35    println!("> {:?}", cbuf.peek());
36
37    println!("\nFill the buffer:");
38    println!("cbuf.add(-7);");
39    println!("> {:?}", cbuf.add(-7));
40    println!("cbuf.add(8);");
41    println!("> {:?}", cbuf.add(8));
42    println!("cbuf.add(-9);");
43    println!("> {:?}", cbuf.add(-9));
44
45    println!("\nCheck the buffer's size:");
46    println!("cbuf.size();  // Should be 5");
47    println!("> {}", cbuf.size());
48
49    println!("\nAdd a new element to the buffer:");
50    println!("cbuf.add(10);  // Should be OK(Some(-2))");
51    println!("{:?}", cbuf.add(10));
52
53    println!("\nCheck the buffer's size:");
54    println!("cbuf.size();  // Should still be 5");
55    println!("> {}", cbuf.size());
56
57    println!("\n--\n");
58}