Rust 的 Rocket Web 框架如何使用共享变量?
Posted
技术标签:
【中文标题】Rust 的 Rocket Web 框架如何使用共享变量?【英文标题】:How to use shared variables Rust's Rocket web framework? 【发布时间】:2022-01-14 12:06:32 【问题描述】:我正在尝试在路由函数中使用共享资源,例如在我的 hello() 函数中访问变量“shared_resource”
#[launch]
fn rocket() -> _
let shared_resource = SharedResource::new()
rocket::build().mount("/", routes![hello])
#[get("/")]
fn hello() -> &'static str
let _ = shared_resource.some_method()
"Hello, world!"
我如何做到这一点?
【问题讨论】:
【参考方案1】:您可以为此使用rocket::State
。
只要SharedResource
实现Send + Sync + 'static
并在启动时初始化,这将起作用。
示例
#[launch]
fn rocket() -> _
let shared_resource = SharedResource::new()
rocket::build()
.mount("/", routes![hello])
.manage(shared_resource)
#[get("/")]
fn hello(shared_resource: State<SharedResource>) -> &'static str
let _ = shared_resource.some_method()
"Hello, world!"
【讨论】:
以上是关于Rust 的 Rocket Web 框架如何使用共享变量?的主要内容,如果未能解决你的问题,请参考以下文章
如何设置(Rust)Rocket API 端点的模板响应的 HTTP 状态代码?
Rust - 无法从 Rocket State 访问 r2d2 池连接
Rocket 每晚需要最低版本的 Rust,但已经安装了更高的稳定版本