43 lines
No EOL
989 B
Rust
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>
|
|
} |