是否可以在编译时填充一个大集合?

For*_*sed 6 rust

我们有“删除我的所有数据”功能。我想从许多网络日志文件中删除一组 IP。

目前在运行时,我打开一个包含要删除的 IP 地址的 CSV,将其转换为一个集合,扫描文件,并在日志 IP 匹配时执行删除逻辑。

有什么方法可以加载 CSV 并在编译时将其转换为一组?我们正在尝试将内容迁移到 AWS lambda,并且只部署一个没有依赖项的静态二进制文件非常棒。

mca*_*ton 7

防锈PHF箱提供编译时数据结构,包括(有序)映射和集。

不幸的是,迄今为止,它不支持一组 的初始化std::net::IpAddr,但可以与静态字符串一起使用:

static IP_SET: phf::Set<&'static str> = phf_set! {
    "127.0.0.1",
    "::1",
};
Run Code Online (Sandbox Code Playgroud)