diff options
author | Toby Vincent <tobyv13@gmail.com> | 2022-11-18 18:13:19 -0600 |
---|---|---|
committer | Toby Vincent <tobyv13@gmail.com> | 2022-11-18 18:42:42 -0600 |
commit | 66256e222ac5dba71fec159e2a31ebd4a002caa1 (patch) | |
tree | a8b5bd8d066bb083ee3f1df87ca81346b8f55b14 /src/logging/level.rs | |
parent | 09be0362d42034e343b64de08618c995b63c90fe (diff) |
feat: impl logging as a seperate module with stdout
Diffstat (limited to 'src/logging/level.rs')
-rw-r--r-- | src/logging/level.rs | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/src/logging/level.rs b/src/logging/level.rs new file mode 100644 index 0000000..6134c24 --- /dev/null +++ b/src/logging/level.rs @@ -0,0 +1,22 @@ +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) +} + |