Skip to main content

openlark_client/
features.rs

1//! 🔥 OpenLark Client Feature Loader
2//!
3//! 根据feature标志动态加载和配置服务
4
5use crate::{Config, DefaultServiceRegistry, Result};
6
7/// 🔥 功能加载器 - 编译时feature驱动加载
8///
9/// 根据feature标志动态加载crates,提供类型安全的服务发现
10#[derive(Debug, Clone, Copy)]
11pub struct FeatureLoader;
12
13impl FeatureLoader {
14    /// 🚀 加载所有启用的服务
15    pub async fn load_services(
16        &self,
17        _config: &Config,
18        registry: &mut DefaultServiceRegistry,
19    ) -> Result<()> {
20        tracing::debug!("开始加载启用的服务");
21        crate::registry::bootstrap::register_compiled_services(registry)?;
22
23        tracing::info!("所有启用的服务加载完成");
24        Ok(())
25    }
26}
27
28#[cfg(test)]
29#[allow(unused_imports)]
30mod tests {
31    use super::*;
32
33    #[test]
34    fn test_feature_loader_debug() {
35        let loader = FeatureLoader;
36        let debug_str = format!("{:?}", loader);
37        assert!(debug_str.contains("FeatureLoader"));
38    }
39}