raftify 0.1.82

Experimental High level Raft framework
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
use tokio::sync::Mutex;

pub struct OneShotMutex<T> {
    data: Mutex<Option<T>>,
}

impl<T> OneShotMutex<T> {
    pub fn new(data: T) -> Self {
        OneShotMutex {
            data: Mutex::new(Some(data)),
        }
    }

    pub async fn lock(&self) -> Option<T> {
        let mut data = self.data.lock().await;
        data.take()
    }
}