aqua_parse 0.27.0

A parser library.
use super::*;

mod repeated;
mod until;
mod list;
mod maybe;

pub use maybe::*;
pub use list::*;
pub use until::*;
pub use repeated::*;

use std::ops::Deref;
use std::fmt::Display;

impl<P : Parse> Parse for Box<P> {
	
	fn span(&self) -> &Span {
		
		self.as_ref().span()

	}

	fn parse(state: &mut State) -> Result<Self> {
		
		Ok(Box::new(P::parse(state)?))
		
	}
	
}


impl<P : Parse> Parse for Rc<P> {

	fn span(&self) -> &Span {
		
		self.as_ref().span()

	}

	fn parse(state: &mut State) -> Result<Self> {

		Ok(Rc::new(P::parse(state)?))

	}

}