use crate::task::Task;
use crate::TaskContext;
use std::sync::Arc;
use wakflo_common::TaskResult;
// #[async_trait::async_trait]
// pub trait RunOutput: Sync + Send + Debug + 'static {
// fn json_output(&self) -> serde_json::Value;
// }
#[async_trait::async_trait]
pub trait RunnableTask: Sync + Send {
async fn run(&self, context: Arc<TaskContext>) -> TaskResult;
fn register(&mut self, task: Task);
fn get_task_info(&self) -> &Task;
}