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: TheDataSrcinstance 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);