Skip to main content

mimium_lang/
runtime.rs

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}