mirror of
https://gitlab.com/asus-linux/asusctl.git
synced 2026-02-06 00:15:04 +01:00
75 lines
1.8 KiB
Rust
75 lines
1.8 KiB
Rust
use serde_derive::{Deserialize, Serialize};
|
|
|
|
use crate::config_traits::{StdConfig, StdConfigLoad3};
|
|
|
|
const CONFIG_FILE: &str = "asusd.conf";
|
|
|
|
#[derive(Deserialize, Serialize, Default)]
|
|
pub struct Config {
|
|
/// Save charge limit for restoring on boot
|
|
pub bat_charge_limit: u8,
|
|
pub panel_od: bool,
|
|
pub disable_nvidia_powerd_on_battery: bool,
|
|
pub ac_command: String,
|
|
pub bat_command: String,
|
|
}
|
|
|
|
impl StdConfig for Config {
|
|
fn new() -> Self {
|
|
Config {
|
|
bat_charge_limit: 100,
|
|
panel_od: false,
|
|
disable_nvidia_powerd_on_battery: true,
|
|
ac_command: String::new(),
|
|
bat_command: String::new(),
|
|
}
|
|
}
|
|
|
|
fn file_name() -> &'static str {
|
|
CONFIG_FILE
|
|
}
|
|
}
|
|
|
|
impl StdConfigLoad3<Config, Config455, Config458> for Config {}
|
|
|
|
#[derive(Deserialize, Serialize, Default)]
|
|
#[serde(default)]
|
|
pub struct Config455 {
|
|
/// Save charge limit for restoring on boot
|
|
pub bat_charge_limit: u8,
|
|
pub panel_od: bool,
|
|
}
|
|
|
|
impl From<Config455> for Config {
|
|
fn from(c: Config455) -> Self {
|
|
Self {
|
|
bat_charge_limit: c.bat_charge_limit,
|
|
panel_od: c.panel_od,
|
|
disable_nvidia_powerd_on_battery: true,
|
|
ac_command: String::new(),
|
|
bat_command: String::new(),
|
|
}
|
|
}
|
|
}
|
|
|
|
#[derive(Deserialize, Serialize, Default)]
|
|
pub struct Config458 {
|
|
/// Save charge limit for restoring on boot
|
|
pub bat_charge_limit: u8,
|
|
pub panel_od: bool,
|
|
pub ac_command: String,
|
|
pub bat_command: String,
|
|
}
|
|
|
|
impl From<Config458> for Config {
|
|
fn from(c: Config458) -> Self {
|
|
Self {
|
|
bat_charge_limit: c.bat_charge_limit,
|
|
panel_od: c.panel_od,
|
|
disable_nvidia_powerd_on_battery: true,
|
|
ac_command: c.ac_command,
|
|
bat_command: c.bat_command,
|
|
}
|
|
}
|
|
}
|