1 个稳定版本

1.3.0 2020年8月20日
1.2.1 2020年8月20日
1.1.1 2020年8月20日
1.0.1 2020年8月20日

982并发

Download history 6/week @ 2024-02-26 8/week @ 2024-03-11 80/week @ 2024-04-01

88 每月下载量

MIT 许可证

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