wtx 0.28.0

A collection of different transport implementations and related tools focused primarily on web technologies.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
/// Generic parameter used in different buffer operations
#[derive(Clone, Copy, Debug)]
pub enum BufferMode {
  /// Buffer should be modified with more elements
  Additional(usize),
  /// Buffer should be modified using the exact specified length.
  Len(usize),
}

impl BufferMode {
  #[inline]
  pub(crate) fn params(self, len: usize) -> Option<(usize, usize)> {
    Some(match self {
      BufferMode::Additional(elem) => (elem, len.checked_add(elem)?),
      BufferMode::Len(elem) => (elem.checked_sub(len)?, elem),
    })
  }
}