ipfs_api_prelude/response/
pubsub.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 PubsubLsResponse {
15    #[serde(deserialize_with = "serde::deserialize_vec")]
16    pub strings: Vec<String>,
17}
18
19#[derive(Debug, Deserialize)]
20#[serde(rename_all = "PascalCase")]
21pub struct PubsubPeersResponse {
22    #[serde(deserialize_with = "serde::deserialize_vec")]
23    pub strings: Vec<String>,
24}
25
26pub type PubsubPubResponse = ();
27
28#[derive(Debug, Deserialize)]
29pub struct PubsubSubResponse {
30    pub from: String,
31
32    #[serde(deserialize_with = "serde::deserialize_data_field")]
33    pub data: Vec<u8>,
34
35    #[serde(deserialize_with = "serde::deserialize_seqno_field")]
36    pub seqno: u64,
37
38    #[serde(
39        rename = "topicIDs",
40        deserialize_with = "serde::deserialize_topic_field"
41    )]
42    pub topic_ids: Vec<String>,
43}
44
45#[cfg(test)]
46mod tests {
47    deserialize_test!(v0_pubsub_ls_0, PubsubLsResponse);
48    deserialize_test!(v0_pubsub_ls_1, PubsubLsResponse);
49    deserialize_test!(v0_pubsub_peers_0, PubsubPeersResponse);
50    deserialize_test!(v0_pubsub_sub_0, PubsubSubResponse);
51    deserialize_test!(v0_pubsub_sub_1, PubsubSubResponse);
52}