2023-03-25 17:16:28 +00:00
|
|
|
use super::element::Element;
|
2023-04-20 02:09:53 +00:00
|
|
|
use super::lesser_element::TableCell;
|
2023-04-21 20:16:14 +00:00
|
|
|
use super::source::Source;
|
2023-03-25 17:16:28 +00:00
|
|
|
|
2023-03-23 21:26:07 +00:00
|
|
|
#[derive(Debug)]
|
|
|
|
pub struct PlainList<'s> {
|
|
|
|
pub source: &'s str,
|
2023-03-25 17:16:28 +00:00
|
|
|
pub children: Vec<PlainListItem<'s>>,
|
|
|
|
}
|
|
|
|
|
|
|
|
#[derive(Debug)]
|
|
|
|
pub struct PlainListItem<'s> {
|
|
|
|
pub source: &'s str,
|
2023-03-27 16:52:49 +00:00
|
|
|
pub indentation: usize,
|
2023-03-25 17:16:28 +00:00
|
|
|
pub bullet: &'s str,
|
2023-04-03 21:33:01 +00:00
|
|
|
pub children: Vec<Element<'s>>,
|
|
|
|
}
|
|
|
|
|
|
|
|
#[derive(Debug)]
|
|
|
|
pub struct GreaterBlock<'s> {
|
|
|
|
pub source: &'s str,
|
|
|
|
pub name: &'s str,
|
|
|
|
pub parameters: Option<&'s str>,
|
|
|
|
pub children: Vec<Element<'s>>,
|
2023-03-23 21:26:07 +00:00
|
|
|
}
|
2023-04-07 21:14:44 +00:00
|
|
|
|
2023-04-19 17:30:15 +00:00
|
|
|
#[derive(Debug)]
|
|
|
|
pub struct DynamicBlock<'s> {
|
|
|
|
pub source: &'s str,
|
|
|
|
pub name: &'s str,
|
|
|
|
pub parameters: Option<&'s str>,
|
|
|
|
pub children: Vec<Element<'s>>,
|
|
|
|
}
|
|
|
|
|
2023-04-07 21:14:44 +00:00
|
|
|
#[derive(Debug)]
|
|
|
|
pub struct FootnoteDefinition<'s> {
|
|
|
|
pub source: &'s str,
|
|
|
|
pub label: &'s str,
|
|
|
|
pub children: Vec<Element<'s>>,
|
|
|
|
}
|
2023-04-15 21:36:07 +00:00
|
|
|
|
|
|
|
#[derive(Debug)]
|
|
|
|
pub struct Drawer<'s> {
|
|
|
|
pub source: &'s str,
|
2023-04-15 21:56:07 +00:00
|
|
|
pub name: &'s str,
|
2023-04-15 21:36:07 +00:00
|
|
|
pub children: Vec<Element<'s>>,
|
|
|
|
}
|
2023-04-19 20:51:00 +00:00
|
|
|
|
|
|
|
#[derive(Debug)]
|
|
|
|
pub struct PropertyDrawer<'s> {
|
|
|
|
pub source: &'s str,
|
2023-04-19 21:15:00 +00:00
|
|
|
pub children: Vec<NodeProperty<'s>>,
|
|
|
|
}
|
|
|
|
|
|
|
|
#[derive(Debug)]
|
|
|
|
pub struct NodeProperty<'s> {
|
|
|
|
pub source: &'s str,
|
2023-04-19 22:10:29 +00:00
|
|
|
pub value: Option<&'s str>,
|
2023-04-19 20:51:00 +00:00
|
|
|
}
|
2023-04-20 00:59:58 +00:00
|
|
|
|
|
|
|
#[derive(Debug)]
|
|
|
|
pub struct Table<'s> {
|
|
|
|
pub source: &'s str,
|
2023-04-20 01:19:49 +00:00
|
|
|
pub children: Vec<TableRow<'s>>,
|
|
|
|
}
|
|
|
|
|
|
|
|
#[derive(Debug)]
|
|
|
|
pub struct TableRow<'s> {
|
|
|
|
pub source: &'s str,
|
2023-04-20 01:57:08 +00:00
|
|
|
pub children: Vec<TableCell<'s>>,
|
|
|
|
}
|
2023-04-21 20:16:14 +00:00
|
|
|
|
|
|
|
impl<'s> Source<'s> for PlainList<'s> {
|
|
|
|
fn get_source(&'s self) -> &'s str {
|
|
|
|
self.source
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
impl<'s> Source<'s> for PlainListItem<'s> {
|
|
|
|
fn get_source(&'s self) -> &'s str {
|
|
|
|
self.source
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
impl<'s> Source<'s> for GreaterBlock<'s> {
|
|
|
|
fn get_source(&'s self) -> &'s str {
|
|
|
|
self.source
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
impl<'s> Source<'s> for DynamicBlock<'s> {
|
|
|
|
fn get_source(&'s self) -> &'s str {
|
|
|
|
self.source
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
impl<'s> Source<'s> for FootnoteDefinition<'s> {
|
|
|
|
fn get_source(&'s self) -> &'s str {
|
|
|
|
self.source
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
impl<'s> Source<'s> for Drawer<'s> {
|
|
|
|
fn get_source(&'s self) -> &'s str {
|
|
|
|
self.source
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
impl<'s> Source<'s> for PropertyDrawer<'s> {
|
|
|
|
fn get_source(&'s self) -> &'s str {
|
|
|
|
self.source
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
impl<'s> Source<'s> for Table<'s> {
|
|
|
|
fn get_source(&'s self) -> &'s str {
|
|
|
|
self.source
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
impl<'s> Source<'s> for TableRow<'s> {
|
|
|
|
fn get_source(&'s self) -> &'s str {
|
|
|
|
self.source
|
|
|
|
}
|
|
|
|
}
|