pub struct SpaceSaving { /* private fields */ }Expand description
Space-saving algorithm for approximate top-K heavy hitters.
Tracks the K most frequent items with bounded memory. Items not in the top K are approximated — their counts may be over-estimated by at most the minimum count in the structure.
Implementations§
Source§impl SpaceSaving
impl SpaceSaving
pub fn new(k: usize) -> Self
pub fn add(&mut self, item: u64)
pub fn add_batch(&mut self, items: &[u64])
Sourcepub fn top_k(&self) -> Vec<(u64, u64, u64)>
pub fn top_k(&self) -> Vec<(u64, u64, u64)>
Get the top-K items sorted by count (descending).
Returns (item, count, error_bound) tuples.
pub fn merge(&mut self, other: &SpaceSaving)
Trait Implementations§
Auto Trait Implementations§
impl Freeze for SpaceSaving
impl RefUnwindSafe for SpaceSaving
impl Send for SpaceSaving
impl Sync for SpaceSaving
impl Unpin for SpaceSaving
impl UnsafeUnpin for SpaceSaving
impl UnwindSafe for SpaceSaving
Blanket Implementations§
Source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
The archived version of the pointer metadata for this type.
Source§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> LayoutRaw for T
impl<T> LayoutRaw for T
Source§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.
Source§impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
Source§unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
Returns whether the given value has been niched. Read more
Source§fn resolve_niched(out: Place<NichedOption<T, N1>>)
fn resolve_niched(out: Place<NichedOption<T, N1>>)
Writes data to
out indicating that a T is niched.