noema 0.4.0

Noema IOC and DI framework for Rust
Documentation
mod container;
mod inject;
mod resolver;

pub use container::Container;
pub use inject::Injectable;
pub use noema_macros::Injectable;
pub use resolver::Resolver;
pub use std::sync::Arc;

pub use crate::arc_dyn;
pub use crate::dyn_sync;

/// A helper macro to create a type alias for a dynamic trait object wrapped in an Arc.
/// Arc<dyn Trait + Send + Sync>
#[macro_export]
macro_rules! arc_dyn {
    ($trait:path) => {
        Arc<dyn $trait + Send + Sync>
    };
}

/// A helper macro for a Send + Sync trait object type.
/// dyn Trait + Send + Sync
#[macro_export]
macro_rules! dyn_sync {
    ($trait:path) => {
        dyn $trait + Send + Sync
    };
}