grin_core/pow/error.rs
1// Copyright 2021 The Grin Developers
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7// http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
15//! Cuckatoo specific errors
16
17/// Cuckatoo solver or validation error
18#[derive(Debug, thiserror::Error)]
19/// Libwallet error types
20pub enum Error {
21 /// Verification error
22 #[error("Verification Error: {0}")]
23 Verification(String),
24 /// IO Error
25 #[error("IO Error")]
26 IOError {
27 /// Io Error Convert
28 #[from]
29 source: std::io::Error,
30 },
31 /// Unexpected Edge Error
32 #[error("Edge Addition Error")]
33 EdgeAddition,
34 /// Path Error
35 #[error("Path Error")]
36 Path,
37 /// Invalid cycle
38 #[error("Invalid Cycle length: {0}")]
39 InvalidCycle(usize),
40 /// No Cycle
41 #[error("No Cycle")]
42 NoCycle,
43 /// No Solution
44 #[error("No Solution")]
45 NoSolution,
46}