use serde::{Deserialize, Serialize};
use crate::span::Span;
#[derive(Debug, PartialEq, Deserialize, Serialize)]
pub enum Block {
Heading(Heading),
Paragraph(Literal),
List(List),
}
#[derive(Debug, PartialEq, Deserialize, Serialize)]
pub enum Inline {
Link(Link),
Literal(Literal),
}
#[derive(Debug, PartialEq, Deserialize, Serialize)]
pub struct Heading {
pub span: Span,
pub level: usize,
pub inlines: Vec<Inline>,
}
#[derive(Debug, PartialEq, Deserialize, Serialize)]
pub struct Link {
pub span: Span,
pub content: Literal,
pub target: String,
}
#[derive(Debug, PartialEq, Deserialize, Serialize)]
pub struct Literal {
pub span: Span,
}
#[derive(Debug, PartialEq, Deserialize, Serialize)]
pub struct List {
pub span: Span,
pub items: Vec<Literal>,
}