use std::string::FromUtf8Error;
use thiserror::Error;
pub type CodecResult<T> = Result<T, CodecError>;
#[derive(Debug, Error)]
pub enum CodecError {
#[error("missing required prefix '{prefix}'")]
MissingPrefix {
prefix: String,
},
#[error("invalid radix-{radix} digit '{character}' at index {index}")]
InvalidDigit {
radix: u32,
index: usize,
character: char,
},
#[error("invalid length for {context}: expected {expected}, got {actual}")]
InvalidLength {
context: &'static str,
expected: String,
actual: usize,
},
#[error("invalid escape {escape:?} at index {index}: {reason}")]
InvalidEscape {
index: usize,
escape: String,
reason: String,
},
#[error("invalid character '{character}' at index {index}: {reason}")]
InvalidCharacter {
index: usize,
character: char,
reason: String,
},
#[error("invalid {codec} input: {reason}")]
InvalidInput {
codec: &'static str,
reason: String,
},
#[error("decoded bytes are not valid UTF-8: {source}")]
InvalidUtf8 {
#[from]
source: FromUtf8Error,
},
}