Trait bttp::DeserCallback

source ·
pub trait DeserCallback {
    type Arg<'de>: 'de + Deserialize<'de> + Send
       where Self: 'de;
    type Return;
    type CallFut<'de>: 'de + Future<Output = Self::Return> + Send
       where Self: 'de;

    // Required method
    fn call<'de>(&'de mut self, arg: Self::Arg<'de>) -> Self::CallFut<'de>;
}
Expand description

A trait for types which can be called to asynchronously handle deserialization. This trait is what enables zero-copy handling of messages which support borrowing data during deserialization.

Required Associated Types§

source

type Arg<'de>: 'de + Deserialize<'de> + Send where Self: 'de

source

type Return

source

type CallFut<'de>: 'de + Future<Output = Self::Return> + Send where Self: 'de

Required Methods§

source

fn call<'de>(&'de mut self, arg: Self::Arg<'de>) -> Self::CallFut<'de>

Implementations on Foreign Types§

source§

impl<'a, T: DeserCallback> DeserCallback for &'a mut T

§

type Arg<'de> where T: 'de, 'a: 'de = <T as DeserCallback>::Arg<'de>

§

type Return = <T as DeserCallback>::Return

§

type CallFut<'de> where T: 'de, 'a: 'de = <T as DeserCallback>::CallFut<'de>

source§

fn call<'de>(&'de mut self, arg: Self::Arg<'de>) -> Self::CallFut<'de>

Implementors§