diff --git a/src/errors.rs b/src/errors.rs index 797f0b3..5c439c2 100644 --- a/src/errors.rs +++ b/src/errors.rs @@ -30,7 +30,7 @@ pub enum Error { /// Step was out of range for usize on this platform StepSizeOutOfRange(i32), /// A numeric cast from `value` failed during `task` - NumericCastFailed { + CastFromI32Failed { source: std::num::TryFromIntError, task: ErrorTask, value: usize, @@ -72,7 +72,7 @@ impl std::error::Error for Error { match &self { NullInStr(err) => Some(err), CouldNotCheckNAtoms(err) => Some(err.as_ref()), - NumericCastFailed { source, .. } => Some(source), + CastFromI32Failed { source, .. } => Some(source), _ => None, } } @@ -135,9 +135,9 @@ impl std::fmt::Display for Error { write!(f, "Failed to read number of atoms in trajectory file") } StepSizeOutOfRange(n) => write!(f, "Step {} does not fit in usize on this platform", n), - NumericCastFailed { value, task, .. } => write!( + CastFromI32Failed { value, task, .. } => write!( f, - "Numeric cast from {value} failed while {task}", + "Numeric cast from {value}:usize to i32 failed while {task}", value = value, task = task ), diff --git a/src/lib.rs b/src/lib.rs index 62fe0d0..4b329a1 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -109,7 +109,7 @@ fn path_to_cstring(path: impl AsRef) -> Result { } fn to_i32(value: usize, task: ErrorTask) -> Result { - value.try_into().map_err(|e| Error::NumericCastFailed { + value.try_into().map_err(|e| Error::CastFromI32Failed { source: e, value, task, @@ -809,7 +809,7 @@ mod tests { Err(e) => e, _ => panic!("Conversion from -1 to u8 succeeded"), }; - let expected = Error::NumericCastFailed { + let expected = Error::CastFromI32Failed { source: try_from_int_err, task: ErrorTask::Write, value: 3_294_967_295_usize,