1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
//! Error type for the wire protocol.
use sos_sdk::time;
use thiserror::Error;
/// Errors generated by the wire protocol.
#[derive(Debug, Error)]
pub enum Error {
/// Reached EOF decoding a relay packet.
#[error("relay packet end of file")]
EndOfFile,
/// Error generated converting from a slice.
#[error(transparent)]
TryFromSlice(#[from] std::array::TryFromSliceError),
/// Error generated by the protobuf library when encoding.
#[error(transparent)]
ProtoBufEncode(#[from] prost::EncodeError),
/// Error generated by the protobuf library when decoding.
#[error(transparent)]
ProtoBufDecode(#[from] prost::DecodeError),
/// Error generated by the SDK library.
#[error(transparent)]
Sdk(#[from] crate::sdk::Error),
/// Error generated by the merkle tree library.
#[error(transparent)]
Merkle(#[from] rs_merkle::Error),
/// Error generated converting time types.
#[error(transparent)]
Time(#[from] time::error::ComponentRange),
/// Error generated joining a task.
#[error(transparent)]
Join(#[from] tokio::task::JoinError),
/// Error generated parsing URLs.
#[error(transparent)]
UrlParse(#[from] crate::sdk::url::ParseError),
}