bitstring

Trait FixedBitString

source
pub trait FixedBitString {
    const LEN: usize;
Show 13 methods // Required methods fn inc(&mut self, prefix: usize) -> bool; fn get(&self, ndx: usize) -> bool; fn set(&mut self, ndx: usize, bit: bool); fn set_false_from(&mut self, ndx: usize); fn is_false_from(&self, ndx: usize) -> bool; fn set_true_from(&mut self, ndx: usize); fn is_true_from(&self, ndx: usize) -> bool; fn new_all_false() -> Self; fn new_all_true() -> Self; fn contains(&self, prefix: usize, other: &Self) -> bool; // Provided methods fn iter(&self, prefix: usize) -> Iter<Self> where Self: Sized + Clone { ... } fn flip(&mut self, ndx: usize) { ... } fn shared_prefix_len(&self, other: &Self) -> usize { ... }
}
Available on crate feature fixed only.
Expand description

A bit string with fixed length.

All bits must me mutable, and there must be no dependencies between bits (i.e. setting one bit must not change any other bit).

Required Associated Constants§

source

const LEN: usize

Length of the bit string in bits.

Required Methods§

source

fn inc(&mut self, prefix: usize) -> bool

Treat bit string as integer, where bit 0 is the most significant bit.

Increment by one, i.e. start by incrementing the bit with the highest index.

Don’t touch first prefix bits; return true on overflow.

§Panics

Should panic if prefix > Self::LEN.

source

fn get(&self, ndx: usize) -> bool

Get the ndxth bit.

§Panics

Should panic if ndx >= Self::LEN.

source

fn set(&mut self, ndx: usize, bit: bool)

Set the ndxth bit to bit.

§Panics

Should panic if ndx >= Self::LEN.

source

fn set_false_from(&mut self, ndx: usize)

Set all bits in [ndx..] to false.

Doesn’t do anything if ndx >= Self::LEN.

source

fn is_false_from(&self, ndx: usize) -> bool

Whether all bits in [ndx..] are false.

Returns true if ndx >= Self::LEN.

source

fn set_true_from(&mut self, ndx: usize)

Set all bits in [ndx..] to true.

Doesn’t do anything if ndx >= Self::LEN.

source

fn is_true_from(&self, ndx: usize) -> bool

Whether all bits in [ndx..] are true.

Returns true if ndx >= Self::LEN.

source

fn new_all_false() -> Self

New bit string with all bits set to false.

source

fn new_all_true() -> Self

New bit string with all bits set to true.

source

fn contains(&self, prefix: usize, other: &Self) -> bool

check whether another bit string other shares the first prefix bits with self

§Panics

Should panic if prefix > Self::LEN.

Provided Methods§

source

fn iter(&self, prefix: usize) -> Iter<Self>
where Self: Sized + Clone,

Iterate through all bit strings until inc overflows.

All generated values will share the first prefix bits. If you want to iterate over all values make sure to call self.set_false_from(prefix) before.

§Panics

Should panic if prefix > Self::LEN.

source

fn flip(&mut self, ndx: usize)

Flips the ndxth bit.

§Panics

Should panic if ndx >= Self::LEN.

source

fn shared_prefix_len(&self, other: &Self) -> usize

Length of the longest shared prefix of two bit strings.

Object Safety§

This trait is not object safe.

Implementations on Foreign Types§

source§

impl FixedBitString for Ipv4Addr

Available on crate feature net only.
source§

const LEN: usize = 32usize

Available on crate feature fixed only.
source§

fn inc(&mut self, prefix: usize) -> bool

Available on crate feature fixed only.
source§

fn get(&self, ndx: usize) -> bool

Available on crate feature fixed only.
source§

fn set(&mut self, ndx: usize, bit: bool)

Available on crate feature fixed only.
source§

fn flip(&mut self, ndx: usize)

Available on crate feature fixed only.
source§

fn shared_prefix_len(&self, other: &Self) -> usize

Available on crate feature fixed only.
source§

fn set_false_from(&mut self, ndx: usize)

Available on crate feature fixed only.
source§

fn is_false_from(&self, ndx: usize) -> bool

Available on crate feature fixed only.
source§

fn set_true_from(&mut self, ndx: usize)

Available on crate feature fixed only.
source§

fn is_true_from(&self, ndx: usize) -> bool

Available on crate feature fixed only.
source§

fn new_all_false() -> Self

Available on crate feature fixed only.
source§

fn new_all_true() -> Self

Available on crate feature fixed only.
source§

fn contains(&self, prefix: usize, other: &Self) -> bool

Available on crate feature fixed only.
source§

impl FixedBitString for Ipv6Addr

Available on crate feature net only.
source§

const LEN: usize = 128usize

Available on crate feature fixed only.
source§

fn inc(&mut self, prefix: usize) -> bool

Available on crate feature fixed only.
source§

fn get(&self, ndx: usize) -> bool

Available on crate feature fixed only.
source§

fn set(&mut self, ndx: usize, bit: bool)

Available on crate feature fixed only.
source§

fn flip(&mut self, ndx: usize)

Available on crate feature fixed only.
source§

fn shared_prefix_len(&self, other: &Self) -> usize

Available on crate feature fixed only.
source§

fn set_false_from(&mut self, ndx: usize)

Available on crate feature fixed only.
source§

fn is_false_from(&self, ndx: usize) -> bool

Available on crate feature fixed only.
source§

fn set_true_from(&mut self, ndx: usize)

Available on crate feature fixed only.
source§

fn is_true_from(&self, ndx: usize) -> bool

Available on crate feature fixed only.
source§

fn new_all_false() -> Self

Available on crate feature fixed only.
source§

fn new_all_true() -> Self

Available on crate feature fixed only.
source§

fn contains(&self, prefix: usize, other: &Self) -> bool

Available on crate feature fixed only.

Implementors§