engine_observables_api/lib.rs
1/* This Source Code Form is subject to the terms of the Mozilla Public
2 * License, v. 2.0. If a copy of the MPL was not distributed with this
3 * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
4
5//! `engine_observables_api` — the common-minimum query traits every
6//! Hekate render lane (Nematic / Serval / Scrying) publishes for
7//! downstream consumers (mere-host, Apparatus inspector, Hekate
8//! indexing/extract pipeline).
9//!
10//! See [docs/2026-05-17_hekate_lanes_observables.md](../../../docs/2026-05-17_hekate_lanes_observables.md)
11//! for the design. The "raw plane storage stays implementation
12//! detail of each lane; the permanent ABI is these query traits"
13//! framing is load-bearing — internal plane shapes can evolve, the
14//! trait surface here is what consumers depend on.
15//!
16//! ## Modules
17//!
18//! - [`semantic`] — common semantic facts (title, headings, links,
19//! anchors) + engine-specific extensions (HTML / Nematic / feed).
20//! - [`fragment`] — laid-out geometry queries (hit-test, box-model,
21//! anchor → fragments, selection rects).
22//! - [`interaction`] — focus, selection, affordances at a point,
23//! activation target lookup.
24//! - [`loading`] — request/response state, redirects, MIME, TLS,
25//! cache origin, errors.
26//!
27//! Each trait carries a `generation_id() -> u64` epoch (or its
28//! equivalent) so consumers can cache against it: the value rolls
29//! whenever the underlying plane regenerates.
30
31#![deny(unsafe_code)]
32
33pub mod fragment;
34pub mod interaction;
35pub mod loading;
36pub mod quiescence;
37pub mod semantic;
38pub mod stats;
39pub mod types;
40
41pub use fragment::*;
42pub use interaction::*;
43pub use loading::*;
44pub use quiescence::*;
45pub use semantic::*;
46pub use stats::*;
47pub use types::*;