use thiserror::Error;
#[derive(Clone, Copy, Debug, Eq, Error, Hash, PartialEq)]
#[non_exhaustive]
#[must_use]
pub enum TranscodeContractError {
#[error("transcoder consumed {read} units but only {available} were available")]
OverRead {
read: usize,
available: usize,
},
#[error("transcoder wrote {written} units but only {available} output slots were available")]
OverWritten {
written: usize,
available: usize,
},
#[error("transcoder progress overflow: index {index} plus advanced {advanced}")]
ProgressIndexOverflow {
index: usize,
advanced: usize,
},
#[error("transcoder reported required {required} with available {available}")]
SatisfiedNeed {
required: usize,
available: usize,
},
#[error("transcoder reported Complete after consuming {read} of {available} available input units")]
CompleteWithRemainingInput {
read: usize,
available: usize,
},
}