你可以使用 serde 提供的 derive 宏来自动生成这个结构体的 Deserializer。以下是示例代码:

use serde::{Deserialize, Deserializer};

#[derive(Debug, Deserialize)]
struct Completion{
    #[serde(rename="completion")]
    completion:String,
}

impl<'de> Deserialize<'de> for Completion {
    fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
    where
        D: Deserializer<'de>,
    {
        let completion = String::deserialize(deserializer)?;
        Ok(Completion { completion })
    }
}

这个实现中,我们使用了 serde 的 derive 宏来自动生成 Deserialize 的默认实现,然后重写了 Deserialize 的实现,使用 String::deserialize 方法来反序列化 completion 字段。最后,我们将结果打包到一个 Completion 结构体中,并将其返回。

struct Completion{
 #[serde(rename=

原文地址: https://www.cveoy.top/t/topic/g20 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录