use super::types::CommandRunMode;
use crate::host::error::HostApiError;
use crate::host::open_target::OpenTarget;
use async_trait::async_trait;
#[async_trait]
pub trait ShellExecutor: Send + Sync {
async fn shell_open(&self, target: &OpenTarget) -> Result<(), HostApiError>;
async fn shell_open_folder(&self, path: &str) -> Result<(), HostApiError>;
async fn shell_execute_elevation(&self, path: &str) -> Result<(), HostApiError>;
async fn shell_execute_command(
&self,
command: &str,
mode: CommandRunMode,
) -> Result<(), HostApiError>;
}