use crate::error::Location;
use crate::isaspec::IsaSpec;
use crate::sourcemap::SourceMap;
use crate::testcommand::TestCommand;
use cranelift_codegen::ir::entities::AnyEntity;
use cranelift_codegen::ir::Function;
pub struct TestFile<'a> {
pub commands: Vec<TestCommand<'a>>,
pub isa_spec: IsaSpec,
pub features: Vec<Feature<'a>>,
pub preamble_comments: Vec<Comment<'a>>,
pub functions: Vec<(Function, Details<'a>)>,
}
#[derive(Debug)]
pub struct Details<'a> {
pub location: Location,
pub comments: Vec<Comment<'a>>,
pub map: SourceMap,
}
#[derive(Clone, PartialEq, Eq, Debug)]
pub struct Comment<'a> {
pub entity: AnyEntity,
pub text: &'a str,
}
#[derive(PartialEq, Eq, Debug)]
pub enum Feature<'a> {
With(&'a str),
Without(&'a str),
}