use thiserror::Error;
use super::BatchProcessResult;
#[derive(Debug, Clone, Error, PartialEq, Eq)]
pub enum BatchProcessError {
#[error("batch item count shortfall: expected {expected}, actual {actual}")]
CountShortfall {
expected: usize,
actual: usize,
result: BatchProcessResult,
},
#[error(
"batch item count exceeded: expected {expected}, observed at least {observed_at_least}"
)]
CountExceeded {
expected: usize,
observed_at_least: usize,
result: BatchProcessResult,
},
}
impl BatchProcessError {
#[inline]
pub const fn result(&self) -> &BatchProcessResult {
match self {
Self::CountShortfall { result, .. } | Self::CountExceeded { result, .. } => result,
}
}
#[inline]
pub fn into_result(self) -> BatchProcessResult {
match self {
Self::CountShortfall { result, .. } | Self::CountExceeded { result, .. } => result,
}
}
}