Skip to main content

zer_judge/
error.rs

1/// Error type for the `zer-judge` crate.
2#[derive(Debug, thiserror::Error)]
3pub enum JudgeError {
4    #[error("tokenizer error: {0}")]
5    Tokenizer(String),
6
7    #[error("ORT session error: {0}")]
8    Session(String),
9
10    #[error("model inference error: {0}")]
11    Inference(String),
12
13    #[error("record not found in store: id={0}")]
14    RecordNotFound(u64),
15
16    #[error("judge worker thread disconnected")]
17    WorkerDisconnected,
18
19    #[error("I/O error: {0}")]
20    Io(#[from] std::io::Error),
21}
22
23impl From<JudgeError> for zer_core::error::ZerError {
24    fn from(e: JudgeError) -> Self {
25        zer_core::error::ZerError::Judge(e.to_string())
26    }
27}
28
29impl From<ort::Error> for JudgeError {
30    fn from(e: ort::Error) -> Self {
31        JudgeError::Session(e.to_string())
32    }
33}