aboutsummaryrefslogtreecommitdiff
path: root/rif/src/lib.rs
blob: 047dc24c3779a8c962ac63cea11d3f29966d68e9 (plain)
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
//! # Recipe Instruction Format
//!
//! A structured format for expression recipes, and work steps with
//! variable actor counts.  Ingredients and work steps are typed via
//! an internally provided schema.  The backing file-format for
//! serialisation is [`g3f`](https://github.com/spacekookie/g3f).
//!
//! Each recipe is separated into threads, with a set of inputs, work
//! steps and an output.  A thread is a set of work steps that can be
//! executed by a single actor, consecutively.  Ingredients can be
//! added at every step, and can be outputs of previous threads.  This
//! creates a graph, coloured by the set of possible concurrent actors
//! that can execute the recipe.
//!
//! ## Example
//!
//! ```rust
//! let mut r = Recipe::new();
//! let mut t = r.add_thread().name("a");
//!
//! ```

mod recipe;
mod schema;
mod thread;

pub use recipe::{Metadata, Recipe};
pub use schema::{Ingredient, Schema, Workstep};
pub use thread::Thread;