use mant_ir::{Block, LayoutHint, SourceSpan};
pub(crate) const fn block_layout(block: &Block) -> Option<&LayoutHint> {
match block {
Block::Paragraph { layout, .. }
| Block::Preformatted { layout, .. }
| Block::List { layout, .. }
| Block::DefinitionList { layout, .. }
| Block::Table { layout, .. }
| Block::Equation { layout, .. }
| Block::Unsupported { layout, .. } => Some(layout),
Block::VerticalSpace { .. } | Block::ThematicBreak { .. } => None,
}
}
pub(crate) const fn block_layout_mut(block: &mut Block) -> Option<&mut LayoutHint> {
match block {
Block::Paragraph { layout, .. }
| Block::Preformatted { layout, .. }
| Block::List { layout, .. }
| Block::DefinitionList { layout, .. }
| Block::Table { layout, .. }
| Block::Equation { layout, .. }
| Block::Unsupported { layout, .. } => Some(layout),
Block::VerticalSpace { .. } | Block::ThematicBreak { .. } => None,
}
}
pub(crate) const fn block_source(block: &Block) -> Option<SourceSpan> {
match block {
Block::Paragraph { source, .. }
| Block::Preformatted { source, .. }
| Block::List { source, .. }
| Block::DefinitionList { source, .. }
| Block::Table { source, .. }
| Block::Equation { source, .. }
| Block::VerticalSpace { source, .. }
| Block::ThematicBreak { source }
| Block::Unsupported { source, .. } => *source,
}
}