actrpc-transport 0.1.0

Transport abstractions and implementations for ActRPC.
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
use crate::{JsonRpcClient, TransportError, TransportTarget};
use std::{future::Future, pin::Pin, sync::Arc};

pub type JsonRpcClientFactoryFuture<'a, T> = Pin<Box<dyn Future<Output = T> + Send + 'a>>;

pub trait JsonRpcClientFactory: Send + Sync {
    fn create_client<'a>(
        &'a self,
        target: &'a TransportTarget,
    ) -> JsonRpcClientFactoryFuture<
        'a,
        Result<Arc<dyn JsonRpcClient<Error = TransportError>>, TransportError>,
    >;
}