use nix::libc;
use nix::libc::timeval;
#[derive(Debug)]
pub enum ErrorCode {
Success = 0,
InvalidConfig = -1,
ForkFailed = -2,
PthreadFailed = -3,
WaitFailed = -4,
RootRequired = -5,
LoadSeccompFailed = -6,
SetrlimitFailed = -7,
Dup2Failed = -8,
SetuidFailed = -9,
ExecveFailed = -10,
SpjError = -11,
}
pub(crate) enum ResultCode {
#[allow(dead_code)]
WrongAnswer = -1,
CpuTimeLimitExceeded = 1,
RealTimeLimitExceeded = 2,
MemoryLimitExceeded = 3,
RuntimeError = 4,
SystemError = 5,
}
pub(crate) fn get_time_us() -> u64 {
unsafe {
let mut tv: timeval = std::mem::zeroed();
libc::gettimeofday(&mut tv, std::ptr::null_mut());
(tv.tv_sec * 1000 * 1000 + tv.tv_usec) as u64
}
}