How can I reuse the Client with Rust driver?

I just realised that the code I currently use does not reuse the Client (mongodb::Client), but instead creates a new Client everytime the function is called. This is obviously a bad practice, since it probably creates multiple connections as a result and is also very slow.

The question is: how can I implement this in Rust in a way that the Client is created when the program starts (maybe in main function) and then somehow reference/reuse the Client everytime I want to connect to a database in the cluster?

Thanks in advance!

(I hope this post is within the correct category)

Here are some more details regarding this question, since it might be a bit unclear:

Here is my mongo module ( src/utils/mongo.rs ):

pub async fn create() -> Result<Client, GenericError> {
    let key = dotenv::var("DBKEY").expect("ERROR: Database token missing");
    let options = ClientOptions::parse_with_resolver_config(&key, ResolverConfig::cloudflare()).await?;
    let client = Client::with_options(options)?;
    return Ok(client);
}

pub async fn connect(db: &str, coll: &str) -> Result<Collection<Document>, GenericError> {
    let key = dotenv::var("DBKEY").expect("ERROR: Database token missing");
    let options = ClientOptions::parse_with_resolver_config(&key, ResolverConfig::cloudflare()).await?;
    let client = Client::with_options(options)?;
    let coll = client.database(db).collection::<Document>(coll);
    return Ok(coll);
}

The create() function creates a new instance of mongodb::Client . If I call this function in main() , I can create a new Client like this ( src/main.rs ):

pub mod utils;
use utils::*;

#[tokio::main]
async fn main() -> Result<(), GenericError> {
    let client = mongo::create().await?;
    Ok(())
}

Now, in the mongo::connect() function I am creating a new client, which is the bad practice. What should I do to reference the existing client variable defined in main() instead (example below)?

pub async fn connect(db: &str, coll: &str) -> Result<Collection<Document>, GenericError> {
    let client = &client_defined_in_main_function;
    let coll = client.database(db).collection::<Document>(coll);
    return Ok(coll);
}