Spec-Zone.ru › Tokio

Структура CtrlC

pub struct CtrlC { /* private fields */ }
Доступно только в Windows и при включённой функции crate signal.

Представляет слушатель, получающий уведомления «ctrl-c», отправленные процессу через SetConsoleCtrlHandler.

Это событие можно преобразовать в Stream с помощью CtrlCStream.

Уведомление этому процессу оповещает всех получателей этого события. Кроме того, уведомления объединяются, если они не обрабатываются достаточно быстро. Это значит, что если два уведомления поступают одно за другим, слушатель может получить только один элемент для обоих уведомлений.

Реализации

impl CtrlC

pub async fn recv(&mut self) -> Option<()>

Получает следующее событие уведомления о сигнале.

Хотя этот метод возвращает Option<()>, он никогда фактически не вернёт None. Это было случайно добавлено в публичный API, и его удаление стало бы несовместимым изменением.

Примеры
use tokio::signal::windows::ctrl_c;

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let mut signal = ctrl_c()?;

    // Print whenever a CTRL-C event is received.
    for countdown in (0..3).rev() {
        signal.recv().await;
        println!("got CTRL-C. {} more to exit", countdown);
    }

    Ok(())
}

pub fn poll_recv(&mut self, cx: &mut Context<'_>) -> Poll<Option<()>>

Ожидает получения следующего события уведомления о сигнале вне контекста async.

Хотя этот метод возвращает Option<()>, он никогда фактически не вернёт None. Это было случайно добавлено в публичный API, и его удаление стало бы несовместимым изменением.

Примеры

Опрос из вручную реализованного future

use std::pin::Pin;
use std::future::Future;
use std::task::{Context, Poll};
use tokio::signal::windows::CtrlC;

struct MyFuture {
    ctrl_c: CtrlC,
}

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_c.poll_recv(cx)
    }
}

Реализации трейтов

impl Debug for CtrlC

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Форматирует значение с помощью заданного форматировщика. Подробнее

Автоматические реализации трейтов

impl !RefUnwindSafe for CtrlC

impl !UnwindSafe for CtrlC

impl Freeze for CtrlC

impl Send for CtrlC

impl Sync for CtrlC

impl Unpin for CtrlC

impl UnsafeUnpin for CtrlC

Общие реализации

impl<T> Any for T
where T: 'static + ?Sized,

fn type_id(&self) -> TypeId

Получает TypeId self. Подробнее

impl<T> Borrow<T> for T
where T: ?Sized,

fn borrow(&self) -> &T

Неизменяемо заимствует данные из принадлежащего значения. Подробнее

impl<T> BorrowMut<T> for T
where T: ?Sized,

fn borrow_mut(&mut self) -> &mut T

Изменяемо заимствует данные из принадлежащего значения. Подробнее

impl<T> From<T> for T

fn from(t: T) -> T

Возвращает аргумент без изменений.

impl<T> Instrument for T

fn instrument(self, span: Span) -> Instrumented<Self> ⓘ

Инструментирует этот тип с помощью предоставленного Span, возвращая обёртку Instrumented. Подробнее

fn in_current_span(self) -> Instrumented<Self> ⓘ

Инструментирует этот тип с помощью текущего Span, возвращая обёртку Instrumented. Подробнее

impl<T, U> Into<U> for T
where U: From<T>,

fn into(self) -> U

Вызывает U::from(self).

То есть это преобразование выполняет то, что выберет реализация From<T> for U.

impl<T, U> TryFrom<U> for T
where U: Into<T>,

type Error = Infallible

Тип, возвращаемый в случае ошибки преобразования.

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Выполняет преобразование.

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

type Error = <U as TryFrom<T>>::Error

Тип, возвращаемый в случае ошибки преобразования.

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Выполняет преобразование.

impl<T> WithSubscriber for T

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘ
where S: Into<Dispatch>,

Присоединяет указанный Subscriber к этому типу и возвращает обёртку WithDispatch. Подробнее

fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ

Присоединяет текущий по умолчанию Subscriber к этому типу и возвращает обёртку WithDispatch. Подробнее

MIT License
Copyright © Tokio Contributors
https://docs.rs/tokio/1.53.1/tokio/signal/windows/struct.CtrlC.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API