#![forbid(unsafe_code)]
#![deny(missing_docs)]
mod error;
mod extract;
mod factory_ctx;
mod inject;
mod injectable;
mod lifecycle;
mod provider;
mod registry;
mod resolve;
mod singleton;
#[cfg(feature = "axum")]
mod axum;
pub use error::{InjectableError, InjectableResult};
pub use extract::Extract;
pub use factory_ctx::FactoryCtx;
pub use inject::Inject;
pub use injectable::Injectable;
pub use lifecycle::{HookResult, PostConstruct, PreDestruct};
pub use provider::{DynProvider, Provider};
pub use registry::{
DEFAULT_TOKEN, InjectableArcFactory, InjectableHooksEntry, InjectableProvideFnPtr,
MakePreDestructFnPtr, PostConstructFnPtr, ProviderRegistry,
};
pub use resolve::ResolveContext;
pub use singleton::{EmptySingletonStore, RequestScoped, Singleton, SingletonStore, Transient};
#[cfg(feature = "axum")]
pub use axum::{InjectableRejection, InjectableState};
#[doc(hidden)]
pub use inventory;