// Copyright (c) Microsoft Corporation
// License: MIT OR Apache-2.0

//! Direct FFI bindings to SPB APIs from the Windows Driver Kit (WDK)
//!
//! This module contains all bindings to functions, constants, methods,
//! constructors and destructors in the following headers: `spb.h`, `spbcx.h`,
//! `reshub.h`, `pwmutil.h`. Types are not included in this module, but are
//! available in the top-level `wdk_sys` module.

#[allow(
    missing_docs,
    reason = "most items in the WDK headers have no inline documentation, so bindgen is unable to \
              generate documentation for their bindings"
)]
mod bindings {
    #[allow(
        clippy::wildcard_imports,
        reason = "the underlying c code relies on all type definitions being in scope, which \
                  results in the bindgen generated code relying on the generated types being in \
                  scope as well"
    )]
    #[allow(
        unused_imports,
        reason = "in certain versions of the WDK, there are no functions related to SPB that can \
                  be generated by bindgen, so these types are unused"
    )]
    use crate::types::*;

    include!(concat!(env!("OUT_DIR"), "/spb.rs"));
}
#[allow(
    unused_imports,
    reason = "in certain versions of the WDK, there are no functions related to SPB that can be \
              generated by bindgen, so the `bindings` module is empty"
)]
pub use bindings::*;
