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
[]
= "truce-loader"
= true
= true
= true
= true
= true
= "Hot-reloadable plugin logic for truce (native ABI, dylib loading)"
[]
= "0.4"
# Already in the workspace dep graph via image / png; pulled as a
# direct dep so the file-fingerprint path uses the SIMD-accelerated
# implementation (~30× faster than a hand-rolled table-free CRC32).
= "1.5"
= { = true }
= { = true }
# `truce-gui-types` is the type surface (layout / interaction /
# render / theme / widgets) the canary fingerprint inspects across
# the dylib boundary.
= { = true }
# `truce-plugin` carries the `PluginLogicCore` blanket and the
# `PluginLogic` / `PluginLogic64` leaf traits the macro-generated
# wrappers reference. Always required.
= { = true }
[]
= "0.9"
= true
[]
= "0.12"
= true
# Integration tests live in the sibling `truce-loader-tests` crate.
# They need the umbrella `truce` (because `#[derive(Params)]` /
# `#[derive(State)]` expand to `::truce::params::*` / `::truce::core::*`
# paths), and `truce` already depends on us for the
# `truce::plugin!` macro's HotShell wiring. Holding those tests in
# a separate crate keeps the dev edge from forming a `truce <->
# truce-loader` cycle in cargo metadata.
[]
= []
= ["dep:libloading", "dep:parking_lot"]
= []
[]
= true