mirror of
https://github.com/BurntSushi/walkdir.git
synced 2025-09-28 06:00:32 +00:00
parent
079d1456eb
commit
107750f24e
@ -126,7 +126,6 @@ use std::fmt;
|
||||
use std::fs::{self, FileType, ReadDir};
|
||||
use std::io;
|
||||
use std::ffi::OsStr;
|
||||
use std::ffi::OsString;
|
||||
use std::path::{Path, PathBuf};
|
||||
use std::result;
|
||||
use std::vec;
|
||||
@ -252,7 +251,7 @@ struct WalkDirOptions {
|
||||
max_open: usize,
|
||||
min_depth: usize,
|
||||
max_depth: usize,
|
||||
sorter: Option<Box<FnMut(&DirEntry,&DirEntry) -> Ordering + 'static>>,
|
||||
sorter: Option<Box<FnMut(&DirEntry,&DirEntry) -> Ordering + Send + Sync + 'static>>,
|
||||
contents_first: bool,
|
||||
}
|
||||
|
||||
@ -382,7 +381,7 @@ impl WalkDir {
|
||||
/// WalkDir::new("foo").sort_by(|a,b| a.file_name().cmp(b.file_name()));
|
||||
/// ```
|
||||
pub fn sort_by<F>(mut self, cmp: F) -> Self
|
||||
where F: FnMut(&DirEntry, &DirEntry) -> Ordering + 'static {
|
||||
where F: FnMut(&DirEntry, &DirEntry) -> Ordering + Send + Sync + 'static {
|
||||
self.opts.sorter = Some(Box::new(cmp));
|
||||
self
|
||||
}
|
||||
|
15
src/tests.rs
15
src/tests.rs
@ -792,3 +792,18 @@ fn walk_dir_sort_small_fd_max() {
|
||||
assert_eq!(got,
|
||||
["", "/foo", "/foo/abc", "/foo/abc/fit", "/foo/bar", "/foo/faz"]);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn walk_dir_send_sync_traits() {
|
||||
use FilterEntry;
|
||||
|
||||
fn assert_send<T: Send>() {}
|
||||
fn assert_sync<T: Sync>() {}
|
||||
|
||||
assert_send::<WalkDir>();
|
||||
assert_sync::<WalkDir>();
|
||||
assert_send::<IntoIter>();
|
||||
assert_sync::<IntoIter>();
|
||||
assert_send::<FilterEntry<IntoIter, u8>>();
|
||||
assert_sync::<FilterEntry<IntoIter, u8>>();
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user