summaryrefslogtreecommitdiffstats
path: root/src/runner.rs
blob: eadcc21a53103ace5d395a8e326ba6a6c2d37519 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
pub mod runc;

use serde::{Deserialize, Serialize};
use std::{collections::HashMap, io};

use crate::types::*;

#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct Task {
	pub id: TaskRef,
	pub run: String,
	pub inherit: Vec<InputHash>,
	pub depends: HashMap<OutputHash, TaskAction>,
	pub env: HashMap<String, String>,
}

pub type Result<T> = io::Result<T>;

pub trait Runner {
	fn run(&self, task: &Task) -> Result<OutputHash>;
}