lib/grammar/ast/
quantifiers.rs

1use pest::iterators::Pair;
2use serde::Serialize;
3
4use crate::grammar::parser::Rule;
5
6#[derive(Debug, Clone, Eq, PartialEq, Serialize)]
7#[serde(rename_all = "lowercase")]
8pub enum Quantifiers {
9    K,
10    M,
11    G,
12}
13
14impl<'r> From<Pair<'r, Rule>> for Quantifiers {
15    fn from(pair: Pair<'r, Rule>) -> Self {
16        match pair.as_span().as_str() {
17            "K" => Quantifiers::K,
18            "M" => Quantifiers::M,
19            "G" => Quantifiers::G,
20            _ => {
21                unreachable!("Unexpected {:?} quantifier", pair.as_rule())
22            }
23        }
24    }
25}