mod container;
mod inject;
mod resolver;
pub use crate::arc_dyn;
pub use crate::shared_dyn;
pub use container::Container;
pub use inject::Injectable;
pub use noema_macros::Injectable;
pub use resolver::Resolver;
pub use std::sync::Arc;
pub type BoxDynError = Box<dyn std::error::Error + Send + Sync>;
pub type NoemaResult<T> = Result<T, BoxDynError>;
#[macro_export]
macro_rules! arc_dyn {
($trait:path) => {
Arc<dyn $trait + Send + Sync>
};
}
#[macro_export]
macro_rules! shared_dyn {
($trait:path) => {
dyn $trait + Send + Sync
};
}