Trait Intersection

Source
pub trait Intersection<Rhs, N, B>
where Rhs: ContainerRead<B, Slot = N>, N: Number, B: BitAccess,
{ // Required methods fn intersection_in<Dst>(&self, rhs: &Rhs, dst: &mut Dst) where Dst: ContainerWrite<B, Slot = N>; fn try_intersection_in<Dst>( &self, rhs: &Rhs, dst: &mut Dst, ) -> Result<(), IntersectionError> where Dst: ContainerWrite<B, Slot = N>; fn intersection<Dst>(&self, rhs: &Rhs) -> Dst where Dst: ContainerWrite<B, Slot = N> + TryWithSlots; fn try_intersection<Dst>(&self, rhs: &Rhs) -> Result<Dst, IntersectionError> where Dst: ContainerWrite<B, Slot = N> + TryWithSlots; fn intersection_len(&self, rhs: &Rhs) -> usize; }
Expand description

Intersection operator (a & b).

Required Methods§

Source

fn intersection_in<Dst>(&self, rhs: &Rhs, dst: &mut Dst)
where Dst: ContainerWrite<B, Slot = N>,

Calculates intersection in-place. Result will be stored in dst.

§Panic

Panics if dst cannot fit the entire result. See non-panic function try_intersection_in.

Source

fn try_intersection_in<Dst>( &self, rhs: &Rhs, dst: &mut Dst, ) -> Result<(), IntersectionError>
where Dst: ContainerWrite<B, Slot = N>,

Calculates intersection in-place. Result will be stored in dst.

Returns Err(_) if dst cannot fit the entire result.

Source

fn intersection<Dst>(&self, rhs: &Rhs) -> Dst
where Dst: ContainerWrite<B, Slot = N> + TryWithSlots,

Calculates intersection. Result container will be created with try_with_slots function.

§Panic

Panics if Dst cannot fit the entire result. See non-panic function try_intersection.

Source

fn try_intersection<Dst>(&self, rhs: &Rhs) -> Result<Dst, IntersectionError>
where Dst: ContainerWrite<B, Slot = N> + TryWithSlots,

Calculates intersection. Result container will be created with try_with_slots function.

Returns Err(_) if Dst cannot fit the entire result.

Source

fn intersection_len(&self, rhs: &Rhs) -> usize

Calculates intersection length - ones count. It doesn’t allocate for storing intersection result.

Useful if you need to create some storage that relies on the number of required bits presented in the bitmap.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§

Source§

impl<D, B, Rhs, N> Intersection<Rhs, N, B> for StaticBitmap<D, B>
where D: ContainerRead<B, Slot = N>, B: BitAccess, Rhs: ContainerRead<B, Slot = N>, N: Number,

Source§

impl<D, B, S, Rhs, N> Intersection<Rhs, N, B> for VarBitmap<D, B, S>
where D: ContainerRead<B, Slot = N>, B: BitAccess, Rhs: ContainerRead<B, Slot = N>, N: Number,