#bits #bit #int

no-std intbits

Easy access to individual bits of integers

2 unstable releases

0.2.0 Sep 29, 2020
0.1.2 Feb 17, 2020
0.1.1 Sep 27, 2019
0.1.0 Sep 27, 2019

#103 in No standard library

Download history 1735/week @ 2023-12-14 1344/week @ 2023-12-21 897/week @ 2023-12-28 1470/week @ 2024-01-04 1964/week @ 2024-01-11 1916/week @ 2024-01-18 1544/week @ 2024-01-25 2612/week @ 2024-02-01 1824/week @ 2024-02-08 2804/week @ 2024-02-15 2575/week @ 2024-02-22 1864/week @ 2024-02-29 1897/week @ 2024-03-07 2106/week @ 2024-03-14 1850/week @ 2024-03-21 1841/week @ 2024-03-28

7,919 downloads per month
Used in 17 crates (2 directly)

BSD-2-Clause

14KB
330 lines

intbits

Easy access to individual bits of integers

use intbits::Bits;

assert_eq!(2.bit(0), false);
assert_eq!(2.bit(1), true);
assert_eq!(2.bit(2), false);

assert_eq!(0b1011u32.bits(0..2), 0b11);
assert_eq!(0b1011u32.bits(2..4), 0b10);

assert_eq!(0xFFu8.with_bit(3, false), 0xF7);
assert_eq!(0xFFu8.with_bits(4..8, 3), 0x3F);

See the documentation.


lib.rs:

This crates provides two functions for accessing the individual bits of integers:

It also provides similar functions for changing specific bits of integers:

These variants return a new integer, instead of modifying it:

Example

use intbits::Bits;

assert_eq!(2.bit(0), false);
assert_eq!(2.bit(1), true);
assert_eq!(2.bit(2), false);

assert_eq!(0b1011u32.bits(0..2), 0b11);
assert_eq!(0b1011u32.bits(2..4), 0b10);

assert_eq!(0xFFu8.with_bit(3, false), 0xF7);
assert_eq!(0xFFu8.with_bits(4..8, 3), 0x3F);

No runtime deps