[−][src]Struct safe_async_scoped::Scope
An opaque utility for spawning local tasks that has access to the scope that Scope
has access to.
Example
let listener = Async::new(TcpListener::bind("127.0.0.1:8080").unwrap()).unwrap(); let lala = String::from("hello"); { let scope = Scope::new(); scope .start(async { loop { let (client, _) = listener.accept().await.unwrap(); scope.spawn(async { handle(client, &lala).await; }); } }) .await; }
Implementations
impl<'env> Scope<'env>
[src]
pub fn new() -> Self
[src]
Creates a new scope.
pub fn spawn<F: Future<Output = ()> + 'env>(&self, fut: F)
[src]
Schedules a future to be spawned onto the scope.
pub async fn start<'future, 'scope: 'future>(
&'scope self,
fut: impl Future<Output = ()> + 'future
)
[src]
&'scope self,
fut: impl Future<Output = ()> + 'future
)
Starts a context in which scoped tasks can be spawned. When fut
resolves, all spawned tasks are forcibly dropped.
Trait Implementations
Auto Trait Implementations
impl<'env> !RefUnwindSafe for Scope<'env>
impl<'env> !Send for Scope<'env>
impl<'env> !Sync for Scope<'env>
impl<'env> Unpin for Scope<'env>
impl<'env> !UnwindSafe for Scope<'env>
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,