pub type TaskStatus = "pending" | "running" | "completed" | "failed" | "cancelled";
pub struct TaskContext {
pub id: String,
pub status: TaskStatus,
pub created_at: u64,
pub updated_at: u64,
}
impl TaskContext {
pub fn new(id: String) -> Self {
let now = std::time::SystemTime::now()
.duration_since(std::time::UNIX_EPOCH)
.unwrap()
.as_millis() as u64;
Self {
id,
status: TaskStatus::pending,
created_at: now,
updated_at: now,
}
}
pub fn is_running(&self) -> bool {
self.status == TaskStatus::running
}
pub fn is_completed(&self) -> bool {
self.status == TaskStatus::completed
}
}