mod.rs |
This library defines the `PinCell` type, a pinning variant of the standard
library's `RefCell`.
It is not safe to "pin project" through a `RefCell` - getting a pinned
reference to something inside the `RefCell` when you have a pinned
refernece to the `RefCell` - because `RefCell` is too powerful.
A `PinCell` is slightly less powerful than `RefCell`: unlike a `RefCell`,
one cannot get a mutable reference into a `PinCell`, only a pinned mutable
reference (`Pin<&mut T>`). This makes pin projection safe, allowing you
to use interior mutability with the knowledge that `T` will never actually
be moved out of the `RefCell` that wraps it. |
3339 |
pin_mut.rs |
TODO implement these APIs
impl<'a, T: ?Sized> PinMut<'a, T> {
pub fn map<U, F>(orig: PinMut<'a, T>, f: F) -> PinMut<'a, U> where
F: FnOnce(Pin<&mut T>) -> Pin<&mut U>,
{
panic!()
}
pub fn map_split<U, V, F>(orig: PinMut<'a, T>, f: F) -> (PinMut<'a, U>, PinMut<'a, V>) where
F: FnOnce(Pin<&mut T>) -> (Pin<&mut U>, Pin<&mut V>)
{
panic!()
}
}
|
1201 |
pin_ref.rs |
TODO implement these APIs
impl<'a, T: ?Sized> PinRef<'a, T> {
pub fn clone(orig: &PinRef<'a, T>) -> PinRef<'a, T> {
panic!()
}
pub fn map<U, F>(orig: PinRef<'a, T>, f: F) -> PinRef<'a, U> where
F: FnOnce(Pin<&T>) -> Pin<&U>,
{
panic!()
}
pub fn map_split<U, V, F>(orig: PinRef<'a, T>, f: F) -> (PinRef<'a, U>, PinRef<'a, V>) where
F: FnOnce(Pin<&T>) -> (Pin<&U>, Pin<&V>)
{
panic!()
}
}
|
1042 |
README.md |
This is a temporary fork of https://github.com/withoutboats/pin-cell until |
140 |