use rxqlite::RSQliteClientTlsConfig;
#[derive(Debug, Clone , Default)]
pub struct RXQLiteConnectOptions {
pub(crate) inner: rxqlite::ConnectOptions,
}
impl RXQLiteConnectOptions {
pub fn leader_id(mut self, leader_id: u64) -> Self {
self.inner.leader_id = leader_id;
self
}
pub fn host(mut self, host: &str) -> Self {
self.inner.leader_host = host.to_owned();
self
}
pub fn port(mut self, port: u16) -> Self {
self.inner.leader_port = port;
self
}
pub fn use_ssl(mut self, use_ssl: bool) -> Self {
if use_ssl {
self.inner.tls_config = Some(Default::default());
self.inner
.tls_config
.as_mut()
.unwrap()
.accept_invalid_certificates = false;
} else {
self.inner.tls_config = None;
}
self
}
pub fn use_insecure_ssl(mut self, use_insecure_ssl: bool) -> Self {
if self.inner.tls_config.is_none() {
self.inner.tls_config = Some(Default::default());
}
if use_insecure_ssl {
self.inner
.tls_config
.as_mut()
.unwrap()
.accept_invalid_certificates = true;
} else {
self.inner
.tls_config
.as_mut()
.unwrap()
.accept_invalid_certificates = false;
}
self
}
pub fn add_cert_path(mut self, cert_path: String) -> Self {
if self.inner.tls_config.is_none() {
self.inner.tls_config = Some(Default::default());
}
self.inner
.tls_config
.as_mut()
.unwrap()
.cert_paths
.push(cert_path);
self
}
pub fn tls_config(mut self, tls_config: Option<RSQliteClientTlsConfig>) -> Self {
self.inner.tls_config = tls_config;
self
}
}
pub mod connect;
mod parse;