mirror of
https://github.com/rustfs/rustfs.git
synced 2026-08-09 22:59:59 +00:00
chore(lint): clippy rules redundant_clone (#2554)
This commit is contained in:
@@ -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() {
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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"));
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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());
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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()
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user