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
// SPDX-FileCopyrightText: 2026 Knitli Inc.
//
// SPDX-License-Identifier: LicenseRef-MarqueLicense-1.0
//! marque-engine — pipeline orchestration.
//!
//! Wires together: scanner → parser → validator → fixer → output.
//! The pipeline is a chain of async streams; each stage is a `Stream` impl.
//! CLI, WASM, and server are different Source/Sink configurations wired to the same middle.
pub use ;
pub use ;
pub use ;
pub use ;
pub use ;
pub use ;
pub use ;
pub use ;
pub use StrictRecognizer;
/// Re-export of [`web_time::Instant`].
///
/// On native targets this is `std::time::Instant` verbatim
/// (`web_time` `pub use`s the std type). On `wasm32-unknown-unknown`
/// it's a `Performance.now()` / `Date.now()` polyfill — `std::time::
/// Instant::now()` panics on that target. The engine's per-candidate
/// deadline check (spec 005) calls `Instant::now()` whenever a
/// caller-supplied deadline is set, so any embedder constructing a
/// `LintOptions { deadline: Some(_) }` for the WASM target MUST use
/// this `Instant` (or `web_time::Instant` directly) rather than
/// `std::time::Instant`. CLI and server callers can keep using
/// `std::time::Instant` because the two types are identical on
/// native, and those binaries do not target wasm32-unknown-unknown.
pub use Instant;
/// Audit-record schema version emitted by this build.
///
/// Set at build time by `crates/engine/build.rs` (see `MARQUE_AUDIT_SCHEMA`),
/// validated against the closed accept-list `["marque-mvp-1", "marque-mvp-2"]`.
/// Defaults to `"marque-mvp-2"` (Phase D); a build can downgrade by exporting
/// `MARQUE_AUDIT_SCHEMA=marque-mvp-1`. Re-exported through this crate so CLI
/// and WASM emitters can populate the `schema` field without each owning a
/// separate copy of the constant (whitepaper §980 / FR-014).
///
/// Per FR-014 the value is fixed for the lifetime of a build — a single
/// binary emits exactly one schema, never a mix.
pub const AUDIT_SCHEMA_VERSION: &str = env!;
/// `true` when this build emits Phase-D audit records (`marque-mvp-2`),
/// `false` when emitting the legacy `marque-mvp-1` shape.
///
/// Evaluated at compile time from [`AUDIT_SCHEMA_VERSION`]; the comparison
/// against a `&'static str` literal folds to a constant, so callers using
/// `if AUDIT_SCHEMA_IS_V2 { ... } else { ... }` get dead-branch elimination
/// at the matching schema's expense.
pub const AUDIT_SCHEMA_IS_V2: bool = const_str_eq;
const
/// Returns the default rule set for marque (CAPCO rules).
///
/// Both the CLI and WASM front ends use this to share one registration entry point.
/// Returns the default marking scheme for marque (CAPCO).
///
/// Callers pass this to [`Engine::new`] to get the standard CAPCO
/// page-rewrite schedule. The scheme is stateless and cheap to
/// construct on demand.