Skip to main content

design/ops/place/
borrowck.rs

1use std::marker::PhantomData;
2
3use macros::sealed;
4
5mod __Timing_sealed {
    use super::*;
    #[allow(unnameable_types)]
    pub trait Sealed { }
}#[sealed]
6pub trait Timing {}
7
8pub struct Instant;
9pub struct Lifetime<'a>(PhantomData<&'a ()>);
10pub struct UntilDrop;
11
12#[sealed]
13impl Timing for Instant {}
14#[sealed]
15impl Timing for Lifetime<'_> {}
16#[sealed]
17impl Timing for UntilDrop {}
18
19pub enum AccessKind {
20    Shared,
21    Exclusive,
22    Untracked,
23}