| 1 | /// Allows value to be reborrowed as exclusive, creating a copy of the value |
| 2 | /// that disables the source for reads and writes for the lifetime of the copy. |
| 3 | #[lang = "reborrow" ] |
| 4 | #[unstable (feature = "reborrow" , issue = "145612" )] |
| 5 | pub trait Reborrow { |
| 6 | // Empty. |
| 7 | } |
| 8 | |
| 9 | /// Allows reborrowable value to be reborrowed as shared, creating a copy |
| 10 | /// that disables the source for writes for the lifetime of the copy. |
| 11 | #[lang = "coerce_shared" ] |
| 12 | #[unstable (feature = "reborrow" , issue = "145612" )] |
| 13 | pub trait CoerceShared: Reborrow { |
| 14 | /// The type of this value when reborrowed as shared. |
| 15 | type Target: Copy; |
| 16 | } |
| 17 | |