penguin_app/config/
app_config.rs1use penguin_config::*;
2use crate::config::logger_config::{LoggerConfig, LoggerConfigDeserializable};
3use crate::config::window_config::WindowConfig;
4
5
6#[derive(Debug, Clone)]
7pub struct AppConfig {
8 pub logger_config: LoggerConfig,
9 pub window_config: WindowConfig,
10}
11impl From<AppConfigDeserializable> for AppConfig {
12 fn from(x: AppConfigDeserializable) -> Self {
13 AppConfig {
14 logger_config: x.logger_config.into(),
15 window_config: x.window_config,
16 }
17 }
18}
19impl PenguinConfig for AppConfig {
20 fn read_config() -> Self {
21 let config = AppConfigDeserializable::read_config();
22 let config: AppConfig = config.into();
23 config
24 }
25}
26
27
28#[derive(Debug, Deserialize, PenguinConfigFile)]
29#[penguin_config(path = "app-config.json")]
30pub struct AppConfigDeserializable {
31 pub logger_config: LoggerConfigDeserializable,
32 pub window_config: WindowConfig,
33}