use surrealdb_cnf as cnf;
#[derive(Clone, Debug)]
pub(crate) struct SurrealismConfig {
pub surrealism_cache_size: usize,
pub surrealism_max_memory: Option<usize>,
pub surrealism_max_execution_time: Option<u64>,
pub surrealism_max_kv_entries: Option<usize>,
pub surrealism_max_kv_value_bytes: Option<usize>,
pub surrealism_max_fs_bytes: u64,
pub surrealism_max_pool_size: usize,
pub surrealism_log_level: String,
pub surrealism_silo_endpoint: String,
}
impl Default for SurrealismConfig {
fn default() -> Self {
Self {
surrealism_cache_size: 100,
surrealism_max_memory: None,
surrealism_max_execution_time: None,
surrealism_max_kv_entries: None,
surrealism_max_kv_value_bytes: None,
surrealism_max_fs_bytes: 100 * 1024 * 1024,
surrealism_max_pool_size: 8,
surrealism_log_level: "debug".to_string(),
surrealism_silo_endpoint: "https://silo.surrealdb.com".to_string(),
}
}
}
impl cnf::Config for SurrealismConfig {
fn parse(&mut self, map: &cnf::ConfigMap) {
map.parse_key("surrealism_cache_size", &mut self.surrealism_cache_size)
.parse_key_option("surrealism_max_memory", &mut self.surrealism_max_memory)
.parse_key_option(
"surrealism_max_execution_time",
&mut self.surrealism_max_execution_time,
)
.parse_key_option("surrealism_max_kv_entries", &mut self.surrealism_max_kv_entries)
.parse_key_option(
"surrealism_max_kv_value_bytes",
&mut self.surrealism_max_kv_value_bytes,
)
.parse_key("surrealism_max_fs_bytes", &mut self.surrealism_max_fs_bytes)
.parse_key_with("surrealism_log_level", &mut self.surrealism_log_level, |s| {
Some(s.to_string())
})
.parse_key_with("surrealism_silo_endpoint", &mut self.surrealism_silo_endpoint, |s| {
Some(s.trim_end_matches('/').to_string())
});
}
}