use serde::{Deserialize, Serialize}; use std::fmt::Display; use crate::constants::{LABEL_QUIRK_CHIP8, LABEL_QUIRK_SCHIP, LABEL_QUIRK_XOCHIP}; #[derive(Default, Clone, Serialize, Deserialize, Copy, Debug, PartialEq)] pub enum QuirkMode { #[default] Chip8, XOChip, SChipModern, } impl Display for QuirkMode { fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { let variant = match &self { QuirkMode::Chip8 => LABEL_QUIRK_CHIP8.to_string(), QuirkMode::XOChip => LABEL_QUIRK_XOCHIP.to_string(), QuirkMode::SChipModern => LABEL_QUIRK_SCHIP.to_string(), }; write!(f, "{}", variant) } }