Skip to main content

sark_http/payload/response/exact/
overflow.rs

1use std::num::NonZero;
2
3/// Encoded-length arithmetic exceeded the representable domain.
4#[derive(Clone, Copy, Debug, PartialEq, Eq)]
5pub struct Overflow {
6    pub current: usize,
7    pub added: NonZero<usize>,
8}
9
10impl Overflow {
11    pub fn try_add(current: usize, added: usize) -> Result<usize, Self> {
12        current.checked_add(added).ok_or_else(|| Self {
13            current,
14            added: NonZero::<usize>::MIN.saturating_add(added - 1),
15        })
16    }
17}