use std::collections::BTreeMap; fn is_bit_n_set(octet:u8, bit_number: u8) -> bool { let exp = 8 - bit_number; let mask = 2_i32.pow(exp as u32) as u8; let is_bit_set = octet & mask != 0 ; is_bit_set } #[test] pub(crate) fn test_bit_value() { let values = [ 0x01 as u8, 0x02, 0x03, 0x04, 0x0f, 0x1f, 0xff]; println!("Value - Bits"); println!("_____ - 87654321"); for value in values { print!(" {:02x}", value); let mut bits = String::new(); for i in 1..9 { let is_bit_set = is_bit_n_set(value, i); /* let exp = 8 - i; let mask = 2_i32.pow(exp) as u8; let is_bit_set = value & mask != 0 ;*/ let bit_value = if is_bit_set { '1' } else { '0' }; bits.push(bit_value); } println!(" - {}", &bits); assert_eq!(u8::from_str_radix(&bits.as_str(), 2), Ok(value)); } } #[test] pub(crate) fn test_extend_map() { let mut map = BTreeMap::>::new(); map.insert("A".to_owned(), vec![1, 2, 3]); map.insert("D".to_owned(), vec![4, 5]); map.insert("F".to_owned(), vec![6, 7, 8, 9]); let mut map1 = BTreeMap::>::new(); map1.insert("B".to_owned(), vec![20, 22, 23]); map1.insert("C".to_owned(), vec![34, 35]); map1.insert("G".to_owned(), vec![61, 71, 81, 91]); println!("Map before extend"); for x in map.iter() { println!("Key: {}, Value: {:?}", x.0, x.1); } map.extend(map1.clone().into_iter()); println!(); println!("Map after extend"); for x in map.iter() { println!("Key: {}, Value: {:?}", x.0, x.1); } }