Macro client

Source
macro_rules! client {
    ($client_factory:ident; $opts:ident) => { ... };
    ($client_factory:ident; $opts:ident; $db_url:tt) => { ... };
}
Expand description

Creates a new factory to create a MongoDB client

Create mongodb client factory with standard environment variable for db url

mongodb_macro::client!(ClientFactory; ClientFactoryOpts);

fn main() {
    std::env::set_var("MONGODB_HOST", "localhost");
    std::env::set_var("DB_URL", "mongodb://root:root@${MONGODB_HOST}:27017");
 
    let factory = ClientFactory::parse();
 
    // let client = factory.create().await.expect("failed to connect");
 
    assert_eq!(&factory.config().db_url, "mongodb://root:root@localhost:27017");
}

Create mongodb client factory with specified environment variable for db url

mongodb_macro::client!(ClientFactory; ClientFactoryOpts; "MONGO_DB_URL");

fn main() {
    std::env::set_var("MONGODB_HOST", "localhost");
    std::env::set_var("MONGO_DB_URL", "mongodb://root:root@${MONGODB_HOST}:27017");
 
    let factory = ClientFactory::parse();

    // let client = factory.create().await.expect("failed to connect");
 
    assert_eq!(&factory.config().db_url, "mongodb://root:root@localhost:27017");
}