Skip to main content

nodedb_raft/
error.rs

1// SPDX-License-Identifier: BUSL-1.1
2
3use thiserror::Error;
4
5pub type Result<T> = std::result::Result<T, RaftError>;
6
7#[derive(Debug, Error)]
8pub enum RaftError {
9    #[error("not leader (leader hint: {leader_hint:?})")]
10    NotLeader { leader_hint: Option<u64> },
11
12    #[error("log compacted: requested index {requested}, first available {first_available}")]
13    LogCompacted {
14        requested: u64,
15        first_available: u64,
16    },
17
18    #[error("proposal rejected: {reason}")]
19    ProposalRejected { reason: String },
20
21    #[error("group {group_id} not found on this node")]
22    GroupNotFound { group_id: u64 },
23
24    #[error("transport error: {detail}")]
25    Transport { detail: String },
26
27    #[error("storage error: {detail}")]
28    Storage { detail: String },
29
30    #[error("serialization error: {detail}")]
31    Serialization { detail: String },
32
33    #[error("snapshot format error: {detail}")]
34    SnapshotFormat { detail: String },
35
36    #[error("shutdown in progress")]
37    Shutdown,
38}