Split GreaterBlock into CenterBlock, QuoteBlock, and SpecialBlock.
Center and quote blocks do not have parameters nor do they store their name so I am separating them out.
This commit is contained in:
@@ -1,4 +1,7 @@
|
||||
use super::macros::to_ast_node;
|
||||
use super::CenterBlock;
|
||||
use super::QuoteBlock;
|
||||
use super::SpecialBlock;
|
||||
use crate::types::AngleLink;
|
||||
use crate::types::BabelCall;
|
||||
use crate::types::Bold;
|
||||
@@ -22,7 +25,6 @@ use crate::types::FixedWidthArea;
|
||||
use crate::types::FootnoteDefinition;
|
||||
use crate::types::FootnoteReference;
|
||||
use crate::types::GetStandardProperties;
|
||||
use crate::types::GreaterBlock;
|
||||
use crate::types::Heading;
|
||||
use crate::types::HorizontalRule;
|
||||
use crate::types::InlineBabelCall;
|
||||
@@ -69,7 +71,9 @@ pub enum AstNode<'r, 's> {
|
||||
Paragraph(&'r Paragraph<'s>),
|
||||
PlainList(&'r PlainList<'s>),
|
||||
PlainListItem(&'r PlainListItem<'s>),
|
||||
GreaterBlock(&'r GreaterBlock<'s>),
|
||||
CenterBlock(&'r CenterBlock<'s>),
|
||||
QuoteBlock(&'r QuoteBlock<'s>),
|
||||
SpecialBlock(&'r SpecialBlock<'s>),
|
||||
DynamicBlock(&'r DynamicBlock<'s>),
|
||||
FootnoteDefinition(&'r FootnoteDefinition<'s>),
|
||||
Comment(&'r Comment<'s>),
|
||||
@@ -136,7 +140,9 @@ impl<'r, 's> From<&'r Element<'s>> for AstNode<'r, 's> {
|
||||
match value {
|
||||
Element::Paragraph(inner) => inner.into(),
|
||||
Element::PlainList(inner) => inner.into(),
|
||||
Element::GreaterBlock(inner) => inner.into(),
|
||||
Element::CenterBlock(inner) => inner.into(),
|
||||
Element::QuoteBlock(inner) => inner.into(),
|
||||
Element::SpecialBlock(inner) => inner.into(),
|
||||
Element::DynamicBlock(inner) => inner.into(),
|
||||
Element::FootnoteDefinition(inner) => inner.into(),
|
||||
Element::Comment(inner) => inner.into(),
|
||||
@@ -200,7 +206,9 @@ to_ast_node!(&'r Section<'s>, AstNode::Section);
|
||||
to_ast_node!(&'r Paragraph<'s>, AstNode::Paragraph);
|
||||
to_ast_node!(&'r PlainList<'s>, AstNode::PlainList);
|
||||
to_ast_node!(&'r PlainListItem<'s>, AstNode::PlainListItem);
|
||||
to_ast_node!(&'r GreaterBlock<'s>, AstNode::GreaterBlock);
|
||||
to_ast_node!(&'r CenterBlock<'s>, AstNode::CenterBlock);
|
||||
to_ast_node!(&'r QuoteBlock<'s>, AstNode::QuoteBlock);
|
||||
to_ast_node!(&'r SpecialBlock<'s>, AstNode::SpecialBlock);
|
||||
to_ast_node!(&'r DynamicBlock<'s>, AstNode::DynamicBlock);
|
||||
to_ast_node!(&'r FootnoteDefinition<'s>, AstNode::FootnoteDefinition);
|
||||
to_ast_node!(&'r Comment<'s>, AstNode::Comment);
|
||||
@@ -260,7 +268,9 @@ impl<'r, 's> GetStandardProperties<'s> for AstNode<'r, 's> {
|
||||
AstNode::Paragraph(inner) => *inner,
|
||||
AstNode::PlainList(inner) => *inner,
|
||||
AstNode::PlainListItem(inner) => *inner,
|
||||
AstNode::GreaterBlock(inner) => *inner,
|
||||
AstNode::CenterBlock(inner) => *inner,
|
||||
AstNode::QuoteBlock(inner) => *inner,
|
||||
AstNode::SpecialBlock(inner) => *inner,
|
||||
AstNode::DynamicBlock(inner) => *inner,
|
||||
AstNode::FootnoteDefinition(inner) => *inner,
|
||||
AstNode::Comment(inner) => *inner,
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
use super::greater_element::DynamicBlock;
|
||||
use super::greater_element::FootnoteDefinition;
|
||||
use super::greater_element::GreaterBlock;
|
||||
use super::greater_element::PlainList;
|
||||
use super::greater_element::PropertyDrawer;
|
||||
use super::greater_element::Table;
|
||||
@@ -19,16 +18,21 @@ use super::lesser_element::Paragraph;
|
||||
use super::lesser_element::Planning;
|
||||
use super::lesser_element::SrcBlock;
|
||||
use super::lesser_element::VerseBlock;
|
||||
use super::CenterBlock;
|
||||
use super::Drawer;
|
||||
use super::GetStandardProperties;
|
||||
use super::QuoteBlock;
|
||||
use super::SetSource;
|
||||
use super::SpecialBlock;
|
||||
use super::StandardProperties;
|
||||
|
||||
#[derive(Debug)]
|
||||
pub enum Element<'s> {
|
||||
Paragraph(Paragraph<'s>),
|
||||
PlainList(PlainList<'s>),
|
||||
GreaterBlock(GreaterBlock<'s>),
|
||||
CenterBlock(CenterBlock<'s>),
|
||||
QuoteBlock(QuoteBlock<'s>),
|
||||
SpecialBlock(SpecialBlock<'s>),
|
||||
DynamicBlock(DynamicBlock<'s>),
|
||||
FootnoteDefinition(FootnoteDefinition<'s>),
|
||||
Comment(Comment<'s>),
|
||||
@@ -56,7 +60,9 @@ impl<'s> SetSource<'s> for Element<'s> {
|
||||
match self {
|
||||
Element::Paragraph(obj) => obj.source = source,
|
||||
Element::PlainList(obj) => obj.source = source,
|
||||
Element::GreaterBlock(obj) => obj.source = source,
|
||||
Element::CenterBlock(obj) => obj.source = source,
|
||||
Element::QuoteBlock(obj) => obj.source = source,
|
||||
Element::SpecialBlock(obj) => obj.source = source,
|
||||
Element::DynamicBlock(obj) => obj.source = source,
|
||||
Element::FootnoteDefinition(obj) => obj.source = source,
|
||||
Element::Comment(obj) => obj.source = source,
|
||||
@@ -85,7 +91,9 @@ impl<'s> GetStandardProperties<'s> for Element<'s> {
|
||||
match self {
|
||||
Element::Paragraph(inner) => inner,
|
||||
Element::PlainList(inner) => inner,
|
||||
Element::GreaterBlock(inner) => inner,
|
||||
Element::CenterBlock(inner) => inner,
|
||||
Element::QuoteBlock(inner) => inner,
|
||||
Element::SpecialBlock(inner) => inner,
|
||||
Element::DynamicBlock(inner) => inner,
|
||||
Element::FootnoteDefinition(inner) => inner,
|
||||
Element::Comment(inner) => inner,
|
||||
|
||||
@@ -44,7 +44,19 @@ pub enum CheckboxType {
|
||||
}
|
||||
|
||||
#[derive(Debug)]
|
||||
pub struct GreaterBlock<'s> {
|
||||
pub struct CenterBlock<'s> {
|
||||
pub source: &'s str,
|
||||
pub children: Vec<Element<'s>>,
|
||||
}
|
||||
|
||||
#[derive(Debug)]
|
||||
pub struct QuoteBlock<'s> {
|
||||
pub source: &'s str,
|
||||
pub children: Vec<Element<'s>>,
|
||||
}
|
||||
|
||||
#[derive(Debug)]
|
||||
pub struct SpecialBlock<'s> {
|
||||
pub source: &'s str,
|
||||
pub name: &'s str,
|
||||
pub parameters: Option<&'s str>,
|
||||
@@ -110,7 +122,19 @@ impl<'s> StandardProperties<'s> for PlainListItem<'s> {
|
||||
}
|
||||
}
|
||||
|
||||
impl<'s> StandardProperties<'s> for GreaterBlock<'s> {
|
||||
impl<'s> StandardProperties<'s> for CenterBlock<'s> {
|
||||
fn get_source<'b>(&'b self) -> &'s str {
|
||||
self.source
|
||||
}
|
||||
}
|
||||
|
||||
impl<'s> StandardProperties<'s> for QuoteBlock<'s> {
|
||||
fn get_source<'b>(&'b self) -> &'s str {
|
||||
self.source
|
||||
}
|
||||
}
|
||||
|
||||
impl<'s> StandardProperties<'s> for SpecialBlock<'s> {
|
||||
fn get_source<'b>(&'b self) -> &'s str {
|
||||
self.source
|
||||
}
|
||||
|
||||
@@ -18,11 +18,11 @@ pub use document::Section;
|
||||
pub use document::TodoKeywordType;
|
||||
pub use element::Element;
|
||||
pub use get_standard_properties::GetStandardProperties;
|
||||
pub use greater_element::CenterBlock;
|
||||
pub use greater_element::CheckboxType;
|
||||
pub use greater_element::Drawer;
|
||||
pub use greater_element::DynamicBlock;
|
||||
pub use greater_element::FootnoteDefinition;
|
||||
pub use greater_element::GreaterBlock;
|
||||
pub use greater_element::IndentationLevel;
|
||||
pub use greater_element::NodeProperty;
|
||||
pub use greater_element::PlainList;
|
||||
@@ -31,6 +31,8 @@ pub use greater_element::PlainListItemCounter;
|
||||
pub use greater_element::PlainListItemPreBlank;
|
||||
pub use greater_element::PlainListType;
|
||||
pub use greater_element::PropertyDrawer;
|
||||
pub use greater_element::QuoteBlock;
|
||||
pub use greater_element::SpecialBlock;
|
||||
pub use greater_element::Table;
|
||||
pub use greater_element::TableRow;
|
||||
pub use lesser_element::BabelCall;
|
||||
|
||||
Reference in New Issue
Block a user