Skip to content

Instantly share code, notes, and snippets.

@jayhuang75
Created March 21, 2022 03:34
Show Gist options
  • Select an option

  • Save jayhuang75/a57b6ddbeb14f7ce4fdbbee18b53b754 to your computer and use it in GitHub Desktop.

Select an option

Save jayhuang75/a57b6ddbeb14f7ce4fdbbee18b53b754 to your computer and use it in GitHub Desktop.
lfu_set
pub fn set(&mut self, key: &'a str, value: T) where T: Debug {
if let Some(entry) = self.by_key.get_mut(&key) {
entry.val = value;
self.update_freq_node(key);
return
}
if self.len() >= self.capacity {
// evict func
self.evict();
}
self.by_key.insert(key, Entry{
val: value,
count: 1,
});
self.least_freq_node = 1;
self.freq_node.entry(self.least_freq_node).or_default().insert(key);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment