[pbs-devel] [PATCH proxmox-backup v2 05/14] tape/pool_writer: clippy fixes

Wolfgang Bumiller w.bumiller at proxmox.com
Mon Apr 19 10:48:59 CEST 2021


> On 04/16/2021 12:29 PM Dominik Csapak <d.csapak at proxmox.com> wrote:
> 
>  
> fixes:
> * impl (or derive) Default for structs with `new()`
> * put complex type in type definition
> 
> Signed-off-by: Dominik Csapak <d.csapak at proxmox.com>
> ---
>  src/tape/pool_writer/catalog_set.rs         | 1 +
>  src/tape/pool_writer/mod.rs                 | 4 +++-
>  src/tape/pool_writer/new_chunks_iterator.rs | 4 +++-
>  3 files changed, 7 insertions(+), 2 deletions(-)
> 
> diff --git a/src/tape/pool_writer/catalog_set.rs b/src/tape/pool_writer/catalog_set.rs
> index fbca3e97..b3630915 100644
> --- a/src/tape/pool_writer/catalog_set.rs
> +++ b/src/tape/pool_writer/catalog_set.rs
> @@ -12,6 +12,7 @@ use crate::{
>  /// Helper to build and query sets of catalogs
>  ///
>  /// Similar to MediaSetCatalog, but allows to modify the last catalog.
> +#[derive(Default)]
>  pub struct CatalogSet {
>      // read only part
>      pub media_set_catalog: MediaSetCatalog,
> diff --git a/src/tape/pool_writer/mod.rs b/src/tape/pool_writer/mod.rs
> index 99fdb48c..36c4dea0 100644
> --- a/src/tape/pool_writer/mod.rs
> +++ b/src/tape/pool_writer/mod.rs
> @@ -531,6 +531,8 @@ impl PoolWriter {
>      }
>  }
>  
> +type WriteChunkArchiveResult = (Vec<[u8;32]>, Uuid, bool, usize);

Urgh. Struct please....

Or, it's used exactly once, so maybe just #[clippy] this away and document on the function.

But erm, structs don't hurt.

(They really don't)

> +
>  /// write up to <max_size> of chunks
>  fn write_chunk_archive<'a>(
>      _worker: &WorkerTask,
> @@ -538,7 +540,7 @@ fn write_chunk_archive<'a>(
>      chunk_iter: &mut std::iter::Peekable<NewChunksIterator>,
>      store: &str,
>      max_size: usize,
> -) -> Result<(Vec<[u8;32]>, Uuid, bool, usize), Error> {
> +) -> Result<WriteChunkArchiveResult, Error> {
>  
>      let (mut writer, content_uuid) = ChunkArchiveWriter::new(writer, store, true)?;
>  
> diff --git a/src/tape/pool_writer/new_chunks_iterator.rs b/src/tape/pool_writer/new_chunks_iterator.rs
> index 56491356..55ea407d 100644
> --- a/src/tape/pool_writer/new_chunks_iterator.rs
> +++ b/src/tape/pool_writer/new_chunks_iterator.rs
> @@ -15,12 +15,14 @@ use crate::{
>      },
>  };
>  
> +type ChunkReceiver = std::sync::mpsc::Receiver<Result<Option<([u8; 32], DataBlob)>, Error>>;

One of these days I'll have change all those million `[u8; 32]` to a `Digest`.
And make all the digest "methods" we now have free-standing in multiple crates real *methods*.

> +
>  /// Chunk iterator which use a separate thread to read chunks
>  ///
>  /// The iterator skips duplicate chunks and chunks already in the
>  /// catalog.
>  pub struct NewChunksIterator {
> -    rx: std::sync::mpsc::Receiver<Result<Option<([u8; 32], DataBlob)>, Error>>,
> +    rx: ChunkReceiver,
>  }
>  
>  impl NewChunksIterator {
> -- 
> 2.20.1





More information about the pbs-devel mailing list