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
//! Optional license-gate trait the AE/Premiere adapters consult.
//!
//! [`LicenseGate`] is opt-in. Effects that don't ship a licence check use
//! [`NoLicenseGate`] and the adapters skip every check.
//!
//! Effects that need a licence check implement this trait against their own
//! licence backend. The adapter then calls:
//!
//! - [`LicenseGate::initialize`] once during `Cmd_GlobalSetup`,
//! - [`LicenseGate::is_valid`] before every render selector,
//! - [`LicenseGate::retry`] when the user clicks a "Retry" parameter button.
//!
//! `prgpu` itself depends on no licence backend; the trait is the only
//! contract the adapters require.
/// Marker for an effect's licence backend.
///
/// All methods have safe defaults — implementing the trait without
/// overriding anything is functionally equivalent to [`NoLicenseGate`].
/// Effects override the methods they care about.
/// Default [`LicenseGate`] implementation that always succeeds. Effects
/// without a licence check use this through `Effect::License = NoLicenseGate`
/// (which is the trait's default associated type).
;