小编zir*_*797的帖子

与lazy_static 一起使用'await' 的替代方法!生锈的宏?

我想在一个项目中使用 Async MongoDB。

不想绕过客户端,因为它需要绕过多个任务和线程。所以我使用惰性静态保留了一个静态客户端。但是我不能在初始化块中使用 await。

我能做些什么来解决这个问题?

也欢迎在没有 lazy_static 的情况下完全不同地做这件事的建议。

use std::env;
use futures::stream::StreamExt;
use mongodb::{
    bson::{doc, Bson},
    options::ClientOptions,
    Client,
};

lazy_static! {
    static ref MONGO: Option<Client> = {
        if let Ok(token) = env::var("MONGO_AUTH") {
            if let Ok(client_options) = ClientOptions::parse(&token).await
                                                                     ^^^^^
            {
                if let Ok(client) = Client::with_options(client_options) {
                    return Some(client);
                }
            }
        }
        return None;
    };
}
Run Code Online (Sandbox Code Playgroud)

asynchronous mongodb rust lazy-static

5
推荐指数
1
解决办法
1011
查看次数

标签 统计

asynchronous ×1

lazy-static ×1

mongodb ×1

rust ×1