use super::types::{ParseError, ParseResult};
#[derive(Debug, Clone, PartialEq)]
pub struct ParseOutput {
pub expression: Option<crate::ast::Expression>,
pub errors: Vec<ParseError>,
}
impl ParseOutput {
pub fn is_ok(&self) -> bool {
self.expression.is_some() && self.errors.is_empty()
}
pub fn has_errors(&self) -> bool {
!self.errors.is_empty()
}
pub fn from_result(result: ParseResult<crate::ast::Expression>) -> Self {
match result {
Ok(expr) => Self {
expression: Some(expr),
errors: vec![],
},
Err(err) => Self {
expression: None,
errors: vec![err],
},
}
}
}