Skip to main content

code_executor/
metrics.rs

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}