mod r#enum;
mod exception_trait;
mod module;
mod rust_mod;
mod traits_mod;
use crate::utils::{BuildContext, NamesTracker};
pub(crate) const EXTERN_EXCEPTION_TRAIT_MODULE_NAME: &str = "ExceptionTrait";
pub(crate) const TRAITS_MODULE_NAME: &str = "Traits";
pub(crate) const RUST_MODULE_NAME: &str = "Rust";
pub struct Context {
build_context: BuildContext,
name_tracker: NamesTracker,
}
impl Context {
pub fn new(build_context: BuildContext, name_tracker: NamesTracker) -> Self {
Self {
build_context,
name_tracker,
}
}
}
pub trait Parser<T>
where
Self: Sized,
{
fn parse(data: &T, context: &mut Context) -> anyhow::Result<Self>;
}