diff options
author | Alexander Batischev <eual.jp@gmail.com> | 2021-04-25 18:29:19 +0300 |
---|---|---|
committer | Alexander Batischev <eual.jp@gmail.com> | 2021-04-26 15:00:05 +0300 |
commit | 36c89315fad651b3b8ce1f8e25310db3ea668fae (patch) | |
tree | 64f15f87468b7eecf41b59b0fbf2f74369ce640b /src/cmd/list_files.rs | |
parent | 80aaff3f70f790141fbc8caa8a2f4830cd5e3fee (diff) | |
download | obnam2-36c89315fad651b3b8ce1f8e25310db3ea668fae.tar.gz |
Expose fallibility of individual SQL results
`LocalGeneration::sql::files()` runs an SQL query, iterates over the
results and collects the rows into a `Vec`. This can fail at any step:
the query might fail to run, or one of the rows might fail to be fetched
or processed.
Right now, we lump all those failures into a `Result` that wraps the
whole return value. This is only possible because we process each row
before returning. Once `Vec` is replaced by an iterator, we won't have
that luxury anymore, so we now wrap each individual element into its own
`Result` (as well as wrapping the whole vector into a `Result` of its
own).
Diffstat (limited to 'src/cmd/list_files.rs')
-rw-r--r-- | src/cmd/list_files.rs | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/src/cmd/list_files.rs b/src/cmd/list_files.rs index 22b102e..7f0cfed 100644 --- a/src/cmd/list_files.rs +++ b/src/cmd/list_files.rs @@ -23,6 +23,7 @@ impl ListFiles { let gen = client.fetch_generation(&gen_id, temp.path())?; for file in gen.files()? { + let file = file?; println!("{}", format_entry(&file.entry(), file.reason())); } |