#[derive(Debug, Clone)]
pub struct TaskRegistered {
pub task_id: String,
pub requirement_id: Option<String>,
pub epic_id: Option<String>,
}
#[derive(Debug, Clone)]
pub struct TaskCompleted {
pub task_id: String,
pub pr_urls: Vec<String>,
pub requirement_id: Option<String>,
}
#[derive(Debug, Clone)]
pub struct TaskFailed {
pub task_id: String,
pub error: String,
pub requirement_id: Option<String>,
}
pub trait TracePort: Send + Sync {
fn task_registered(&self, event: TaskRegistered);
fn task_completed(&self, event: TaskCompleted);
fn task_failed(&self, event: TaskFailed);
}