67 个版本
0.8.7 | 2023年3月7日 |
---|---|
0.8.5 |
|
0.8.4 | 2022年3月27日 |
0.8.2 | 2021年10月12日 |
0.1.10 | 2015年7月30日 |
#4 in 缓存
1,376,174 每月下载量
用于 2,207 个 Crates (50 直接)
32KB
482 行
string-cache
作为 Servo 项目的组成部分开发的 Rust 字符串池库。
简单用法
在 Cargo.toml
[dependencies]
string_cache = "0.8"
在 lib.rs
extern crate string_cache;
use string_cache::DefaultAtom as Atom;
使用静态原子
在 Cargo.toml
[package]
build = "build.rs"
[dependencies]
string_cache = "0.8"
[build-dependencies]
string_cache_codegen = "0.5"
在 build.rs
extern crate string_cache_codegen;
use std::env;
use std::path::Path;
fn main() {
string_cache_codegen::AtomType::new("foo::FooAtom", "foo_atom!")
.atoms(&["foo", "bar"])
.write_to_file(&Path::new(&env::var("OUT_DIR").unwrap()).join("foo_atom.rs"))
.unwrap()
}
在 lib.rs
extern crate string_cache;
mod foo {
include!(concat!(env!("OUT_DIR"), "/foo_atom.rs"));
}
生成的代码将定义一个 FooAtom
类型和一个 foo_atom!
宏。这个宏可以在表达式或模式中使用,字符串列表在 build.rs
中列出。例如
fn compute_something(input: &foo::FooAtom) -> u32 {
match *input {
foo_atom!("foo") => 1,
foo_atom!("bar") => 2,
_ => 3,
}
}
依赖关系
~0.5–5.5MB
~17K SLoC