在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
1条答案
按热度按时间ekqde3dh1#
Rocket中目前不能有通用请求处理程序。
这是Rust中类型系统的一个限制,Sergio在this github issue中讨论过。