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
//! # Runner trait.
//!
//! [`Runner`] is the plugin interface for task executors.
//! Concrete runners implement this trait and are registered in the [`RunnerRouter`](crate::RunnerRouter).
//!
//! See the [crate root](crate) for architecture overview and routing rules.
use TaskSpec;
use TaskRef;
use crateBuildContext;
use crateRunnerError;
use crate;
/// Generic task runner used by the core layer.
///
/// A runner is responsible for:
/// - deciding whether it can handle a given [`TaskSpec`] (`supports`)
/// - building a concrete [`TaskRef`] that the supervisor can execute (`build_task`)
///
/// ## Also
///
/// - [`RunnerRouter`](crate::RunnerRouter) selects a runner for a given spec.
/// - [`BuildContext`](crate::BuildContext) shared dependencies passed to [`build_task`](Self::build_task).
/// - [`RunId`](crate::RunId) is a default id format produced by [`build_run_id`](Self::build_run_id).