71e5eed67f26abf7892ab698aaf5c723f6fad271
[rust-lightning] / src / util / errors.rs
1 use std::fmt;
2
3 /// Indicates an error on the client's part (usually some variant of attempting to use too-low or
4 /// too-high values)
5 pub enum APIError {
6         /// Indicates the API was wholly misused (see err for more). Cases where these can be returned
7         /// are documented, but generally indicates some precondition of a function was violated.
8         APIMisuseError {err: &'static str},
9         /// Due to a high feerate, we were unable to complete the request.
10         /// For example, this may be returned if the feerate implies we cannot open a channel at the
11         /// requested value, but opening a larger channel would succeed.
12         FeeRateTooHigh {err: String, feerate: u64},
13 }
14
15 impl fmt::Debug for APIError {
16         fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
17                 match *self {
18                         APIError::APIMisuseError {ref err} => f.write_str(err),
19                         APIError::FeeRateTooHigh {ref err, ref feerate} => write!(f, "{} feerate: {}", err, feerate)
20                 }
21         }
22 }