asap_sketchlib 0.2.1

A high-performance sketching library for approximate stream processing
Documentation
# API: ExponentialHistogram

Status: `Ready`

## Purpose

Sliding-window coordinator over `EHSketchList` payload buckets.

## Type/Struct

- `EHBucket`
- `ExponentialHistogram`

## Constructors

```rust
fn new(k: usize, window: u64, eh_type: EHSketchList) -> Self
```

## Insert/Update

```rust
fn update(&mut self, time: u64, val: &DataInput)
fn update_with<F>(&mut self, time: u64, update_fn: F) where F: FnOnce(&mut EHSketchList)
fn update_window(&mut self, window: u64)
```

## Query

```rust
fn query_interval_merge(&self, t1: u64, t2: u64) -> Option<EHSketchList>
fn cover(&self, mint: u64, maxt: u64) -> bool
fn get_min_time(&self) -> Option<u64>
fn get_max_time(&self) -> Option<u64>
fn bucket_count(&self) -> usize
fn get_memory_info(&self) -> (usize, Vec<usize>)
```

## Merge

Managed internally during bucket compaction.

## Serialization

No dedicated serialization API.

## Examples

```rust
use asap_sketchlib::{CountMin, EHSketchList, ExponentialHistogram, FastPath, DataInput, Vector2D};

let template = EHSketchList::CM(CountMin::<Vector2D<i32>, FastPath>::default());
let mut eh = ExponentialHistogram::new(3, 120, template);
eh.update(10, &DataInput::Str("flow"));
let _ = eh.query_interval_merge(0, 120);
```

## Caveats

- Payload behavior depends on selected `EHSketchList` variant.

## Status

Ready sliding-window coordinator.