#guard #copy #generic #state #enums

beefeater

任何实现了 Copy 特质的类型的泛型保护

2 个版本

0.1.1 2019年12月16日
0.1.0 2019年12月16日

#41 in #guard

31 每月下载量

MIT 许可证

9KB
189

💂‍♂️ Beefeater

任何实现了 Copy 特质的类型的泛型保护。

使用方法

在您的 Cargo.toml 中添加依赖项

[dependencies]
beefeater = "0.1"

添加使用声明以导入 crate

use beefeater::Beefeater;

最后,使用 💂‍♂️ Beefeater 来保护访问

#[derive(Clone, Copy)]
enum State {
    Playing,
    Stopped,
}

fn main() {
    let state = Arc::new(Beefeater::new(State::Playing));

    {
        let state = state.clone();

        ctrlc::set_handler(move || {
            println!("Recevied SIGINT, stopping playback");
            state.store(State::Stopped);
        }).unwrap();
    }

    loop {
        match state.load() {
            State::Playing => {
                // Feed next chunk
            }
            State::Stopped => {
                break;
            }
        }
    }
}

lib.rs:

任何实现了 Copy 特质的类型的泛型保护

无运行时依赖