gpt4 book ai didi

rust - 无法访问 Iron 中的参数,因为不满足特征绑定(bind) plugin::Plugin

转载 作者:行者123 更新时间:2023-11-29 08:06:24 27 4
gpt4 key购买 nike

我正在探索 Iron Web 框架的功能。据我所知,Iron core 没有可处理的 APIHTTP 参数,所以我尝试使用 params crate。

error: the trait bound `params::Params: plugin::Plugin<iron::Request<'_, '_>>` is not satisfied [E0277]
let map = req.get_ref::<Params>().unwrap();
^~~~~~~
help: run `rustc --explain E0277` to see a detailed explanation

我还没有找到这个错误的踪迹,也不知道如何修复它。

extern crate iron;
extern crate params;

use iron::prelude::*;
use iron::status;
use params::*; //{self, Params, Value};

fn handle_user(req: &mut Request) -> IronResult<Response> {
use params::{Params, Value};

let map = req.get_ref::<Params>().unwrap();

match map.find(&["user", "name"]) {
Some(&Value::String(ref name)) if name == "Marie" => {
Ok(Response::with((iron::status::Ok, "Welcome back, Marie!")))
},
_ => Ok(Response::with(iron::status::NotFound)),
}
}

fn main() {
Iron::new(handle_user).http("localhost:2330").unwrap();
}

库的版本

iron = "0.4.0"
params = "0.2.2"

最佳答案

params 0.2.2 包装箱 depends on iron ^0.3,所以需要将iron依赖版本修改为0.3

使用这样的插件箱时,您必须确保版本完全匹配。有时可能还需要 cargo 更新


在 Rust 中,从同一个 crate 的多个版本中获取的相同结构或特征被视为完全不同。它通常会导致错误,如“Pixel expected, but found Pixel”,或者像您的情况一样缺少特征实现。

关于rust - 无法访问 Iron 中的参数,因为不满足特征绑定(bind) plugin::Plugin<iron::Request>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38370713/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com