diff options
Diffstat (limited to 'src/seqfile.rs')
-rw-r--r-- | src/seqfile.rs | 72 |
1 files changed, 0 insertions, 72 deletions
diff --git a/src/seqfile.rs b/src/seqfile.rs deleted file mode 100644 index 1565ab5..0000000 --- a/src/seqfile.rs +++ /dev/null @@ -1,72 +0,0 @@ -use std::fs::rename; -use std::io; - -use crate::defaults::*; -use crate::khline::KhLine; -use crate::utils::fileutil; -use crate::KhResult; -use crate::errors::KhError; - -pub fn write_to_seqfile(lines: &str) -> io::Result<()> { - let tmpfilename = get_datafile("tmpseq"); - - fileutil::write_file(&tmpfilename, lines)?; - - let seqfile = get_seqfile(); - rename(tmpfilename, seqfile)?; - - Ok(()) -} - -pub fn read_seqfile() -> io::Result<impl DoubleEndedIterator<Item = String>> { - let seqfile = get_seqfile(); - debug!("Reading sequence file: {}", seqfile.to_string_lossy()); - fileutil::read_lines_from_file(&seqfile) -} - -pub fn read_seqfile_khlines() -> KhResult<impl DoubleEndedIterator<Item = KhLine>> { - read_seqfile()? - .map(|line| line.parse::<KhLine>()) - .collect::<Result<Vec<KhLine>, String>>() - .map_err(KhError::from) - .map(|lines| lines.into_iter()) -} - -#[cfg(test)] -mod tests { - use super::*; - - use crate::testutils::prepare_testdir; - use assert_fs::prelude::*; - use predicates::prelude::*; - use itertools::Itertools; - - #[test] - fn read_seqfile_test() { - let testdir = prepare_testdir("testdir_with_seq"); - let mut seqfile_read = read_seqfile().unwrap().join("\n"); - seqfile_read.push('\n'); - - let predicate = predicate::str::similar(seqfile_read); - testdir.child(".khaleesi/seq").assert(predicate); - } - - #[test] - fn read_seqfile_khlines_test() { - let _testdir = prepare_testdir("testdir_with_seq"); - let mut khlines = read_seqfile_khlines().unwrap(); - - let khline_expected = "1544740200 twodaysacrossbuckets.ics".parse::<KhLine>().unwrap(); - assert_eq!(khline_expected, khlines.next().unwrap()) - } - - #[test] - fn write_to_seqfile_test() { - let testdir = prepare_testdir("testdir"); - let teststr = "Teststr äöüß\n"; - - write_to_seqfile(teststr).unwrap(); - - testdir.child(".khaleesi/seq").assert(teststr); - } -} |