pub trait TlsDriver:
Default
+ Send
+ Sync
+ Unpin
+ 'static {
type Stream: Stream + Send;
type ClientParams: Unpin + Send;
type ServerParams: Unpin + Send;
// Required methods
fn init_client(
params: &TlsParameters,
name: Option<ServerName<'_>>,
) -> Result<Self::ClientParams, SslError>;
fn init_server(
params: &TlsServerParameters,
) -> Result<Self::ServerParams, SslError>;
fn upgrade_client<S: Stream>(
params: Self::ClientParams,
stream: S,
) -> impl Future<Output = Result<(Self::Stream, TlsHandshake), SslError>> + Send;
fn upgrade_server<S: Stream>(
params: TlsServerParameterProvider,
stream: S,
) -> impl Future<Output = Result<(Self::Stream, TlsHandshake), SslError>> + Send;
}Required Associated Types§
type Stream: Stream + Send
type ClientParams: Unpin + Send
type ServerParams: Unpin + Send
Required Methods§
fn init_client( params: &TlsParameters, name: Option<ServerName<'_>>, ) -> Result<Self::ClientParams, SslError>
fn init_server( params: &TlsServerParameters, ) -> Result<Self::ServerParams, SslError>
fn upgrade_client<S: Stream>( params: Self::ClientParams, stream: S, ) -> impl Future<Output = Result<(Self::Stream, TlsHandshake), SslError>> + Send
fn upgrade_server<S: Stream>( params: TlsServerParameterProvider, stream: S, ) -> impl Future<Output = Result<(Self::Stream, TlsHandshake), SslError>> + Send
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.