ipfs_api_prelude/response/
object.rs1use crate::response::{serde, IpfsHeader};
10use crate::serde::Deserialize;
11use std::collections::HashMap;
12
13#[derive(Debug, Deserialize)]
14#[serde(rename_all = "PascalCase")]
15pub struct ObjectDiff {
16 #[serde(rename = "Type")]
17 pub typ: u64,
18
19 pub path: String,
20
21 #[serde(deserialize_with = "serde::deserialize_hashmap")]
22 pub before: HashMap<String, String>,
23
24 #[serde(deserialize_with = "serde::deserialize_hashmap")]
25 pub after: HashMap<String, String>,
26}
27
28#[derive(Debug, Deserialize)]
29#[serde(rename_all = "PascalCase")]
30pub struct ObjectDiffResponse {
31 #[serde(deserialize_with = "serde::deserialize_vec")]
32 pub changes: Vec<ObjectDiff>,
33}
34
35#[derive(Debug, Deserialize)]
36#[serde(rename_all = "PascalCase")]
37pub struct ObjectGetResponse {
38 pub data: String,
39
40 #[serde(deserialize_with = "serde::deserialize_vec")]
41 pub links: Vec<IpfsHeader>,
42}
43
44#[derive(Debug, Deserialize)]
45#[serde(rename_all = "PascalCase")]
46pub struct ObjectLinksResponse {
47 pub hash: String,
48
49 #[serde(deserialize_with = "serde::deserialize_vec")]
50 pub links: Vec<IpfsHeader>,
51}
52
53#[derive(Deserialize)]
54#[serde(rename_all = "PascalCase")]
55pub struct ObjectNewResponse {
56 pub hash: String,
57
58 #[serde(deserialize_with = "serde::deserialize_vec")]
59 #[serde(default)]
60 pub links: Vec<IpfsHeader>,
61}
62
63#[derive(Deserialize)]
64#[serde(rename_all = "PascalCase")]
65pub struct ObjectPatchAddLinkResponse {
66 pub hash: String,
67
68 #[serde(deserialize_with = "serde::deserialize_vec")]
69 #[serde(default)]
70 pub links: Vec<IpfsHeader>,
71}
72
73#[derive(Deserialize)]
74#[serde(rename_all = "PascalCase")]
75pub struct ObjectPatchAppendDataResponse {
76 pub hash: String,
77
78 #[serde(deserialize_with = "serde::deserialize_vec")]
79 pub links: Vec<IpfsHeader>,
80}
81
82#[derive(Deserialize)]
83#[serde(rename_all = "PascalCase")]
84pub struct ObjectPatchRmLinkResponse {
85 pub hash: String,
86
87 #[serde(deserialize_with = "serde::deserialize_vec")]
88 pub links: Vec<IpfsHeader>,
89}
90
91#[derive(Deserialize)]
92#[serde(rename_all = "PascalCase")]
93pub struct ObjectPatchSetDataResponse {
94 pub hash: String,
95
96 #[serde(deserialize_with = "serde::deserialize_vec")]
97 pub links: Vec<IpfsHeader>,
98}
99
100#[derive(Deserialize)]
101#[serde(rename_all = "PascalCase")]
102pub struct ObjectPutResponse {
103 pub hash: String,
104
105 #[serde(deserialize_with = "serde::deserialize_vec")]
106 pub links: Vec<IpfsHeader>,
107}
108
109#[derive(Debug, Deserialize)]
110#[serde(rename_all = "PascalCase")]
111pub struct ObjectStatResponse {
112 pub hash: String,
113 pub num_links: u64,
114 pub block_size: u64,
115 pub links_size: u64,
116 pub data_size: u64,
117 pub cumulative_size: u64,
118}
119
120#[cfg(test)]
121mod tests {
122 deserialize_test!(v0_object_diff_0, ObjectDiffResponse);
123 deserialize_test!(v0_object_links_0, ObjectLinksResponse);
124 deserialize_test!(v0_object_stat_0, ObjectStatResponse);
125}