summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Batischev <eual.jp@gmail.com>2021-04-25 21:31:11 +0300
committerAlexander Batischev <eual.jp@gmail.com>2021-04-26 16:01:16 +0300
commit2991aade4d71d28dcf30d089e54269934e4885b6 (patch)
tree6e0f313d3dfa11776010708edff92f182cea2e0e
parentf21e6e0280b094efb72736f53931ecf0e7c2c0a2 (diff)
downloadobnam2-2991aade4d71d28dcf30d089e54269934e4885b6.tar.gz
Extend the iterator to users of LocalGeneration::files()
-rw-r--r--src/cmd/list_files.rs2
-rw-r--r--src/cmd/restore.rs4
-rw-r--r--src/cmd/show_gen.rs5
-rw-r--r--src/generation.rs4
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>> {