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)

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

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

Implementations on Foreign Types§

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)

source§

impl Reporter for ()

Implementors§