1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
//! Safe Rust bindings to [WinFSP](https://github.com/winfsp/winfsp).
//!
//! ## Usage
//! The `winfsp` crate wraps the WinFSP service architecture and user mode filesystem host.
//! Implement the [`FileSystemContext`](crate::filesystem::FileSystemContext) trait, then
//! create a [`FileSystemHost`](crate::host::FileSystemHost) instance.
//!
//! It is highly recommended to use the service architecture to manage the lifecycle of a `FileSystemHost`.
//!
//! Using [`FileSystemServiceBuilder`](crate::service::FileSystemServiceBuilder), create, start, and mount the `FileSystemHost`
//! within the [`FileSystemServiceBuilder::with_start`](crate::service::FileSystemServiceBuilder::with_start) closure,
//! and handle teardown in the [`FileSystemServiceBuilder::with_stop`](crate::service::FileSystemServiceBuilder::with_stop)
//! closure.
//!
//! The resulting service can be built after initializing WinFSP for your application with [`winfsp_init`](crate::winfsp_init) or [`winfsp_init_or_die`](crate::winfsp_init_or_die).
//!
//! ## Build-time requirements
//! WinFSP only supports delayloading of its library. You must emit the required
//! compile flags in `build.rs` with [`winfsp_link_delayload`](crate::build::winfsp_link_delayload).
//!
//! ```rust
//! fn main() {
//! winfsp::build::winfsp_link_delayload();
//! }
//! ```
//!
// only publicly export notify if feature is enabled.
pub use FspError;
pub use Result;
pub use ;
pub use ;