use serde::{Deserialize, Serialize};
#[derive(Debug, Deserialize, Serialize, Copy, Clone)]
#[serde(rename_all = "SCREAMING_SNAKE_CASE")]
#[typeshare::typeshare]
pub enum TextCase {
Upper,
Lower,
Title,
SmallCaps,
SmallCapsForced,
}
#[derive(Debug, Deserialize, Serialize, Copy, Clone)]
#[serde(rename_all = "SCREAMING_SNAKE_CASE")]
#[typeshare::typeshare]
pub enum TextDecoration {
Strikethrough,
Underline,
}
#[derive(Debug, Deserialize, Serialize)]
#[serde(rename_all = "SCREAMING_SNAKE_CASE")]
#[typeshare::typeshare]
pub enum TextAutoResize {
Height,
WidthAndHeight,
Truncate,
}
#[derive(Debug, Deserialize, Serialize)]
#[serde(rename_all = "SCREAMING_SNAKE_CASE")]
#[typeshare::typeshare]
pub enum HyperlinkType {
Url,
Node,
}
#[derive(Debug, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
#[typeshare::typeshare]
pub struct Hyperlink {
pub r#type: Option<HyperlinkType>,
pub url: Option<String>,
pub node_id: Option<String>,
}
#[derive(Debug, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
#[typeshare::typeshare]
pub struct TypeStyle {
pub font_family: String,
pub paragraph_spacing: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub italic: Option<bool>,
pub font_weight: f64,
pub font_size: f64,
#[serde(skip_serializing_if = "Option::is_none")]
pub text_case: Option<TextCase>,
#[serde(skip_serializing_if = "Option::is_none")]
pub text_decoration: Option<TextDecoration>,
pub text_auto_resize: Option<TextAutoResize>,
pub hyperlink: Option<Hyperlink>,
pub line_height_px: f64,
}