1
0
Fork 0
forked from koniifer/ableos
ableos-framebuffer/ableos/src/boot_conf.rs

70 lines
1.6 KiB
Rust
Raw Normal View History

2022-01-22 00:01:16 -06:00
use log::LevelFilter;
2022-01-22 01:26:25 -06:00
use serde::{Deserialize, Serialize};
2022-01-22 00:01:16 -06:00
#[derive(Serialize, Debug, Deserialize)]
pub enum LogLevel {
/// A level lower than all log levels.
Off,
/// Corresponds to the `Error` log level.
Error,
/// Corresponds to the `Warn` log level.
Warn,
/// Corresponds to the `Info` log level.
Info,
/// Corresponds to the `Debug` log level.
Debug,
/// Corresponds to the `Trace` log level.
Trace,
}
#[derive(Serialize, Debug, Deserialize)]
pub struct KernelConfig {
pub boot: BootConfig,
pub logging: LoggingConfig,
pub tests: TestsConfig,
2022-01-22 00:01:16 -06:00
}
impl KernelConfig {
2022-01-22 00:01:16 -06:00
pub fn new() -> Self {
toml::from_str(include_str!("../assets/kernel.toml")).unwrap()
2022-01-22 00:01:16 -06:00
}
pub fn log_level(&self) -> LevelFilter {
use LevelFilter::*;
match self.logging.level {
2022-01-22 00:01:16 -06:00
LogLevel::Off => Off,
LogLevel::Error => Error,
LogLevel::Warn => Warn,
LogLevel::Info => Info,
LogLevel::Debug => Debug,
LogLevel::Trace => Trace,
}
}
}
impl Default for KernelConfig {
fn default() -> Self {
Self::new()
}
}
#[derive(Serialize, Debug, Deserialize)]
pub struct LoggingConfig {
pub enabled: bool,
2022-03-26 06:35:33 -05:00
pub log_to_serial: bool,
pub level: LogLevel,
2022-07-31 06:21:50 -05:00
pub filter: Vec<String>,
}
#[derive(Serialize, Debug, Deserialize)]
pub struct TestsConfig {
pub run_tests: bool,
pub run_demos: bool,
pub run_shader_tests: bool,
}
#[derive(Serialize, Debug, Deserialize)]
pub struct BootConfig {
2022-03-11 15:14:35 -06:00
pub system_processes: Vec<String>,
pub user_processes: Vec<String>,
}