Spec-Zone.ru › Tokio

Структура CtrlBreak

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

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

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

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

Реализации

impl CtrlBreak

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

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

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

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

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    // A listener of CTRL-BREAK events.
    let mut signal = ctrl_break()?;

    // Print whenever a CTRL-BREAK event is received.
    loop {
        signal.recv().await;
        println!("got signal CTRL-BREAK");
    }
}

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

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

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

Примеры

Опрос из будущего, реализованного вручную

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)
    }
}

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

impl Debug for CtrlBreak

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

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

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

impl !RefUnwindSafe for CtrlBreak

impl !UnwindSafe for CtrlBreak

impl Freeze for CtrlBreak

impl Send for CtrlBreak

impl Sync for CtrlBreak

impl Unpin for CtrlBreak

impl UnsafeUnpin for CtrlBreak

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

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.CtrlBreak.html

Spec-Zone.ru

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