nodedb_cluster/wire_version/
error.rs1use thiserror::Error;
6
7use super::types::WireVersion;
8
9#[derive(Debug, Error)]
11pub enum WireVersionError {
12 #[error(
16 "unsupported wire version {peer_version} from peer \
17 (supported: {supported_min}..={supported_max})"
18 )]
19 UnsupportedVersion {
20 peer_version: WireVersion,
21 supported_min: WireVersion,
22 supported_max: WireVersion,
23 },
24
25 #[error("wire decode failure: {0}")]
28 DecodeFailure(String),
29
30 #[error(
33 "version negotiation failed: local range {local_min}..={local_max} \
34 does not overlap remote range {remote_min}..={remote_max}"
35 )]
36 NegotiationFailed {
37 local_min: WireVersion,
38 local_max: WireVersion,
39 remote_min: WireVersion,
40 remote_max: WireVersion,
41 },
42}
43
44impl From<WireVersionError> for crate::error::ClusterError {
45 fn from(e: WireVersionError) -> Self {
46 crate::error::ClusterError::Codec {
47 detail: e.to_string(),
48 }
49 }
50}