#线程安全 #静态 #惰性求值 #惰性静态 #辅助 #访问 #结构体

nightly ts_static

用于惰性静态和线程安全访问静态值的包装宏及结构体

8 个版本

0.3.0 2020 年 9 月 24 日
0.2.0 2020 年 9 月 17 日
0.1.5 2020 年 9 月 17 日

#2775 in Rust 模式

每月 22 次下载

GPL-3.0-only

18KB
237 行代码(不包括注释)

ts_static

惰性静态和线程安全访问静态值的包装宏及结构体。

可在全局作用域或模块作用域中使用。

ts_static 使用的作用域需要导入 lazy_static

用法

ts_static!(STATIC_NAME, Type);

示例

ts_static!(MY_STATIC_NAME, i32);

静态设置为 ThreadSafeStruct<T>

使用 set 成员函数设置值。

使用 with 成员函数与值交互。

可以直接访问互斥锁字段 value,但对于大多数需求,应该使用辅助函数

设置值

MY_STATIC_NAME.set(Some(1337));

使用值

MY_STATIC_NAME.with(|value| {
    *value += 1 
}).expect(".with failed");

清除值

MY_STATIC_NAME.set(None);

HashMaps

如果您的 THashMap,则有两个辅助函数

  • insert(key, value) - 添加或更新值
  • remove(key) - 获取并删除值

这些函数与 HashMap 类型类似,但保证是线程安全的。

依赖

~10KB