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
55
56
57
58
59
60
61
62
63
64
65
66
#![deny(missing_docs)]
#![deny(clippy::unwrap_used)]
#![deny(clippy::indexing_slicing)]
//! `flowrlib` is the runtime library for flow execution. This can be used to produce a flow runner,
//! such as the `flowr` command line runner.
//!
//! It is responsible for reading a flow's compiled [FlowManifest][flowcore::model::flow_manifest::FlowManifest],
//! loading the required libraries using [LibraryManifests][flowcore::model::lib_manifest::LibraryManifest]
//! files and then coordinating the execution of [functions][flowcore::model::runtime_function::RuntimeFunction]
//! by dispatching [Jobs][job::Job] (that include a reference to the function's
//! [Implementations][flowcore::Implementation] and the input values required to run) then
//! gathering the Result and passing the output value to other connected functions in the
//! [flow graph][flowcore::model::flow_manifest::FlowManifest]

/// Provides [Block][block::Block] that represents a block imposed on a function due to destination being busy
pub mod block;

/// Provides [Coordinator][coordinator::Coordinator] responsible for coordinating the execution of flows submitted to it
pub mod coordinator;

#[cfg(feature = "debugger")]
/// Provides the [DebugCommand][debug_command::DebugCommand] enum for commands from debug client to debug server
pub mod debug_command;

/// Provides [Dispatcher][dispatcher::Dispatcher] used by the [Coordinator][coordinator::Coordinator]
/// to dispatch [Jobs][job::Job] for execution by an [Executor][executor::Executor]
pub mod dispatcher;

/// Holds all [Error][errors::Error] types, and other modules in this crate will `use errors::*;`
/// to get access to everything `error_chain` creates.
pub mod errors;

/// Provides [Executor][executor::Executor] that receives jobs for execution, executes them and returns results
pub mod executor;

/// Provides methods to get information about this library
pub mod info;

/// Provides [Job][job::Job] that holds jobs before and after their execution
pub mod job;

/// The [SubmissionHandler][submission_handler::SubmissionHandler] trait defines  methods a client
/// must implement in order to handle submissions from a client
#[cfg(feature = "submission")]
pub mod submission_handler;

/// The [DebuggerHandler][debugger_handler::DebuggerHandler] trait defines methods a a client must
/// implement in order to handle the interaction between a client and the debugger (in the Coordinator)
#[cfg(feature = "debugger")]
pub mod debugger_handler;

/// Provides [RunState][run_state::RunState] that tracks the current runtime state,
/// used by [Coordinator][coordinator::Coordinator]
pub mod run_state;

/// Provides well-known service names used across multiple binary crates
pub mod services;

#[cfg(feature = "debugger")]
mod debugger;

/// `wasmtime` module contains a number of implementations of the wasm execution
mod wasm;

#[cfg(debug_assertions)]
mod checks;