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
//! Web-target runtime glue for `actr-framework`.
//!
//! Compiled only when both conditions hold:
//! - target is `wasm32` (so wasm-bindgen and friends are usable);
//! - the `web` cargo feature is enabled (so the extra deps are actually
//! pulled in).
//!
//! Native builds and `wasm32-wasip2` Component Model builds never see this
//! module.
//!
//! Per Option U γ-unified §3.3 the `WebContext` struct implements the
//! shared `Context` trait for the wasm-bindgen (`wasm32-unknown-unknown`)
//! path, capturing `(self_id, caller_id, request_id)` once at dispatch
//! construction and exposing it through the same trait the `wasip2`
//! `WasmContext` / native `RuntimeContext` implement. Users consume it
//! via the `Context` trait only; they never name `WebContext` directly.
//!
//! Phase 6b adds [`adapter::WebWorkloadAdapter`], the adapter the
//! `actr_framework::entry!` macro's `feature = "web"` branch wraps around
//! the user's `Workload` so it can be handed to
//! `actr_web_abi::host::register_workload`.
pub use WebWorkloadAdapter;
pub use WebContext;
/// Stable re-export surface for the `entry!` macro's `feature = "web"`
/// branch. The macro expands inside the user crate, so every item it
/// references must be reachable from an external crate path — this
/// module is that single stable prefix.
///
/// Items here are `#[doc(hidden)]`: they exist only to wire the macro
/// expansion together. Downstream crates must not depend on them
/// directly; the public surface is the `entry!` macro plus the
/// cross-target `Workload` / `Context` traits.