use std::fmt;
use std::path::{Path, PathBuf};
use crate::generate::archetypes::Archetype;
use crate::generate::templates::TemplateError;
use crate::spec::types::OpSpec;
/// Template family used to render generator context before code emission.
#[derive(Clone, Copy, Debug, Eq, PartialEq, Hash)]
pub enum TemplateKind {
/// Concrete spec-table row.
OpCorrectness,
/// Algebraic law assertion.
Law,
/// Backend equivalence test family.
BackendEquiv,
/// Archetype-driven parity test.
Archetype,
/// Validation rule test family.
Validation,
/// Mutation-kill test family.
MutationKill,
}