hassium 0.1.3

Hassium home automation engine
Documentation
pub mod core {
    pub use hassium_core::*;
}
pub mod utils {
    pub use hassium_utils::*;
}
#[cfg(feature = "input")]
pub mod input {
    pub use hassium_input::*;
}
pub mod backend {
    #[cfg(feature = "web")]
    pub mod web {
        pub use hassium_backend_web::*;
        #[cfg(feature = "composite-renderer")]
        pub use hassium_composite_renderer_backend_web::*;
        #[cfg(feature = "input")]
        pub use hassium_input_device_web::*;
        #[cfg(feature = "network")]
        pub use hassium_network_backend_web::*;
    }
    #[cfg(feature = "desktop")]
    pub mod desktop {
        #[cfg(feature = "network")]
        pub use hassium_network_backend_desktop::*;
    }
    #[cfg(feature = "native")]
    pub mod desktop {
        #[cfg(feature = "network")]
        pub use hassium_network_backend_native::*;
    }
}
#[cfg(feature = "composite-renderer")]
pub mod composite_renderer {
    pub use hassium_composite_renderer::*;
}
#[cfg(feature = "network")]
pub mod network {
    pub use hassium_network::*;
}
#[cfg(feature = "procedural")]
pub mod procedural {
    pub use hassium_procedural::*;
}
#[cfg(feature = "navigation")]
pub mod navigation {
    pub use hassium_navigation::*;
}

pub mod prelude {
    #[cfg(feature = "web")]
    pub use hassium_backend_web::prelude::*;
    #[cfg(feature = "composite-renderer")]
    pub use hassium_composite_renderer::prelude::*;
    #[cfg(feature = "web")]
    #[cfg(feature = "composite-renderer")]
    pub use hassium_composite_renderer_backend_web::prelude::*;
    pub use hassium_core::prelude::*;
    #[cfg(feature = "input")]
    pub use hassium_input::prelude::*;
    #[cfg(feature = "web")]
    #[cfg(feature = "input")]
    pub use hassium_input_device_web::prelude::*;
    #[cfg(feature = "navigation")]
    pub use hassium_navigation::prelude::*;
    #[cfg(feature = "network")]
    pub use hassium_network::prelude::*;
    #[cfg(feature = "desktop")]
    #[cfg(feature = "network")]
    pub use hassium_network_backend_desktop::prelude::*;
    #[cfg(feature = "native")]
    #[cfg(feature = "network")]
    pub use hassium_network_backend_native::prelude::*;
    #[cfg(feature = "web")]
    #[cfg(feature = "network")]
    pub use hassium_network_backend_web::prelude::*;
    #[cfg(feature = "procedural")]
    pub use hassium_procedural::prelude::*;
    pub use hassium_utils::prelude::*;
}

#[macro_export]
macro_rules! log {
    ($lvl:expr, $($arg:tt)+) => ({
        $crate::core::log::logger_log($lvl, format!(
            "[{}: {} | {}]:\n{}",
            file!(),
            line!(),
            module_path!(),
            format_args!($($arg)+)
        ))
    })
}

#[macro_export]
macro_rules! info {
    ($($arg:tt)*) => (log!($crate::core::log::Log::Info, $($arg)*))
}

#[macro_export]
macro_rules! warn {
    ($($arg:tt)*) => (log!($crate::core::log::Log::Warning, $($arg)*))
}

#[macro_export]
macro_rules! error {
    ($($arg:tt)*) => (log!($crate::core::log::Log::Error, $($arg)*))
}