mirror of
https://github.com/dnlbauer/xdrfile.git
synced 2026-09-10 22:25:30 +00:00
Explicit returns for error cases
This commit is contained in:
@@ -49,7 +49,7 @@ impl<T: Trajectory> TrajectoryIterator<T> {
|
|||||||
// It's OK to do this every frame because the result is cached by Trajectory
|
// It's OK to do this every frame because the result is cached by Trajectory
|
||||||
let num_atoms = match &self.trajectory.get_num_atoms() {
|
let num_atoms = match &self.trajectory.get_num_atoms() {
|
||||||
&Ok(n) => n,
|
&Ok(n) => n,
|
||||||
Err(e) => Err(Error::CouldNotCheckNAtoms(Box::new(e.clone())))?,
|
Err(e) => return Err(Error::CouldNotCheckNAtoms(Box::new(e.clone()))),
|
||||||
};
|
};
|
||||||
|
|
||||||
// Reuse old frame
|
// Reuse old frame
|
||||||
|
|||||||
24
src/lib.rs
24
src/lib.rs
@@ -175,7 +175,7 @@ impl XDRFile {
|
|||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
// Something went wrong. But the C api does not tell us what
|
// Something went wrong. But the C api does not tell us what
|
||||||
Err((path, filemode))?
|
Err((path, filemode).into())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -275,8 +275,8 @@ impl Trajectory for XTCTrajectory {
|
|||||||
.get_num_atoms()
|
.get_num_atoms()
|
||||||
.map_err(|e| Error::CouldNotCheckNAtoms(Box::new(e)))?;
|
.map_err(|e| Error::CouldNotCheckNAtoms(Box::new(e)))?;
|
||||||
if num_atoms != frame.coords.len() {
|
if num_atoms != frame.coords.len() {
|
||||||
Err((&*frame, num_atoms))?;
|
return Err((&*frame, num_atoms).into());
|
||||||
};
|
}
|
||||||
|
|
||||||
unsafe {
|
unsafe {
|
||||||
let code = xdrfile_xtc::read_xtc(
|
let code = xdrfile_xtc::read_xtc(
|
||||||
@@ -402,7 +402,7 @@ impl Trajectory for TRRTrajectory {
|
|||||||
.get_num_atoms()
|
.get_num_atoms()
|
||||||
.map_err(|e| Error::CouldNotCheckNAtoms(Box::new(e)))?;
|
.map_err(|e| Error::CouldNotCheckNAtoms(Box::new(e)))?;
|
||||||
if num_atoms != frame.coords.len() {
|
if num_atoms != frame.coords.len() {
|
||||||
Err((&*frame, num_atoms))?;
|
return Err((&*frame, num_atoms).into());
|
||||||
}
|
}
|
||||||
|
|
||||||
unsafe {
|
unsafe {
|
||||||
@@ -631,21 +631,17 @@ mod tests {
|
|||||||
Ok(s) => {
|
Ok(s) => {
|
||||||
assert_eq!(s, CString::new("test")?);
|
assert_eq!(s, CString::new("test")?);
|
||||||
}
|
}
|
||||||
Err(_) => panic!("Valid Path failed to convert to CString.")
|
Err(_) => panic!("Valid Path failed to convert to CString."),
|
||||||
}
|
}
|
||||||
|
|
||||||
// \0 in path should result in an InvalidOsStr(Some(NulError))
|
// \0 in path should result in an InvalidOsStr(Some(NulError))
|
||||||
let result = path_to_cstring(PathBuf::from("invalid/\0path"));
|
let result = path_to_cstring(PathBuf::from("invalid/\0path"));
|
||||||
match result {
|
match result {
|
||||||
Ok(_) => panic!("Cstring conversion did not fail"),
|
Ok(_) => panic!("Cstring conversion did not fail"),
|
||||||
Err(e) => {
|
Err(e) => match e {
|
||||||
match e {
|
Error::InvalidOsStr(opt) => assert!(opt.is_some()),
|
||||||
Error::InvalidOsStr(opt) => {
|
_ => panic!("Wrong error type. (This should never happend)."),
|
||||||
assert!(opt.is_some())
|
},
|
||||||
}
|
|
||||||
_ => panic!("Wrong error type. (This should never happend).")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user