tendermint/
privval.rs

1//! Types used in the Privval protocol (Tendermint Core [ADR-063])
2//!
3//! [ADR-063]: https://github.com/tendermint/tendermint/blob/main/docs/architecture/adr-063-privval-grpc.md
4
5use crate::prelude::*;
6
7#[derive(Clone, Debug, PartialEq, Eq)]
8pub struct RemoteSignerError {
9    pub code: i32,
10    pub description: String,
11}
12
13// =============================================================================
14// Protobuf conversions
15// =============================================================================
16
17tendermint_pb_modules! {
18    use super::RemoteSignerError;
19    use pb::privval::RemoteSignerError as RawRemoteSignerError;
20
21    impl TryFrom<RawRemoteSignerError> for RemoteSignerError {
22        type Error = crate::Error;
23
24        fn try_from(message: RawRemoteSignerError) -> Result<Self, Self::Error> {
25            Ok(Self {
26                code: message.code,
27                description: message.description,
28            })
29        }
30    }
31
32    impl From<RemoteSignerError> for RawRemoteSignerError {
33        fn from(value: RemoteSignerError) -> Self {
34            Self {
35                code: value.code,
36                description: value.description,
37            }
38        }
39    }
40}