1use std::time::Duration;
2
3use byte_unit::Byte;
4
5#[derive(Debug, PartialEq, Eq, Clone, Copy)]
6#[cfg_attr(feature = "serde", derive(serde::Serialize))]
7pub enum Verdict {
8 Accepted,
9 WrongAnswer,
10 TimeLimitExceeded,
11 CompilationError,
12 MemoryLimitExceeded,
13 RuntimeError,
14 IdleTimeLimitExceeded,
15}
16
17#[derive(Debug, Clone)]
18pub struct Metrics {
19 pub verdict: Verdict,
20 pub run_time: Duration,
21 pub memory_usage: Byte,
22 pub stdout: Vec<u8>,
23 pub stderr: Vec<u8>,
24}
25
26#[derive(Debug, Clone)]
27#[cfg_attr(feature = "serde", derive(serde::Serialize))]
28pub struct AggregatedMetrics {
29 pub verdict: Verdict,
30 pub average_run_time: Duration,
31 pub average_memory_usage: Byte,
32}