4 个版本
0.1.3 | 2023年3月11日 |
---|---|
0.1.2 | 2023年3月11日 |
0.1.1 | 2020年3月11日 |
0.1.0 | 2020年3月11日 |
#7 在 #atoms
4KB
66 代码行
Atomize
Rust 的 Elixir 风格原子
来自 Elixir:原子是一个常量,其值是其自身的名称。某些其他语言称这些为符号。它们通常在遍历不同的值时非常有用。
创建原子
use atomize::{a, Atom};
fn main() {
// `a!(apple)` will always create the same value
let apple: Atom = a!(apple);
assert_eq!(apple, a!(apple));
}
原子等价
原子以 O(1) 的时间进行比较。实际上,它们编译为简单的 u64,因此比较是在单个 x64 操作中完成的
assert_eq!(a!(orange), a!(orange));
assert_ne!(a!(orange), a!(apple));
混合
原子也可以混合使用
let apple_and_orange = a!(apple) + a!(orange);
assert_eq!(apple_and_orange, a!(orange) + a!(apple));
依赖项
~1.5MB
~35K SLoC