currant 0.2.8

A simple library to spawn concurrent shell processes in rust
Documentation
use crate::color;

pub struct TemplateStrings {
    pub start_message_template: String,
    pub done_message_template: String,
    pub payload_message_template: String,
    pub error_message_template: String,
}

pub struct Template {
    pub name: String,
    pub begin_color: String,
    pub reset_color: String,
    pub error_message: String,
    pub status_code: Option<i32>,
    pub handle_flag: String,
}

impl Template {
    pub fn new(msg_color: Option<&color::Color>) -> Template {
        Template {
            name: String::new(),
            begin_color: if let Some(col) = msg_color {
                color::open_sequence(col)
            } else {
                String::new()
            },
            reset_color: if msg_color.is_some() {
                color::close_sequence()
            } else {
                String::new()
            },
            error_message: String::new(),
            status_code: None,
            handle_flag: String::new(),
        }
    }

    pub fn execute(&self, template_string: &str) -> String {
        let status_code_message = if self.status_code.is_some() {
            format!("{}", self.status_code.unwrap())
        } else {
            "(none)".to_string()
        };
        template_string
            .replace("{{name}}", &self.name)
            .replace("{{begin_color}}", &self.begin_color)
            .replace("{{reset_color}}", &self.reset_color)
            .replace("{{error_message}}", &self.error_message)
            .replace("{{status_code}}", &status_code_message)
            .replace("{{handle_flag}}", &self.handle_flag)
    }
}