#[cfg(feature = "pyo3")]
use pyo3::prelude::*;
use serde::{Deserialize, Serialize};
pub mod font;
pub mod line;
use super::{Border, ColorKind};
pub use font::{Font, Weight};
pub use line::{Line, LineHeight};
#[cfg_attr(
feature = "pyo3",
pyclass(eq, eq_int, module = "img_gen", from_py_object)
)]
#[derive(Debug, PartialEq, Clone, Default, Serialize, Deserialize)]
pub enum TypographyAlign {
#[serde(alias = "start top")]
#[default]
StartTop,
#[serde(alias = "start center")]
StartCenter,
#[serde(alias = "start bottom")]
StartBottom,
#[serde(alias = "center top")]
CenterTop,
#[serde(alias = "center")]
Center,
#[serde(alias = "center center")]
CenterCenter,
#[serde(alias = "center bottom")]
CenterBottom,
#[serde(alias = "end top")]
EndTop,
#[serde(alias = "end center")]
EndCenter,
#[serde(alias = "end bottom")]
EndBottom,
}
#[cfg_attr(
feature = "pyo3",
pyclass(module = "img_gen", get_all, set_all, from_py_object)
)]
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct Typography {
pub content: String,
#[serde(default = "TypographyAlign::default")]
pub align: TypographyAlign,
#[serde(default)]
pub color: ColorKind,
#[serde(default = "Line::default")]
pub line: Line,
#[serde(default)]
pub overflow: bool,
#[serde(default = "Font::default")]
pub font: Font,
#[serde(default)]
pub border: Option<Border>,
}