Skip to content

Commit 563ac67

Browse files
author
boats
committed
Anchor requires StableDerefMut.
1 parent 56c1c35 commit 563ac67

File tree

5 files changed

+21
-4
lines changed

5 files changed

+21
-4
lines changed

derefs.dot

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
digraph {
2+
Deref [shape=box]
3+
Deref -> DerefMut
4+
Deref -> StableDeref
5+
Deref -> Own
6+
Deref -> Share
7+
DerefMut [shape=box]
8+
DerefMut -> StableDerefMut
9+
Clone [shape=box]
10+
Clone -> Share
11+
StableDeref -> StableDerefMut
12+
}

derefs.png

26.2 KB
Loading

features.dot

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
digraph {
2+
stable_deref -> anchor_type
3+
pin_and_move -> anchor_type
4+
pin_and_move -> stack_pinning
5+
}

features.png

19.8 KB
Loading

text/0000-pin_and_move.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -186,7 +186,7 @@ struct Anchor<T> {
186186
ptr: T,
187187
}
188188
189-
impl<T: StableDeref + Own> Anchor<T> {
189+
impl<T: StableDerefMut + Own> Anchor<T> {
190190
pub fn new(ptr: T) -> Anchor<T>;
191191
192192
pub unsafe fn get_mut(this: &mut Anchor<T>) -> &mut T;
@@ -196,15 +196,15 @@ impl<T: StableDeref + Own> Anchor<T> {
196196
pub fn pin<'a>(this: &'a mut Anchor<T>) -> Pin<'a, T::Target>;
197197
}
198198
199-
impl<T: StableDeref + Own> Anchor<T> where T::Target: Move {
199+
impl<T: StableDerefMut + Own> Anchor<T> where T::Target: Move {
200200
pub fn into_inner(this: Anchor<T>) -> T;
201201
}
202202
203-
impl<T: StableDeref + Own> Deref for Anchor<T> {
203+
impl<T: StableDerefMut + Own> Deref for Anchor<T> {
204204
type Target = T;
205205
}
206206
207-
impl<T: StableDeref + Own> DerefMut for Anchor<T> where T::Target: Move { }
207+
impl<T: StableDerefMut + Own> DerefMut for Anchor<T> where T::Target: Move { }
208208
```
209209
210210
Because `Anchor` implements `StableDeref` and `Own`, and it is not safe to get

0 commit comments

Comments
 (0)