use schemars::JsonSchema;
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, JsonSchema)]
#[non_exhaustive]
pub struct MemoMetadata {
pub shape_id_ref: u32,
pub number: u32,
pub id: String,
pub author: String,
pub create_datetime: String,
pub command: String,
}
impl Default for MemoMetadata {
fn default() -> Self {
Self {
shape_id_ref: 65535,
number: 0,
id: String::new(),
author: String::new(),
create_datetime: String::new(),
command: String::new(),
}
}
}
impl MemoMetadata {
pub fn hwpx_id(&self) -> String {
if self.id.is_empty() {
format!("memo{}", self.number)
} else {
self.id.clone()
}
}
}
#[derive(Debug, Clone, PartialEq, Eq, Default, Serialize, Deserialize, JsonSchema)]
#[non_exhaustive]
pub struct DutmalMetadata {
pub option: u32,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Default, Serialize, Deserialize, JsonSchema)]
#[non_exhaustive]
pub enum DutmalPosition {
#[default]
Top,
Bottom,
Right,
Left,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Default, Serialize, Deserialize, JsonSchema)]
#[non_exhaustive]
pub enum DutmalAlign {
#[default]
Center,
Left,
Right,
}