dungeon_cell/bound/
subset.rs1use crate::marker_traits::IsBound;
2
3use super::{traits, Bound};
4
5pub trait Subset<T: IsBound>: IsBound {}
35
36impl<
37 SendLarger,
38 SyncLarger,
39 CopyLarger,
40 CloneLarger,
41 UnpinLarger,
42 DebugLarger,
43 SendSmaller,
44 SyncSmaller,
45 CopySmaller,
46 CloneSmaller,
47 UnpinSmaller,
48 DebugSmaller,
49 >
50 Subset<
51 Bound<
52 SendLarger,
53 SyncLarger,
54 CopyLarger,
55 CloneLarger,
56 UnpinLarger,
57 DebugLarger,
58 >,
59 >
60 for Bound<
61 SendSmaller,
62 SyncSmaller,
63 CopySmaller,
64 CloneSmaller,
65 UnpinSmaller,
66 DebugSmaller,
67 >
68where
69 Bound<
70 SendLarger,
71 SyncLarger,
72 CopyLarger,
73 CloneLarger,
74 UnpinLarger,
75 DebugLarger,
76 >: IsBound,
77 Bound<
78 SendSmaller,
79 SyncSmaller,
80 CopySmaller,
81 CloneSmaller,
82 UnpinSmaller,
83 DebugSmaller,
84 >: IsBound,
85 SendSmaller: SubsetHelper<SendLarger>,
86 SyncSmaller: SubsetHelper<SyncLarger>,
87 CopySmaller: SubsetHelper<CopyLarger>,
88 CloneSmaller: SubsetHelper<CloneLarger>,
89 UnpinSmaller: SubsetHelper<UnpinLarger>,
90 DebugSmaller: SubsetHelper<DebugLarger>,
91{
92}
93
94pub trait SubsetHelper<T> {}
95
96impl SubsetHelper<traits::Send> for traits::__ {}
97impl SubsetHelper<traits::Sync> for traits::__ {}
98impl SubsetHelper<traits::Copy> for traits::__ {}
99impl SubsetHelper<traits::Clone> for traits::__ {}
100impl SubsetHelper<traits::Unpin> for traits::__ {}
101impl SubsetHelper<traits::Debug> for traits::__ {}
102impl SubsetHelper<traits::__> for traits::__ {}
103
104impl SubsetHelper<traits::Send> for traits::Send {}
105impl SubsetHelper<traits::Sync> for traits::Sync {}
106impl SubsetHelper<traits::Copy> for traits::Copy {}
107impl SubsetHelper<traits::Clone> for traits::Clone {}
108impl SubsetHelper<traits::Unpin> for traits::Unpin {}
109impl SubsetHelper<traits::Debug> for traits::Debug {}