pub trait Transport: Framing + Send + Sync + Sized + 'static {
    type RpcOptions: Default;

    // Required method
    fn call(
        &self,
        service_name: &'static CStr,
        fn_name: &'static CStr,
        req: FramingEncodedFinal<Self>,
        rpc_options: Self::RpcOptions
    ) -> BoxFuture<'static, Result<FramingDecoded<Self>>>;

    // Provided methods
    fn call_stream(
        &self,
        _service_name: &'static CStr,
        _fn_name: &'static CStr,
        _req: FramingEncodedFinal<Self>,
        _rpc_options: Self::RpcOptions
    ) -> BoxFuture<'static, Result<(FramingDecoded<Self>, BoxStream<'static, Result<ClientStreamElement<FramingDecoded<Self>>>>)>> { ... }
    fn create_interaction(
        &self,
        _method_name: &'static CStr
    ) -> Result<Self, Error> { ... }
}

Required Associated Types§

Required Methods§

source

fn call( &self, service_name: &'static CStr, fn_name: &'static CStr, req: FramingEncodedFinal<Self>, rpc_options: Self::RpcOptions ) -> BoxFuture<'static, Result<FramingDecoded<Self>>>

Provided Methods§

source

fn call_stream( &self, _service_name: &'static CStr, _fn_name: &'static CStr, _req: FramingEncodedFinal<Self>, _rpc_options: Self::RpcOptions ) -> BoxFuture<'static, Result<(FramingDecoded<Self>, BoxStream<'static, Result<ClientStreamElement<FramingDecoded<Self>>>>)>>

source

fn create_interaction(&self, _method_name: &'static CStr) -> Result<Self, Error>

Object Safety§

This trait is not object safe.

Implementors§