aboutsummaryrefslogtreecommitdiffstats
path: root/src/resolve.rs
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/resolve.rs34
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);
+}