open_pql/pql_parser/ast/
fncall.rs

1use super::*;
2
3#[derive(Debug, Eq, PartialEq, From)]
4pub struct FnCall<'i> {
5    pub name: Ident<'i>,
6    pub args: Vec<Expr<'i>>,
7
8    pub loc: (Loc, Loc),
9}
10
11#[cfg(test)]
12mod tests {
13    use super::{super::super::parser::*, *};
14
15    fn f(s: &str) -> FnCall<'_> {
16        FnCallParser::new().parse(s).unwrap()
17    }
18
19    #[test]
20    fn test_expr() {
21        let obj = f("equity(hero, river)");
22
23        assert_eq!(obj.name, ("equity", (0, 6)).into());
24        assert_eq!(obj.args.len(), 2);
25        assert_eq!(obj.args[0], Expr::Ident(("hero", (7, 11)).into()));
26        assert_eq!(obj.args[1], Expr::Ident(("river", (13, 18)).into()));
27        assert_eq!(obj.loc, (0, 19));
28    }
29}