#hash-map #hash-set #collection #delay #delay-queue

delay_map

在给定时间后条目会过期的HashMap集合

6个版本 (3个破坏性)

0.4.0 2024年7月11日
0.3.0 2023年3月7日
0.2.0 2023年2月6日
0.1.2 2022年10月27日
0.1.0 2022年1月31日

#206 in 数据结构

Download history 7332/week @ 2024-05-04 8156/week @ 2024-05-11 5733/week @ 2024-05-18 5795/week @ 2024-05-25 5874/week @ 2024-06-01 6147/week @ 2024-06-08 7260/week @ 2024-06-15 8451/week @ 2024-06-22 7076/week @ 2024-06-29 7526/week @ 2024-07-06 10131/week @ 2024-07-13 11604/week @ 2024-07-20 7344/week @ 2024-07-27 7952/week @ 2024-08-03 7089/week @ 2024-08-10 6056/week @ 2024-08-17

29,630 每月下载量
用于 5 个crate (2直接)

Apache-2.0

21KB
331

delay_map

Build Status Doc Status Crates Status

在docs.rs上的文档

概述

这个crate包含两个数据结构,HashSetDelayHashMapDelay。它们的行为类似于标准库的HashSet和HashMap,增加的功能是映射中插入的条目在固定时间段后过期。

用法

创建映射

    use delay_map::HashMapDelay;
    use futures::prelude::*;

    // Set a default timeout for entries
    let mut delay_map = HashMapDelay::new(std::time::Duration::from_secs(1));


    tokio_test::block_on(async {

    delay_map.insert(1, "entry_1");
    delay_map.insert(2, "entry_2");
    
    if let Some(Ok((key, value))) = delay_map.next().await {
        println!("Entry 1: {}, {}", key, value);  
    }

    if let Some(Ok((key, value))) = delay_map.next().await {
        println!("Entry 2: {}, {}", key,value);  
    }
    });

依赖

~3–4.5MB
~69K SLoC