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}