DataSource

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§

Source

fn id(&self) -> &str

Get data source ID

Source

fn get_data(&self) -> Result<Value>

Get latest data

Source

fn subscribe( &mut self, callback: Box<dyn Fn(Value) + Send + Sync>, ) -> Result<String>

Subscribe to data updates

Source

fn unsubscribe(&mut self, subscription_id: &str) -> Result<()>

Unsubscribe from updates

Source

fn connect(&mut self) -> Result<()>

Connect to data source

Source

fn disconnect(&mut self) -> Result<()>

Disconnect from data source

Source

fn is_connected(&self) -> bool

Check if connected

Source

fn config(&self) -> &DataSourceConfig

Get configuration

Source

fn update_config(&mut self, config: DataSourceConfig) -> Result<()>

Update configuration

Source

fn get_history( &self, start: Instant, end: Instant, ) -> Result<Vec<(Instant, Value)>>

Get data history

Implementors§