微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在表单中使用 Rocket_contrib::Uuid?

如何解决如何在表单中使用 Rocket_contrib::Uuid?

我使用的是 0.5.0-dev 版本的 Rocket 和 Rocket_contrib。我想在表单中使用 Uuid,但出现以下编译错误

特性 `FromFormField` 没有为 `rocket_contrib::uuid::Uuid` 实现

根据 docs Uuid 实现 FromFormField,我不明白这一点。我做错了什么?

#[macro_use]
extern crate rocket;

use rocket::data::TempFile;
use rocket::form::{datafield,Form};
use rocket_contrib::uuid::Uuid;

#[derive(FromForm)]
struct FileUploadForm<'v> {
    id: Uuid,file: TempFile<'v>,}

#[post("/upload",data = "<data>")]
fn upload(data: Form<FileUploadForm>) -> Result<String,std::io::Error> {
    let id = "uuid".to_string();
    Ok(id)
}

fn rocket() -> rocket::Rocket {
    rocket::ignite().mount("/",routes![upload])
}

#[rocket::main]
async fn main() {
    rocket().launch().await;
}

解决方法

我的 Cargo.toml 不正确,我没有正确包含 rocket_contrib。正确的版本如下

[package]
name = "stackoverflow"
version = "0.1.0"
edition = "2018"

[dependencies]
rocket = { git = "https://github.com/SergioBenitez/Rocket",version = "0.5.0-dev" }

[dependencies.rocket_contrib]
git = "https://github.com/SergioBenitez/Rocket"
version = "0.5.0-dev"
default-features = false
features = ["uuid"]

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。