diff --git a/src/backend/decrypt.rs b/src/backend/decrypt.rs index 364a20d..5d542b0 100644 --- a/src/backend/decrypt.rs +++ b/src/backend/decrypt.rs @@ -18,9 +18,9 @@ pub trait DecryptReadBackend: ReadBackend { fn read_encrypted_full(&self, tpe: FileType, id: &Id) -> Result { let decrypted = self.decrypt(&self.read_full(tpe, id)?)?; - Ok(match decrypted[0] { - b'{' | b'[' => decrypted, // not compressed - 2 => decode_all(&decrypted[1..])?, // 2 indicates compressed data following + Ok(match decrypted.first() { + Some(b'{' | b'[') => decrypted, // not compressed + Some(2) => decode_all(&decrypted[1..])?, // 2 indicates compressed data following _ => bail!("not supported"), } .into()) diff --git a/src/chunker.rs b/src/chunker.rs index 94588e8..59d79c3 100644 --- a/src/chunker.rs +++ b/src/chunker.rs @@ -81,7 +81,7 @@ impl Iterator for ChunkIter { } self.rabin - .reset_and_prefill_window(&mut vec[vec.len() - 64..vec.len()].iter().cloned()); + .reset_and_prefill_window(&mut vec[vec.len() - 64..vec.len()].iter().copied()); loop { if vec.len() >= self.max_size { diff --git a/src/commands/forget.rs b/src/commands/forget.rs index 4840961..64ac941 100644 --- a/src/commands/forget.rs +++ b/src/commands/forget.rs @@ -112,10 +112,10 @@ pub(super) fn execute( ("remove", "id argument".to_string()) } else { match group_keep.matches(sn, last, iter.peek().is_some(), latest_time) { - None if default_keep => ("keep", "".to_string()), + None if default_keep => ("keep", String::new()), None => { forget_snaps.push(sn.id); - ("remove", "".to_string()) + ("remove", String::new()) } Some(reason) => ("keep", reason), } diff --git a/src/commands/snapshots.rs b/src/commands/snapshots.rs index 80d5a06..1ec5ef9 100644 --- a/src/commands/snapshots.rs +++ b/src/commands/snapshots.rs @@ -170,7 +170,7 @@ fn display_snap(sn: SnapshotFile) { }; add_entry("Parent", parent); if let Some(summary) = sn.summary { - add_entry("", "".to_string()); + add_entry("", String::new()); add_entry("Command", summary.command); let source = format!( @@ -180,7 +180,7 @@ fn display_snap(sn: SnapshotFile) { bytes(summary.total_bytes_processed) ); add_entry("Source", source); - add_entry("", "".to_string()); + add_entry("", String::new()); let files = format!( "new: {:>10} / changed: {:>10} / unchanged: {:>10}", @@ -193,7 +193,7 @@ fn display_snap(sn: SnapshotFile) { summary.dirs_new, summary.dirs_changed, summary.dirs_unmodified, ); add_entry("Dirs", trees); - add_entry("", "".to_string()); + add_entry("", String::new()); let written = format!( "data: {:>10} blobs / raw: {:>10} / packed: {:>10}\n\