/
Cargo.toml
116 lines (104 loc) · 5.6 KB
/
Cargo.toml
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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
[package]
name = "windows-helpers"
version = "0.4.2"
description = "Helpers for the windows crate"
categories = ["development-tools::ffi", "rust-patterns"]
keywords = ["windows"]
repository = "https://github.com/Enyium/windows-helpers-rs"
documentation = "https://docs.rs/windows-helpers"
license = "MIT OR Apache-2.0"
edition = "2021"
[package.metadata.docs.rs]
default-target = "x86_64-pc-windows-msvc"
targets = ["x86_64-pc-windows-msvc", "i686-pc-windows-msvc"]
features = ["windows_latest_compatible_all"]
[dependencies]
# New `windows` versions must be added or very old versions must be removed below in multiple spots, in `lib.rs`, in `/scripts/verify.ps1` and in `/.vscode/settings.json`.
windows_v0_48 = { optional = true, package = "windows", version = "0.48.0", features = ["Win32_Foundation"] } # Published on 2023-03-31.
windows_v0_52 = { optional = true, package = "windows", version = "0.52.0", features = ["Win32_Foundation"] } # Published on 2023-11-15.
num-traits = "0.2.17"
map-self = "0.1.0"
# Something like `[target.'cfg(feature = "windows_v0_52")'.dependencies]` (and requiring `windows` with that version, not renaming it) may be more desirable to make this file DRYer and also allow us to specify yet unreleased future versions for forward compatibility. Cargo issue: <https://github.com/rust-lang/cargo/issues/8170> (still open in Dec. 2023).
[features]
# Note: crates.io generally limits the number of features to 300 (as of Dec. 2023; see https://doc.rust-lang.org/beta/cargo/reference/features.html). It's said, "Exceptions are granted on a case-by-case basis," but it probably shouldn't be demanded from the start for a small crate.
win32_app = []
f_Win32_Foundation = []
f_Win32_Graphics_Gdi = []
f_Win32_System_LibraryLoader = []
f_Win32_System_Memory = []
f_Win32_System_Performance = []
f_Win32_System_Power = []
f_Win32_UI_Input_KeyboardAndMouse = []
f_Win32_UI_Shell = []
f_Win32_UI_WindowsAndMessaging = []
# (For VS Code development, a feature encompassing all features for a `windows` crate version is activated in `/.vscode/settings.json`. Changing the version in it can change the errors shown.)
windows_v0_48_all = [
"windows_v0_48",
"windows_v0_48_f_Win32_Foundation",
"windows_v0_48_f_Win32_Graphics_Gdi",
"windows_v0_48_f_Win32_System_LibraryLoader",
"windows_v0_48_f_Win32_System_Memory",
"windows_v0_48_f_Win32_System_Power",
"windows_v0_48_f_Win32_UI_WindowsAndMessaging",
]
windows_v0_48 = ["dep:windows_v0_48"]
windows_v0_48_f_Win32_Foundation = ["f_Win32_Foundation", "windows_v0_48/Win32_Foundation"]
windows_v0_48_f_Win32_Graphics_Gdi = ["f_Win32_Graphics_Gdi", "windows_v0_48/Win32_Graphics_Gdi"]
windows_v0_48_f_Win32_System_LibraryLoader = ["f_Win32_System_LibraryLoader", "windows_v0_48/Win32_System_LibraryLoader"]
windows_v0_48_f_Win32_System_Memory = ["f_Win32_System_Memory", "windows_v0_48/Win32_System_Memory"]
windows_v0_48_f_Win32_System_Power = ["f_Win32_System_Power", "windows_v0_48/Win32_System_Power"]
windows_v0_48_f_Win32_UI_WindowsAndMessaging = ["f_Win32_UI_WindowsAndMessaging", "windows_v0_48/Win32_UI_WindowsAndMessaging"]
windows_v0_52_all = [
"windows_v0_52",
"windows_v0_52_win32_app",
"windows_v0_52_f_Win32_Foundation",
"windows_v0_52_f_Win32_Graphics_Gdi",
"windows_v0_52_f_Win32_System_LibraryLoader",
"windows_v0_52_f_Win32_System_Performance",
"windows_v0_52_f_Win32_System_Power",
"windows_v0_52_f_Win32_UI_Input_KeyboardAndMouse",
"windows_v0_52_f_Win32_UI_Shell",
"windows_v0_52_f_Win32_UI_WindowsAndMessaging",
]
windows_v0_52 = ["dep:windows_v0_52"]
windows_v0_52_win32_app = [
"win32_app",
"windows_v0_52_f_Win32_Foundation",
"windows_v0_52_f_Win32_Graphics_Gdi",
"windows_v0_52_f_Win32_System_LibraryLoader",
"windows_v0_52_f_Win32_System_Performance",
"windows_v0_52_f_Win32_UI_Input_KeyboardAndMouse",
"windows_v0_52_f_Win32_UI_Shell",
"windows_v0_52_f_Win32_UI_WindowsAndMessaging",
]
windows_v0_52_f_Win32_Foundation = ["f_Win32_Foundation", "windows_v0_52/Win32_Foundation"]
windows_v0_52_f_Win32_Graphics_Gdi = ["f_Win32_Graphics_Gdi", "windows_v0_52/Win32_Graphics_Gdi"]
windows_v0_52_f_Win32_System_LibraryLoader = ["f_Win32_System_LibraryLoader", "windows_v0_52/Win32_System_LibraryLoader"]
windows_v0_52_f_Win32_System_Performance = ["f_Win32_System_Performance", "windows_v0_52/Win32_System_Performance"]
windows_v0_52_f_Win32_System_Power = ["f_Win32_System_Power", "windows_v0_52/Win32_System_Power"]
windows_v0_52_f_Win32_UI_Input_KeyboardAndMouse = ["f_Win32_UI_Input_KeyboardAndMouse", "windows_v0_52/Win32_UI_Input_KeyboardAndMouse"]
windows_v0_52_f_Win32_UI_Shell = ["f_Win32_UI_Shell", "windows_v0_52/Win32_UI_Shell"]
windows_v0_52_f_Win32_UI_WindowsAndMessaging = ["f_Win32_UI_WindowsAndMessaging", "windows_v0_52/Win32_UI_WindowsAndMessaging"]
# The latest compatible version should also be specified in the `dev-dependencies` section (in name and `version`).
windows_latest_compatible_all = ["windows_v0_52_all"]
[dev-dependencies]
# Additional `windows` features for test modules. Only tested with latest version established in this crate.
windows_v0_52 = { package = "windows", version = "0.52.0", features = [
"Win32_Foundation",
"Win32_Security_Authorization",
"Win32_Security",
"Win32_Storage_FileSystem",
"Win32_System_IO",
"Win32_System_Pipes",
"Win32_System_SystemInformation",
"Win32_System_Threading",
"Win32_UI_Input_KeyboardAndMouse",
"Win32_UI_TextServices",
"Win32_Networking_WinSock",
"Win32_NetworkManagement_Ndis",
"Win32_NetworkManagement_IpHelper",
"Win32_UI_Shell",
"Win32_Globalization",
] }
regex = "1.10.2"
anyhow = "1.0.75"