zerolaunch_plugin_api/services/parameter/provider.rs
1//! 系统参数提供者 trait 定义
2
3/// 系统参数提供者错误
4#[derive(Debug, thiserror::Error)]
5pub enum ProviderError {
6 /// 无法获取参数值
7 #[error("无法获取参数值: {0}")]
8 GetValueFailed(String),
9}
10
11/// 系统参数提供者 trait
12///
13/// 设计原则:
14/// - 每个 Provider 负责获取一种系统参数
15/// - 通过依赖注入到 HostApi,便于测试和跨平台实现
16/// - 异步接口,支持需要 I/O 操作的参数获取
17///
18/// 架构说明:
19/// - trait 定义在功能模块内,与 IconExtractor、ShellExecutor 等保持一致
20/// - 平台实现在 sdk/platform/windows/parameter_providers.rs
21#[async_trait::async_trait]
22pub trait SystemParameterProvider: Send + Sync {
23 /// 获取参数值
24 ///
25 /// 返回:参数值的字符串表示,失败返回 ProviderError
26 async fn get_value(&self) -> Result<String, ProviderError>;
27}