Skip to main content

uses

Macro uses 

Source
macro_rules! uses {
    ($name:tt, $data_src:expr) => { ... };
}
Expand description

Registers a global data source that can be used throughout the application.

This macro associates a given DataSrc implementation with a unique name. This name will later be used to retrieve session-specific DataConn instances from this data source.

Global data sources are set up once via the setup function and are available to all DataHub instances.

§Parameters

  • name: The unique name for the data source.
  • ds: The DataSrc instance to register.

§Examples

use sabi::{DataSrc, DataConn, AsyncGroup, uses};
use errs::Err;

struct MyDataSrc;
impl DataSrc<MyDataConn> for MyDataSrc {
    fn setup(&mut self, _ag: &mut AsyncGroup) -> errs::Result<()> { Ok(()) }
    fn close(&mut self) {}
    fn create_data_conn(&mut self) -> errs::Result<Box<MyDataConn>> {
        Ok(Box::new(MyDataConn))
    }
}

struct MyDataConn;
impl DataConn for MyDataConn {
    fn commit(&mut self, _ag: &mut AsyncGroup) -> errs::Result<()> { Ok(()) }
    fn rollback(&mut self, _ag: &mut AsyncGroup) {}
    fn close(&mut self) {}
}

uses!("my_data_src", MyDataSrc);