Skip to main content

vibe_ready/log/
log_level.rs

1use serde::{Deserialize, Serialize};
2
3#[repr(i32)]
4#[derive(Copy, Clone, Debug, Deserialize, PartialEq, Serialize, Eq, PartialOrd, Default)]
5/// Severity level for SDK log records.
6pub enum LogLevel {
7    /// Disable log output.
8    None = 0,
9    /// Error-level log entry.
10    Error = 1,
11    /// Warning-level log entry.
12    Warn = 2,
13    /// Informational log entry.
14    #[default]
15    Info = 3,
16    /// Debug-level log entry.
17    Debug = 4,
18}
19
20impl From<LogLevel> for i32 {
21    fn from(val: LogLevel) -> Self {
22        val as i32
23    }
24}
25
26impl From<i32> for LogLevel {
27    fn from(value: i32) -> Self {
28        if value == 0 {
29            LogLevel::None
30        } else if value == 1 {
31            LogLevel::Error
32        } else if value == 2 {
33            LogLevel::Warn
34        } else if value == 3 {
35            LogLevel::Info
36        } else if value == 4 {
37            LogLevel::Debug
38        } else {
39            LogLevel::None
40        }
41    }
42}
43
44#[cfg(test)]
45mod strict_tests {
46    use super::*;
47    include!(concat!(
48        env!("CARGO_MANIFEST_DIR"),
49        "/test/unit/log/log_level_tests.rs"
50    ));
51}