#![allow(clippy::needless_doctest_main)]
#[macro_use]
mod trait_alias;
mod component;
mod module;
mod parameters;
mod provider;
pub mod guide;
#[cfg(feature = "derive")]
pub use {shaku_derive::module, shaku_derive::Component, shaku_derive::Provider};
#[doc(hidden)]
#[cfg(feature = "thread_safe")]
#[macro_export]
macro_rules! __shaku_once_cell {
() => {
::std::sync::OnceLock::new()
};
($value:ty) => {
::std::sync::OnceLock<$value>
};
}
#[doc(hidden)]
#[cfg(not(feature = "thread_safe"))]
#[macro_export]
macro_rules! __shaku_once_cell {
() => {
::std::cell::OnceCell::new()
};
($value:ty) => {
::std::cell::OnceCell<$value>
};
}
pub use crate::{component::*, module::*, provider::*};