fslite_command/executor.rs
1use async_trait::async_trait;
2use fslite_core::{FsResult, RequestContext};
3
4use crate::{Command, CommandOutput};
5
6/// Executes one typed [`Command`] against some backend, local or remote.
7#[async_trait]
8pub trait Executor: Send + Sync {
9 /// Runs `command` under `ctx` and returns its typed result.
10 async fn execute(&self, ctx: &RequestContext, command: Command) -> FsResult<CommandOutput>;
11}