trevors_chip8_toy/gemma/src/chip8/quirk_modes.rs
2025-05-27 10:02:13 -04:00

23 lines
683 B
Rust

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)
}
}