[][src]Trait libp2p_request_response::codec::RequestResponseCodec

pub trait RequestResponseCodec {
    type Protocol: ProtocolName + Send + Clone;
    type Request: Send;
    type Response: Send;
#[must_use]    fn read_request<'life0, 'life1, 'life2, 'async_trait, T>(
        &'life0 mut self,
        protocol: &'life1 Self::Protocol,
        io: &'life2 mut T
    ) -> Pin<Box<dyn Future<Output = Result<Self::Request>> + Send + 'async_trait>>
    where
        T: AsyncRead + Unpin + Send,
        T: 'async_trait,
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
;
#[must_use] fn read_response<'life0, 'life1, 'life2, 'async_trait, T>(
        &'life0 mut self,
        protocol: &'life1 Self::Protocol,
        io: &'life2 mut T
    ) -> Pin<Box<dyn Future<Output = Result<Self::Response>> + Send + 'async_trait>>
    where
        T: AsyncRead + Unpin + Send,
        T: 'async_trait,
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
;
#[must_use] fn write_request<'life0, 'life1, 'life2, 'async_trait, T>(
        &'life0 mut self,
        protocol: &'life1 Self::Protocol,
        io: &'life2 mut T,
        req: Self::Request
    ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
    where
        T: AsyncWrite + Unpin + Send,
        T: 'async_trait,
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
;
#[must_use] fn write_response<'life0, 'life1, 'life2, 'async_trait, T>(
        &'life0 mut self,
        protocol: &'life1 Self::Protocol,
        io: &'life2 mut T,
        res: Self::Response
    ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
    where
        T: AsyncWrite + Unpin + Send,
        T: 'async_trait,
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; }

A RequestResponseCodec defines the request and response types for a RequestResponse protocol or protocol family and how they are encoded / decoded on an I/O stream.

Associated Types

type Protocol: ProtocolName + Send + Clone

The type of protocol(s) or protocol versions being negotiated.

type Request: Send

The type of inbound and outbound requests.

type Response: Send

The type of inbound and outbound responses.

Loading content...

Required methods

#[must_use]fn read_request<'life0, 'life1, 'life2, 'async_trait, T>(
    &'life0 mut self,
    protocol: &'life1 Self::Protocol,
    io: &'life2 mut T
) -> Pin<Box<dyn Future<Output = Result<Self::Request>> + Send + 'async_trait>> where
    T: AsyncRead + Unpin + Send,
    T: 'async_trait,
    'life0: 'async_trait,
    'life1: 'async_trait,
    'life2: 'async_trait,
    Self: 'async_trait, 

Reads a request from the given I/O stream according to the negotiated protocol.

#[must_use]fn read_response<'life0, 'life1, 'life2, 'async_trait, T>(
    &'life0 mut self,
    protocol: &'life1 Self::Protocol,
    io: &'life2 mut T
) -> Pin<Box<dyn Future<Output = Result<Self::Response>> + Send + 'async_trait>> where
    T: AsyncRead + Unpin + Send,
    T: 'async_trait,
    'life0: 'async_trait,
    'life1: 'async_trait,
    'life2: 'async_trait,
    Self: 'async_trait, 

Reads a response from the given I/O stream according to the negotiated protocol.

#[must_use]fn write_request<'life0, 'life1, 'life2, 'async_trait, T>(
    &'life0 mut self,
    protocol: &'life1 Self::Protocol,
    io: &'life2 mut T,
    req: Self::Request
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>> where
    T: AsyncWrite + Unpin + Send,
    T: 'async_trait,
    'life0: 'async_trait,
    'life1: 'async_trait,
    'life2: 'async_trait,
    Self: 'async_trait, 

Writes a request to the given I/O stream according to the negotiated protocol.

#[must_use]fn write_response<'life0, 'life1, 'life2, 'async_trait, T>(
    &'life0 mut self,
    protocol: &'life1 Self::Protocol,
    io: &'life2 mut T,
    res: Self::Response
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>> where
    T: AsyncWrite + Unpin + Send,
    T: 'async_trait,
    'life0: 'async_trait,
    'life1: 'async_trait,
    'life2: 'async_trait,
    Self: 'async_trait, 

Writes a response to the given I/O stream according to the negotiated protocol.

Loading content...

Implementors

Loading content...