Skip to main content

nestrs_locks/
module.rs

1use crate::options::LocksOptions;
2use crate::LocksService;
3use axum::Router;
4use nestrs_core::{DynamicModule, ProviderRegistry};
5use std::any::TypeId;
6use std::sync::Arc;
7
8pub struct LocksModule;
9
10impl LocksModule {
11    pub fn register(options: LocksOptions) -> DynamicModule {
12        let mut registry = ProviderRegistry::new();
13        let service = Arc::new(LocksService::from_options(&options));
14        registry.register_use_value::<LocksService>(service);
15        registry.register_use_value::<LocksOptions>(Arc::new(options));
16        DynamicModule::from_parts(
17            registry,
18            Router::new(),
19            vec![TypeId::of::<LocksService>(), TypeId::of::<LocksOptions>()],
20        )
21    }
22}