dwm-status 1.1.0

Displays system information for dwm status bar.
Documentation
use error::*;
use std::sync::mpsc;
use std::thread;
use std::time;

#[derive(Debug)]
pub enum Message {
    FeatureUpdate(String),
    Kill,
}

pub fn send_message(feature: &str, id: &str, tx: &mpsc::Sender<Message>) {
    let message = Message::FeatureUpdate(String::from(id));

    tx.send(message)
        .wrap_error_kill(feature, "notify thread killed");
}

pub fn send_message_interval(
    feature: &'static str,
    id: String,
    tx: mpsc::Sender<Message>,
    interval: u64,
    delay: Option<u64>,
) {
    thread::spawn(move || {
        if let Some(delay_seconds) = delay {
            thread::sleep(time::Duration::from_secs(delay_seconds));
        }

        loop {
            send_message(feature, &id, &tx);

            thread::sleep(time::Duration::from_secs(interval));
        }
    });
}