minerva 0.2.0

Causal ordering for distributed systems
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
use super::Scoped;
use crate::metis::Cut;

impl Scoped<'_, Cut> {
    /// Leaves the scope, surrendering the witnessed [`Cut`].
    ///
    /// The cut instance of the named escape: the brand drops and the bare
    /// [`Cut`] returns, still carrying its own gap-freedom witness (that is a
    /// property of the cut, not of the scope). Only the roster the cut was read
    /// *over* is forgotten, which is exactly what a scoped order verdict on the
    /// cut would have depended on.
    #[must_use]
    pub fn forget(self) -> Cut {
        self.value
    }
}