#guard #boilerplate #write #less #allowing #arc #arc-mutex-t

arc-guard

围绕 Arc> 的保护器,让您编写更少的样板代码

2 个不稳定版本

0.2.0 2019年3月6日
0.1.0 2019年3月3日

#17 in #allowing

MIT 许可证

6KB

ArcGuard

围绕 Arc<Mutex<T>> 的保护器,让您编写更少的样板代码。

完整文档可在此处阅读 这里.

示例

之前

use std::sync::{Arc, Mutex};

let indicator = Arc::new(Mutex::new(Indicator::new()));
let indicator_clone = indicator.clone();
let indicator_clone = indicator_clone.lock().expect("Unable to lock indicator.");

indicator_clone.do_something();

drop(indicator_clone);

之后

use arc_guard::ArcGuard;

let indicator = ArcGuard::new(Indicator::new());

indicator.execute(|indicator| {
    let indicator = indicator.lock().expect("Unable to lock indicator.");
    indicator.do_something();
});

lib.rs:

ArcGuard

围绕 Arc<Mutex<T>> 的保护器,让您编写更少的样板代码。

示例

之前

use std::sync::{Arc, Mutex};

let indicator = Arc::new(Mutex::new(Indicator::new()));
let indicator_clone = indicator.clone();
let indicator_clone = indicator_clone.lock().expect("Unable to lock indicator.");

indicator_clone.do_something();

drop(indicator_clone);

之后

use arc_guard::ArcGuard;

let indicator = ArcGuard::new(Indicator::new());

indicator.execute(|indicator| {
    let indicator = indicator.lock().expect("Unable to lock indicator.");
    indicator.do_something();
});

无运行时依赖