Crate threshold_dict

source ·
Expand description

threshold-dict

A data structure to find smallest key that is larger than the query.

Suppose we have a following weight dependent price table.

weight,price
100,10
200,15
500,30
otherwise,50

The price is decided by the smallest entry whose weight key is greater than the query.

examples

  • weight=90 -> price=10
  • weight=100 -> price=15
  • weight=250 -> price=30
  • weight=600 -> price=50

Install

cargo add threshold_dict

Usage

A ThresholdDict can be created by passing kv pairs and a default value. If query is greater than or equal to all of the keys, the default value is used.

let kv_pairs = vec![(100, 10), (200, 15), (500, 30)];
let default_value = Some(50);
let dict = ThresholdDict::with_default_value(kv_paris, default_value);

assert_eq!(dict.get(&90), Some(&10));

Structs