pub struct CardinalityEstimator { /* private fields */ }Expand description
Multi-stream cardinality estimator backed by one HLL sketch per stream.
Implementations§
Source§impl CardinalityEstimator
impl CardinalityEstimator
Sourcepub fn new(precision: u8) -> Self
pub fn new(precision: u8) -> Self
Create a new estimator; all per-stream sketches use precision.
Sourcepub fn add(&mut self, stream: &str, item: &str)
pub fn add(&mut self, stream: &str, item: &str)
Add item to the sketch for stream (creates the stream if absent).
Sourcepub fn estimate(&self, stream: &str) -> u64
pub fn estimate(&self, stream: &str) -> u64
Estimate the cardinality of a single stream.
Returns 0 if the stream has never been seen.
Sourcepub fn union_estimate(&self, streams: &[&str]) -> u64
pub fn union_estimate(&self, streams: &[&str]) -> u64
Estimate the cardinality of the union of several streams by merging
their sketches.
Returns 0 when none of the named streams exist.
Sourcepub fn stream_count(&self) -> usize
pub fn stream_count(&self) -> usize
Return the number of tracked streams.
Auto Trait Implementations§
impl Freeze for CardinalityEstimator
impl RefUnwindSafe for CardinalityEstimator
impl Send for CardinalityEstimator
impl Sync for CardinalityEstimator
impl Unpin for CardinalityEstimator
impl UnsafeUnpin for CardinalityEstimator
impl UnwindSafe for CardinalityEstimator
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.