ipfs_api_prelude/response/
file.rs

1// Copyright 2017 rust-ipfs-api Developers
2//
3// Licensed under the Apache License, Version 2.0, <LICENSE-APACHE or
4// http://apache.org/licenses/LICENSE-2.0> or the MIT license <LICENSE-MIT or
5// http://opensource.org/licenses/MIT>, at your option. This file may not be
6// copied, modified, or distributed except according to those terms.
7//
8
9use crate::response::{serde, IpfsHeader};
10use crate::serde::Deserialize;
11use std::collections::HashMap;
12
13#[derive(Debug, Deserialize)]
14#[serde(rename_all = "PascalCase")]
15pub struct IpfsDetailedFile {
16    pub hash: String,
17    pub size: u64,
18
19    #[serde(rename = "Type")]
20    pub typ: String,
21
22    #[serde(default)]
23    pub links: Vec<IpfsHeader>,
24}
25
26#[derive(Debug, Deserialize)]
27#[serde(rename_all = "PascalCase")]
28pub struct FileLsResponse {
29    #[serde(deserialize_with = "serde::deserialize_hashmap")]
30    pub arguments: HashMap<String, String>,
31
32    #[serde(deserialize_with = "serde::deserialize_hashmap")]
33    pub objects: HashMap<String, IpfsDetailedFile>,
34}
35
36#[cfg(test)]
37mod tests {
38    deserialize_test!(v0_file_ls_0, FileLsResponse);
39    deserialize_test!(v0_file_ls_1, FileLsResponse);
40}