#![allow(dead_code)]
#![allow(unused_variables)]
#![allow(non_snake_case)]
#![allow(non_camel_case_types)]
#![allow(unused_parens)]
#![allow(unused_mut)]
#![allow(unused_assignments)]
#![allow(unused_doc_comments)]
#![allow(unused_imports)]
use hashheap::*;
use hashheap::consthashheap::*;
fn shash(s:&str) -> usize {
let mut sum = 0;
for c in s.chars() {
sum += c as usize
}
sum
}
fn main1() {
let mut gpa = HashHeap::<&'static str, u16>::new_maxheap();
gpa.set_rehash(|h,c|h+c*c/2 + c/2);
gpa.insert("larz",245);
gpa.insert("mary",375);
gpa.insert("narx",108);
gpa.insert("sam",399);
gpa.insert("oarw",390);
gpa.insert("nev",145);
gpa.insert("haten",101);
for n in ["mary","larz","narx","oarw","nev","haten","sam"] {
println!("{}: {:?}",n, gpa.get(&n));
}
gpa.modify(&"oarw",|g|{*g=191});
println!("\n-------------\npop: {:?}",gpa.pop());
println!("pop: {:?}",gpa.pop());
println!("remove(larz): {:?}", gpa.remove(&"larz"));
for n in ["mary","larz","narx","oarw","nev","haten","sam"] {
println!("{}: {:?}",n, gpa.get(&n));
}
for k in gpa.keys() { println!("key {}",k);}
for (k,v) in gpa.iter() {println!("key {}, value {}",k,v);}
println!("swap: {:?}", gpa.top_swap("fred",54));
println!("swap: {:?}", gpa.top_swap("haten",0));
while gpa.len()>0 {println!("final pop: {:?}",gpa.pop());}
}
fn main() {
let mut chh:ConstHashHeap<&'static str,f32,4> = ConstHashHeap::new(false);
chh.insert("mary",3.0);
chh.insert("larz",2.0);
chh.insert("narx",2.5);
chh.insert("parv",3.4);
chh.diagnostics(true);
let mut dhh = chh.resize::<16>();
dhh.insert("oarw",3.7);
dhh.insert("qaru",2.6);
dhh.insert("nev",0.2);
dhh.insert("isa",1.3);
println!("get oarw: {:?}",dhh.get(&"oarw"));
println!("get haten: {:?}",dhh.get(&"haten"));
dhh.modify(&"larz",|x|*x+=1.1);
dhh.diagnostics(true);
dhh = dhh.refresh();
dhh.remove(&"narx");
println!("get narx: {:?}", dhh.get(&"narx"));
println!("get mary: {:?}", dhh[&"mary"]);
dhh.diagnostics(true);
for (k,v) in dhh.iter() {
println!("iter {} : {}", k, v);
}
for (k,v) in dhh.priority_stream() {
println!("next priority: {} : {}", &k, &v);
}
println!("final size: {}",dhh.size());
}