use std::future::Future;
use crate::models::{CaseResult, StudentFile, TestCase, TestSpec};
pub trait Executor: Send + Sync {
fn language(&self) -> &str;
fn execute_case(
&self,
student_file: &StudentFile,
spec: &TestSpec,
case: &TestCase,
timeout_secs: u64,
) -> impl Future<Output = CaseResult> + Send;
}