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>,
) -> 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,
data: PublicKeys,
) -> 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§
Sourcefn public_key(&self) -> &[u8] ⓘ
fn public_key(&self) -> &[u8] ⓘ
Public key for this client.
Sourcefn connect<'life0, 'async_trait>(
&'life0 mut self,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
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.
Sourcefn is_connected<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = bool> + 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,
Determine if this client has completed a server handshake.
Sourcefn 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 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.
Sourcefn 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>>
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>>
Send a JSON message to a peer.
Sourcefn 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 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.
Sourcefn new_meeting<'life0, 'async_trait>(
&'life0 mut self,
owner_id: UserId,
slots: HashSet<UserId>,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn new_meeting<'life0, 'async_trait>(
&'life0 mut self,
owner_id: UserId,
slots: HashSet<UserId>,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Create a new meeting point.
Sourcefn join_meeting<'life0, 'async_trait>(
&'life0 mut self,
meeting_id: MeetingId,
user_id: UserId,
data: PublicKeys,
) -> 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,
data: PublicKeys,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Join a meeting point.
Sourcefn 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 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.
Sourcefn 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 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.
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§
impl NetworkTransport for Transport
impl NetworkTransport for NativeClient
Available on not (WebAssembly and
target_os="unknown"
).