ipfs_api_prelude/response/
bitswap.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(Debug, Deserialize)]
13#[serde(rename_all = "PascalCase")]
14pub struct BitswapLedgerResponse {
15    pub peer: String,
16    pub value: f64,
17    pub sent: u64,
18    pub recv: u64,
19    pub exchanged: u64,
20}
21
22pub type BitswapReprovideResponse = ();
23
24#[derive(Debug, Deserialize)]
25#[serde(rename_all = "PascalCase")]
26pub struct BitswapStatResponse {
27    pub provide_buf_len: i32,
28
29    #[serde(deserialize_with = "serde::deserialize_vec")]
30    pub wantlist: Vec<String>,
31
32    #[serde(deserialize_with = "serde::deserialize_vec")]
33    pub peers: Vec<String>,
34
35    pub blocks_received: u64,
36    pub data_received: u64,
37    pub blocks_sent: u64,
38    pub data_sent: u64,
39    pub dup_blks_received: u64,
40    pub dup_data_received: u64,
41}
42
43pub type BitswapUnwantResponse = ();
44
45#[derive(Debug, Deserialize)]
46#[serde(rename_all = "PascalCase")]
47pub struct BitswapWantlistResponse {
48    #[serde(deserialize_with = "serde::deserialize_vec")]
49    pub keys: Vec<String>,
50}
51
52#[cfg(test)]
53mod tests {
54    deserialize_test!(v0_bitswap_stat_0, BitswapStatResponse);
55}