Trait Reporter

Source
pub trait Reporter:
    Clone
    + Send
    + Sync {
    // Required method
    fn send(&self, state: ReportState);

    // Provided methods
    fn fork(&self) -> Self { ... }
    fn sub(&self) -> Self { ... }
    fn send_mut(&mut self, state: ReportState) { ... }
}
Expand description

一个异步报告特质,用来给宿主提供目前异步程序的处理状态

实现该特质时需要注意,当对象被克隆时,其响应也应当和原始对象一致。

当进行调用时,如不需要报告进度可以使用 None as Option<()>(或本模块中的 NR 常量)来跳过报告

Required Methods§

Source

fn send(&self, state: ReportState)

发送信息,并根据情况相继上报给原始对象

Provided Methods§

Source

fn fork(&self) -> Self

返回一个和原始对象分离的报告对象,应当是一个全新的报告对象

所响应的进度不会同时上报给原始对象

Source

fn sub(&self) -> Self

返回一个报告会同时上报给原始报告的对象

Source

fn send_mut(&mut self, state: ReportState)

发送信息,但是可变引用状态,并根据情况相继上报给原始对象

如果你的上报对象自身对不可变有限制可以考虑实现这个方法

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.

Implementations on Foreign Types§

Source§

impl Reporter for ()

Source§

impl<R: Reporter> Reporter for Option<R>

Source§

fn fork(&self) -> Self

Source§

fn sub(&self) -> Self

Source§

fn send(&self, state: ReportState)

Source§

fn send_mut(&mut self, state: ReportState)

Implementors§