use fixed_bitmaps::Bitmap64;
fn main() {
let mut bitmap = Bitmap64::default();
println!("Default bitmap: {}", bitmap);
println!("Value of bitmap: {}", bitmap.to_u64());
bitmap |= Bitmap64::from(101);
println!("Bitmap after OR-ing with 101: {}", bitmap);
bitmap.set(4, true).unwrap();
println!("Bitmap value: {}", bitmap.to_u64());
match bitmap.set(64, true) {
Ok(_) => println!("That wasn't meant to happen... something's up with my implementation!"),
Err(error) => {
println!("Yep, threw an error as expected. Error message is as follows:");
eprintln!("{}", error);
}
}
let _empty = Bitmap64::default();
let _full = Bitmap64::from(u64::MAX);
let _bitmap = Bitmap64::from(9);
let _bitmap = Bitmap64::from(0b1001);
let mut bitmap = Bitmap64::from_set(6).unwrap();
bitmap.set(6, false).unwrap();
bitmap.set(42, true).unwrap();
println!("Bit at index 42: {}", bitmap.get(42).unwrap());
let bitmap1 = Bitmap64::from(0b1001);
let bitmap2 = Bitmap64::from(0b1010);
let _and = bitmap1 & bitmap2;
let _or = bitmap1 | bitmap2;
let _xor = bitmap1 ^ bitmap2;
let _add = bitmap1 + 10;
let _sub = bitmap1 - 4;
let _mul = bitmap2 * 2;
let _div = bitmap2 / 2;
let _add = bitmap1 + Bitmap64::from(10);
let _sub = bitmap1 - Bitmap64::from(4);
let _mul = bitmap2 * Bitmap64::from(2);
let _div = bitmap2 / Bitmap64::from(2);
}