use queued_rust::{Queue, SortedQueue, Weighted};
fn main() {
println!("Testing Out Queues\n");
let mut queue = Queue::new(false);
queue.add(4);
queue.add(1);
queue.add(3);
queue.add(5);
queue.add(2);
println!("Printing items from regular queue");
while let Some(item) = queue.next() {
println!("Remaining: {} Item: {}", queue.len(), item);
}
println!("\n\nTesting Out Sorted Queues\n");
let mut sorted_queue = SortedQueue::new(false);
sorted_queue.add(4);
sorted_queue.add(1);
sorted_queue.add(3);
sorted_queue.add(5);
sorted_queue.add(2);
println!("Printing items from sorted queue");
while let Some(item) = sorted_queue.next() {
println!("Remaining: {} Item: {}", sorted_queue.len(), item);
}
println!("\n\nTesting Out Sorted Weighted Queues\n");
let mut sorted_weighted_queue = SortedQueue::new(false);
sorted_weighted_queue.add(Weighted::new("hello", 10));
sorted_weighted_queue.add(Weighted::new("this queue", 4523));
sorted_weighted_queue.add(Weighted::new("is harder to order", 12412));
sorted_weighted_queue.add(Weighted::new("properly", 14));
sorted_weighted_queue.add(Weighted::new("so it might be better", 214));
sorted_weighted_queue.add(Weighted::new("to add a weight system", 41444));
println!("Printing items from sorted queue");
while let Some(item) = sorted_weighted_queue.next() {
println!("Remaining: {} Item: {}", sorted_weighted_queue.len(), item.into_item());
}
println!("\n\nTesting Out Sized Queues\n");
let mut sized_queue = Queue::new_sized(2, false);
if let Err(error) = sized_queue.try_add(1) {
eprintln!("{}", error);
}
if let Err(error) = sized_queue.try_add(2) {
eprintln!("{}", error);
}
if let Err(error) = sized_queue.try_add(3) {
eprintln!("{}", error);
}
println!("Printing items from sized queue");
for item in sized_queue {
println!("{}", item);
}
}