use std::borrow::Cow;
use typed_builder::TypedBuilder;
use super::CompressionType;
#[derive(Debug, Clone, TypedBuilder)]
pub struct BuildOpts<'a> {
#[builder(setter(into))]
pub image: Cow<'a, str>,
#[builder(default)]
pub squash: bool,
}
#[derive(Debug, Clone, TypedBuilder)]
pub struct TagOpts<'a> {
#[builder(setter(into))]
pub src_image: Cow<'a, str>,
#[builder(setter(into))]
pub dest_image: Cow<'a, str>,
}
#[derive(Debug, Clone, TypedBuilder)]
pub struct PushOpts<'a> {
#[builder(setter(into))]
pub image: Cow<'a, str>,
#[builder(default, setter(strip_option))]
pub compression_type: Option<CompressionType>,
}
#[derive(Debug, Clone, TypedBuilder)]
pub struct BuildTagPushOpts<'a> {
#[builder(default, setter(into, strip_option))]
pub image: Option<Cow<'a, str>>,
#[builder(default, setter(into, strip_option))]
pub archive_path: Option<Cow<'a, str>>,
#[builder(default, setter(into))]
pub tags: Cow<'a, [&'a str]>,
#[builder(default)]
pub push: bool,
#[builder(default)]
pub no_retry_push: bool,
#[builder(default = 1)]
pub retry_count: u8,
#[builder(default)]
pub compression: CompressionType,
#[builder(default)]
pub squash: bool,
}