|
| 1 | +use std::fmt; |
| 2 | + |
1 | 3 | use super::execution::*; |
2 | 4 | use super::submission::*; |
3 | 5 | use colored::Colorize; |
4 | 6 | use serde::Deserialize; |
5 | 7 |
|
6 | | -#[derive(Deserialize)] |
| 8 | +#[derive(Debug, Deserialize)] |
7 | 9 | #[serde(untagged)] |
8 | 10 | pub enum SubmissionResult { |
9 | 11 | Success(SubmitCorrect), |
@@ -42,24 +44,38 @@ pub struct Question { |
42 | 44 | pub exampleTestcaseList: Vec<String>, |
43 | 45 | } |
44 | 46 |
|
45 | | -#[derive(Deserialize)] |
| 47 | +#[derive(Debug, Deserialize)] |
46 | 48 | pub struct PendingResult { |
47 | 49 | pub(crate) state: String, |
48 | 50 | } |
49 | 51 |
|
50 | | -#[derive(Deserialize)] |
| 52 | +#[derive(Debug, Deserialize)] |
51 | 53 | pub struct Unknown {} |
52 | 54 |
|
| 55 | +impl fmt::Display for SubmissionResult { |
| 56 | + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { |
| 57 | + match self { |
| 58 | + SubmissionResult::Success(inner) => write!(f, "{}", inner), |
| 59 | + SubmissionResult::CompileError(inner) => write!(f, "{}", inner), |
| 60 | + SubmissionResult::RuntimeError(inner) => write!(f, "{}", inner), |
| 61 | + SubmissionResult::Wrong(inner) => write!(f, "{}", inner), |
| 62 | + SubmissionResult::LimitExceeded(inner) => write!(f, "{}", inner), |
| 63 | + SubmissionResult::PendingResult(inner) => write!(f, "{}", inner), |
| 64 | + SubmissionResult::Unknown(inner) => write!(f, "Unknown"), |
| 65 | + } |
| 66 | + } |
| 67 | +} |
| 68 | + |
53 | 69 | impl PendingResult { |
54 | 70 | pub fn state(&self) -> PendingState { |
55 | 71 | match self.state.as_str() { |
56 | 72 | "PENDING" => PendingState::Pending, |
57 | 73 | "STARTED" => PendingState::Started, |
58 | 74 | "SUCCESS" => PendingState::Success, |
59 | | - unknown_state => { |
| 75 | + other => { |
60 | 76 | println!( |
61 | 77 | "Unknown state : {}\nKindly inform about this to the developer", |
62 | | - unknown_state.cyan().bold() |
| 78 | + other.cyan().bold() |
63 | 79 | ); |
64 | 80 | PendingState::Unknown |
65 | 81 | } |
|
0 commit comments