phantom-editor 0.1.0

** A simple yet complex, shadow fast, rust text editor, to run in the shadows **
Documentation
mod draw;
mod pane;
mod status;
mod workspace;

use std::collections::{HashMap, VecDeque};
use thiserror::Error;

use self::workspace::Workspace;

#[derive(Error, Debug)]
pub enum ScreenError {
    #[error("Placeholder Err")]
    Component(ComponentError),
}

#[derive(Error, Debug)]
pub enum ComponentError {}

pub type CResult<T> = std::result::Result<T, ComponentError>;
type SResult<T> = std::result::Result<T, ScreenError>;

pub enum Event { }

pub trait Component {
    fn draw(&self) -> CResult<()> {
        Ok(())
    }
    fn update(&mut self) -> CResult<()> {
        Ok(())
    }
}

pub struct Screen {
    event_queue: VecDeque<Event>,
    workspaces: HashMap<u16, Workspace>,
}

impl Screen {
    pub fn new() -> Self {
        Self {
            event_queue: VecDeque::new(),
            workspaces: HashMap::new(),
        }
    }
    pub fn send_update(&mut self, event: Event) {
        self.event_queue.push_back(event);
    }
    pub fn update(&mut self) -> SResult<()> {
        Ok(())
    }
}