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§
Sourceasync fn handles(&self, _responder: &BdxResponder<'_>) -> bool
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.
Sourceasync fn handle(&self, responder: BdxResponder<'_>) -> Result<(), Error>
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 &Twhere
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.
impl<T> BdxHandler for &Twhere
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.