use crate::interceptor::Registry;
use derive_builder::Builder;
#[derive(Builder)]
pub struct Config {
pub case_dir: String,
#[builder(default = "Config::default_test_case_extension()")]
pub test_case_extension: String,
#[builder(default = "Config::default_result_extension()")]
pub result_extension: String,
#[builder(default = "Config::default_interceptor_prefix()")]
pub interceptor_prefix: String,
#[builder(default = "Config::default_env_config_file()")]
pub env_config_file: String,
#[builder(default = "Config::default_fail_fast()")]
pub fail_fast: bool,
#[builder(default = "Config::default_test_filter()")]
pub test_filter: String,
#[builder(default = "Config::default_env_filter()")]
pub env_filter: String,
#[builder(default = "Config::default_follow_links()")]
pub follow_links: bool,
#[builder(default = "Config::default_registry()")]
pub interceptor_registry: Registry,
}
impl Config {
fn default_test_case_extension() -> String {
"sql".to_string()
}
fn default_result_extension() -> String {
"result".to_string()
}
fn default_interceptor_prefix() -> String {
"-- SQLNESS".to_string()
}
fn default_env_config_file() -> String {
"config.toml".to_string()
}
fn default_fail_fast() -> bool {
true
}
fn default_test_filter() -> String {
".*".to_string()
}
fn default_env_filter() -> String {
".*".to_string()
}
fn default_follow_links() -> bool {
true
}
fn default_registry() -> Registry {
Registry::default()
}
}
#[derive(Debug, Builder, Clone)]
pub struct DatabaseConfig {
pub ip_or_host: String,
pub tcp_port: u16,
pub user: Option<String>,
pub pass: Option<String>,
pub db_name: Option<String>,
}