#![allow(dead_code, clippy::only_used_in_recursion)]
pub mod mark_generator;
pub mod node_generator;
use crate::common::MacroResult;
use proc_macro2::TokenStream as TokenStream2;
pub trait CodeGenerator {
fn generate(&self) -> MacroResult<TokenStream2>;
fn name(&self) -> &'static str;
}
pub struct GeneratorFactory;
impl GeneratorFactory {
pub fn create_node_generator<'a>(
input: &'a syn::DeriveInput,
config: &'a crate::parser::NodeConfig,
) -> node_generator::NodeGenerator<'a> {
node_generator::NodeGenerator::new(input, config)
}
pub fn create_mark_generator<'a>(
input: &'a syn::DeriveInput,
config: &'a crate::parser::MarkConfig,
) -> mark_generator::MarkGenerator<'a> {
mark_generator::MarkGenerator::new(input, config)
}
}