evalit/
error.rs

1use crate::{ast::ParseError, compiler::CompileError, runtime::RuntimeError};
2
3#[derive(Debug)]
4pub enum Error {
5    Io(std::io::Error),
6    Parse(ParseError),
7    Compile(CompileError),
8    Runtime(RuntimeError),
9}
10
11impl From<std::io::Error> for Error {
12    fn from(error: std::io::Error) -> Self {
13        Error::Io(error)
14    }
15}
16
17impl From<ParseError> for Error {
18    fn from(error: ParseError) -> Self {
19        Error::Parse(error)
20    }
21}
22
23impl From<CompileError> for Error {
24    fn from(error: CompileError) -> Self {
25        Error::Compile(error)
26    }
27}
28
29impl From<RuntimeError> for Error {
30    fn from(error: RuntimeError) -> Self {
31        Error::Runtime(error)
32    }
33}