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
//! The published consumer contract of the embedded Rehydration Kernel.
//!
//! Sibling of `kmp-plugin-api`, pointing the other way: that crate is
//! what a plugin may know about the kernel, this one is what an embedding
//! product may know. It holds plain views, a capability report, an error
//! vocabulary and two traits — recall and record, held separately on purpose —
//! no domain aggregates, no ports, no storage, no transports. A consumer that
//! compiles against this crate alone can be tested with a stub and swapped
//! onto any implementation that honours the contract.
//!
//! Versioned deliberately. [`CONTRACT_VERSION`] moves when the meaning of this
//! surface changes, independently of the kernel's own release number: two
//! builds of one release can differ in features, and a consumer that guessed
//! capabilities from a version string would find out mid-run. Consumers check
//! [`ApiCapabilities`] at startup instead.
//!
//! The kernel owns this contract, and its vocabulary is the kernel's — abouts,
//! memory, wake, ask, record. A consuming product maps these to its own terms
//! at its own boundary; nothing of any consumer's vocabulary appears here.
pub use ApiCapabilities;
pub use ApiError;
pub use MemoryRecallApi;
pub use MemoryRecordApi;
pub use ;
pub use RecordedMemoryView;
pub use ;
pub use ;
/// The revision of this contract.
///
/// Moves on meaning, not on release: adding a capability keeps the version,
/// changing what an existing field or method means raises it.
pub const CONTRACT_VERSION: u32 = 1;