devmode 0.1.5

Devmode is a project management utility for developers.
use crate::config::editor::Editor;
use anyhow::Result;
use libdmd::utils::config::config::{Config, Element, Format};
use serde::{Deserialize, Serialize};

#[derive(Serialize, Deserialize, Debug, Clone, Default, Eq, PartialEq)]
pub struct Settings {
    pub host: String,
    pub owner: String,
    pub editor: Editor,
}

impl Settings {
    pub fn new(host: String, owner: String, editor: Editor) -> Self {
        Settings {
            host,
            owner,
            editor,
        }
    }
    pub fn init(&self) -> Result<Config> {
        Config::new()
            .name("devmode")
            .author("Eduardo Flores")
            .about("Development management app.")
            .version("0.1.1")
            .add(Element::new("config").child(Element::new("config.toml").format(Format::File)))
            .add(Element::new("logs"))
            .add(Element::new("paths").child(Element::new("devpaths").format(Format::File)))
            .write()
    }
    pub fn show(&self) {
        println!(
            "Current settings: \n\
        Host: {}\n\
        Owner: {}\n\
        Editor: {}",
            self.host, self.owner, self.editor.app
        )
    }
}