use serde::{Deserialize, Serialize};
#[derive(Clone, Debug, Eq, Hash, PartialEq, Deserialize, Serialize)]
pub struct Separator {
#[serde(skip_serializing_if = "Option::is_none")]
pub id: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub divider: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub spacing: Option<SeparatorSpacingSize>,
}
#[derive(Clone, Debug, Eq, Hash, PartialEq, Deserialize, Serialize)]
#[serde(from = "u8", into = "u8")]
pub enum SeparatorSpacingSize {
Small,
Large,
Other(u8),
}
impl From<u8> for SeparatorSpacingSize {
fn from(value: u8) -> Self {
match value {
1 => SeparatorSpacingSize::Small,
2 => SeparatorSpacingSize::Large,
other => SeparatorSpacingSize::Other(other),
}
}
}
impl From<SeparatorSpacingSize> for u8 {
fn from(value: SeparatorSpacingSize) -> Self {
match value {
SeparatorSpacingSize::Small => 1,
SeparatorSpacingSize::Large => 2,
SeparatorSpacingSize::Other(other) => other,
}
}
}