ipfs_api_prelude/response/
swarm.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 SwarmAddrsLocalResponse {
15    #[serde(deserialize_with = "serde::deserialize_vec")]
16    pub strings: Vec<String>,
17}
18
19#[derive(Deserialize)]
20#[serde(rename_all = "PascalCase")]
21pub struct SwarmAddrsConnectResponse {
22    #[serde(deserialize_with = "serde::deserialize_vec")]
23    pub strings: Vec<String>,
24}
25
26#[derive(Deserialize)]
27#[serde(rename_all = "PascalCase")]
28pub struct SwarmAddrsDisconnectResponse {
29    #[serde(deserialize_with = "serde::deserialize_vec")]
30    pub strings: Vec<String>,
31}
32
33#[derive(Deserialize)]
34#[serde(rename_all = "PascalCase")]
35pub struct SwarmFiltersAddResponse {
36    #[serde(deserialize_with = "serde::deserialize_vec")]
37    pub strings: Vec<String>,
38}
39
40#[derive(Deserialize)]
41#[serde(rename_all = "PascalCase")]
42pub struct SwarmFiltersRmResponse {
43    #[serde(deserialize_with = "serde::deserialize_vec")]
44    pub strings: Vec<String>,
45}
46
47#[derive(Debug, Deserialize)]
48#[serde(rename_all = "PascalCase")]
49pub struct SwarmPeerStream {
50    pub protocol: String,
51}
52
53#[derive(Debug, Deserialize)]
54#[serde(rename_all = "PascalCase")]
55pub struct SwarmPeer {
56    pub addr: String,
57    pub peer: String,
58    pub latency: String,
59    pub muxer: String,
60
61    #[serde(deserialize_with = "serde::deserialize_vec")]
62    pub streams: Vec<SwarmPeerStream>,
63}
64
65#[derive(Debug, Deserialize)]
66#[serde(rename_all = "PascalCase")]
67pub struct SwarmPeersResponse {
68    #[serde(deserialize_with = "serde::deserialize_vec")]
69    pub peers: Vec<SwarmPeer>,
70}
71
72#[cfg(test)]
73mod tests {
74    deserialize_test!(v0_swarm_addrs_local_0, SwarmAddrsLocalResponse);
75    deserialize_test!(v0_swarm_peers_0, SwarmPeersResponse);
76    deserialize_test!(v0_swarm_peers_1, SwarmPeersResponse);
77    deserialize_test!(v0_swarm_peers_2, SwarmPeersResponse);
78}