iresine/iresine-il/src/nodes.rs
Evie Viau c6e47572ac
Init work on IL for content
Add parsing from a String and converting from Markdown
2025-02-11 02:17:04 -08:00

43 lines
No EOL
989 B
Rust

use serde::{Deserialize, Serialize};
#[derive(Serialize, Deserialize, Debug, PartialEq, Eq, Clone)]
pub enum Nodes {
Literal(String),
Text(Text),
Link(Link),
Image(Image),
Header(Header),
Divider,
}
#[derive(Deserialize, Serialize, Debug, PartialEq, Eq, Clone)]
pub struct Text {
pub value: Vec<Nodes>
}
#[derive(Deserialize, Serialize, Debug, PartialEq, Eq, Clone)]
pub struct Header {
pub level: String,
pub value: Vec<Nodes>
}
#[derive(Deserialize, Serialize, Debug, PartialEq, Eq, Clone)]
pub struct Image {
pub url: String,
pub alt: Option<String>,
pub blur_hash: Option<String>,
pub width: Option<u64>,
pub height: Option<u64>,
pub value: Vec<Nodes>,
}
#[derive(Deserialize, Serialize, Debug, PartialEq, Eq, Clone)]
pub struct Link {
pub url: String,
pub value: Vec<Nodes>,
}
#[derive(Deserialize, Serialize, Debug, PartialEq, Eq, Clone)]
pub struct Document {
pub version: u64,
pub value: Vec<Nodes>
}