bitman 2.0.1

An easy to use bit manipulation library for Rust
Documentation
use crate as bitman;
    use bitman::BitMan;
    use num_traits::{One, Zero};

    #[test]
    fn bit_method_test_on_u8() {
        assert_eq!(0u8.bit(&0), bitman::Bit(false));
        assert_eq!(0u8.bit(&1), bitman::Bit(false));
        assert_eq!(0u8.bit(&2), bitman::Bit(false));
        assert_eq!(0u8.bit(&3), bitman::Bit(false));
        assert_eq!(0u8.bit(&4), bitman::Bit(false));
        assert_eq!(0u8.bit(&5), bitman::Bit(false));
        assert_eq!(0u8.bit(&6), bitman::Bit(false));
        assert_eq!(0u8.bit(&7), bitman::Bit(false));
    }

    #[test]
    fn set_bit_method_test_on_u8() {
        let mut my_u8 = 0u8;
        my_u8.set_bit(&0, &bitman::Bit(true));
        assert_eq!(my_u8.bit(&0), bitman::Bit(true));
        my_u8.set_bit(&1, &bitman::Bit(true));
        assert_eq!(my_u8.bit(&1), bitman::Bit(true));
        let mut my_u8 = 0u8;
        my_u8.set_bit(&2, &bitman::Bit(true));
        assert_eq!(my_u8.bit(&2), bitman::Bit(true));
        let mut my_u8 = 0u8;
        my_u8.set_bit(&3, &bitman::Bit(true));
        assert_eq!(my_u8.bit(&3), bitman::Bit(true));
        let mut my_u8 = 0u8;
        my_u8.set_bit(&4, &bitman::Bit(true));
        assert_eq!(my_u8.bit(&4), bitman::Bit(true));
        let mut my_u8 = 0u8;
        my_u8.set_bit(&5, &bitman::Bit(true));
        assert_eq!(my_u8.bit(&5), bitman::Bit(true));
        let mut my_u8 = 0u8;
        my_u8.set_bit(&6, &bitman::Bit(true));
        assert_eq!(my_u8.bit(&6), bitman::Bit(true));
        let mut my_u8 = 0u8;
        my_u8.set_bit(&7, &bitman::Bit(true));
        assert_eq!(my_u8.bit(&7), bitman::Bit(true));
    }

    #[test]
    fn u8_zero_as_bits_compared_set_to_one_and_compared() {
        let mut my_u8_as_bits = 0u8.bits();
        assert_eq!(
            my_u8_as_bits[..],
            [
                bitman::Bit(false),
                bitman::Bit(false),
                bitman::Bit(false),
                bitman::Bit(false),
                bitman::Bit(false),
                bitman::Bit(false),
                bitman::Bit(false),
                bitman::Bit(false)
            ]
        );
        my_u8_as_bits = u8::one().bits();
        assert_eq!(
            my_u8_as_bits[..],
            [
                bitman::Bit(false),
                bitman::Bit(false),
                bitman::Bit(false),
                bitman::Bit(false),
                bitman::Bit(false),
                bitman::Bit(false),
                bitman::Bit(false),
                bitman::Bit(true)
            ]
        );
    }

    #[test]
    fn bits_method_test_on_u8() {
        let new_bits = 0u8.bits();
        assert_eq!(new_bits.bit_len(), 8);
        assert_eq!(new_bits[0], bitman::Bit(false));
        assert_eq!(0u8.bits(), bitman::Bits::new(&[bitman::Bit::zero(); 8]));
    }