当我在 rust(1.84.0) 模型中使用时,显示错误:
the trait `types::_::_serde::Deserialize<'_>` is not implemented for `IpNetwork`
但我确实需要反序列化模型,我无法更改 ipnetwork 代码,我该如何解决这个问题?这是依赖项:
ipnetwork = "0.21.1"
这是我定义的模型:
#![allow(unused)]
#![allow(clippy::all)]
use std::fmt::Display;
use serde::Serialize;
use serde::Deserialize;
use crate::model::diesel::dolphin::dolphin_schema::*;
use bigdecimal::BigDecimal;
use chrono::DateTime;
use chrono::offset::Utc;
use ipnetwork::IpNetwork;
#[derive(Insertable,Queryable,QueryableByName,Debug,Serialize,Deserialize,Default,Clone)]
#[diesel(table_name = users)]
pub struct User {
pub id: i64,
pub nickname: String,
pub avatar_url: String,
pub phone: String,
pub updated_time: i64,
pub created_time: i64,
pub salt: String,
pub pwd: String,
pub sex: i32,
pub level_type: String,
pub phone_region: String,
pub country_code: String,
pub user_status: i32,
pub last_login_time: Option<i64>,
pub first_login_time: Option<i64>,
pub app_id: String,
pub register_time: i64,
pub apple_iap_product_id: Option<String>,
pub auto_renew_product_expire_time_ms: Option<i64>,
pub is_guest: i32,
pub product_id: i32,
pub register_ip: String,
pub reg_ip: Option<IpNetwork>,
}
该
ipnetwork
板条箱具有一项serde
功能,启用后,将在其类型上添加Serialize
和Deserialize
实现。只需启用此功能(cargo add ipnetwork -F serde
)。