wp_specs/
lib.rs

1use serde::{Deserialize, Serialize};
2
3/// Ultra-light core specs shared across config and plugin layers.
4/// Keep dependencies minimal and avoid tying to config-domain types.
5#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
6pub struct CoreSinkSpec {
7    pub name: String,
8    #[serde(rename = "type")]
9    pub kind: String,
10    #[serde(default)]
11    pub params: ParamMap,
12    #[serde(default)]
13    pub filter: Option<String>,
14    #[serde(default)]
15    pub tags: Vec<String>,
16}
17
18/// CoreSourceSpec:与 CoreSinkSpec 一致的极简规格(扁平 params,不包含运行期上下文)。
19/// 用于 Sources 的统一 Factory 路径输入。
20#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
21pub struct CoreSourceSpec {
22    pub name: String,
23    #[serde(rename = "type")]
24    pub kind: String,
25    #[serde(default)]
26    pub params: ParamMap,
27    #[serde(default)]
28    pub tags: Vec<String>,
29}
30
31// Lightweight pattern helpers shared across config/spec layers
32pub mod pattern;
33
34// Re-export commonly used types at crate root for convenience
35pub use pattern::WildArray;
36use wp_connector_api::ParamMap;