dsalgo/
next_subset_bits.rs

1pub fn next_subset_bits(
2    s: usize,
3    t: usize,
4) -> usize {
5    assert!(t > 0);
6
7    (t - 1) & s
8}
9
10#[cfg(test)]
11
12mod tests {
13
14    use super::*;
15
16    #[test]
17
18    fn test() {
19        let s = 0b0110100101;
20
21        let mut t = s;
22
23        while t > 0 {
24            println!("{:010b}", t);
25
26            t = next_subset_bits(s, t);
27        }
28    }
29}