Skip to main content

dope_sys/io/socket/gso/
mode.rs

1use std::{convert, num};
2
3/// Segmentation capability and its borrowed ancillary storage.
4pub trait Mode: Sized {
5    type Capability;
6
7    fn acquire() -> Option<Self::Capability>;
8    fn control(cap: Self::Capability, size: num::NonZero<u16>) -> Self;
9    fn release(self) -> (Self::Capability, num::NonZero<u16>);
10    fn bytes(&mut self) -> &[u8];
11}
12
13impl Mode for convert::Infallible {
14    type Capability = Self;
15
16    fn acquire() -> Option<Self::Capability> {
17        None
18    }
19
20    fn control(cap: Self::Capability, _: num::NonZero<u16>) -> Self {
21        match cap {}
22    }
23
24    fn release(self) -> (Self::Capability, num::NonZero<u16>) {
25        match self {}
26    }
27
28    fn bytes(&mut self) -> &[u8] {
29        match *self {}
30    }
31}