Trait AsPin

Source
pub trait AsPin: Deref {
    // Required method
    fn as_pin(&mut self) -> Pin<&mut Self>;
}
Expand description

Gets Pin out of value

§Usage:

use cute_async::AsPin;

use core::task;
use core::pin::Pin;
use core::future::Future;

pub struct MyFuture<T>(T);

impl<T: AsPin + Unpin + Future> Future for MyFuture<T> {
    type Output = T::Output;

    fn poll(mut self: Pin<&mut Self>, ctx: &mut task::Context<'_>) -> task::Poll<Self::Output> {
        let inner = self.0.as_pin();
        Future::poll(inner, ctx)
    }
}

Required Methods§

Source

fn as_pin(&mut self) -> Pin<&mut Self>

Gets Pin out of self.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§

Source§

impl<T: Deref> AsPin for T