rust 在作用域Rocket的路由器处理程序中未找到泛型类型

jpfvwuh4  于 2023-06-23  发布在  其他
关注(0)|答案(1)|浏览(96)

在Rocket的路由器处理程序中使用泛型的正确方法是什么?我正在尝试以下操作:

#[post("/handle_message", format = "json", data = "<json_message>")]
pub async fn handle_message<G>(
    session: &State<Arc<SessionState>>,
    peer_state: &State<Arc<PeerState>>,
    json_message: Json<models::JsonMessage<G>>,
    cfg: &State<ReloadableConfig>,
)
where
    G: Group + GroupEncoding + Default + Serialize,
{
    trace!("Handling POST /handle_message");
    let cfg = cfg.load_full();
    session.handle_message(json_message.message.clone());
}

编译器错误:cannot find type G in this scope not found in this scope

ekqde3dh

ekqde3dh1#

Rocket中目前不能有通用请求处理程序。
这是Rust中类型系统的一个限制,Sergio在this github issue中讨论过。

相关问题