use std::ffi::OsString;
use server::ServerInfo;
#[derive(Serialize, Deserialize, Debug)]
pub enum Request {
ZeroStats,
GetStats,
Shutdown,
Compile(Compile),
}
#[derive(Serialize, Deserialize, Debug)]
pub enum Response {
Compile(CompileResponse),
Stats(ServerInfo),
ShuttingDown(ServerInfo),
CompileFinished(CompileFinished),
}
#[derive(Serialize, Deserialize, Debug)]
pub enum CompileResponse {
CompileStarted,
UnhandledCompile,
}
#[derive(Serialize, Deserialize, Debug, Default)]
pub struct CompileFinished {
pub retcode: Option<i32>,
pub signal: Option<i32>,
pub stdout: Vec<u8>,
pub stderr: Vec<u8>,
}
#[derive(Serialize, Deserialize, Debug)]
pub struct Compile {
pub exe: OsString,
pub cwd: OsString,
pub args: Vec<OsString>,
pub env_vars: Vec<(OsString, OsString)>,
}