1 | use crate::backend::c; |
2 | use bitflags::bitflags; |
3 | |
4 | bitflags! { |
5 | /// `MSG_*` flags for use with [`send`], [`send_to`], and related |
6 | /// functions. |
7 | /// |
8 | /// [`send`]: crate::net::send |
9 | /// [`sendto`]: crate::net::sendto |
10 | #[repr (transparent)] |
11 | #[derive (Copy, Clone, Eq, PartialEq, Hash, Debug)] |
12 | pub struct SendFlags: u32 { |
13 | /// `MSG_CONFIRM` |
14 | const CONFIRM = c::MSG_CONFIRM; |
15 | /// `MSG_DONTROUTE` |
16 | const DONTROUTE = c::MSG_DONTROUTE; |
17 | /// `MSG_DONTWAIT` |
18 | const DONTWAIT = c::MSG_DONTWAIT; |
19 | /// `MSG_EOT` |
20 | const EOT = c::MSG_EOR; |
21 | /// `MSG_MORE` |
22 | const MORE = c::MSG_MORE; |
23 | /// `MSG_NOSIGNAL` |
24 | const NOSIGNAL = c::MSG_NOSIGNAL; |
25 | /// `MSG_OOB` |
26 | const OOB = c::MSG_OOB; |
27 | |
28 | /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags> |
29 | const _ = !0; |
30 | } |
31 | } |
32 | |
33 | bitflags! { |
34 | /// `MSG_*` flags for use with [`recv`], [`recvfrom`], and related |
35 | /// functions. |
36 | /// |
37 | /// [`recv`]: crate::net::recv |
38 | /// [`recvfrom`]: crate::net::recvfrom |
39 | #[repr (transparent)] |
40 | #[derive (Copy, Clone, Eq, PartialEq, Hash, Debug)] |
41 | pub struct RecvFlags: u32 { |
42 | /// `MSG_CMSG_CLOEXEC` |
43 | const CMSG_CLOEXEC = c::MSG_CMSG_CLOEXEC; |
44 | /// `MSG_DONTWAIT` |
45 | const DONTWAIT = c::MSG_DONTWAIT; |
46 | /// `MSG_ERRQUEUE` |
47 | const ERRQUEUE = c::MSG_ERRQUEUE; |
48 | /// `MSG_OOB` |
49 | const OOB = c::MSG_OOB; |
50 | /// `MSG_PEEK` |
51 | const PEEK = c::MSG_PEEK; |
52 | /// `MSG_TRUNC` |
53 | const TRUNC = c::MSG_TRUNC; |
54 | /// `MSG_WAITALL` |
55 | const WAITALL = c::MSG_WAITALL; |
56 | |
57 | /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags> |
58 | const _ = !0; |
59 | } |
60 | } |
61 | |