| 13 | } |
| 14 | |
| 15 | fn error_buffer_wrapper() { |
| 16 | use rustix::buffer::Buffer; |
| 17 | |
| 18 | fn read<B: Buffer<u8>>(_: B) {} |
| 19 | |
| 20 | // This is reduced from src/fs/inotify.rs line 177. |
| 21 | struct Wrapper<'a>(&'a mut [u8]); |
| 22 | impl<'a> Wrapper<'a> { |
| 23 | fn read(&mut self) { |
| 24 | // Ideally we'd write this, but it gets: |
| 25 | // "cannot move out of `self` which is behind a mutable reference". |
| 26 | /* |
| 27 | read(self.0); |
| 28 | */ |
| 29 | |
| 30 | // The fix: add `&mut *`. |
| 31 | read(&mut *self.0); |
| 32 | } |
| 33 | } |
| 34 | let mut buf = vec![0_u8; 3]; |
| 35 | let mut wrapper = Wrapper(&mut buf); |
| 36 | wrapper.read(); |
| 37 | } |
| 38 | |
| 39 | fn error_retry_closure() { |
| 40 | use rustix::buffer::Buffer; |