Macro pin_utils::unsafe_unpinned [−][src]
An unpinned projection of a struct field.
Safety
This macro is unsafe because it creates a method that returns a normal non-pin reference to the struct field. It is up to the programmer to ensure that the contained value can be considered not pinned in the current context.
Example
use pin_utils::unsafe_unpinned; use std::pin::Pin; struct Bar; struct Foo { field: Bar, } impl Foo { unsafe_unpinned!(field: Bar); fn baz(mut self: Pin<&mut Self>) { let _: &mut Bar = self.field(); // Normal reference to the field } }
Note: borrowing the field multiple times requires using .as_mut()
to
avoid consuming the Pin
.