aldrin_parser/ast/
lit_string.rs1use 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}