tendermint/abci/response/
verify_vote_extension.rs

1#[doc = include_str!("../doc/response-verifyvoteextension.md")]
2#[derive(Copy, Clone, Debug, PartialEq, Eq)]
3#[repr(i32)]
4pub enum VerifyVoteExtension {
5    Unknown = 0,
6    Accept = 1,
7    Reject = 2,
8}
9
10// =============================================================================
11// Protobuf conversions
12// =============================================================================
13
14mod v0_38 {
15    use super::VerifyVoteExtension;
16    use crate::Error;
17    use tendermint_proto::v0_38::abci as pb;
18    use tendermint_proto::Protobuf;
19
20    impl From<VerifyVoteExtension> for pb::ResponseVerifyVoteExtension {
21        fn from(value: VerifyVoteExtension) -> Self {
22            Self {
23                status: value as i32,
24            }
25        }
26    }
27
28    impl TryFrom<pb::ResponseVerifyVoteExtension> for VerifyVoteExtension {
29        type Error = Error;
30
31        fn try_from(message: pb::ResponseVerifyVoteExtension) -> Result<Self, Self::Error> {
32            use pb::response_verify_vote_extension::VerifyStatus;
33
34            let status = message
35                .status
36                .try_into()
37                .map_err(|_| Error::unsupported_verify_vote_extension_status())?;
38
39            let value = match status {
40                VerifyStatus::Unknown => VerifyVoteExtension::Unknown,
41                VerifyStatus::Accept => VerifyVoteExtension::Accept,
42                VerifyStatus::Reject => VerifyVoteExtension::Reject,
43            };
44            Ok(value)
45        }
46    }
47
48    impl Protobuf<pb::ResponseVerifyVoteExtension> for VerifyVoteExtension {}
49}