小编Tea*_*mer的帖子

要求 `'de` 必须比 `'a` 存在得更久

我一直在尝试实现结构的反序列化和序列化特征。我只是沿着编译器告诉我的路线走下去,然后就陷入了困境。

我从这个结构开始:

#[derive(Serialize, Deserialize)]
struct FileMetadata {
  file_path: PathBuf,
  last_updated: SystemTime,
  mime_type: MediaType,
}
Run Code Online (Sandbox Code Playgroud)

并得到以下错误:expected named lifetime parameter, help: consider introducing a named lifetime parameter.

所以我这样做:

#[derive(Serialize, Deserialize)]
struct FileMetadata<'a> {
  file_path: PathBuf,
  last_updated: SystemTime,
  mime_type: MediaType<'a>,
}
Run Code Online (Sandbox Code Playgroud)

这给出了以下错误:requires that 'de must outlive'a , help: consider adding the following bound: 'de: 'a。

所以我就按照它说的去做:

#[derive(Serialize, Deserialize)]
struct FileMetadata<'a, 'de>
where
'de: 'a {
  file_path: PathBuf,
  last_updated: SystemTime,
  mime_type: MediaType<'a>,
}
Run Code Online (Sandbox Code Playgroud)

现在我收到两个错误:

  1. cannot deserialize when there is a …

rust serde

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

标签 统计

rust ×1

serde ×1