diff options
author | Alexander Batischev <eual.jp@gmail.com> | 2021-04-25 21:31:11 +0300 |
---|---|---|
committer | Alexander Batischev <eual.jp@gmail.com> | 2021-04-26 16:01:16 +0300 |
commit | 2991aade4d71d28dcf30d089e54269934e4885b6 (patch) | |
tree | 6e0f313d3dfa11776010708edff92f182cea2e0e | |
parent | f21e6e0280b094efb72736f53931ecf0e7c2c0a2 (diff) | |
download | obnam2-2991aade4d71d28dcf30d089e54269934e4885b6.tar.gz |
Extend the iterator to users of LocalGeneration::files()
-rw-r--r-- | src/cmd/list_files.rs | 2 | ||||
-rw-r--r-- | src/cmd/restore.rs | 4 | ||||
-rw-r--r-- | src/cmd/show_gen.rs | 5 | ||||
-rw-r--r-- | src/generation.rs | 4 |
4 files changed, 8 insertions, 7 deletions
diff --git a/src/cmd/list_files.rs b/src/cmd/list_files.rs index 7f0cfed..c5191f7 100644 --- a/src/cmd/list_files.rs +++ b/src/cmd/list_files.rs @@ -22,7 +22,7 @@ impl ListFiles { let gen_id: String = genlist.resolve(&self.gen_id)?; let gen = client.fetch_generation(&gen_id, temp.path())?; - for file in gen.files()? { + for file in gen.files()?.iter()? { let file = file?; println!("{}", format_entry(&file.entry(), file.reason())); } diff --git a/src/cmd/restore.rs b/src/cmd/restore.rs index f8bbaf4..91045f1 100644 --- a/src/cmd/restore.rs +++ b/src/cmd/restore.rs @@ -40,7 +40,7 @@ impl Restore { let gen = client.fetch_generation(&gen_id, temp.path())?; info!("restoring {} files", gen.file_count()?); let progress = create_progress_bar(gen.file_count()?, true); - for file in gen.files()? { + for file in gen.files()?.iter()? { let file = file?; match file.reason() { Reason::FileError => (), @@ -54,7 +54,7 @@ impl Restore { )?, } } - for file in gen.files()? { + for file in gen.files()?.iter()? { let file = file?; if file.entry().is_dir() { restore_directory_metadata(file.entry(), &self.to)?; diff --git a/src/cmd/show_gen.rs b/src/cmd/show_gen.rs index 7dc52cf..df8a030 100644 --- a/src/cmd/show_gen.rs +++ b/src/cmd/show_gen.rs @@ -21,9 +21,10 @@ impl ShowGeneration { let genlist = client.list_generations()?; let gen_id: String = genlist.resolve(&self.gen_id)?; let gen = client.fetch_generation(&gen_id, temp.path())?; - let files = gen.files()?; + let mut files = gen.files()?; + let mut files = files.iter()?; - let total_bytes = files.into_iter().try_fold(0, |acc, file| { + let total_bytes = files.try_fold(0, |acc, file| { file.map(|file| { let e = file.entry(); if e.kind() == FilesystemKind::Regular { diff --git a/src/generation.rs b/src/generation.rs index e5ca14c..10143ab 100644 --- a/src/generation.rs +++ b/src/generation.rs @@ -196,8 +196,8 @@ impl LocalGeneration { sql::file_count(&self.conn) } - pub fn files(&self) -> LocalGenerationResult<Vec<LocalGenerationResult<BackedUpFile>>> { - Ok(sql::files(&self.conn)?.iter()?.collect()) + pub fn files(&self) -> LocalGenerationResult<sql::SqlResults> { + sql::files(&self.conn) } pub fn chunkids(&self, fileno: FileId) -> LocalGenerationResult<Vec<ChunkId>> { |