use crate::{ModulePath, Output};
use std::{collections, error, path};
mod bad_input;
mod cell_parse_error;
mod display;
mod eval_error;
mod from;
mod parse_error;
pub type Result<T> = std::result::Result<T, Error>;
pub(crate) use bad_input::BadInput;
pub(crate) use cell_parse_error::CellParseError;
#[allow(clippy::module_name_repetitions)]
pub use eval_error::EvalError;
pub(crate) type EvalResult<T> = std::result::Result<T, EvalError>;
#[allow(clippy::module_name_repetitions)]
pub use parse_error::ParseError;
pub(crate) type ParseResult<T> = std::result::Result<T, ParseError>;
#[derive(Debug)]
pub enum Error {
CellSyntaxError {
filename: path::PathBuf,
address: a1::Address,
parse_error: Box<ParseError>,
},
CodeSyntaxError {
filename: path::PathBuf,
parse_error: Box<ParseError>,
},
CsvParseError {
filename: path::PathBuf,
parse_error: Box<ParseError>,
},
EvalError {
eval_error: Box<EvalError>,
filename: path::PathBuf,
address: Option<a1::Address>,
},
GoogleSetupError(String),
InitError(String),
ModuleLoadError(String),
ModuleLoadErrors(collections::HashMap<ModulePath, Error>),
SourceCodeError {
filename: path::PathBuf,
message: String,
},
TargetWriteError {
message: String,
output: Output,
},
}
impl error::Error for Error {}