参数结构体模块
在src目录下新建params文件夹
在params文件夹下依次新建req.rs、resp.rs、result_parse.rs、mod.rs
目录结构如下:
project
|---src
|---params //封装参数结构体模块
|---req.rs //封装请求参数结构体
|---resp.rs //封装返回数据结构体
|---result_parse.rs //解析返回参数结构体
|---mod.rs //导出模块
req.rs代码:
rust
use rocket::serde::{Deserialize,Serialize};
use rocket::FromForm;
use rocket::fs::TempFile;
//注册请求参数
#[derive(Deserialize,Serialize,Debug)]
#[serde(crate = "rocket::serde")]
pub struct Userparam {
pub uname: String,
pub id:String,
}
//xxx请求参数
#[derive(Deserialize)]
#[serde(crate = "rocket::serde")]
pub struct Xxxparam<'r> {
pub xxxvalue: &'r str,
pub checktime: &'r str,
pub uid: &'r str,
pub id:&'r str,
}
//notice请求参数
#[derive(Deserialize)]
#[serde(crate = "rocket::serde")]
pub struct Noticeparam<'r> {
pub content: &'r str,
pub checktime: &'r str,
pub noticetime: &'r str,
pub uid: &'r str,
pub id:&'r str,
}
//yyy请求参数
#[derive(Deserialize)]
#[serde(crate = "rocket::serde")]
pub struct Yyyparam<'r> {
pub yyyvalue: &'r str,
pub checktime: &'r str,
pub uid: &'r str,
pub id:&'r str,
}
//ocr识别请求参数
#[derive(Serialize,Debug)]
#[serde(crate = "rocket::serde")]
pub struct AccessToken {
pub img_url:String,
}
//上传图片参数
#[derive(FromForm)]
pub struct UploadImg<'a>{
pub file:TempFile<'a>,
pub name:&'a str
}
resp.rs代码:
rust
use rocket::serde::Serialize;
//封装公共返回插入状态数据
#[derive(Serialize)]
#[serde(crate = "rocket::serde")]
pub struct Resp {
pub code:i8,
pub message:String,
}
//封装注册成功后返回状态数据
#[derive(Serialize)]
#[serde(crate = "rocket::serde")]
pub struct Regresp {
pub code:i8,
pub message:String,
pub uid:String,
}
//封装user返回数据
#[derive(Serialize)]
#[serde(crate = "rocket::serde")]
pub struct Listuser {
pub uname: String,
pub id:String,
}
//封装xxx返回数据
#[derive(Serialize)]
#[serde(crate = "rocket::serde")]
pub struct Listxxx {
pub xxxvalue: String,
pub checktime: String,
pub uid: String,
pub id:String,
}
//封装notice返回数据
#[derive(Serialize)]
#[serde(crate = "rocket::serde")]
pub struct Listnotice {
pub content: String,
pub checktime: String,
pub noticetime: String,
pub uid: String,
pub id:String,
}
//封装yyy返回数据
#[derive(Serialize)]
#[serde(crate = "rocket::serde")]
pub struct Yyyliver {
pub yyyvalue: String,
pub checktime: String,
pub uid: String,
pub id:String,
}
resp_parse.rs代码:
rust
use std::collections::HashMap;
use rocket::serde::{Deserialize, Serialize};
//请求微信token返回的结构体
#[derive(Deserialize,Serialize,Debug)]
#[serde(crate = "rocket::serde")]
pub struct WechatToken{
pub access_token:String,
expires_in:i32
}
//请求ocr解析返回的一级结构体
#[derive(Deserialize,Serialize,Debug)]
#[serde(crate = "rocket::serde")]
pub struct Ocr1{
errcode:i32,
errmsg:String,
pub items:Vec<Ocr2>
}
//ocr解析的items项二级结构体
#[derive(Deserialize,Serialize,Debug)]
#[serde(crate = "rocket::serde")]
pub struct Ocr2{
pub text:String,
pos:HashMap<String,HashMap<String,i64>>
}
mod.rs代码:
rust
//请求参数
pub mod req;
//返回参数
pub mod resp;
//请求返回的参数解析
pub mod result_parse;