openpql_pql_parser/ast/
str.rs1use 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}