1use serde_derive::{Deserialize, Serialize};
2
3#[derive(Debug, Copy, Clone, Default, Serialize, Deserialize, PartialEq, Eq)]
4pub struct DisplaySuggestion {
5 #[serde(skip_serializing_if = "Option::is_none")]
6 pub binary: Option<BinaryDisplay>,
7
8 #[serde(skip_serializing_if = "Option::is_none")]
9 pub image: Option<ImageDisplay>,
10}
11
12impl DisplaySuggestion {
13 pub fn is_default(&self) -> bool {
14 *self == Default::default()
15 }
16}
17
18#[derive(Debug, Copy, Clone, Serialize, Deserialize, PartialEq, Eq)]
19#[serde(rename_all = "snake_case")]
20#[non_exhaustive]
21pub enum BinaryDisplay {
22 Viewer,
23 Base64,
24 Hex,
25}
26
27#[derive(Debug, Copy, Clone, Serialize, Deserialize, PartialEq, Eq)]
28#[serde(rename_all = "snake_case")]
29#[non_exhaustive]
30pub enum ImageDisplay {
31 Smooth,
32 Pixelated,
33}