Skip to main content

rust_ef_mysql/
tls.rs

1/// TLS mode for MySQL connections.
2///
3/// Unlike `PgTlsMode`, this enum does not carry a `TlsConnector` — sqlx
4/// manages TLS internally via its `tls-native-tls` feature. CA certificates
5/// are configured via the connection string's `ssl-ca` parameter.
6#[derive(Debug, Clone, Copy, PartialEq, Eq)]
7pub enum MySqlTlsMode {
8    /// Disable TLS — plaintext connections only.
9    Disabled,
10    /// Require TLS — connection fails if the server doesn't support TLS.
11    Required,
12    /// Require TLS with CA certificate verification.
13    VerifyCa,
14    /// Require TLS with CA certificate and hostname verification.
15    VerifyIdentity,
16}
17
18impl From<MySqlTlsMode> for sqlx::mysql::MySqlSslMode {
19    fn from(mode: MySqlTlsMode) -> Self {
20        match mode {
21            MySqlTlsMode::Disabled => Self::Disabled,
22            MySqlTlsMode::Required => Self::Required,
23            MySqlTlsMode::VerifyCa => Self::VerifyCa,
24            MySqlTlsMode::VerifyIdentity => Self::VerifyIdentity,
25        }
26    }
27}