Trait tarantool::network::protocol::api::Request

source ·
pub trait Request {
    type Response: Sized;

    const TYPE: IProtoType;

    // Required methods
    fn encode_body(&self, out: &mut impl Write) -> Result<(), Error>;
    fn decode_response_body(
        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_response_body( 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>

Object Safety§

This trait is not object safe.

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>

source§

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

source§

const TYPE: IProtoType = IProtoType::Delete

§

type Response = Option<Tuple>

source§

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

source§

const TYPE: IProtoType = IProtoType::Insert

§

type Response = Option<Tuple>

source§

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

source§

const TYPE: IProtoType = IProtoType::Replace

§

type Response = Option<Tuple>

source§

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

source§

const TYPE: IProtoType = IProtoType::Select

§

type Response = Vec<Tuple>

source§

impl<'a, T, Op> Request for Update<'a, T, Op>
where T: ToTupleBuffer + ?Sized, Op: Encode,

source§

const TYPE: IProtoType = IProtoType::Update

§

type Response = Option<Tuple>

source§

impl<'a, T, Op> Request for Upsert<'a, T, Op>
where T: ToTupleBuffer + ?Sized, Op: Encode,

source§

const TYPE: IProtoType = IProtoType::Upsert

§

type Response = Option<Tuple>

source§

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

source§

const TYPE: IProtoType = IProtoType::Auth

§

type Response = ()