denki 0.2.0

CLI for controlling TP-Link smart home devices — denki (電気) means electricity in Japanese
Documentation
use serde::Serialize;

use crate::tapo_vendor::responses::{DesiredStateRaw, PowerState};

#[derive(Debug, Clone, Serialize)]
pub(crate) struct AddTimerParams {
    pub enable: bool,
    pub delay: u32,
    pub desired_states: DesiredStateRaw,
}

impl AddTimerParams {
    pub(crate) fn new(delay_seconds: u32, desired_state: PowerState) -> Self {
        Self {
            enable: true,
            delay: delay_seconds,
            desired_states: DesiredStateRaw::new(desired_state),
        }
    }
}

#[derive(Debug, Clone, Serialize)]
pub(crate) struct RemoveTimersParams {
    pub remove_all: bool,
}

impl RemoveTimersParams {
    pub(crate) fn remove_all() -> Self {
        Self { remove_all: true }
    }
}