Trait Union

Source
pub trait Union<Rhs, N, B>
where Rhs: ContainerRead<B, Slot = N>, N: Number, B: BitAccess,
{ // Required methods fn union_in<Dst>(&self, rhs: &Rhs, dst: &mut Dst) where Dst: ContainerWrite<B, Slot = N>; fn try_union_in<Dst>( &self, rhs: &Rhs, dst: &mut Dst, ) -> Result<(), UnionError> where Dst: ContainerWrite<B, Slot = N>; fn union<Dst>(&self, rhs: &Rhs) -> Dst where Dst: ContainerWrite<B, Slot = N> + TryWithSlots; fn try_union<Dst>(&self, rhs: &Rhs) -> Result<Dst, UnionError> where Dst: ContainerWrite<B, Slot = N> + TryWithSlots; fn union_len(&self, rhs: &Rhs) -> usize; }
Expand description

Union operator (a | b).

Required Methods§

Source

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

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

§Panic

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

Source

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

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

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

Source

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

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

§Panic

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

Source

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

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

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

Source

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

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

Useful if you need to create some storage that relies on the number of 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> Union<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> Union<Rhs, N, B> for VarBitmap<D, B, S>
where D: ContainerRead<B, Slot = N>, B: BitAccess, Rhs: ContainerRead<B, Slot = N>, N: Number,