#![allow(non_camel_case_types, non_upper_case_globals)]
use std::sync::LazyLock;
mod consts;
mod types;
mod functions;
pub use consts::*;
pub use types::*;
#[cfg(not(feature = "dynamic_loading"))]
pub use functions::dynamic_linking::*;
#[cfg(feature = "dynamic_loading")]
pub use functions::dynamic_loading::*;
static LIB_RESULT: LazyLock<Result<libloading::Library, libloading::Error>> =
LazyLock::new(|| unsafe {
log::info!("Loading jack from {}.", JACK_LIB);
libloading::Library::new(JACK_LIB)
});
pub fn library() -> Result<&'static libloading::Library, impl std::error::Error> {
LIB_RESULT.as_ref()
}