相关疑难解决方法(0)

为什么Serde无法为仅包含&Path的结构派生反序列化?

我试图派生serde::Deserialize一个包含对的引用的结构Path。这产生了一条错误消息,如果您将其替换&'a Path为,则不会发生&'a str。是什么引起了不同的行为#[derive(Deserialize)]

操场

#!/bin/cargo script
//! ```cargo
//! [dependencies]
//! serde_derive="1.0"
//! serde="1.0"
//! ```

extern crate serde_derive;

use serde_derive::*;

#[derive(Deserialize)]
struct A<'a> {
    a: &'a std::path::Path,
    //a: &'a str,
}

fn main() {}
Run Code Online (Sandbox Code Playgroud)
error[E0495]: cannot infer an appropriate lifetime for lifetime parameter `'de` due to conflicting requirements
 --> src/main.rs:7:5
  |
7 |     a: &'a std::path::Path,
  |     ^
  |
note: first, the lifetime cannot outlive the lifetime 'de as …
Run Code Online (Sandbox Code Playgroud)

rust serde

2
推荐指数
1
解决办法
148
查看次数

标签 统计

rust ×1

serde ×1