dope_sys/io/socket/gso/
mode.rs1use std::{convert, num};
2
3pub 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}