rs_taskflow_derive

Crates.iors_taskflow_derive
lib.rsrs_taskflow_derive
version0.1.0
sourcesrc
created_at2023-04-04 08:15:31.744481
updated_at2023-04-04 08:15:31.744481
descriptionA library for executing graphs of tasks
homepage
repositoryhttps://github.com/mm318/rs_taskflow
max_upload_size
id829971
size21,293
M. Mei (mm318)

documentation

README

rs_taskflow

Attempt at recreating https://github.com/cpp-taskflow/cpp-taskflow in Rust.

build

Example:

#[derive_task((i32,), (i32,))]
struct FlowTask;

let mut flow = Flow::new();

let a = flow.new_task(FlowTask::new(|x: &i32| *x + 1));
let b = flow.new_task(FlowTask::new(|x: &i32| *x - 2));
let c = flow.new_task(FlowTask::new(|x: &i32| *x + 3));

flow.connect_output0_to_input0(&a, &b);
flow.connect_output0_to_input0(&b, &c);

let flow_exec = flow.execute().await;
let result = flow_exec.get_output_0(&c);

For a more complete example, see full_example_test.rs.

Usage

Installation

git clone https://github.com/mm318/rs_taskflow.git

Build

For development iterations

# disables use of the macros in rs_taskflow_derive
cargo test --no-default-features -- --nocapture

For testing build with more debug messages

cargo test -- --nocapture

For testing release build

cargo test --release -- --nocapture

Requirements

Developed using Ubuntu 20.04 and Rust 1.64.
Tested nightly using ubuntu-latest and latest stable Rust (as fetched by actions-rs/toolchain@v1).

Commit count: 72

cargo fmt