mister_fpga/config/
fb_size.rs1use merg::Merge;
2use serde::Deserialize;
3
4#[derive(Default, Debug, Clone, Copy, PartialEq, Deserialize)]
6#[serde(rename_all = "snake_case")]
7pub enum FramebufferSizeConfig {
8 #[default]
9 #[serde(alias = "0")]
10 Automatic = 0,
11
12 #[serde(alias = "1")]
13 FullSize = 1,
14
15 #[serde(alias = "2", alias = "3")]
16 HalfSize = 2,
17
18 #[serde(alias = "4")]
19 QuarterSize = 4,
20}
21
22impl Merge for FramebufferSizeConfig {
23 fn merge(&mut self, other: Self) {
24 if other != FramebufferSizeConfig::default() {
25 *self = other;
26 }
27 }
28}
29
30impl FramebufferSizeConfig {
31 pub fn as_scale(&self) -> u8 {
32 match self {
33 FramebufferSizeConfig::Automatic => 0,
34 FramebufferSizeConfig::FullSize => 1,
35 FramebufferSizeConfig::HalfSize => 2,
36 FramebufferSizeConfig::QuarterSize => 4,
37 }
38 }
39}