use mago_database::file::File;
use mago_syntax::ast::Program;
use crate::plugin::context::HookContext;
use crate::plugin::hook::HookAction;
use crate::plugin::hook::HookResult;
use crate::plugin::provider::Provider;
pub trait ProgramHook: Provider {
fn before_program(
&self,
_file: &File,
_program: &Program<'_>,
_context: &mut HookContext<'_, '_>,
) -> HookResult<HookAction> {
Ok(HookAction::Continue)
}
fn after_program(
&self,
_file: &File,
_program: &Program<'_>,
_context: &mut HookContext<'_, '_>,
) -> HookResult<()> {
Ok(())
}
}