sipha_pratt/
precedence.rs1use std::ops::{Add, AddAssign};
4
5#[derive(Copy, Clone, Debug, PartialEq, Eq, PartialOrd, Ord)]
10#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
11pub struct Precedence(pub u8);
12
13impl Add for Precedence {
14 type Output = Precedence;
15
16 fn add(self, rhs: Precedence) -> Self::Output {
17 Precedence(self.0.saturating_add(rhs.0))
18 }
19}
20
21impl AddAssign for Precedence {
22 fn add_assign(&mut self, rhs: Precedence) {
23 *self = *self + rhs;
24 }
25}