docker_compose_spec/
ext.rs

1use 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}