openpql_pql_parser/ast/
str.rs

1use super::{Loc, str};
2
3#[derive(Clone, PartialEq, Eq, derive_more::From, derive_more::Debug)]
4#[debug("{:?}", self.inner)]
5pub struct Str<'i> {
6    pub inner: &'i str,
7    pub loc: (Loc, Loc),
8}
9
10#[cfg(test)]
11mod tests {
12    use super::*;
13    use crate::*;
14
15    fn assert_str(src: &str, expected: &str) {
16        let loc_start = 0;
17        let loc_end = src.len();
18        assert_eq!(parse_str(src), Ok((expected, (loc_start, loc_end)).into()));
19    }
20
21    #[test]
22    fn test_str() {
23        assert_str(r#""str""#, "str");
24        assert_str(r#""""#, "");
25
26        assert_str("'str'", "str");
27        assert_str("''", "");
28
29        assert_str("'one two three'", "one two three");
30    }
31
32    #[test]
33    fn test_dbg() {
34        assert_eq!(
35            format!("{:?}", Str::from(("content", (0, 1)))),
36            "\"content\""
37        );
38    }
39}