1 2 3 4 5 6 7 8 9 10 11 12 13 14
use crate::errors::ProtoError;
use std::path::Path;
#[async_trait::async_trait]
pub trait Executable<'tool>: Send + Sync {
/// Find the absolute file path to the tool's binary that will be executed.
/// This happens after a tool has been downloaded and installed.
async fn find_bin_path(&mut self) -> Result<(), ProtoError> {
Ok(())
}
/// Return an absolute file path to the executable binary for the tool.
fn get_bin_path(&self) -> Result<&Path, ProtoError>;
}