use pest::iterators::Pair;
use crate::parser::Rule;
pub(crate) fn is_capitalized(s: &str) -> bool {
let mut chars = s.chars();
let Some(first_char) = chars.next() else {
return true;
};
first_char.is_uppercase() && chars.all(|c| c.is_lowercase())
}
pub(crate) fn is_lowercase(s: &str) -> bool {
s.chars().all(|c| c.is_lowercase())
}
pub(crate) enum Sign {
Neg,
Pos,
}
pub(crate) trait PairsIterExtension {
fn next_if_rule(&mut self, rule: Rule) -> Option<Pair<'_, Rule>>;
}
impl PairsIterExtension for pest::iterators::Pairs<'_, Rule> {
fn next_if_rule(&mut self, rule: Rule) -> Option<Pair<'_, Rule>> {
let pair = self.peek()?;
if pair.as_rule() == rule {
self.next()
} else {
None
}
}
}