win-sync-sys 0.0.2

Memory-safe Rust over the Win32 synchronization API, starting with an owned event object that can be set and reset without unsafe. Thin over Win32, adding no policy.
Documentation
# Copyright (c) 2026 Mike Grier

[package]
name = "win-sync-sys"
version = "0.0.2"
authors.workspace = true
edition.workspace = true
rust-version.workspace = true
license.workspace = true
repository.workspace = true
homepage.workspace = true
readme = "README.md"
description = "Memory-safe Rust over the Win32 synchronization API, starting with an owned event object that can be set and reset without unsafe. Thin over Win32, adding no policy."
keywords = ["windows", "event", "synchronization", "ffi"]
categories = ["api-bindings", "os::windows-apis", "concurrency"]

# Named under the workspace's `win-` prefix decision (DESIGN-NOTES.md at the repository root): a
# safe layer more or less directly over a Win32 API area, synchronization.

[dependencies]
# `default-features = false` matches every other crate in the workspace.
#
# `Win32_System_Threading` is `CreateEventW`, `SetEvent` and `ResetEvent`.
# `Win32_System_SystemServices` is `MAXIMUM_WAIT_OBJECTS`, the most handles one wait takes.
# `Win32_Security` is there only because `CreateEventW`'s attributes parameter
# is a `SECURITY_ATTRIBUTES` pointer, and the binding is gated on it.
windows-sys = { version = "0.61.2", default-features = false, features = [
	"Win32_Foundation",
	"Win32_Security",
	"Win32_System_SystemServices",
	"Win32_System_Threading",
] }

[package.metadata.docs.rs]
# The crate is Windows-only, so docs.rs must build on a Windows target or it
# would render an almost-empty crate.
default-target = "x86_64-pc-windows-msvc"
targets = ["x86_64-pc-windows-msvc", "aarch64-pc-windows-msvc"]