pub struct HllSketch { /* private fields */ }Expand description
Minimal HyperLogLog sketch for approximate distinct counting.
Uses 2^precision registers. Default precision is 8 (256 registers,
~256 bytes of memory, ~2% standard error).
§Wire Format
[precision: u8][registers: u8 * (2^precision)]
Implementations§
Source§impl HllSketch
impl HllSketch
Sourcepub fn with_precision(precision: u8) -> Self
pub fn with_precision(precision: u8) -> Self
Create a new empty sketch with the given precision.
Allocates 2^precision registers.
§Panics
Panics if precision is not in the range 4..=18.
Sourcepub fn merge(&mut self, other: &Self)
pub fn merge(&mut self, other: &Self)
Merge another sketch into this one (HLL union).
§Panics
Panics if the two sketches have different precisions.
Sourcepub fn from_bytes(bytes: &[u8]) -> Result<Self, TwoPhaseError>
pub fn from_bytes(bytes: &[u8]) -> Result<Self, TwoPhaseError>
Sourcepub fn num_registers(&self) -> usize
pub fn num_registers(&self) -> usize
Number of registers (2^precision).
Trait Implementations§
Auto Trait Implementations§
impl Freeze for HllSketch
impl RefUnwindSafe for HllSketch
impl Send for HllSketch
impl Sync for HllSketch
impl Unpin for HllSketch
impl UnsafeUnpin for HllSketch
impl UnwindSafe for HllSketch
Blanket Implementations§
§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
§type ArchivedMetadata = ()
type ArchivedMetadata = ()
The archived version of the pointer metadata for this type.
§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
Converts some archived metadata to the pointer metadata for itself.
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§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 more§impl<T> LayoutRaw for T
impl<T> LayoutRaw for T
§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Returns the layout of the type.