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