chore(lint): clippy rules redundant_clone (#2554)

This commit is contained in:
Tunglies
2026-04-15 06:54:07 -07:00
committed by GitHub
parent 73e6542eea
commit 49366ee200
57 changed files with 100 additions and 119 deletions
@@ -593,7 +593,7 @@ impl BucketTargetSys {
};
if let Some(cli) = cli {
return Some(cli.clone());
return Some(cli);
}
// TODO: spawn a task to reload the target
@@ -821,7 +821,7 @@ pub async fn abort_incomplete_multipart_upload_due(
.as_ref()?
.days_after_initiation
.filter(|days| *days > 0)?;
Some((expected_expiry_time(initiated, days), rule.id.clone().unwrap_or_default()))
Some((expected_expiry_time(initiated, days), rule.id.unwrap_or_default()))
})
.min_by_key(|(due, _)| due.unix_timestamp_nanos())
}
@@ -83,7 +83,7 @@ impl LastDayTierStats {
#[allow(dead_code)]
fn merge(&self, m: LastDayTierStats) -> LastDayTierStats {
let mut cl = self.clone();
let mut cm = m.clone();
let mut cm = m;
let mut merged = LastDayTierStats::default();
if cl.updated_at.unix_timestamp() > cm.updated_at.unix_timestamp() {
+1 -1
View File
@@ -678,7 +678,7 @@ impl BucketMetadata {
// let x = data.clone();
// let str = std::str::from_utf8(&x).expect("Invalid UTF-8");
// println!("update config:{}", str);
self.bucket_targets_config_json = data.clone();
self.bucket_targets_config_json = data;
self.bucket_targets_config_updated_at = updated;
}
BUCKET_CORS_CONFIG => {
@@ -754,7 +754,7 @@ impl<S: StorageAPI> ReplicationPool<S> {
buckets: Vec<String>,
) -> Result<(), EcstoreError> {
// Load bucket metadata system in background
let pool_clone = self.clone();
let pool_clone = self;
tokio::spawn(async move {
pool_clone.start_resync_routine(buckets, cancellation_token).await;
+1 -1
View File
@@ -144,7 +144,7 @@ impl KVS {
pub fn insert(&mut self, key: String, value: String) {
for kv in self.0.iter_mut() {
if kv.key == key {
kv.value = value.clone();
kv.value = value;
return;
}
}
+1 -4
View File
@@ -724,10 +724,7 @@ mod tests {
let path = PathBuf::from("/test/path");
let io_error = std::io::Error::new(std::io::ErrorKind::PermissionDenied, "permission denied");
let context_error = FileAccessDeniedWithContext {
path: path.clone(),
source: io_error,
};
let context_error = FileAccessDeniedWithContext { path, source: io_error };
let display_str = format!("{context_error}");
assert!(display_str.contains("/test/path"));
+5 -5
View File
@@ -67,7 +67,7 @@ pub fn reduce_errs(errors: &[Option<Error>], ignored_errs: &[Error]) -> (usize,
let (best_err, best_count) = err_counts
.into_iter()
.max_by(|(_, c1), (_, c2)| c1.cmp(c2))
.unwrap_or((nil_error.clone(), 0));
.unwrap_or((nil_error, 0));
// Compare nil errors with the top non-nil error and prefer the nil error
if nil_count > best_count || (nil_count == best_count && nil_count > 0) {
@@ -112,7 +112,7 @@ mod tests {
fn test_reduce_errs_basic() {
let e1 = err_io("a");
let e2 = err_io("b");
let errors = vec![Some(e1.clone()), Some(e1.clone()), Some(e2.clone()), None];
let errors = vec![Some(e1.clone()), Some(e1.clone()), Some(e2), None];
let ignored = vec![];
let (count, err) = reduce_errs(&errors, &ignored);
assert_eq!(count, 2);
@@ -124,7 +124,7 @@ mod tests {
let e1 = err_io("a");
let e2 = err_io("b");
let errors = vec![Some(e1.clone()), Some(e2.clone()), Some(e1.clone()), Some(e2.clone()), None];
let ignored = vec![e2.clone()];
let ignored = vec![e2];
let (count, err) = reduce_errs(&errors, &ignored);
assert_eq!(count, 2);
assert_eq!(err, Some(e1));
@@ -134,7 +134,7 @@ mod tests {
fn test_reduce_quorum_errs() {
let e1 = err_io("a");
let e2 = err_io("b");
let errors = vec![Some(e1.clone()), Some(e1.clone()), Some(e2.clone()), None];
let errors = vec![Some(e1.clone()), Some(e1.clone()), Some(e2), None];
let ignored = vec![];
let quorum_err = Error::FaultyDisk;
// quorum = 2, should return e1
@@ -167,7 +167,7 @@ mod tests {
fn test_reduce_errs_nil_tiebreak() {
// Error::Nil and another error have the same count, should prefer Nil
let e1 = err_io("a");
let errors = vec![Some(e1.clone()), None, Some(e1.clone()), None]; // e1:2, Nil:2
let errors = vec![Some(e1.clone()), None, Some(e1), None]; // e1:2, Nil:2
let ignored = vec![];
let (count, err) = reduce_errs(&errors, &ignored);
assert_eq!(count, 2);
+1 -1
View File
@@ -1173,7 +1173,7 @@ mod tests {
fn test_io_error_with_disk_error_inside() {
// Test io::Error containing DiskError -> StorageError conversion
let original_disk_error = DiskError::FileNotFound;
let io_with_disk_error = std::io::Error::other(original_disk_error.clone());
let io_with_disk_error = std::io::Error::other(original_disk_error);
// Convert io::Error to StorageError
let storage_error: StorageError = io_with_disk_error.into();
+1 -1
View File
@@ -3684,7 +3684,7 @@ mod pools_tests {
#[test]
fn test_take_decommission_canceler_takes_and_clears_slot() {
let token = CancellationToken::new();
let mut cancelers = vec![Some(token.clone())];
let mut cancelers = vec![Some(token)];
let taken = take_decommission_canceler(cancelers.as_mut_slice(), 0);
assert!(taken.is_some());
+2 -2
View File
@@ -357,7 +357,7 @@ impl S3PeerSys {
ress.into_iter()
.filter(|op| op.is_some())
.find_map(|op| op.clone())
.find_map(|op| op)
.ok_or(Error::VolumeNotFound)
}
@@ -575,7 +575,7 @@ pub struct RemotePeerS3Client {
impl RemotePeerS3Client {
pub fn new(node: Option<Node>, pools: Option<Vec<usize>>) -> Self {
let addr = node.as_ref().map(|v| v.url.to_string()).unwrap_or_default().to_string();
let addr = node.as_ref().map(|v| v.url.to_string()).unwrap_or_default();
let client = Self {
node,
pools,
+1 -1
View File
@@ -109,7 +109,7 @@ impl RemoteDisk {
let disk = Self {
id: Mutex::new(None),
addr: addr.clone(),
addr,
endpoint: ep.clone(),
scanning: Arc::new(AtomicU32::new(0)),
health_check: opt.health_check && env_health_check,
+3 -3
View File
@@ -24,9 +24,9 @@ fn pool_lookup_not_found_error(bucket: &str, object: &str, opts: &ObjectOptions)
let object = decode_dir_object(object);
if let Some(version_id) = &opts.version_id {
StorageError::VersionNotFound(bucket.to_owned(), object.to_owned(), version_id.clone())
StorageError::VersionNotFound(bucket.to_owned(), object, version_id.clone())
} else {
StorageError::ObjectNotFound(bucket.to_owned(), object.to_owned())
StorageError::ObjectNotFound(bucket.to_owned(), object)
}
}
@@ -418,7 +418,7 @@ impl ECStore {
if is_err_object_not_found(err)
&& let Err(err) = opts.precondition_check(&pinfo.object_info)
{
return Err(err.clone());
return Err(err);
}
if !is_err_object_not_found(err) && !is_err_version_not_found(err) {
+1 -1
View File
@@ -508,7 +508,7 @@ fn from_external_tier_config(name: String, ext: ExternalTierConfig) -> io::Resul
} else {
ext.version.clone()
},
name: if ext.name.is_empty() { name.clone() } else { ext.name.clone() },
name: if ext.name.is_empty() { name } else { ext.name.clone() },
..Default::default()
};