docker_compose_spec/
ext.rs1use crate::{ComposeService, Config, FieldKey, Network, Secret, Volume};
2
3pub trait ComposeExt {
4 fn name(&self) -> &str;
5}
6
7impl ComposeExt for (&FieldKey, &ComposeService) {
8 fn name(&self) -> &str {
9 self.1.container_name.as_ref().unwrap_or(self.0)
10 }
11}
12
13impl ComposeExt for (&FieldKey, &Network) {
14 fn name(&self) -> &str {
15 self.1.as_ref().and_then(|v| v.name.as_ref()).unwrap_or(self.0)
16 }
17}
18
19impl ComposeExt for (&FieldKey, &Volume) {
20 fn name(&self) -> &str {
21 self.1.as_ref().and_then(|v| v.name.as_ref()).unwrap_or(self.0)
22 }
23}
24
25impl ComposeExt for (&FieldKey, &Secret) {
26 fn name(&self) -> &str {
27 self.1.name.as_ref().unwrap_or(self.0)
28 }
29}
30
31impl ComposeExt for (&FieldKey, &Config) {
32 fn name(&self) -> &str {
33 self.1.name.as_ref().unwrap_or(self.0)
34 }
35}