1#[derive(Debug, Clone, PartialEq, Eq)]
3pub enum NodeKind {
4 Adapter {
6 namespace: String,
7 adapter: String,
8 operation: String,
9 },
10 Builtin(String),
12}
13
14pub fn classify_node_type(node_type: &str) -> NodeKind {
16 let parts = node_type.split('.').collect::<Vec<_>>();
17 if parts.len() >= 3 {
18 let namespace = parts[0].to_string();
19 let adapter = parts[1].to_string();
20 let operation = parts[2..].join(".");
21 NodeKind::Adapter {
22 namespace,
23 adapter,
24 operation,
25 }
26 } else {
27 NodeKind::Builtin(node_type.to_string())
28 }
29}