welds_sqlx_mssql/options/
mod.rs1use sqlx_core::{connection::LogSettings, net::tls::CertificateInput};
2use std::env::var;
3
4mod connect;
5mod parse;
6mod ssl_mode;
7pub use ssl_mode::MssqlSslMode;
8
9#[derive(Debug, Clone)]
10pub struct MssqlConnectOptions {
11 pub(crate) host: String,
12 pub(crate) port: u16,
13 pub(crate) username: String,
14 pub(crate) database: String,
15 pub(crate) password: Option<String>,
16 pub(crate) log_settings: LogSettings,
17 pub(crate) ssl_mode: MssqlSslMode,
18 pub(crate) ssl_root_cert: Option<CertificateInput>,
19 pub(crate) ssl_client_cert: Option<CertificateInput>,
20 pub(crate) ssl_client_key: Option<CertificateInput>,
21}
22
23impl Default for MssqlConnectOptions {
24 fn default() -> Self {
25 Self::new()
26 }
27}
28
29impl MssqlConnectOptions {
30 pub fn new() -> Self {
31 Self {
32 port: 1433,
33 host: String::from("localhost"),
34 database: String::from("master"),
35 username: String::from("sa"),
36 password: None,
37 log_settings: Default::default(),
38 ssl_root_cert: var("MSSSLROOTCERT").ok().map(CertificateInput::from),
39 ssl_client_cert: var("MSSSLCERT").ok().map(CertificateInput::from),
40 ssl_client_key: var("MSSSLKEY").ok().map(CertificateInput::from),
41 ssl_mode: var("MSSSLMODE")
42 .ok()
43 .and_then(|v| v.parse().ok())
44 .unwrap_or_default(),
45 }
46 }
47
48 pub fn host(mut self, host: &str) -> Self {
49 self.host = host.to_owned();
50 self
51 }
52
53 pub fn port(mut self, port: u16) -> Self {
54 self.port = port;
55 self
56 }
57
58 pub fn username(mut self, username: &str) -> Self {
59 self.username = username.to_owned();
60 self
61 }
62
63 pub fn password(mut self, password: &str) -> Self {
64 self.password = Some(password.to_owned());
65 self
66 }
67
68 pub fn database(mut self, database: &str) -> Self {
69 self.database = database.to_owned();
70 self
71 }
72}