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
# Copyright (c) 2026 Mike Grier
[]
= "wtf-string"
= "0.1.0" # x-release-please-version
= true
= true
= true
= true
= true
= true
= "README.md"
= "https://docs.rs/wtf-string"
= "OsString-shaped strings with native, conversion-free u16 (WTF-16) storage for Windows FFI."
= ["windows", "utf-16", "wtf-16", "osstring", "ffi"]
= ["encoding", "os::windows-apis", "text-processing"]
[]
= "src/lib.rs"
[]
= ["std"]
# `std` adds the Windows `OsStr`/`OsString` interop, which has no `alloc`-only
# equivalent (`OsStr` lives in `std`). Turning it off builds the portable core --
# storage, `str`/`String` conversions, the mutation surface, and the FFI pointer
# surface -- on `alloc` alone (D-11). The `windows-core?/std` forward only
# applies when that optional dependency is also enabled.
= ["windows-core?/std"]
# Interop with the high-level `windows` crate: adds `Param<PCWSTR>` for
# `&Wtf16String`, so a `windows` API taking `impl Param<PCWSTR>` accepts our
# type directly with no conversion (D-10). Off by default, so the crate keeps
# its zero-dependency default build (D-11).
#
# The impl is written against the `windows-core` version pinned below. A caller
# must be on a `windows`/`windows-core` release that resolves to that same
# semver-compatible version, or its `PCWSTR` is a *different* type and the impl
# will not apply (D-17).
= ["dep:windows-core"]
[]
# `default-features = false` keeps this usable from an `alloc`-only build; our
# own `std` feature forwards to its `std` when both are on.
= { = "0.62.2", = true, = false }
# The storage and str/String conversions are portable; only the OsStr/OsString
# interop is Windows-only. Build docs on a Windows target so that surface is
# documented as well. All features are enabled so the `windows-core` interop is
# documented too.
[]
= true
= "x86_64-pc-windows-msvc"
= ["x86_64-pc-windows-msvc"]