bit_op

Crates.iobit_op
lib.rsbit_op
version0.1.1
sourcesrc
created_at2020-08-09 14:46:13.542282
updated_at2020-08-09 14:57:02.391288
descriptionBit manipulation
homepage
repositoryhttps://github.com/RustyNixieTube/bit_op
max_upload_size
id274650
size15,503
(RustyNixieTube)

documentation

https://docs.rs/bit_op

README

License License line

Bit manipulation for rust

Examples

Set desired bits

use bit_op::{BitOp, bit_u8::*};

let mut x = 0b00001111u8;

x.set(B7);
assert_eq!(x, 0b10001111);

let mut y = 0u8;

y.set(B7 | B0);
assert_eq!(y, 0b10000001);

Reset desired bits

use bit_op::{BitOp, bit_u8::*};

let mut x = 0b00001111u8;

x.reset(B0 | B1 | B2 | B3);
assert_eq!(x, 0);

let mut y = 0b11111111u8;

y.reset(B7 | B0);
assert_eq!(y, 0b01111110);

Toggle desired bits

use bit_op::{BitOp, bit_u8::*};

let mut x = 0b00001111u8;

x.toggle(B5 | B4 | B3 | B2);
assert_eq!(x, 0b00110011);

x.toggle(B5 | B4 | B3 | B2);
assert_eq!(x, 0b00001111);

Get desired bits

use bit_op::{BitOp, bit_u8::*};

let mut x = 0b10000001u8;

assert_eq!(x.get(B7), 0b10000000);
assert_eq!(x.get(B6), 0b00000000);
assert_eq!(x.get(B0), 0b00000001);

Contribution

contributions are welcome!

License

Licensed under either of Apache License, Version 2.0 or MIT license at your option. Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in this crate by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

Commit count: 37

cargo fmt