From 72e9765d58b87125bdd5a2664bbc58202bdedff7 Mon Sep 17 00:00:00 2001 From: Toby Vincent Date: Mon, 21 Nov 2022 14:26:02 -0600 Subject: chore: split out projectr from tmuxr --- src/logging/config.rs | 87 --------------------------------------------------- src/logging/error.rs | 10 ------ src/logging/level.rs | 21 ------------- 3 files changed, 118 deletions(-) delete mode 100644 src/logging/config.rs delete mode 100644 src/logging/error.rs delete mode 100644 src/logging/level.rs (limited to 'src/logging') diff --git a/src/logging/config.rs b/src/logging/config.rs deleted file mode 100644 index d9f14a6..0000000 --- a/src/logging/config.rs +++ /dev/null @@ -1,87 +0,0 @@ -use super::level; -use figment::{providers::Serialized, value, Figment, Metadata, Profile, Provider}; -use serde::{Deserialize, Serialize}; -use std::path::PathBuf; - -pub(crate) use level::Level; - -#[derive(Debug, PartialEq, Eq, Serialize, Deserialize)] -#[serde(default)] -pub struct Config { - #[serde(with = "level")] - pub stdout: Option, - #[serde(with = "level")] - pub level: Option, - pub path: PathBuf, -} - -impl Config { - // Extract the configuration from any `Provider` - pub fn extract(provider: T) -> figment::error::Result { - Figment::from(provider).extract() - } - - // Provide a default provider, a `Figment`. - pub fn figment() -> Figment { - Figment::from(Config::default()) - } -} - -impl Provider for Config { - fn metadata(&self) -> Metadata { - Metadata::named("Tmuxr path config") - } - - fn data(&self) -> figment::error::Result> { - Serialized::defaults(self).data() - } -} - -impl Default for Config { - fn default() -> Self { - Self { - stdout: Some(Level::ERROR), - level: None, - path: dirs::cache_dir() - .map(|p| p.join("tmuxr")) - .unwrap_or_default() - .join("tmuxr.log"), - } - } -} - -#[cfg(test)] -mod tests { - use super::*; - use figment::providers::{Format, Serialized, Toml}; - use pretty_assertions::assert_eq; - - #[test] - fn test_extract() { - figment::Jail::expect_with(|jail| { - jail.create_file( - "tmuxr.toml", - r#" - stdout = "warn" - level = "info" - path = "/path/to/logfile.log" - "#, - )?; - - let config: Config = Figment::from(Serialized::defaults(Config::default())) - .merge(Toml::file("tmuxr.toml")) - .extract()?; - - assert_eq!( - config, - Config { - stdout: Some(Level::WARN), - level: Some(Level::INFO), - path: "/path/to/logfile.log".into() - } - ); - - Ok(()) - }); - } -} diff --git a/src/logging/error.rs b/src/logging/error.rs deleted file mode 100644 index a38cdda..0000000 --- a/src/logging/error.rs +++ /dev/null @@ -1,10 +0,0 @@ -pub type Result = std::result::Result; - -#[derive(thiserror::Error, Debug)] -pub enum Error { - #[error(transparent)] - Config(#[from] figment::error::Error), - - #[error(transparent)] - IO(#[from] std::io::Error), -} diff --git a/src/logging/level.rs b/src/logging/level.rs deleted file mode 100644 index 38a0f7f..0000000 --- a/src/logging/level.rs +++ /dev/null @@ -1,21 +0,0 @@ -use serde::{Deserialize, Deserializer, Serialize, Serializer}; -pub use tracing::Level; - -pub fn serialize(value: &Option, serializer: S) -> Result -where - S: Serializer, -{ - value - .map(|l| l.to_string().to_lowercase()) - .serialize(serializer) -} - -pub fn deserialize<'de, D>(deserializer: D) -> Result, D::Error> -where - D: Deserializer<'de>, -{ - let Some(s) = Option::::deserialize(deserializer)? else { - return Ok(None) -}; - s.parse().map_err(serde::de::Error::custom).map(Some) -} -- cgit v1.2.3-70-g09d2