use super::parsing_context::ParsingContext;
use std::collections::HashMap;
pub trait ParsingTask {
type Item;
type Output;
fn init<'a>(
inp: &'a str,
key_value: &'a HashMap<&'a str, String>,
) -> ParsingContext<'a, Self::Item>;
fn done(context: ParsingContext<'_, Self::Item>) -> Self::Output;
fn error(context: &mut ParsingContext<'_, Self::Item>);
fn process_char(context: &mut ParsingContext<'_, Self::Item>, ch: char);
fn process_char_placeholder(context: &mut ParsingContext<'_, Self::Item>, ch: char);
fn process_str_placeholder(context: &mut ParsingContext<'_, Self::Item>, arg: String);
}