mpc_client

Trait NetworkTransport

Source
pub trait NetworkTransport {
    // Required methods
    fn public_key(&self) -> &[u8] ;
    fn connect<'life0, 'async_trait>(
        &'life0 mut self,
    ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait;
    fn is_connected<'life0, 'async_trait>(
        &'life0 self,
    ) -> Pin<Box<dyn Future<Output = bool> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait;
    fn connect_peer<'life0, 'life1, 'async_trait>(
        &'life0 mut self,
        public_key: &'life1 [u8],
    ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait;
    fn send_json<'life0, 'life1, 'life2, 'async_trait, S>(
        &'life0 mut self,
        public_key: &'life1 [u8],
        payload: &'life2 S,
        session_id: Option<SessionId>,
    ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
       where S: Serialize + Send + Sync + 'async_trait,
             Self: 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait,
             'life2: 'async_trait;
    fn send_blob<'life0, 'life1, 'async_trait>(
        &'life0 mut self,
        public_key: &'life1 [u8],
        payload: Vec<u8>,
        session_id: Option<SessionId>,
    ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait;
    fn new_meeting<'life0, 'async_trait>(
        &'life0 mut self,
        owner_id: UserId,
        slots: HashSet<UserId>,
        data: Value,
    ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait;
    fn join_meeting<'life0, 'async_trait>(
        &'life0 mut self,
        meeting_id: MeetingId,
        user_id: UserId,
    ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait;
    fn new_session<'life0, 'async_trait>(
        &'life0 mut self,
        participant_keys: Vec<Vec<u8>>,
    ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait;
    fn register_connection<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 mut self,
        session_id: &'life1 SessionId,
        peer_key: &'life2 [u8],
    ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait,
             'life2: 'async_trait;
    fn close_session<'life0, 'async_trait>(
        &'life0 mut self,
        session_id: SessionId,
    ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait;
    fn close<'life0, 'async_trait>(
        &'life0 self,
    ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait;
}
Expand description

Trait for network clients.

Required Methods§

Source

fn public_key(&self) -> &[u8]

Public key for this client.

Source

fn connect<'life0, 'async_trait>( &'life0 mut self, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Perform initial handshake with the server.

Source

fn is_connected<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = bool> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Determine if this client has completed a server handshake.

Source

fn connect_peer<'life0, 'life1, 'async_trait>( &'life0 mut self, public_key: &'life1 [u8], ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Handshake with a peer.

Peer already exists error is returned if this client is already connecting to the peer.

Source

fn send_json<'life0, 'life1, 'life2, 'async_trait, S>( &'life0 mut self, public_key: &'life1 [u8], payload: &'life2 S, session_id: Option<SessionId>, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where S: Serialize + Send + Sync + 'async_trait, Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

Send a JSON message to a peer.

Source

fn send_blob<'life0, 'life1, 'async_trait>( &'life0 mut self, public_key: &'life1 [u8], payload: Vec<u8>, session_id: Option<SessionId>, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Send a binary message to a peer.

Source

fn new_meeting<'life0, 'async_trait>( &'life0 mut self, owner_id: UserId, slots: HashSet<UserId>, data: Value, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Create a new meeting point.

Source

fn join_meeting<'life0, 'async_trait>( &'life0 mut self, meeting_id: MeetingId, user_id: UserId, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Join a meeting point.

Source

fn new_session<'life0, 'async_trait>( &'life0 mut self, participant_keys: Vec<Vec<u8>>, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Create a new session.

Do not include the public key of the initiator for the new session; it is automatically included as the session owner.

Source

fn register_connection<'life0, 'life1, 'life2, 'async_trait>( &'life0 mut self, session_id: &'life1 SessionId, peer_key: &'life2 [u8], ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

Register a peer connection in a session.

Source

fn close_session<'life0, 'async_trait>( &'life0 mut self, session_id: SessionId, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Close a session.

Source

fn close<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Close the socket connection.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§