pub trait GenericClient<C, R>: Debug + Send {
    fn send<'life0, 'async_trait>(
        &'life0 mut self,
        cmd: C
    ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>
    where
        Self: 'async_trait,
        'life0: 'async_trait
; fn recv<'life0, 'async_trait>(
        &'life0 mut self
    ) -> Pin<Box<dyn Future<Output = Result<Option<R>, Error>> + Send + 'async_trait>>
    where
        Self: 'async_trait,
        'life0: 'async_trait
; fn as_stream<'a>(
        &'a mut self
    ) -> Pin<Box<dyn Stream<Item = Result<R, Error>> + Send + 'a>>
    where
        R: Send + 'a
, { ... } }
Expand description

A generic client to a server that receives commands and asynchronously produces responses.

Required Methods§

Sends a command to the dataflow server.

The command can error for various reasons.

Receives the next response from the dataflow server.

This method blocks until the next response is available.

A return value of Ok(Some(_)) transmits a response.

A return value of Ok(None) indicates graceful termination of the connection. The owner of the client should not call recv again.

A return value of Err(_) indicates an unrecoverable error. After observing an error, the owner of the client must drop the client.

Implementations of this method must be cancellation safe. That means that work must not be lost if the future returned by this method is dropped.

Provided Methods§

Returns an adapter that treats the client as a stream.

The stream produces the responses that would be produced by repeated calls to recv.

Trait Implementations§

Sends a command to the dataflow server. Read more
Receives the next response from the dataflow server. Read more

Implementations on Foreign Types§

Implementors§