design/ops/place/borrowck.rs
1use std::marker::PhantomData;
2
3use macros::sealed;
4
5#[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}