From cf9f0039911597cd5c9bc8e98f61b5df09b02130 Mon Sep 17 00:00:00 2001 From: Titus Wormer Date: Thu, 11 Aug 2022 15:23:45 +0200 Subject: Remove boxes around resolvers --- src/resolve.rs | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 src/resolve.rs (limited to 'src/resolve.rs') 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); +} -- cgit