37 lines
715 B
Rust
37 lines
715 B
Rust
pub mod errors;
|
|
pub mod warnings;
|
|
|
|
use crate::syntax::ParserError;
|
|
|
|
pub use self::errors::Error;
|
|
pub use self::warnings::Warning;
|
|
|
|
pub struct PassResult<T> {
|
|
pub result: Option<T>,
|
|
pub warnings: Vec<Warning>,
|
|
pub errors: Vec<Error>,
|
|
}
|
|
|
|
impl<T> From<ParserError> for PassResult<T> {
|
|
fn from(value: ParserError) -> Self {
|
|
PassResult {
|
|
result: None,
|
|
warnings: vec![],
|
|
errors: vec![Error::ParserError(value)],
|
|
}
|
|
}
|
|
}
|
|
|
|
impl<T, E> From<E> for PassResult<T>
|
|
where
|
|
Error: From<E>,
|
|
{
|
|
fn from(x: E) -> Self {
|
|
PassResult {
|
|
result: None,
|
|
warnings: vec![],
|
|
errors: vec![Error::from(x)],
|
|
}
|
|
}
|
|
}
|