use crate::error::*;
use crate::structs::PDB;
use crate::StrictnessLevel;
use super::*;
pub type ReadResult = Result<(PDB, Vec<PDBError>), Vec<PDBError>>;
pub fn open(filename: impl AsRef<str>) -> ReadResult {
ReadOptions::default().read(filename)
}
#[cfg(feature = "compression")]
#[deprecated(
since = "0.12.0",
note = "Please use `ReadOptions::default().set_decompress(true).read(filename)` instead"
)]
pub fn open_gz(filename: impl AsRef<str>, level: StrictnessLevel) -> ReadResult {
ReadOptions::default()
.set_level(level)
.guess_format(filename.as_ref())
.read(filename)
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn open_invalid() {
assert!(open("file.png").is_err());
assert!(open("file.mmcif").is_err());
assert!(open("file.pdbml").is_err());
assert!(open("file.pd").is_err());
}
#[test]
fn open_not_existing() {
let pdb = open("file.pdb").expect_err("This file should not exist.");
assert_eq!(pdb[0].short_description(), "Could not open file");
let cif = open("file.cif").expect_err("This file should not exist.");
assert_eq!(cif[0].short_description(), "Could not open file");
}
}