#[allow(unused_imports)]
use super::*;
pub struct ModuleExt {
pub(crate) trace_clicks: crate::application::service::trace_click_ports::TraceClickSlot,
pub(crate) trace_route_service:
std::sync::Arc<crate::application::service::trace_route_service::TraceRouteService>,
}
pub struct ModuleBuilderExt {
}
impl Default for ModuleBuilderExt {
fn default() -> Self {
Self {
}
}
}
impl ModuleBuilderExt {
#[allow(unused_variables, clippy::redundant_clone)]
pub(crate) fn build(self, parts: &ModuleParts<'_>) -> anyhow::Result<ModuleExt> {
let db_pool = parts.db_pool.clone();
let trace_clicks =
crate::application::service::trace_click_ports::TraceClickSlot::default();
let trace_route_service = std::sync::Arc::new(
crate::application::service::trace_route_service::TraceRouteService::new(
db_pool.clone(),
trace_clicks.clone(),
),
);
Ok(ModuleExt {
trace_clicks,
trace_route_service,
})
}
}
impl crate::ThisModule {
pub fn set_trace_click_port(
&self,
port: std::sync::Arc<dyn crate::application::service::trace_click_ports::TraceClickPort>,
) {
self.trace_clicks.install(port);
}
pub fn public_trace_routes(&self) -> Router {
crate::presentation::http::trace_routes::public_composer(
self.trace_route_service.clone(),
)
}
}