win-desktop-utils 0.5.7

Windows desktop helpers for shell, shortcuts, app data, elevation, and single-instance Rust apps
Documentation
# Runtime Overhead

`win-desktop-utils` is mostly a validation and FFI boundary around Windows shell
APIs. Most operations are dominated by the operating system work they ask
Windows to perform.

## Runtime Model

- No background runtime is started by the crate.
- No async executor is created or required.
- No telemetry, network calls, or analytics are performed.
- No global mutable state is owned by the crate.
- Single-instance guards own one Windows mutex handle until dropped.
- Shortcut and Recycle Bin helpers use short-lived STA worker threads for COM
  operations that need apartment-threaded shell APIs.
- Shell and elevation helpers delegate to `ShellExecuteW`.
- App-data helpers call `SHGetKnownFolderPath` and optionally `create_dir_all`.

## Cost Shape

The expensive part is usually outside this crate:

- opening a file or URL depends on the registered handler
- Explorer reveal starts or reuses Explorer
- UAC prompts depend on Windows elevation policy
- shortcut creation depends on COM Shell Link APIs
- Recycle Bin operations depend on the shell and filesystem

The crate performs input validation before these calls where practical, then
returns ordinary Rust `Result` values.

## Dependency Surface

The only runtime dependency is the target-specific optional `windows` crate.
Feature flags control which public modules are exposed, while enabled Windows
features share one Windows binding dependency.

Non-Windows builds do not compile the Windows bindings. They compile public API
stubs that return `Error::Unsupported`.