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}