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
use std::io;
use tracing::error;
pub(crate) fn log_ret_last_os_err_with_note(note: &str) -> io::Error {
    let err = io::Error::last_os_error();
    if note.is_empty() {
        error!("OS error {:?}", err);
    } else {
        error!("OS error {:?}. Note: {}", err, note);
    }
    err
}
pub(crate) fn log_ret_last_os_err() -> io::Error {
    log_ret_last_os_err_with_note("")
}
pub(crate) fn log_last_os_err() {
    #[allow(clippy::pedantic)] let _ = log_ret_last_os_err_with_note("");
}
pub(crate) fn last_error() -> io::Error {
    io::Error::last_os_error()
}
pub(crate) fn log_ret<T>(ret: io::Result<T>, note: &str) -> io::Result<T> {
    if let Err(ref err) = ret {
        if note.is_empty() {
            error!("OS error {:?}", err);
        } else {
            error!("OS error {:?}. Note: {}", err, note);
        }
    }
    ret
}