aboutsummaryrefslogtreecommitdiffstats
path: root/src/logging
diff options
context:
space:
mode:
Diffstat (limited to 'src/logging')
-rw-r--r--src/logging/config.rs87
-rw-r--r--src/logging/error.rs10
-rw-r--r--src/logging/level.rs21
3 files changed, 0 insertions, 118 deletions
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<Level>,
- #[serde(with = "level")]
- pub level: Option<Level>,
- pub path: PathBuf,
-}
-
-impl Config {
- // Extract the configuration from any `Provider`
- pub fn extract<T: Provider>(provider: T) -> figment::error::Result<Config> {
- 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<value::Map<Profile, value::Dict>> {
- 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<T> = std::result::Result<T, Error>;
-
-#[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<S>(value: &Option<Level>, serializer: S) -> Result<S::Ok, S::Error>
-where
- S: Serializer,
-{
- value
- .map(|l| l.to_string().to_lowercase())
- .serialize(serializer)
-}
-
-pub fn deserialize<'de, D>(deserializer: D) -> Result<Option<Level>, D::Error>
-where
- D: Deserializer<'de>,
-{
- let Some(s) = Option::<String>::deserialize(deserializer)? else {
- return Ok(None)
-};
- s.parse().map_err(serde::de::Error::custom).map(Some)
-}