pub struct CtrlBreak { /* private fields */ }
Available on crate feature
signal
only.Expand description
Represents a stream which receives “ctrl-break” notifications sent to the process
via SetConsoleCtrlHandler
.
A notification to this process notifies all streams listening for this event. Moreover, the notifications are coalesced if they aren’t processed quickly enough. This means that if two notifications are received back-to-back, then the stream may only receive one item about the two notifications.
Implementations§
Source§impl CtrlBreak
impl CtrlBreak
Sourcepub async fn recv(&mut self) -> Option<()>
pub async fn recv(&mut self) -> Option<()>
Receive the next signal notification event.
None
is returned if no more events can be received by this stream.
§Examples
use tokio::signal::windows::ctrl_break;
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
// An infinite stream of CTRL-BREAK events.
let mut stream = ctrl_break()?;
// Print whenever a CTRL-BREAK event is received
loop {
stream.recv().await;
println!("got signal CTRL-BREAK");
}
}
Sourcepub fn poll_recv(&mut self, cx: &mut Context<'_>) -> Poll<Option<()>>
pub fn poll_recv(&mut self, cx: &mut Context<'_>) -> Poll<Option<()>>
Poll to receive the next signal notification event, outside of an
async
context.
None
is returned if no more events can be received by this stream.
§Examples
Polling from a manually implemented future
use std::pin::Pin;
use std::future::Future;
use std::task::{Context, Poll};
use tokio::signal::windows::CtrlBreak;
struct MyFuture {
ctrl_break: CtrlBreak,
}
impl Future for MyFuture {
type Output = Option<()>;
fn poll(mut self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll<Self::Output> {
println!("polling MyFuture");
self.ctrl_break.poll_recv(cx)
}
}
Trait Implementations§
Source§impl Stream for CtrlBreak
Available on crate feature stream
only.
impl Stream for CtrlBreak
Available on crate feature
stream
only.Auto Trait Implementations§
impl Freeze for CtrlBreak
impl !RefUnwindSafe for CtrlBreak
impl Send for CtrlBreak
impl Sync for CtrlBreak
impl Unpin for CtrlBreak
impl !UnwindSafe for CtrlBreak
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<St> StreamExt for St
impl<St> StreamExt for St
Source§fn next(&mut self) -> Next<'_, Self>where
Self: Unpin,
fn next(&mut self) -> Next<'_, Self>where
Self: Unpin,
Available on crate feature
stream
only.Consumes and returns the next value in the stream or
None
if the
stream is finished. Read moreSource§fn try_next<T, E>(&mut self) -> TryNext<'_, Self>
fn try_next<T, E>(&mut self) -> TryNext<'_, Self>
Available on crate feature
stream
only.Consumes and returns the next item in the stream. If an error is
encountered before the next item, the error is returned instead. Read more
Source§fn map<T, F>(self, f: F) -> Map<Self, F>
fn map<T, F>(self, f: F) -> Map<Self, F>
Available on crate feature
stream
only.Maps this stream’s items to a different type, returning a new stream of
the resulting type. Read more
Source§fn merge<U>(self, other: U) -> Merge<Self, U>
fn merge<U>(self, other: U) -> Merge<Self, U>
Available on crate feature
stream
only.Combine two streams into one by interleaving the output of both as it
is produced. Read more
Source§fn filter<F>(self, f: F) -> Filter<Self, F>
fn filter<F>(self, f: F) -> Filter<Self, F>
Available on crate feature
stream
only.Filters the values produced by this stream according to the provided
predicate. Read more
Source§fn filter_map<T, F>(self, f: F) -> FilterMap<Self, F>
fn filter_map<T, F>(self, f: F) -> FilterMap<Self, F>
Available on crate feature
stream
only.Filters the values produced by this stream while simultaneously mapping
them to a different type according to the provided closure. Read more
Source§fn fuse(self) -> Fuse<Self>where
Self: Sized,
fn fuse(self) -> Fuse<Self>where
Self: Sized,
Available on crate feature
stream
only.Creates a stream which ends after the first
None
. Read moreSource§fn take(self, n: usize) -> Take<Self>where
Self: Sized,
fn take(self, n: usize) -> Take<Self>where
Self: Sized,
Available on crate feature
stream
only.Creates a new stream of at most
n
items of the underlying stream. Read moreSource§fn take_while<F>(self, f: F) -> TakeWhile<Self, F>
fn take_while<F>(self, f: F) -> TakeWhile<Self, F>
Available on crate feature
stream
only.Take elements from this stream while the provided predicate
resolves to
true
. Read moreSource§fn all<F>(&mut self, f: F) -> AllFuture<'_, Self, F>
fn all<F>(&mut self, f: F) -> AllFuture<'_, Self, F>
Available on crate feature
stream
only.Tests if every element of the stream matches a predicate. Read more
Source§fn any<F>(&mut self, f: F) -> AnyFuture<'_, Self, F>
fn any<F>(&mut self, f: F) -> AnyFuture<'_, Self, F>
Available on crate feature
stream
only.Tests if any element of the stream matches a predicate. Read more