pub trait PackageManager {
fn read_package<'life0, 'async_trait, T: AsRef<Path> + Send + Sync, V: Versioned + Send + Sync + 'static>(
&'life0 self,
crate_path: T
) -> Pin<Box<dyn Future<Output = Result<Vec<Package<V>>>> + Send + 'async_trait>>
where
T: 'async_trait,
V: 'async_trait,
'life0: 'async_trait,
Self: 'async_trait;
fn run_build<'life0, 'async_trait, T: AsRef<Path> + Send + Sync>(
&'life0 self,
crate_path: T,
build_args: Vec<String>
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where
T: 'async_trait,
'life0: 'async_trait,
Self: 'async_trait;
fn run_publish<'life0, 'async_trait, T: AsRef<Path> + Send + Sync>(
&'life0 self,
crate_path: T,
publish_args: Vec<String>,
dry_run: bool
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where
T: 'async_trait,
'life0: 'async_trait,
Self: 'async_trait;
fn apply_version<'life0, 'life1, 'async_trait, T: AsRef<Path> + Send + Sync>(
&'life0 self,
crate_path: T,
version: &'life1 str
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where
T: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait;
fn apply_dependency_version<'life0, 'life1, 'life2, 'async_trait, T: AsRef<Path> + Send + Sync>(
&'life0 self,
crate_path: T,
name: &'life1 str,
version: &'life2 str
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where
T: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Self: 'async_trait;
}