tendermint/abci/request/
info.rs1use crate::prelude::*;
2
3#[doc = include_str!("../doc/request-info.md")]
4#[derive(Clone, PartialEq, Eq, Debug)]
5pub struct Info {
6 pub version: String,
8 pub block_version: u64,
10 pub p2p_version: u64,
12 pub abci_version: String,
14}
15
16mod v0_34 {
21 use super::Info;
22 use tendermint_proto::v0_34::abci as pb;
23 use tendermint_proto::Protobuf;
24
25 impl From<Info> for pb::RequestInfo {
26 fn from(info: Info) -> Self {
27 Self {
28 version: info.version,
29 block_version: info.block_version,
30 p2p_version: info.p2p_version,
31 }
32 }
33 }
34
35 impl TryFrom<pb::RequestInfo> for Info {
36 type Error = crate::Error;
37
38 fn try_from(info: pb::RequestInfo) -> Result<Self, Self::Error> {
39 Ok(Self {
40 version: info.version,
41 block_version: info.block_version,
42 p2p_version: info.p2p_version,
43 abci_version: Default::default(),
44 })
45 }
46 }
47
48 impl Protobuf<pb::RequestInfo> for Info {}
49}
50
51mod v0_37 {
52 use super::Info;
53 use tendermint_proto::v0_37::abci as pb;
54 use tendermint_proto::Protobuf;
55
56 impl From<Info> for pb::RequestInfo {
57 fn from(info: Info) -> Self {
58 Self {
59 version: info.version,
60 block_version: info.block_version,
61 p2p_version: info.p2p_version,
62 abci_version: info.abci_version,
63 }
64 }
65 }
66
67 impl TryFrom<pb::RequestInfo> for Info {
68 type Error = crate::Error;
69
70 fn try_from(info: pb::RequestInfo) -> Result<Self, Self::Error> {
71 Ok(Self {
72 version: info.version,
73 block_version: info.block_version,
74 p2p_version: info.p2p_version,
75 abci_version: info.abci_version,
76 })
77 }
78 }
79
80 impl Protobuf<pb::RequestInfo> for Info {}
81}
82
83mod v0_38 {
84 use super::Info;
85 use tendermint_proto::v0_38::abci as pb;
86 use tendermint_proto::Protobuf;
87
88 impl From<Info> for pb::RequestInfo {
89 fn from(info: Info) -> Self {
90 Self {
91 version: info.version,
92 block_version: info.block_version,
93 p2p_version: info.p2p_version,
94 abci_version: info.abci_version,
95 }
96 }
97 }
98
99 impl TryFrom<pb::RequestInfo> for Info {
100 type Error = crate::Error;
101
102 fn try_from(info: pb::RequestInfo) -> Result<Self, Self::Error> {
103 Ok(Self {
104 version: info.version,
105 block_version: info.block_version,
106 p2p_version: info.p2p_version,
107 abci_version: info.abci_version,
108 })
109 }
110 }
111
112 impl Protobuf<pb::RequestInfo> for Info {}
113}