mod docker_archive;
mod maven_reactor;
mod oci_image;
pub use docker_archive::DockerArchiveTarget;
pub use maven_reactor::MavenReactorTarget;
pub use oci_image::OciImageTarget;
use crate::domain::{ArtifactManifest, ReleaseCandidate, TargetPlan};
use anyhow::Result;
use std::collections::BTreeMap;
use std::path::Path;
pub type PreparedDependencies = BTreeMap<String, ArtifactManifest>;
pub trait TargetAdapter {
fn resolve(&self, release: &ReleaseCandidate) -> Result<TargetPlan>;
fn prepare(
&self,
plan: &TargetPlan,
dependencies: &PreparedDependencies,
staging: &Path,
) -> Result<ArtifactManifest>;
}