1 个稳定版本
1.3.0 | 2020年8月20日 |
---|---|
1.2.1 |
|
1.1.1 |
|
1.0.1 |
|
982 在 并发
88 每月下载量
5KB
INIT GUARD
Init_Guard Crate 提供了一个同步原语,可用于防止重复初始化。
为此,导出了 init_guard 宏。init_guard 宏创建了一个新模块,其中包含 init_guard 所需的一切。
该模块包含两个公共方法,init() 和 has_init()。
has_init()
has_init 函数的定义如下
fn has_init() -> bool
has_init 函数如果 init_guard 已经初始化,则返回 true。
init()
init 函数的定义如下
fn init() -> Result<(),()>
如果 init_guard 成功初始化,则 init 函数返回 Ok,如果它之前已经初始化,则返回 Err。
使用示例
init_guard!(HAS_LOGGER_INIT); // Create the init_guard
fn init_logger() -> Result<(),String> {
match HAS_LOGGER_INIT::init() {
Ok(_) => {},
Err(_) => {return Err("Logger is already initialized!".to_string())}
}
// Everything after this is now safe from double initialization
// Do your actual logger initialization here
}
依赖项
~11KB