Trait TlsDriver

Source
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§

Required Methods§

Source

fn init_client( params: &TlsParameters, name: Option<ServerName<'_>>, ) -> Result<Self::ClientParams, SslError>

Source

fn init_server( params: &TlsServerParameters, ) -> Result<Self::ServerParams, SslError>

Source

fn upgrade_client<S: Stream>( params: Self::ClientParams, stream: S, ) -> impl Future<Output = Result<(Self::Stream, TlsHandshake), SslError>> + Send

Source

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.

Implementors§