#![forbid(unsafe_code)] #![warn(trivial_casts, unused_lifetimes, unused_qualifications)] pub mod mime_db; pub mod findings; pub mod formats; pub mod inspectors; pub mod parameters; pub mod string_type; pub mod utils; pub mod files; use cfg_if::cfg_if; use once_cell::sync::OnceCell; use crate::findings::Findings; use crate::mime_db::MimeDb; cfg_if! { if #[cfg(any(all(unix, feature = "infer-backend"), all(not(unix), not(feature = "xdg-mime-backend"))))] { /// A [OnceCell] holding an instance of [mime_db::MimeDb]. pub static MIMEDB: OnceCell = OnceCell::new(); } else { /// A [OnceCell] holding an instance of [mime_db::MimeDb]. pub static MIMEDB: OnceCell = OnceCell::new(); } } /// Initialises [`MIMEDB`] with a value dependent on the current backend. pub fn init_db() { cfg_if! { if #[cfg(any(all(unix, feature = "infer-backend"), all(not(unix), not(feature = "xdg-mime-backend"))))] { MIMEDB .set(crate::mime_db::InferDb::init()) .or(Err("Failed to initialise Infer backend!")) .unwrap(); } else { MIMEDB .set(crate::mime_db::XdgDb::init()) .or(Err("Failed to initialise XDG Mime backend!")) .unwrap(); } } }