use alloc::string::String;
use thiserror::Error;
#[derive(Error, Debug)]
pub enum PreimageOracleError {
#[error(transparent)]
IOError(#[from] ChannelError),
#[error("Invalid preimage key.")]
InvalidPreimageKey,
#[error("Key not found.")]
KeyNotFound,
#[error("Buffer length mismatch. Expected {0}, got {1}.")]
BufferLengthMismatch(usize, usize),
#[error("Error in preimage server: {0}")]
Other(String),
}
pub type PreimageOracleResult<T> = Result<T, PreimageOracleError>;
#[derive(Error, Debug)]
pub enum ChannelError {
#[error("Channel is closed.")]
Closed,
#[error("Unexpected EOF in channel read operation.")]
UnexpectedEOF,
}
pub type ChannelResult<T> = Result<T, ChannelError>;