use std::{error::Error, fmt::Display}; use smithay::desktop::Window; use crate::State; pub mod automatic; pub mod manual; pub trait Layout { fn layout_windows(&self, state: &mut State, windows: Vec<Window>); fn add_window(&mut self, state: &mut State, window: Window); fn remove_window(&mut self, state: &mut State, window: Window) -> Result<(), RemoveWindowError>; } #[derive(Debug)] pub enum RemoveWindowError { NotFound, } impl Display for RemoveWindowError { fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { write!(f, "{:?}", self) } } impl Error for RemoveWindowError {}