use std::sync::Arc;

use crate::{executor::ExecutorCommand, renderer::RenderCommand};

#[derive(Debug, Clone)]
pub enum WatcherCommand {
  Render(RenderCommand),
  SetMode(WatcherMode),
}

#[derive(Debug, Clone)]
pub enum WatcherMode {
  Input,
  Select{
    content: Arc<Vec<String>>,
    title: String,
    callback: Box<ExecutorCommand>,
    index: usize,
  },
}
