Struct cbor_tag_index::DnfQuery[][src]

pub struct DnfQuery<T> { /* fields omitted */ }
Expand description

A compact representation of a seq of tag sets, to be used as a DNF query.

The internal repesentation is using a bitmap for efficiency. So assuming string tags, e.g. (“a” & “b”) | (“b” & “c”) | (“d”) would be encoded as

{
  tags: ["a", "b", "c", "d"],
  sets: [
    b0011,
    b0110,
    b1000,
  ]
}

so the possibly large tags have to be stored only once, and operations can work on bit sets.

Implementations

impl<T> DnfQuery<T>[src]

pub fn empty() -> Self[src]

An empty dnf query which matches nothing

pub fn is_empty(&self) -> bool[src]

Are we an empty dnf query which matches nothing?

pub fn all() -> Self[src]

a dnf query containing an empty set, which matches everything

pub fn is_all(&self) -> bool[src]

Are we a dnf query containing an empty set, which matches everything?

pub fn terms(&self) -> impl Iterator<Item = impl Iterator<Item = &T>>[src]

get back the terms making up the dnf query

Note that there is no guarantee that there will be the same number of terms or that tags in each term will be ordered in the same way.

pub fn len(&self) -> usize[src]

impl<T: Tag> DnfQuery<T>[src]

pub fn new(
    terms: impl IntoIterator<Item = impl IntoIterator<Item = T>>
) -> Result<Self>
[src]

Build a new DnfQuery from a sequence of terms, where each term contains a sequence of tags.

pub fn matching(&self, index: &TagIndex<T>) -> Vec<bool>[src]

Helper method to return the matching indexes, mostly for tests

pub fn set_matching(&self, index: &TagIndex<T>, matches: &mut [bool])[src]

given a bitmap of matches, corresponding to the events in the index, set those bytes to false that do not match.

Trait Implementations

impl<T: Clone> Clone for DnfQuery<T>[src]

fn clone(&self) -> DnfQuery<T>[src]

Returns a copy of the value. Read more

fn clone_from(&mut self, source: &Self)1.0.0[src]

Performs copy-assignment from source. Read more

impl<T: Debug> Debug for DnfQuery<T>[src]

fn fmt(&self, f: &mut Formatter<'_>) -> Result[src]

Formats the value using the given formatter. Read more

impl<T: DagCbor> Decode<DagCborCodec> for DnfQuery<T>[src]

fn decode<R: Read + Seek>(c: DagCborCodec, r: &mut R) -> Result<Self>[src]

Decode from an impl Read. Read more

impl<T: Default> Default for DnfQuery<T>[src]

fn default() -> DnfQuery<T>[src]

Returns the “default value” for a type. Read more

impl<T: Display> Display for DnfQuery<T>[src]

fn fmt(&self, f: &mut Formatter<'_>) -> Result[src]

Formats the value using the given formatter. Read more

impl<T: DagCbor> Encode<DagCborCodec> for DnfQuery<T>[src]

fn encode<W: Write>(&self, c: DagCborCodec, w: &mut W) -> Result<()>[src]

Encodes into a impl Write. Read more

impl<T: PartialEq> PartialEq<DnfQuery<T>> for DnfQuery<T>[src]

fn eq(&self, other: &DnfQuery<T>) -> bool[src]

This method tests for self and other values to be equal, and is used by ==. Read more

fn ne(&self, other: &DnfQuery<T>) -> bool[src]

This method tests for !=.

impl<T: Eq> Eq for DnfQuery<T>[src]

impl<T> StructuralEq for DnfQuery<T>[src]

impl<T> StructuralPartialEq for DnfQuery<T>[src]

Auto Trait Implementations

impl<T> RefUnwindSafe for DnfQuery<T> where
    T: RefUnwindSafe

impl<T> Send for DnfQuery<T> where
    T: Send

impl<T> Sync for DnfQuery<T> where
    T: Sync

impl<T> Unpin for DnfQuery<T> where
    T: Unpin

impl<T> UnwindSafe for DnfQuery<T> where
    T: UnwindSafe

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

pub fn type_id(&self) -> TypeId[src]

Gets the TypeId of self. Read more

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

pub fn borrow(&self) -> &T[src]

Immutably borrows from an owned value. Read more

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

pub fn borrow_mut(&mut self) -> &mut T[src]

Mutably borrows from an owned value. Read more

impl<T> From<T> for T[src]

pub fn from(t: T) -> T[src]

Performs the conversion.

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

pub fn into(self) -> U[src]

Performs the conversion.

impl<T> References<RawCodec> for T

pub fn references<R, E>(
    _c: RawCodec,
    _r: &mut R,
    _set: &mut E
) -> Result<(), Error> where
    R: Read,
    E: Extend<Cid<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B0>, B0>, B0>, B0>, B0>>>, 

Scrape the references from an impl Read. Read more

impl<T> Same<T> for T

type Output = T

Should always be Self

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

pub fn to_owned(&self) -> T[src]

Creates owned data from borrowed data, usually by cloning. Read more

pub fn clone_into(&self, target: &mut T)[src]

🔬 This is a nightly-only experimental API. (toowned_clone_into)

recently added

Uses borrowed data to replace owned data, usually by cloning. Read more

impl<T> ToString for T where
    T: Display + ?Sized
[src]

pub default fn to_string(&self) -> String[src]

Converts the given value to a String. Read more

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>[src]

Performs the conversion.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>[src]

Performs the conversion.

impl<T> DagCbor for T where
    T: Encode<DagCborCodec> + Decode<DagCborCodec>, 
[src]