Skip to main content

win_durable_ioring/
lib.rs

1// Copyright (c) 2026 Mike Grier
2#![doc = include_str!("../README.md")]
3#![cfg(windows)]
4// DI-D-4: no unsafe code, from the first commit. A Win32 call no lower crate wraps safely is added
5// to that crate, never written here.
6#![forbid(unsafe_code)]
7#![warn(missing_docs)]
8
9mod delivery;
10mod dioring;
11mod error_code;
12#[cfg(test)]
13mod fake;
14#[cfg(test)]
15mod held_pool;
16pub mod readiness;
17#[cfg(test)]
18mod scratch_volume;
19pub mod windows_backend;
20
21pub use delivery::{DeliveryEvent, DeliveryHandle, DeliverySetupError, EntryDelivery};
22pub use dioring::{
23    DeliveryMode, Dioring, FromClock, InterruptStamps, Setup, SetupError, SetupRefusal,
24    TargetSetup, TimeBase, WinInstant, WindowsIds,
25};
26pub use error_code::{error_code_from_win32, error_code_of, win32_code_of};
27pub use readiness::{ReadinessFailure, check_readiness};
28
29// The portable crate's API, so a consumer needs no direct dependency on it to use this driver.
30pub use durable_ioring::*;
31// The types the driver's signatures name from the crates it is built on, so a consumer needs no
32// direct dependency on them to call it.
33pub use win_shared_os_owned_handle::SharedHandle;
34pub use win_sync_sys::Event;
35pub use win_time_sys::{InterruptTime, TimePoint};