diff --git a/Cargo.lock b/Cargo.lock index 24b3210..f8980fe 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -341,9 +341,9 @@ dependencies = [ [[package]] name = "clap" -version = "3.2.12" +version = "3.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab8b79fe3946ceb4a0b1c080b4018992b8d27e9ff363644c1c9b6387c854614d" +checksum = "54635806b078b7925d6e36810b1755f2a4b5b4d57560432c1ecf60bcbe10602b" dependencies = [ "atty", "bitflags", @@ -410,9 +410,9 @@ dependencies = [ [[package]] name = "crossbeam-channel" -version = "0.5.5" +version = "0.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c02a4d71819009c192cf4872265391563fd6a84c81ff2c0f2a7026ca4c1d85c" +checksum = "c2dd04ddaf88237dc3b8d8f9a3c1004b506b54b3313403944054d23c0870c521" dependencies = [ "cfg-if", "crossbeam-utils", @@ -420,9 +420,9 @@ dependencies = [ [[package]] name = "crossbeam-deque" -version = "0.8.1" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6455c0ca19f0d2fbf751b908d5c55c1f5cbc65e03c4225427254b46890bdde1e" +checksum = "715e8152b692bba2d374b53d4875445368fdf21a94751410af607a5ac677d1fc" dependencies = [ "cfg-if", "crossbeam-epoch", @@ -431,9 +431,9 @@ dependencies = [ [[package]] name = "crossbeam-epoch" -version = "0.9.9" +version = "0.9.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07db9d94cbd326813772c968ccd25999e5f8ae22f4f8d1b11effa37ef6ce281d" +checksum = "045ebe27666471bb549370b4b0b3e51b07f56325befa4284db65fc89c02511b1" dependencies = [ "autocfg", "cfg-if", @@ -445,9 +445,9 @@ dependencies = [ [[package]] name = "crossbeam-utils" -version = "0.8.10" +version = "0.8.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d82ee10ce34d7bc12c2122495e7593a9c41347ecdd64185af4ecf72cb1a7f83" +checksum = "51887d4adc7b564537b15adcfb307936f8075dfcd5f00dde9a9f1d29383682bc" dependencies = [ "cfg-if", "once_cell", @@ -785,9 +785,9 @@ dependencies = [ [[package]] name = "flume" -version = "0.10.13" +version = "0.10.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ceeb589a3157cac0ab8cc585feb749bd2cea5cb55a6ee802ad72d9fd38303da" +checksum = "1657b4441c3403d9f7b3409e47575237dac27b1b5726df654a6ecbf92f0f7577" dependencies = [ "futures-core", "futures-sink", @@ -1569,9 +1569,9 @@ dependencies = [ [[package]] name = "lofty" -version = "0.7.2" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6d1ba3c036ad548be962a93536441b393429b24da8492b1b5288012164b8a8f" +checksum = "b3b64d3508069f7addfe636551140ddf45afb2b5317b2a2b8c12a99f08f2dba3" dependencies = [ "base64 0.13.0", "byteorder", @@ -2187,9 +2187,9 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.2.13" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62f25bc4c7e55e0b0b7a1d43fb893f4fa1361d0abe38b9ce4f323c2adfe6ef42" +checksum = "534cfe58d6a18cc17120fbf4635d53d14691c1fe4d951064df9bd326178d7d5a" dependencies = [ "bitflags", ] @@ -2393,18 +2393,18 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.139" +version = "1.0.140" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0171ebb889e45aa68b44aee0859b3eede84c6f5f5c228e6f140c0b2a0a46cad6" +checksum = "fc855a42c7967b7c369eb5860f7164ef1f6f81c20c7cc1141f2a604e18723b03" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.139" +version = "1.0.140" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc1d3230c1de7932af58ad8ffbe1d784bd55efd5a9d84ac24f69c72d83543dfb" +checksum = "6f2122636b9fe3b81f1cb25099fcf2d3f542cdb1d45940d56c713158884a05da" dependencies = [ "proc-macro2", "quote", diff --git a/czkawka_cli/Cargo.toml b/czkawka_cli/Cargo.toml index f741d8b..81779a8 100644 --- a/czkawka_cli/Cargo.toml +++ b/czkawka_cli/Cargo.toml @@ -10,7 +10,7 @@ homepage = "https://github.com/qarmin/czkawka" repository = "https://github.com/qarmin/czkawka" [dependencies] -clap = { version = "3.2.12", features = ["derive"] } +clap = { version = "3.2.14", features = ["derive"] } # For enum types image_hasher = "1.0.0" diff --git a/czkawka_core/Cargo.toml b/czkawka_core/Cargo.toml index 35aedf0..48121ec 100644 --- a/czkawka_core/Cargo.toml +++ b/czkawka_core/Cargo.toml @@ -13,7 +13,7 @@ repository = "https://github.com/qarmin/czkawka" [dependencies] humansize = "1.1.1" rayon = "1.5.3" -crossbeam-channel = "0.5.5" +crossbeam-channel = "0.5.6" # For saving/loading config files to specific directories directories-next = "2.0.0" @@ -26,7 +26,7 @@ hamming = "0.1.3" # Needed by same music bitflags = "1.3.2" -lofty= "0.7.2" +lofty= "0.7.3" # Futures - needed by async progress sender futures = "0.3.21" @@ -48,7 +48,7 @@ vid_dup_finder_lib = "0.1.0" ffmpeg_cmdline_utils = "0.1.1" # Saving/Loading Cache -serde = "1.0.139" +serde = "1.0.140" bincode = "1.3.3" serde_json = "1.0.82" @@ -68,6 +68,7 @@ infer = "0.9.0" num_cpus = "1.13.1" +# Heif/Heic libheif-rs = { version = "0.15.0", optional = true } anyhow = { version = "1.0.58", optional = true } diff --git a/czkawka_core/src/bad_extensions.rs b/czkawka_core/src/bad_extensions.rs index 184f4d2..b988fec 100644 --- a/czkawka_core/src/bad_extensions.rs +++ b/czkawka_core/src/bad_extensions.rs @@ -148,7 +148,6 @@ static WORKAROUNDS: &[(&str, &str)] = &[ ("msi", "doc"), // Not sure whe doc is not recognized ("exe", "xls"), // Not sure whe xls is not recognized ]; - #[derive(Clone)] pub struct BadFileEntry { pub path: PathBuf, diff --git a/czkawka_core/src/big_file.rs b/czkawka_core/src/big_file.rs index f454b3c..45de73c 100644 --- a/czkawka_core/src/big_file.rs +++ b/czkawka_core/src/big_file.rs @@ -336,7 +336,7 @@ impl BigFile { for (size, mut vector) in iter { if self.information.number_of_real_files < self.number_of_files_to_check { if vector.len() > 1 { - vector.sort_by_key(|e| { + vector.sort_unstable_by_key(|e| { let t = split_path(e.path.as_path()); (t.0, t.1) }); diff --git a/czkawka_core/src/common_directory.rs b/czkawka_core/src/common_directory.rs index 0a94e0c..ac496f4 100644 --- a/czkawka_core/src/common_directory.rs +++ b/czkawka_core/src/common_directory.rs @@ -171,9 +171,9 @@ impl Directories { // Remove duplicated entries like: "/", "/" - self.excluded_directories.sort(); - self.included_directories.sort(); - self.reference_directories.sort(); + self.excluded_directories.sort_unstable(); + self.included_directories.sort_unstable(); + self.reference_directories.sort_unstable(); self.excluded_directories.dedup(); self.included_directories.dedup(); @@ -292,8 +292,8 @@ impl Directories { } // Not needed, but better is to have sorted everything - self.excluded_directories.sort(); - self.included_directories.sort(); + self.excluded_directories.sort_unstable(); + self.included_directories.sort_unstable(); Common::print_time(start_time, SystemTime::now(), "optimize_directories".to_string()); // Get device IDs for included directories diff --git a/czkawka_core/src/duplicate.rs b/czkawka_core/src/duplicate.rs index 1870e2d..269f18b 100644 --- a/czkawka_core/src/duplicate.rs +++ b/czkawka_core/src/duplicate.rs @@ -1476,7 +1476,7 @@ mod tests { assert_eq!(metadata.modified()?, fs::metadata(&src)?.modified()?); let mut actual = read_dir(&dir)?.map(|e| e.unwrap().path()).collect::>(); - actual.sort(); + actual.sort_unstable(); assert_eq!(vec![src, dst], actual); Ok(()) } diff --git a/czkawka_gui/Cargo.toml b/czkawka_gui/Cargo.toml index 81a49a6..8ea70bc 100644 --- a/czkawka_gui/Cargo.toml +++ b/czkawka_gui/Cargo.toml @@ -17,7 +17,7 @@ humansize = "1.1.1" chrono = "0.4.19" # Used for sending stop signal across threads -crossbeam-channel = "0.5.5" +crossbeam-channel = "0.5.6" # To get informations about progress futures = "0.3.21" diff --git a/czkawka_gui/src/compute_results.rs b/czkawka_gui/src/compute_results.rs index 0274d5b..11c0e7a 100644 --- a/czkawka_gui/src/compute_results.rs +++ b/czkawka_gui/src/compute_results.rs @@ -157,7 +157,7 @@ pub fn connect_compute_results(gui_data: &GuiData, glib_stop_receiver: Receiver< // Sort let vector = if vector.len() >= 2 { let mut vector = vector.clone(); - vector.sort_by_key(|e| { + vector.sort_unstable_by_key(|e| { let t = split_path(e.path.as_path()); (t.0, t.1) }); @@ -216,7 +216,7 @@ pub fn connect_compute_results(gui_data: &GuiData, glib_stop_receiver: Receiver< // Sort let vector = if vector.len() >= 2 { let mut vector = vector.clone(); - vector.sort_by_key(|e| { + vector.sort_unstable_by_key(|e| { let t = split_path(e.path.as_path()); (t.0, t.1) }); @@ -276,7 +276,7 @@ pub fn connect_compute_results(gui_data: &GuiData, glib_stop_receiver: Receiver< // Sort let vector = if vector.len() >= 2 { let mut vector = vector.clone(); - vector.sort_by_key(|e| { + vector.sort_unstable_by_key(|e| { let t = split_path(e.path.as_path()); (t.0, t.1) }); @@ -339,7 +339,7 @@ pub fn connect_compute_results(gui_data: &GuiData, glib_stop_receiver: Receiver< // Sort let vector = if vector.len() >= 2 { let mut vector = vector.clone(); - vector.sort_by_key(|e| { + vector.sort_unstable_by_key(|e| { let t = split_path(e.path.as_path()); (t.0, t.1) }); @@ -395,7 +395,7 @@ pub fn connect_compute_results(gui_data: &GuiData, glib_stop_receiver: Receiver< // Sort let vector = if vector.len() >= 2 { let mut vector = vector.clone(); - vector.sort_by_key(|e| { + vector.sort_unstable_by_key(|e| { let t = split_path(e.path.as_path()); (t.0, t.1) }); @@ -449,7 +449,7 @@ pub fn connect_compute_results(gui_data: &GuiData, glib_stop_receiver: Receiver< // Sort let vector = if vector.len() >= 2 { let mut vector = vector.clone(); - vector.sort_by_key(|e| { + vector.sort_unstable_by_key(|e| { let t = split_path(e.path.as_path()); (t.0, t.1) }); @@ -550,7 +550,7 @@ pub fn connect_compute_results(gui_data: &GuiData, glib_stop_receiver: Receiver< let hashmap = ef.get_empty_folder_list(); let mut vector = hashmap.keys().cloned().collect::>(); - vector.sort_by_key(|e| { + vector.sort_unstable_by_key(|e| { let t = split_path(e.as_path()); (t.0, t.1) }); @@ -616,7 +616,7 @@ pub fn connect_compute_results(gui_data: &GuiData, glib_stop_receiver: Receiver< // Sort let mut vector = vector.clone(); - vector.sort_by_key(|e| { + vector.sort_unstable_by_key(|e| { let t = split_path(e.path.as_path()); (t.0, t.1) }); @@ -742,7 +742,7 @@ pub fn connect_compute_results(gui_data: &GuiData, glib_stop_receiver: Receiver< // Sort let mut vector = vector.clone(); - vector.sort_by_key(|e| { + vector.sort_unstable_by_key(|e| { let t = split_path(e.path.as_path()); (t.0, t.1) }); @@ -999,7 +999,7 @@ pub fn connect_compute_results(gui_data: &GuiData, glib_stop_receiver: Receiver< // Sort let vec_file_entry = if vec_file_entry.len() >= 2 { let mut vec_file_entry = vec_file_entry.clone(); - vec_file_entry.sort_by_key(|e| { + vec_file_entry.sort_unstable_by_key(|e| { let t = split_path(e.path.as_path()); (t.0, t.1) }); @@ -1057,7 +1057,7 @@ pub fn connect_compute_results(gui_data: &GuiData, glib_stop_receiver: Receiver< // Sort let vec_file_entry = if vec_file_entry.len() >= 2 { let mut vec_file_entry = vec_file_entry.clone(); - vec_file_entry.sort_by_key(|e| { + vec_file_entry.sort_unstable_by_key(|e| { let t = split_path(e.path.as_path()); (t.0, t.1) }); @@ -1181,7 +1181,7 @@ pub fn connect_compute_results(gui_data: &GuiData, glib_stop_receiver: Receiver< // Sort let vec_file_entry = if vec_file_entry.len() >= 2 { let mut vec_file_entry = vec_file_entry.clone(); - vec_file_entry.sort_by_key(|e| { + vec_file_entry.sort_unstable_by_key(|e| { let t = split_path(e.path.as_path()); (t.0, t.1) }); @@ -1252,7 +1252,7 @@ pub fn connect_compute_results(gui_data: &GuiData, glib_stop_receiver: Receiver< // Sort let vec_file_entry = if vec_file_entry.len() >= 2 { let mut vec_file_entry = vec_file_entry.clone(); - vec_file_entry.sort_by_key(|e| { + vec_file_entry.sort_unstable_by_key(|e| { let t = split_path(e.path.as_path()); (t.0, t.1) }); @@ -1402,7 +1402,7 @@ pub fn connect_compute_results(gui_data: &GuiData, glib_stop_receiver: Receiver< // Sort let mut vector = vector.clone(); - vector.sort_by_key(|e| { + vector.sort_unstable_by_key(|e| { let t = split_path(e.path.as_path()); (t.0, t.1) }); @@ -1474,7 +1474,7 @@ pub fn connect_compute_results(gui_data: &GuiData, glib_stop_receiver: Receiver< // Sort let mut vector = vector.clone(); - vector.sort_by_key(|e| { + vector.sort_unstable_by_key(|e| { let t = split_path(e.path.as_path()); (t.0, t.1) }); @@ -1540,7 +1540,7 @@ pub fn connect_compute_results(gui_data: &GuiData, glib_stop_receiver: Receiver< // Sort let mut vector = vector.clone(); - vector.sort_by_key(|e| { + vector.sort_unstable_by_key(|e| { let t = split_path(e.path.as_path()); (t.0, t.1) }); diff --git a/czkawka_gui/src/connect_things/connect_button_delete.rs b/czkawka_gui/src/connect_things/connect_button_delete.rs index 7e951c2..732ea6d 100644 --- a/czkawka_gui/src/connect_things/connect_button_delete.rs +++ b/czkawka_gui/src/connect_things/connect_button_delete.rs @@ -509,7 +509,7 @@ pub fn tree_remove( // Delete duplicated entries, and remove real files for (path, mut vec_file_name) in map_with_path_to_delete { - vec_file_name.sort(); + vec_file_name.sort_unstable(); vec_file_name.dedup(); for file_name in vec_file_name { if !use_trash {