/// Common dependencies.
#[doc(inline)]
pub use luwen_def as def;

/// PCIe communication.
#[doc(inline)]
pub use luwen_pci as pci;

/// Generalized driver API.
///
/// Main user-mode interface exposed by luwen.
#[doc(inline)]
pub use luwen_api as api;

/// Kernel-mode driver API.
#[doc(inline)]
pub use luwen_kmd as kmd;

/// Error types.
#[doc(hidden)]
pub mod err {
    /// A convenient type alias for [`Result`](std::result::Result).
    pub type Result<T, E = Error> = std::result::Result<T, E>;

    /// A top-level error generated by luwen.
    pub use crate::pci::error::LuwenError as Error;
}

pub use err::{Error, Result};
