whatawhat 0.1.1

Application for monitoring user activity
Documentation
use std::sync::Arc;

use chrono::Utc;
use serde::{Deserialize, Serialize};

/// Represents an event generated by a collector at a certain point in time.
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Eq, PartialOrd, Ord)]
pub struct RecordEvent {
    pub timestamp: chrono::DateTime<Utc>,
    /// Name of the window. For example 'bash in hello' or 'Document 1' or 'Vibing in YouTube -
    /// Chrome'
    pub window_name: Arc<str>,
    /// Full path to an executable. For example /home/etc/nvim
    pub process_name: Arc<str>,
    pub afk: bool,
}

/// Some day I'll have color, I'm sure of it, that's a promise
#[derive(Serialize, Deserialize, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Debug, Default)]
pub struct Color {
    pub r: u8,
    pub g: u8,
    pub b: u8,
}

impl Color {
    pub fn new(r: u8, g: u8, b: u8) -> Self {
        Self { r, g, b }
    }
}