use derive_more::{Display, FromStr};
use serde::{Deserialize, Serialize};
#[derive(
Clone,
Copy,
Debug,
Default,
PartialEq,
Eq,
PartialOrd,
Ord,
Display,
FromStr,
Serialize,
Deserialize,
)]
#[serde(transparent)]
pub struct Tokens(pub usize);
#[derive(
Clone,
Copy,
Debug,
Default,
PartialEq,
Eq,
PartialOrd,
Ord,
Display,
FromStr,
Serialize,
Deserialize,
)]
#[serde(transparent)]
pub struct Lines(pub usize);
#[derive(
Clone, Copy, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Display, Serialize, Deserialize,
)]
#[serde(transparent)]
pub struct Bytes(pub usize);
#[derive(
Clone,
Copy,
Debug,
Default,
PartialEq,
Eq,
PartialOrd,
Ord,
Display,
FromStr,
Serialize,
Deserialize,
)]
#[serde(transparent)]
pub struct Depth(pub usize);
impl Tokens {
pub fn saturating_add(self, rhs: Self) -> Self {
Self(self.0.saturating_add(rhs.0))
}
}
impl Lines {
pub fn saturating_add(self, rhs: Self) -> Self {
Self(self.0.saturating_add(rhs.0))
}
}
impl Bytes {
pub fn saturating_add(self, rhs: Self) -> Self {
Self(self.0.saturating_add(rhs.0))
}
}