1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
|
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
#[repr(i64)]
pub enum Errno {
ENOENT = 2, EIO = 5, E2BIG = 7, ENOEXEC = 8, EBADF = 9, ECHILD = 10, EAGAIN = 11, ENOMEM = 12, EFAULT = 14, EBUSY = 16, EEXIST = 17, ENOTDIR = 20, EISDIR = 21, EINVAL = 22, EMFILE = 24, ENOSPC = 28, ENOTTY = 25, EFBIG = 27, ESPIPE = 29, EROFS = 30, EPIPE = 32, ERANGE = 34, ENAMETOOLONG = 36, ENOSYS = 38, ENOTEMPTY = 39, ELOOP = 40, EOPNOTSUPP = 95, }
impl Errno {
pub fn from_ret(ret: i64) -> Option<Errno> {
use Errno::*;
const ALL: [Errno; 27] = [
ENOENT, EIO, E2BIG, ENOEXEC, EBADF, ECHILD, EAGAIN, ENOMEM, EFAULT, EBUSY, EEXIST,
ENOTDIR, EISDIR, EINVAL, EMFILE, ENOTTY, EFBIG, ENOSPC, ESPIPE, EROFS, EPIPE, ERANGE,
ENAMETOOLONG, ENOSYS, ENOTEMPTY, ELOOP, EOPNOTSUPP,
];
ALL.into_iter().find(|&e| -(e as i64) == ret)
}
}
|