ipfs_api_prelude/response/
ls.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;
10use crate::serde::Deserialize;
11
12#[derive(Deserialize)]
13#[serde(rename_all = "PascalCase")]
14pub struct IpfsFile {
15    pub hash: String,
16
17    #[serde(deserialize_with = "serde::deserialize_vec")]
18    pub links: Vec<IpfsFileHeader>,
19}
20
21#[derive(Deserialize)]
22#[serde(rename_all = "PascalCase")]
23pub struct IpfsFileHeader {
24    pub name: String,
25    pub hash: String,
26    pub size: u64,
27
28    #[serde(rename = "Type")]
29    pub typ: u32,
30}
31
32#[derive(Deserialize)]
33#[serde(rename_all = "PascalCase")]
34pub struct LsResponse {
35    #[serde(deserialize_with = "serde::deserialize_vec")]
36    pub objects: Vec<IpfsFile>,
37}
38
39#[cfg(test)]
40mod tests {
41    deserialize_test!(v0_ls_0, LsResponse);
42    deserialize_test!(v0_ls_1, LsResponse);
43}