use std::path::Path;
use async_trait::async_trait;
use cap_rs::driver::Driver;
use crate::OrchestratorError;
use crate::config::{DriverKind, PermissionPolicy, SessionId};
#[async_trait]
pub trait DriverFactory: Send + Sync {
async fn build(
&self,
session: &SessionId,
kind: &DriverKind,
cwd: &Path,
policy: PermissionPolicy,
) -> Result<Box<dyn Driver>, OrchestratorError>;
}