use xecute::{ModuleDefinition, ProviderDefinition};
use super::broker::{__TYPE__Queue, start};
pub struct __TYPE__Module;
impl __TYPE__Module {
pub fn module_name() -> &'static str {
std::any::type_name::<Self>()
}
pub fn provider() -> ProviderDefinition {
ProviderDefinition::singleton_async::<__TYPE__Queue, _, _>(vec![], |_| start())
.on_shutdown::<__TYPE__Queue, _, _>(|queue| async move {
queue.shutdown().await;
Ok(())
})
}
pub fn definition() -> ModuleDefinition {
ModuleDefinition::new(Self::module_name())
.provider(Self::provider())
.export::<__TYPE__Queue>()
}
}