Skip to main content

iii_sdk/
engine.rs

1//! Engine function and trigger ids, mirroring the Node SDK constants.
2//!
3//! This module also re-exports [`RemoteFunctionHandler`] (and its
4//! metadata-aware counterpart [`RemoteFunctionHandlerWithMetadata`]) so the
5//! engine grouping (`iii_sdk::engine`) exposes the same symbols as the Node
6//! `iii-sdk/engine` and Python `iii.engine` submodules. Rust cannot use a
7//! separate `pub mod engine { ... }` grouping block here because the real
8//! engine module is the file `engine.rs` (`pub mod engine;` in `lib.rs`),
9//! so the grouping is folded into this module instead.
10
11pub use crate::types::{RemoteFunctionHandler, RemoteFunctionHandlerWithMetadata};
12
13/// Engine function ids for internal operations.
14pub struct EngineFunctions;
15
16impl EngineFunctions {
17    pub const LIST_FUNCTIONS: &'static str = "engine::functions::list";
18    pub const INFO_FUNCTIONS: &'static str = "engine::functions::info";
19    pub const LIST_WORKERS: &'static str = "engine::workers::list";
20    pub const INFO_WORKERS: &'static str = "engine::workers::info";
21    pub const LIST_TRIGGERS: &'static str = "engine::triggers::list";
22    pub const INFO_TRIGGERS: &'static str = "engine::triggers::info";
23    pub const LIST_REGISTERED_TRIGGERS: &'static str = "engine::registered-triggers::list";
24    pub const INFO_REGISTERED_TRIGGERS: &'static str = "engine::registered-triggers::info";
25    pub const REGISTER_WORKER: &'static str = "engine::workers::register";
26}
27
28/// Engine trigger ids.
29pub struct EngineTriggers;
30
31impl EngineTriggers {
32    pub const FUNCTIONS_AVAILABLE: &'static str = "engine::functions-available";
33    pub const LOG: &'static str = "log";
34}
35
36#[cfg(test)]
37mod tests {
38    use super::*;
39
40    #[test]
41    fn engine_function_ids_match_node() {
42        assert_eq!(EngineFunctions::LIST_FUNCTIONS, "engine::functions::list");
43        assert_eq!(
44            EngineFunctions::REGISTER_WORKER,
45            "engine::workers::register"
46        );
47        assert_eq!(
48            EngineFunctions::LIST_REGISTERED_TRIGGERS,
49            "engine::registered-triggers::list"
50        );
51    }
52
53    #[test]
54    fn engine_trigger_ids_match_node() {
55        assert_eq!(
56            EngineTriggers::FUNCTIONS_AVAILABLE,
57            "engine::functions-available"
58        );
59        assert_eq!(EngineTriggers::LOG, "log");
60    }
61}