Skip to main content

boxdd_sys/
lib.rs

1#![allow(non_camel_case_types)]
2#![allow(non_snake_case)]
3#![allow(non_upper_case_globals)]
4
5mod adapter_contract;
6mod precision;
7mod wasm_provider_memory;
8
9#[doc(hidden)]
10mod expected_adapter_identity {
11    include!(concat!(env!("OUT_DIR"), "/adapter_identity.rs"));
12}
13
14mod expected_definition_cookie {
15    include!(concat!(env!("OUT_DIR"), "/definition_cookie.rs"));
16}
17
18pub mod adapter;
19
20#[cfg(test)]
21mod build_support;
22
23#[cfg(test)]
24mod provenance_policy;
25
26#[cfg(test)]
27#[allow(dead_code)]
28// Shared policy methods are consumed by build.rs and xtask, not every test crate.
29mod provider_catalog;
30
31#[cfg(test)]
32mod source_overlay;
33
34#[cfg(test)]
35mod wasm_provider_contract;
36
37pub mod ffi;
38
39pub use precision::{
40    ABI_PRECISION, ActivePrecision, DoublePrecision, IS_DOUBLE_PRECISION, Precision,
41    SinglePrecision,
42};
43
44/// Exact private C ABI identity computed independently from target-compiler layout constants.
45pub const PRIVATE_ABI_HASH: [u8; 32] = expected_adapter_identity::PRIVATE_ABI_HASH;
46
47/// Exact private snapshot layout identity computed by the target compiler.
48pub const SNAPSHOT_LAYOUT_HASH: u32 = expected_adapter_identity::SNAPSHOT_LAYOUT_HASH;
49
50/// Box2D definition cookie extracted from the target compiler's private ABI probe.
51pub const DEFINITION_COOKIE: i32 = expected_definition_cookie::DEFINITION_COOKIE;
52
53/// Exact upstream Box2D revision described by the build manifest.
54pub const UPSTREAM_SHA: &str = env!("BOXDD_SYS_UPSTREAM_SHA");
55
56/// SHA-256 of the repository-owned native adapter source contract.
57pub const ADAPTER_SOURCE_SHA256: &str = env!("BOXDD_SYS_ADAPTER_SOURCE_SHA256");
58
59/// SHA-256 of the complete reviewed Box2D source bytes compiled by this crate.
60pub const EFFECTIVE_SOURCE_SHA256: &str = env!("BOXDD_SYS_EFFECTIVE_SOURCE_SHA256");
61
62/// BLAKE3 digest of the reviewed recording contract bound into the native adapter.
63pub const RECORDING_CONTRACT_BLAKE3: &str = env!("BOXDD_SYS_RECORDING_CONTRACT_BLAKE3");
64
65/// Rust target ABI that the linked native adapter must report at runtime.
66pub const TARGET_ABI: &str = env!("BOXDD_SYS_TARGET_ABI");
67
68/// WASM import module selected for this build's precision and provider route.
69pub const WASM_IMPORT_MODULE: &str = env!("BOXDD_SYS_WASM_IMPORT_MODULE");
70
71/// Explicit build adapter selected for this crate instance.
72pub const PROVIDER_ADAPTER: &str = env!("BOXDD_SYS_PROVIDER_ADAPTER");
73
74/// SHA-256 of the verified external-provider manifest, or an empty string for vendored builds.
75pub const PROVIDER_MANIFEST_SHA256: &str = env!("BOXDD_SYS_PROVIDER_MANIFEST_SHA256");
76
77/// SHA-256 of the exact static archive linked by an external provider.
78pub const PROVIDER_ARCHIVE_SHA256: &str = env!("BOXDD_SYS_PROVIDER_ARCHIVE_SHA256");
79
80/// SHA-256 of the signed provenance statement verified for an official prebuilt provider.
81pub const PROVIDER_PROVENANCE_SHA256: &str = env!("BOXDD_SYS_PROVIDER_PROVENANCE_SHA256");
82
83/// SHA-256 of the caller-supplied Sigstore trusted root used for verification.
84pub const PROVIDER_TRUSTED_ROOT_SHA256: &str = env!("BOXDD_SYS_PROVIDER_TRUSTED_ROOT_SHA256");