mirror of
https://github.com/dnlbauer/xdrfile.git
synced 2026-09-11 06:35:30 +00:00
Improved out-of-range error messages
This commit is contained in:
@@ -29,15 +29,15 @@ pub enum Error {
|
|||||||
NullInStr(std::ffi::NulError),
|
NullInStr(std::ffi::NulError),
|
||||||
CouldNotCheckNAtoms(Box<Error>),
|
CouldNotCheckNAtoms(Box<Error>),
|
||||||
/// Step was out of range for usize on this platform
|
/// Step was out of range for usize on this platform
|
||||||
StepSizeOutOfRange(i32),
|
StepOutOfRange(i32),
|
||||||
|
/// natoms was out of range for usize on this platform
|
||||||
|
NumAtomsOutOfRange(c_int),
|
||||||
/// A numeric cast from `value` failed during `task`
|
/// A numeric cast from `value` failed during `task`
|
||||||
CastToCintFailed {
|
CastToCintFailed {
|
||||||
source: std::num::TryFromIntError,
|
source: std::num::TryFromIntError,
|
||||||
task: ErrorTask,
|
task: ErrorTask,
|
||||||
value: usize,
|
value: usize,
|
||||||
},
|
},
|
||||||
/// A numeric cast from `value` failed during `task`
|
|
||||||
NumAtomsOutOfRange(c_int),
|
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Error {
|
impl Error {
|
||||||
@@ -137,9 +137,16 @@ impl std::fmt::Display for Error {
|
|||||||
CouldNotCheckNAtoms(_err) => {
|
CouldNotCheckNAtoms(_err) => {
|
||||||
write!(f, "Failed to read number of atoms in trajectory file")
|
write!(f, "Failed to read number of atoms in trajectory file")
|
||||||
}
|
}
|
||||||
StepSizeOutOfRange(n) | NumAtomsOutOfRange(n) => {
|
StepOutOfRange(n) => write!(
|
||||||
write!(f, "Step {} does not fit in usize on this platform", n)
|
f,
|
||||||
}
|
"Illegal step size while reading trajectory: Failed to cast {} to usize.",
|
||||||
|
n
|
||||||
|
),
|
||||||
|
NumAtomsOutOfRange(n) => write!(
|
||||||
|
f,
|
||||||
|
"Illegal number of atoms while reading trajectory: Failed to cast {} to usize.",
|
||||||
|
n
|
||||||
|
),
|
||||||
CastToCintFailed { value, task, .. } => write!(
|
CastToCintFailed { value, task, .. } => write!(
|
||||||
f,
|
f,
|
||||||
"Numeric cast from {value}:usize to C int failed while {task}",
|
"Numeric cast from {value}:usize to C int failed while {task}",
|
||||||
|
|||||||
@@ -277,7 +277,7 @@ impl Trajectory for XTCTrajectory {
|
|||||||
if let Some(err) = check_code(code, ErrorTask::Read) {
|
if let Some(err) = check_code(code, ErrorTask::Read) {
|
||||||
return Err(err);
|
return Err(err);
|
||||||
}
|
}
|
||||||
frame.step = usize::try_from(step).map_err(|_| Error::StepSizeOutOfRange(step))?;
|
frame.step = usize::try_from(step).map_err(|_| Error::StepOutOfRange(step))?;
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -406,7 +406,7 @@ impl Trajectory for TRRTrajectory {
|
|||||||
if let Some(err) = check_code(code, ErrorTask::Read) {
|
if let Some(err) = check_code(code, ErrorTask::Read) {
|
||||||
return Err(err);
|
return Err(err);
|
||||||
}
|
}
|
||||||
frame.step = usize::try_from(step).map_err(|_| Error::StepSizeOutOfRange(step))?;
|
frame.step = usize::try_from(step).map_err(|_| Error::StepOutOfRange(step))?;
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user