1use crate::tasks::{config::StreamSource, error::TaskError, state::TaskTerminateReason};
2#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
3#[derive(Debug, Clone)]
4pub enum TaskEvent {
5 Started {
6 task_name: String,
7 },
8 Output {
9 task_name: String,
10 line: String,
11 src: StreamSource,
12 },
13 Ready {
14 task_name: String,
15 },
16 Stopped {
17 task_name: String,
18 exit_code: Option<i32>,
19 reason: TaskEventStopReason,
20 },
21 Error {
22 task_name: String,
23 error: TaskError,
24 },
25}
26#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
27#[derive(Debug, Clone, PartialEq)]
28pub enum TaskEventStopReason {
29 Finished,
30 Terminated(TaskTerminateReason),
31 Error(String),
32}