这是我与Rust的第一天,但我正在尝试做一些微不足道的事情,而且我被困住了.
我想要做的是向Vector添加一个结构,并返回结果.我正在尝试创建一个非常简单的REST服务,它将在发布时将数据存储在内存中,并在执行GET时以JSON格式返回所有数据.
这是我目前的代码:
fn main() {
let mut server = Nickel::new();
let mut reservations = Vec::new();
server.post("/reservations/", middleware! { |request, response|
let reservation = request.json_as::<Reservation>().unwrap();
reservations.push(reservation); // <-- error occurs here
format!("Hello {} {}", reservation.name, reservation.email)
});
server.listen("127.0.0.1:3000");
}
Run Code Online (Sandbox Code Playgroud)
我用RefCell 尝试了这个解决方案,但后来我得到了没有实现特征同步的错误Vec<reservation::Reservation>
比较以下代码:
extern crate nickel;
use nickel::{Nickel, HttpRouter, Request, Response, MiddlewareResult};
fn main() {
let data = "wanted";
let mut server = Nickel::new();
server.get("/", landing);
server.listen("localhost:6767");
}
fn landing<'a>(_: &mut Request, response: Response<'a>) -> MiddlewareResult<'a> {
response.send("not wanted")
}
Run Code Online (Sandbox Code Playgroud)
我想data在函数中使用landing.