aldrin_parser/ast/
lit_string.rs

1use crate::grammar::Rule;
2use crate::Span;
3use pest::iterators::Pair;
4
5#[derive(Debug, Clone)]
6pub struct LitString {
7    span: Span,
8    value: String,
9}
10
11impl LitString {
12    pub(crate) fn parse(pair: Pair<Rule>) -> Self {
13        assert_eq!(pair.as_rule(), Rule::lit_string);
14
15        let value = pair.as_str();
16        let value = value[1..value.len() - 1].to_owned();
17
18        Self {
19            span: Span::from_pair(&pair),
20            value,
21        }
22    }
23
24    pub fn span(&self) -> Span {
25        self.span
26    }
27
28    pub fn value(&self) -> &str {
29        &self.value
30    }
31}