1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
use crate::{
    ast::Expr,
    ast_builder::ExprNode,
    result::{Error, Result},
};

#[derive(Clone, Debug)]
pub struct ExprWithAliasNode<'a> {
    pub expr: ExprNode<'a>,
    pub alias: String,
}

impl<'a> TryFrom<ExprWithAliasNode<'a>> for (Expr, String) {
    type Error = Error;

    fn try_from(node: ExprWithAliasNode<'a>) -> Result<Self> {
        Ok((Expr::try_from(node.expr)?, node.alias))
    }
}