pub trait DataSource:
Debug
+ Send
+ Sync {
// Required methods
fn id(&self) -> &str;
fn get_data(&self) -> Result<Value>;
fn subscribe(
&mut self,
callback: Box<dyn Fn(Value) + Send + Sync>,
) -> Result<String>;
fn unsubscribe(&mut self, subscription_id: &str) -> Result<()>;
fn connect(&mut self) -> Result<()>;
fn disconnect(&mut self) -> Result<()>;
fn is_connected(&self) -> bool;
fn config(&self) -> &DataSourceConfig;
fn update_config(&mut self, config: DataSourceConfig) -> Result<()>;
fn get_history(
&self,
start: Instant,
end: Instant,
) -> Result<Vec<(Instant, Value)>>;
}Expand description
Data source trait for real-time data
Required Methods§
Sourcefn subscribe(
&mut self,
callback: Box<dyn Fn(Value) + Send + Sync>,
) -> Result<String>
fn subscribe( &mut self, callback: Box<dyn Fn(Value) + Send + Sync>, ) -> Result<String>
Subscribe to data updates
Sourcefn unsubscribe(&mut self, subscription_id: &str) -> Result<()>
fn unsubscribe(&mut self, subscription_id: &str) -> Result<()>
Unsubscribe from updates
Sourcefn disconnect(&mut self) -> Result<()>
fn disconnect(&mut self) -> Result<()>
Disconnect from data source
Sourcefn is_connected(&self) -> bool
fn is_connected(&self) -> bool
Check if connected
Sourcefn config(&self) -> &DataSourceConfig
fn config(&self) -> &DataSourceConfig
Get configuration
Sourcefn update_config(&mut self, config: DataSourceConfig) -> Result<()>
fn update_config(&mut self, config: DataSourceConfig) -> Result<()>
Update configuration