1use crate::utils::{error::ReportableError, metadata::Location};
2use thiserror::Error;
3
4pub mod vm;
5#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord)]
6pub struct Time(pub u64);
7
8#[derive(Debug, Error)]
9pub enum ErrorKind {
10 #[error("Unknown Error")]
11 Unknown,
12}
13
14#[derive(Debug, Error)]
15#[error("Runtime Error: {0}")]
16pub struct RuntimeError(pub ErrorKind, pub Location);
17
18impl ReportableError for RuntimeError {
19 fn get_labels(&self) -> Vec<(crate::utils::metadata::Location, String)> {
20 vec![(self.1.clone(), self.0.to_string())]
21 }
22}