eval_stack/engine/
models.rs

1use std::path::PathBuf;
2
3use serde::{Deserialize, Serialize};
4use surrealdb::sql::Thing;
5
6use crate::compile::Language;
7
8#[derive(Serialize, Deserialize, Clone, Debug)]
9#[serde(rename_all = "snake_case")]
10pub enum Status {
11    InQueue,
12    Judging,
13    Ready,
14}
15
16#[derive(Debug, Serialize, Deserialize)]
17pub struct TestCase {
18    pub input: PathBuf,
19    pub output: PathBuf,
20}
21
22#[derive(Debug, Serialize, Deserialize)]
23pub struct Submission {
24    pub id: Thing,
25
26    pub lang: Language,
27    pub test_cases: Vec<TestCase>,
28
29    pub code: String,
30    pub status: Status,
31    pub creator: Thing,
32
33    pub created_at: chrono::NaiveDateTime,
34    pub updated_at: chrono::NaiveDateTime,
35}