2 个不稳定版本
0.2.0 | 2019年3月6日 |
---|---|
0.1.0 | 2019年3月3日 |
#17 in #allowing
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();
});