summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNora <nora.widdecke@tu-bs.de>2019-02-03 22:16:57 +0100
committerNora <nora.widdecke@tu-bs.de>2019-02-03 22:16:57 +0100
commit416128fb4c3d64b1561ca61a86f9d31491f3b59d (patch)
treea4baa7c7df6ac7446ac94b913732b96310462af3
parentf51b5797787b7c789c93b2c50efc5debb8ef376f (diff)
add function to read sequence to khlines
-rw-r--r--src/khline.rs2
-rw-r--r--src/seqfile.rs20
2 files changed, 21 insertions, 1 deletions
diff --git a/src/khline.rs b/src/khline.rs
index a1fb825..2cf6cac 100644
--- a/src/khline.rs
+++ b/src/khline.rs
@@ -7,7 +7,7 @@ use icalwrap::{IcalVCalendar,IcalVEvent,IcalTime};
use utils::{fileutil,dateutil};
use defaults;
-#[derive(PartialEq,Eq)]
+#[derive(PartialEq,Eq,Debug)]
pub struct KhLine {
pub path: PathBuf,
time: Option<IcalTime>,
diff --git a/src/seqfile.rs b/src/seqfile.rs
index e2c2ddf..5994a33 100644
--- a/src/seqfile.rs
+++ b/src/seqfile.rs
@@ -2,7 +2,10 @@ use std::fs::rename;
use std::io;
use defaults::*;
+use khline::KhLine;
use utils::fileutil;
+use KhResult;
+use errors::KhError;
pub fn write_to_seqfile(lines: &str) -> io::Result<()> {
let tmpfilename = get_datafile("tmpseq");
@@ -21,6 +24,14 @@ pub fn read_seqfile() -> io::Result<impl DoubleEndedIterator<Item = String>> {
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::*;
@@ -41,6 +52,15 @@ mod tests {
}
#[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";