1#[allow(private_bounds)]
5pub trait Access: Sealed + Copy {}
6
7#[derive(Debug, Copy, Clone, PartialEq, Eq)]
9pub struct RW;
10
11#[derive(Debug, Copy, Clone, PartialEq, Eq)]
13pub struct R;
14
15#[derive(Debug, Copy, Clone, PartialEq, Eq)]
17pub struct W;
18
19impl Access for R {}
20impl Access for W {}
21impl Access for RW {}
22
23trait Sealed {}
24impl Sealed for R {}
25impl Sealed for W {}
26impl Sealed for RW {}
27
28pub trait Read: Access {}
30impl Read for RW {}
31impl Read for R {}
32
33pub trait Write: Access {}
35impl Write for RW {}
36impl Write for W {}