use crate::{ComposeService, Config, FieldKey, Network, Secret, Volume};
pub trait ComposeExt {
fn name(&self) -> &str;
}
impl ComposeExt for (&FieldKey, &ComposeService) {
fn name(&self) -> &str {
self.1.container_name.as_ref().unwrap_or(self.0)
}
}
impl ComposeExt for (&FieldKey, &Network) {
fn name(&self) -> &str {
self.1.as_ref().and_then(|v| v.name.as_ref()).unwrap_or(self.0)
}
}
impl ComposeExt for (&FieldKey, &Volume) {
fn name(&self) -> &str {
self.1.as_ref().and_then(|v| v.name.as_ref()).unwrap_or(self.0)
}
}
impl ComposeExt for (&FieldKey, &Secret) {
fn name(&self) -> &str {
self.1.name.as_ref().unwrap_or(self.0)
}
}
impl ComposeExt for (&FieldKey, &Config) {
fn name(&self) -> &str {
self.1.name.as_ref().unwrap_or(self.0)
}
}