pub trait Request {
    type Response: Sized;

    const TYPE: IProtoType;

    // Required methods
    fn encode_body(&self, out: &mut impl Write) -> Result<(), Error>;
    fn decode_body(
        &self,
        in: &mut Cursor<Vec<u8>>
    ) -> Result<Self::Response, Error>;

    // Provided methods
    fn encode_header(
        &self,
        out: &mut impl Write,
        sync: SyncIndex
    ) -> Result<(), Error> { ... }
    fn encode(&self, out: &mut impl Write, sync: SyncIndex) -> Result<(), Error> { ... }
}

Required Associated Types§

Required Associated Constants§

Required Methods§

source

fn encode_body(&self, out: &mut impl Write) -> Result<(), Error>

source

fn decode_body(&self, in: &mut Cursor<Vec<u8>>) -> Result<Self::Response, Error>

Provided Methods§

source

fn encode_header( &self, out: &mut impl Write, sync: SyncIndex ) -> Result<(), Error>

source

fn encode(&self, out: &mut impl Write, sync: SyncIndex) -> Result<(), Error>

Implementors§

source§

impl Request for Ping

source§

const TYPE: IProtoType = IProtoType::Ping

§

type Response = ()

source§

impl<'a, 'b, T> Request for Call<'a, 'b, T>where T: ToTupleBuffer + ?Sized,

source§

const TYPE: IProtoType = IProtoType::Call

§

type Response = Tuple

source§

impl<'a, 'b, T> Request for Eval<'a, 'b, T>where T: ToTupleBuffer + ?Sized,

source§

const TYPE: IProtoType = IProtoType::Eval

§

type Response = Tuple

source§

impl<'a, 'b, T> Request for Execute<'a, 'b, T>where T: ToTupleBuffer + ?Sized,

source§

const TYPE: IProtoType = IProtoType::Execute

§

type Response = Vec<Tuple, Global>

source§

impl<'u, 'p, 's> Request for Auth<'u, 'p, 's>

source§

const TYPE: IProtoType = IProtoType::Auth

§

type Response = ()