Trait xstack_kad::rpc::KadRpc

source ·
pub trait KadRpc:
    AsyncWrite
    + AsyncRead
    + Unpin {
    // Provided methods
    fn kad_rpc_call(
        self,
        message: &Message,
        max_recv_len: usize,
    ) -> impl Future<Output = Result<Message>>
       where Self: Sized { ... }
    fn kad_rpc_send(self, message: &Message) -> impl Future<Output = Result<()>>
       where Self: Sized { ... }
    fn kad_find_node<K>(
        self,
        key: K,
        max_recv_len: usize,
    ) -> impl Future<Output = Result<Vec<PeerInfo>>>
       where Self: Sized,
             K: AsRef<[u8]> { ... }
    fn kad_put_value<K, V>(
        self,
        key: K,
        value: V,
        max_recv_len: usize,
    ) -> impl Future<Output = Result<()>>
       where Self: Sized,
             K: AsRef<[u8]>,
             V: AsRef<[u8]> { ... }
    fn kad_get_value<K>(
        self,
        key: K,
        max_recv_len: usize,
    ) -> impl Future<Output = Result<GetValue>>
       where Self: Sized,
             K: AsRef<[u8]> { ... }
    fn kad_add_provider<K>(
        self,
        key: K,
        peer_info: &PeerInfo,
    ) -> impl Future<Output = Result<()>>
       where Self: Sized,
             K: AsRef<[u8]> { ... }
    fn kad_get_providers<K>(
        self,
        key: K,
        max_recv_len: usize,
    ) -> impl Future<Output = Result<GetProviders>>
       where Self: Sized,
             K: AsRef<[u8]> { ... }
}
Expand description

An extension to add kad rpc functions to AsyncWrite + AsyncRead

Provided Methods§

source

fn kad_rpc_call( self, message: &Message, max_recv_len: usize, ) -> impl Future<Output = Result<Message>>
where Self: Sized,

Send a kad request and wait for response.

source

fn kad_rpc_send(self, message: &Message) -> impl Future<Output = Result<()>>
where Self: Sized,

Send a kad message.

source

fn kad_find_node<K>( self, key: K, max_recv_len: usize, ) -> impl Future<Output = Result<Vec<PeerInfo>>>
where Self: Sized, K: AsRef<[u8]>,

Send a kad FIND_NODE request and wait for response.

source

fn kad_put_value<K, V>( self, key: K, value: V, max_recv_len: usize, ) -> impl Future<Output = Result<()>>
where Self: Sized, K: AsRef<[u8]>, V: AsRef<[u8]>,

Send a kad PUT_VALUE request and wait for response.

source

fn kad_get_value<K>( self, key: K, max_recv_len: usize, ) -> impl Future<Output = Result<GetValue>>
where Self: Sized, K: AsRef<[u8]>,

Send a kad Get_VALUE request and wait for response.

source

fn kad_add_provider<K>( self, key: K, peer_info: &PeerInfo, ) -> impl Future<Output = Result<()>>
where Self: Sized, K: AsRef<[u8]>,

Send a kad ADD_PROVIDER message.

source

fn kad_get_providers<K>( self, key: K, max_recv_len: usize, ) -> impl Future<Output = Result<GetProviders>>
where Self: Sized, K: AsRef<[u8]>,

Send a kad GEt_PROVIDERS request and wait for response.

Implementors§

source§

impl<T> KadRpc for T
where T: AsyncWrite + AsyncRead + Unpin,