diff options
Diffstat (limited to 'src/resolve.rs')
-rw-r--r-- | src/resolve.rs | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/src/resolve.rs b/src/resolve.rs new file mode 100644 index 0000000..e72b2a2 --- /dev/null +++ b/src/resolve.rs @@ -0,0 +1,34 @@ +use crate::construct; +use crate::content; +use crate::tokenizer::Tokenizer; + +/// Names of functions to move to. +#[derive(Debug, Clone, Copy, PartialEq)] +pub enum Name { + Label, + Attention, + HeadingAtx, + HeadingSetext, + List, + Paragraph, + Data, + String, + Text, +} + +/// Call the corresponding function for a state name. +pub fn call(tokenizer: &mut Tokenizer, name: Name) { + let func = match name { + Name::Label => construct::label_end::resolve, + Name::Attention => construct::attention::resolve, + Name::HeadingAtx => construct::heading_atx::resolve, + Name::HeadingSetext => construct::heading_setext::resolve, + Name::List => construct::list::resolve, + Name::Paragraph => construct::paragraph::resolve, + Name::Data => construct::partial_data::resolve, + Name::String => content::string::resolve, + Name::Text => content::text::resolve, + }; + + func(tokenizer); +} |