Trait xstack_kad::KademliaRpc

source ·
pub trait KademliaRpc:
    AsyncWrite
    + AsyncRead
    + Unpin {
    // Provided methods
    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 trait that add Kademlia RPC calls to AsyncWrite + AsyncRead

Provided Methods§

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> KademliaRpc for T
where T: AsyncWrite + AsyncRead + Unpin,