pub struct WatchDirectory { /* private fields */ }Expand description
An owned, marshalable parameter set for FindFirstChangeNotificationW.
§Example
use windows_namespace_request_sys::watch::{NotifyFilter, WatchDirectory};
use wtf_string::Wtf16String;
let directory = std::env::temp_dir();
let text = directory.to_str().expect("the temporary directory is valid UTF-8");
let request = WatchDirectory::new(Wtf16String::from(text))?
.with_subtree(true)
.with_filter(NotifyFilter::FILE_NAME | NotifyFilter::DIR_NAME);
let notification = request.perform()?;
// The handle is closed with FindCloseChangeNotification, which the type
// remembers on the caller's behalf.
drop(notification);Implementations§
Source§impl WatchDirectory
impl WatchDirectory
Sourcepub fn new(path: Wtf16String) -> Result<Self, PathCaptureError>
pub fn new(path: Wtf16String) -> Result<Self, PathCaptureError>
Begins a request to watch path.
The path reaches the call as it was given, except that one Win32 would resolve against the
current directory is fixed to the current directory as it is now, so that it still names
the same place when the request is performed on another thread after the directory has
changed; see OpenFile::new and D-19 in the crate’s
DESIGN-NOTES.md. path is the path as given and
win32_path is the one handed to the call.
The watch starts non-recursive and watching for nothing; both are set explicitly, as everywhere else in this crate.
§Errors
PathCaptureError::InteriorNul if the path contains a NUL, which Win32 would read as its
end, and the failure of GetCurrentDirectoryW if it had to be read and could not be.
Sourcepub fn with_subtree(self, subtree: bool) -> Self
pub fn with_subtree(self, subtree: bool) -> Self
Sets bWatchSubtree.
Sourcepub fn with_filter(self, filter: NotifyFilter) -> Self
pub fn with_filter(self, filter: NotifyFilter) -> Self
Sets dwNotifyFilter.
Sourcepub fn win32_path(&self) -> &Wtf16Str
pub fn win32_path(&self) -> &Wtf16Str
The path that is handed to FindFirstChangeNotificationW: the one given, or that one fixed
to the current directory of the moment the request was built.
Sourcepub fn filter(&self) -> NotifyFilter
pub fn filter(&self) -> NotifyFilter
The change classes the watch reports.