1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
//! Bit operations on `[u8]`
//!
//! # Usage
//! `[u16]` chunks to mnemonic indices by 11 bits.
//! `[u8]` chunks to base64 indices by 6 bits.
//!
//! # Examples
//! ```
//! use xbits::{AsBits, AsBitsMut};
//! use xbits::FromBits;
//!
//! assert_eq!(vec![0b1111_1111, 0b1100_0000].as_bits().all_one(), false);
//! assert_eq!(vec![0b1111_1111, 0b1100_0000].as_bits().trailing_zeros(), 6);
//!
//! assert_eq!(
//! [0b1111_0000_u8].as_bits().iter().collect::<Vec<bool>>(),
//! vec![true, true, true, true, false, false, false, false]
//! );
//!
//! assert_eq!(
//! vec![0b1111_1111, 0b1111_1111].as_bits().chunks(6).collect::<Vec<u8>>(),
//! vec![0b11_1111, 0b11_1111, 0b11_1100]
//! );
//!
//! assert_eq!(
//! vec![0b1111_1111; 3].as_bits().chunks(11).collect::<Vec<u16>>(),
//! vec![0b111_1111_1111, 0b111_1111_1111, 0b110_0000_0000]
//! );
//!
//! assert_eq!(
//! vec![0b1111_1111, 0b1100_0000].as_bits_mut().reverse().to_ref().as_bytes(),
//! vec![0b0000_0011, 0b1111_1111]
//! );
//!
//! assert_eq!(
//! Vec::from_bits([true, true, true, true, false, false, false, false].iter().copied()),
//! [0b1111_0000]
//! );
//!
//! assert_eq!(
//! Vec::from_bit_chunks([0b11_1111_u8, 0b11_1111, 0b11_1111].into_iter(), 6),
//! vec![0b1111_1111, 0b1111_1111, 0b1100_0000]
//! );
//!
//! assert_eq!(
//! Vec::from_bit_chunks([0b1111_u16, 0b1111, 0b1111].into_iter(), 6),
//! vec![0b001111_00, 0b1111_0011, 0b1100_0000]
//! );
//! ```
pub use ;
pub use ;
/// Assert overflow of parameter
/// # Parameters
/// - $n: parameter
/// - $min: minimum value
/// - $max: maximum value
/// - $name: function name
pub use assert_range;