use crate::error::Error;
use std::str::FromStr;
#[derive(Debug, Clone, Copy, Default)]
pub enum MySqlSslMode {
Disabled,
#[default]
Preferred,
Required,
VerifyCa,
VerifyIdentity,
}
impl FromStr for MySqlSslMode {
type Err = Error;
fn from_str(s: &str) -> Result<Self, Error> {
Ok(match &*s.to_ascii_lowercase() {
"disabled" => MySqlSslMode::Disabled,
"preferred" => MySqlSslMode::Preferred,
"required" => MySqlSslMode::Required,
"verify_ca" => MySqlSslMode::VerifyCa,
"verify_identity" => MySqlSslMode::VerifyIdentity,
_ => {
return Err(Error::Configuration(
format!("unknown value {s:?} for `ssl_mode`").into(),
));
}
})
}
}