use factorio_graph::priority_queue::{PriorityQueue, fibonacci_heap::FibonacciHeap}; use std::fmt::Debug; fn test_loop

() where P: PriorityQueue + Debug, { let mut input = String::new(); let mut p = P::new(); let mut handles = Vec::new(); loop { input.clear(); let _ = std::io::stdin().read_line(&mut input); let (cmd, arg) = input.trim().split_once(' ').unwrap_or((input.trim(), "")); // dbg!(cmd, arg); match cmd { "i" => handles.push(p.insert(arg.parse::().unwrap())), "m" => println!("{:?}", p.pop_min()), "d" => { let (a, b) = arg.split_once(' ').unwrap(); let h = &handles[a.parse::().unwrap()]; let n = b.parse::().unwrap(); p.decrease_key(h, |f| *f = n); } "p" => { dbg!(&p); } _ => println!("Unknown command."), } } } fn main() { test_loop::>() }