rae 0.1.9

Renderer-neutral widget, layout, sanitization, and GLSL shader primitives for Rust desktop tools.
Documentation
#[cfg(feature = "serde")]
use serde::{Deserialize, Serialize};

#[derive(Clone, Copy, Debug, Default, PartialEq, Eq)]
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
#[cfg_attr(feature = "serde", serde(rename_all = "snake_case"))]
pub enum PaneId {
    #[default]
    Main,
    Sidebar,
    Prompt,
}

impl PaneId {
    pub fn next(self) -> Self {
        match self {
            Self::Main => Self::Sidebar,
            Self::Sidebar => Self::Prompt,
            Self::Prompt => Self::Main,
        }
    }
}

#[derive(Clone, Copy, Debug, PartialEq, Eq)]
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
#[cfg_attr(feature = "serde", serde(rename_all = "snake_case"))]
pub enum OverlayKind {
    Help,
    CommandPalette,
    Search,
    Inspector,
    Settings,
    ThemeEditor,
}