/* * Snekdown - Custom Markdown flavour and parser * Copyright (C) 2021 Trivernis * See LICENSE for more information. */ use super::{ParseError, ParseResult}; use crate::elements::tokens::*; use crate::elements::BibReference; use crate::elements::*; use crate::parser::block::ParseBlock; use crate::references::glossary::GlossaryDisplay; use crate::references::glossary::GlossaryReference; use crate::references::templates::{GetTemplateVariables, Template, TemplateVariable}; use crate::utils::parsing::remove_single_backlslash; use crate::Parser; use bibliographix::references::bib_reference::BibRef; use parking_lot::Mutex; use std::collections::HashMap; use std::path::PathBuf; use std::sync::{Arc, RwLock}; pub(crate) trait ParseInline { fn parse_surrounded(&mut self, surrounding: &char) -> ParseResult>; fn parse_inline(&mut self) -> ParseResult; fn parse_image(&mut self) -> ParseResult; fn parse_url(&mut self, short_syntax: bool) -> ParseResult; fn parse_checkbox(&mut self) -> ParseResult; fn parse_bold(&mut self) -> ParseResult; fn parse_italic(&mut self) -> ParseResult; fn parse_striked(&mut self) -> ParseResult; fn parse_math(&mut self) -> ParseResult; fn parse_monospace(&mut self) -> ParseResult; fn parse_underlined(&mut self) -> ParseResult; fn parse_superscript(&mut self) -> ParseResult; fn parse_emoji(&mut self) -> ParseResult; fn parse_colored(&mut self) -> ParseResult; fn parse_bibref(&mut self) -> ParseResult>>; fn parse_template_variable(&mut self) -> ParseResult>>; fn parse_glossary_reference(&mut self) -> ParseResult>>; fn parse_plain(&mut self) -> ParseResult; fn parse_inline_metadata(&mut self) -> ParseResult; fn parse_metadata_pair(&mut self) -> ParseResult<(String, MetadataValue)>; fn parse_placeholder(&mut self) -> ParseResult>>; fn parse_template(&mut self) -> ParseResult