pub trait ExprProducer<'a, 'b> {
    // Required methods
    fn new(allocator: &'a Allocator<'a>) -> Self
       where Self: Sized;
    fn produce(&mut self, expr: CExpr<'b>) -> CExpr<'a>;
    fn produce_slice(&mut self, expr: &'b [Expr<'b>]) -> &'a [Expr<'a>];
    fn produce_alt(&mut self, alt: &'b Alternative<'b>) -> Alternative<'a>;
    fn allocator(&self) -> &'a Allocator<'a>;
}

Required Methods§

source

fn new(allocator: &'a Allocator<'a>) -> Self
where Self: Sized,

source

fn produce(&mut self, expr: CExpr<'b>) -> CExpr<'a>

source

fn produce_slice(&mut self, expr: &'b [Expr<'b>]) -> &'a [Expr<'a>]

source

fn produce_alt(&mut self, alt: &'b Alternative<'b>) -> Alternative<'a>

source

fn allocator(&self) -> &'a Allocator<'a>

Implementors§

source§

impl<'a> ExprProducer<'a, 'a> for SameLifetime<'a>

source§

impl<'a, 'b> ExprProducer<'a, 'b> for DifferentLifetime<'a, 'b>