]>
git.proxmox.com Git - cargo.git/blob - vendor/miow/src/lib.rs
1 //! A zero overhead Windows I/O library
6 #![doc(html_root_url = "https://docs.rs/miow/0.3/x86_64-pc-windows-msvc/")]
16 use std
::time
::Duration
;
18 use winapi
::shared
::minwindef
::*;
19 use winapi
::um
::winbase
::*;
26 Err(e
) => panic
!("{} failed with {:?}", stringify
!($e
), e
),
38 pub use crate::overlapped
::Overlapped
;
40 fn cvt(i
: BOOL
) -> io
::Result
<BOOL
> {
42 Err(io
::Error
::last_os_error())
48 fn dur2ms(dur
: Option
<Duration
>) -> u32 {
51 None
=> return INFINITE
,
53 let ms
= dur
.as_secs().checked_mul(1_000);
54 let ms_extra
= dur
.subsec_nanos() / 1_000_000;
55 ms
.and_then(|ms
| ms
.checked_add(ms_extra
as u64))
56 .map(|ms
| cmp
::min(u32::max_value() as u64, ms
) as u32)
57 .unwrap_or(INFINITE
- 1)