23 lines
683 B
Rust
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)
|
|
}
|
|
}
|