我试图派生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)