123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- // SPDX-FileCopyrightText: 2021 - 2022 Samuel W. Flint <swflint@flintfam.org>
- //
- // SPDX-License-Identifier: GPL-3.0-or-later
- use serde::{Deserialize, Serialize};
- use std::fmt;
- use crate::lib::config::Config;
- #[derive(Serialize, Deserialize)]
- pub struct Action {
- #[serde(default)]
- name: String,
- #[serde(default)]
- description: String,
- #[serde(default)]
- pub command: String,
- #[serde(default)]
- pub disabled: bool,
- }
- pub fn add(config: &mut Config, name: &String, description: &String, command: &String) {
- let action = Action {
- name : name.to_string(),
- description: description.to_string(),
- command: command.to_string(),
- disabled: false
- };
- config.actions.insert(name.to_string(), action);
- config.is_changed = true;
- }
- pub fn update_disabled(config: &mut Config, name: &String, value: bool) {
- let action = config.actions.get_mut(&name.to_string());
- match action {
- Some(action) => {
- action.disabled = value;
- config.is_changed = true;
- },
- None => panic!("No known action named \"{}\".", name)
- }
- }
- pub fn update_description(config: &mut Config, name: &String, description: &String) {
- let action = config.actions.get_mut(&name.to_string());
- match action {
- Some(action) => {
- action.description = description.to_string();
- config.is_changed = true;
- },
- None => panic!("No known action named \"{}\".", name)
- }
- }
- pub fn update_command(config: &mut Config, name: &String, command: &String) {
- let action = config.actions.get_mut(&name.to_string());
- match action {
- Some(action) => {
- action.command = command.to_string();
- config.is_changed = true;
- },
- None => panic!("No known action named \"{}\".", name)
- }
- }
- impl fmt::Display for Action {
- fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
- write!(f, "Action {}:\n\t\"{}\"\n\tCommand: \"{}\"\n\tDisabled: {}",
- self.name,
- self.description,
- self.command,
- self.disabled
- )
- }
- }
|