Skip to main content

BdxHandler

Trait BdxHandler 

Source
pub trait BdxHandler {
    // Provided methods
    async fn handles(&self, _responder: &BdxResponder<'_>) -> bool { ... }
    async fn handle(&self, responder: BdxResponder<'_>) -> Result<(), Error> { ... }
}
Expand description

A device-specific BDX handler: one or more “files” - identified by their BDX file designator and direction - that this node serves (a download) or processes (an upload).

handles selects which transfers this handler owns; only a BdxResponder it claims is passed to handle. The default handle rejects with FileDesignatorUnknown.

Provided Methods§

Source

async fn handles(&self, _responder: &BdxResponder<'_>) -> bool

Whether this handler owns the transfer described by responder (by its direction and file designator). Consulted before handle, so it must not consume the responder.

Source

async fn handle(&self, responder: BdxResponder<'_>) -> Result<(), Error>

Handle a transfer this handler handles: reply on (and drive) the BdxResponder, or reject it.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementations on Foreign Types§

Source§

impl<T> BdxHandler for &T
where T: BdxHandler,

&T is a BdxHandler whenever T is, so a handler can be composed (into a ChainedBdxHandler) or wrapped (in Bdx) by shared reference, without giving up ownership of it.

Source§

async fn handles(&self, responder: &BdxResponder<'_>) -> bool

Source§

async fn handle(&self, responder: BdxResponder<'_>) -> Result<(), Error>

Implementors§

Source§

impl BdxHandler for EmptyBdxHandler

Source§

impl<B, I> BdxHandler for OtaBdxHandler<B, I>
where B: Buffers<Vec<u8, rs_matter::::transport::exchange::Buffer::{constant#0}>>, I: OtaImages,

Source§

impl<H, T> BdxHandler for ChainedBdxHandler<H, T>
where H: BdxHandler, T: BdxHandler,

Source§

impl<R> BdxHandler for DiagLogsBdxHandler<R>