chartml_core/plugin/
resolver.rs1use async_trait::async_trait;
2use serde::{Deserialize, Serialize};
3use crate::error::ChartError;
4
5#[derive(Debug, Clone, Serialize, Deserialize)]
7pub struct ConnectionConfig {
8 pub provider: String,
9 pub connection_string: Option<String>,
10 pub config: std::collections::HashMap<String, serde_json::Value>,
11}
12
13#[cfg_attr(not(target_arch = "wasm32"), async_trait)]
15#[cfg_attr(target_arch = "wasm32", async_trait(?Send))]
16pub trait DatasourceResolver: Send + Sync {
17 async fn resolve(&self, slug: &str) -> Result<ConnectionConfig, ChartError>;
18}