1
0
Fork 0
mirror of synced 2024-06-09 14:05:08 +12:00

Sort unstable

This commit is contained in:
Rafał Mikrut 2022-07-23 14:31:18 +02:00
parent 8f0527cd33
commit 62bb1d21c1
10 changed files with 50 additions and 50 deletions

40
Cargo.lock generated
View file

@ -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",

View file

@ -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"

View file

@ -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 }

View file

@ -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,

View file

@ -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)
});

View file

@ -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

View file

@ -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::<Vec<PathBuf>>();
actual.sort();
actual.sort_unstable();
assert_eq!(vec![src, dst], actual);
Ok(())
}

View file

@ -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"

View file

@ -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::<Vec<PathBuf>>();
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)
});

View file

@ -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 {