pub trait MlsTransport:
Debug
+ Send
+ Sync {
// Required methods
fn send_commit_bundle<'life0, 'async_trait>(
&'life0 self,
commit_bundle: MlsCommitBundle,
) -> Pin<Box<dyn Future<Output = Result<MlsTransportResponse>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
fn send_message<'life0, 'async_trait>(
&'life0 self,
mls_message: Vec<u8>,
) -> Pin<Box<dyn Future<Output = Result<MlsTransportResponse>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
fn prepare_for_transport<'life0, 'life1, 'async_trait>(
&'life0 self,
secret: &'life1 HistorySecret,
) -> Pin<Box<dyn Future<Output = Result<MlsTransportData>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
}
Expand description
Client callbacks to allow communication with the delivery service. There are two different endpoints, one for messages and one for commit bundles.
Required Methods§
Sourcefn send_commit_bundle<'life0, 'async_trait>(
&'life0 self,
commit_bundle: MlsCommitBundle,
) -> Pin<Box<dyn Future<Output = Result<MlsTransportResponse>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn send_commit_bundle<'life0, 'async_trait>(
&'life0 self,
commit_bundle: MlsCommitBundle,
) -> Pin<Box<dyn Future<Output = Result<MlsTransportResponse>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Send a commit bundle to the corresponding endpoint.
Sourcefn send_message<'life0, 'async_trait>(
&'life0 self,
mls_message: Vec<u8>,
) -> Pin<Box<dyn Future<Output = Result<MlsTransportResponse>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn send_message<'life0, 'async_trait>(
&'life0 self,
mls_message: Vec<u8>,
) -> Pin<Box<dyn Future<Output = Result<MlsTransportResponse>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Send a message to the corresponding endpoint.
Sourcefn prepare_for_transport<'life0, 'life1, 'async_trait>(
&'life0 self,
secret: &'life1 HistorySecret,
) -> Pin<Box<dyn Future<Output = Result<MlsTransportData>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn prepare_for_transport<'life0, 'life1, 'async_trait>(
&'life0 self,
secret: &'life1 HistorySecret,
) -> Pin<Box<dyn Future<Output = Result<MlsTransportData>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
This function will be called before a history secret is sent to the mls transport to allow the application to package it in a suitable transport container (json, protobuf, …).
The secret
parameter contain the history client’s secrets which will be sent over the mls transport.
Returns the history secret packaged for transport