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
//! Framework-internal engine-side `<Role>Runtime` traits.
//!
//! Each role trait pairs with a user-facing `bb::<Role>` Contract
//! trait in [`crate::contracts`]; the `#[derive(bb::<Role>)]`
//! macros bridge the user's Contract impl into the engine-side
//! `<Role>Runtime` impl the engine dispatches against. Library
//! authors should not implement these directly — see
//! [`crate::contracts`].
//!
//! Each role trait follows the universal contract:
//!
//! ```ignore
//! pub trait <Role>Runtime: Send + Sync {
//! type Error: std::error::Error + Send + Sync + 'static;
//!
//! fn atomic_opset(&self) -> AtomicOpsetDecl;
//! fn dispatch_atomic(
//! &mut self,
//! op_type: &str,
//! inputs: &[(&str, &dyn SlotValue)],
//! ctx: &mut RuntimeResourceRef<'_>,
//! ) -> Result<DispatchResult, Self::Error>;
//! }
//! ```
pub use AggregatorRuntime;
pub use BackendRuntime;
pub use CodecRuntime;
pub use DataSourceRuntime;
pub use IndexRuntime;
pub use ModelRuntime;
pub use PeerSelectorRuntime;
pub use ProtocolRuntime;