switchboard_container_utils/container/
docker.rs

1use crate::container::*;
2use async_trait::async_trait;
3use std::sync::Arc;
4
5#[derive(Clone, Debug)]
6pub struct DockerContainer {
7    pub id: String,
8    pub image_name: String,
9    pub env: Vec<String>,
10    pub docker: Arc<Docker>,
11    pub config: Config<String>,
12}
13
14impl DockerContainer {
15    pub fn new(
16        docker: Arc<Docker>,
17        id: String, // TODO: is this the log target or the actual docker container ID?
18        image_name: String,
19        env: Vec<String>,
20        config: Config<String>,
21    ) -> Self {
22        Self {
23            id,
24            image_name,
25            env,
26            docker,
27            config,
28        }
29    }
30}
31
32#[async_trait]
33impl Container for DockerContainer {
34    fn docker(&self) -> &Arc<Docker> {
35        &self.docker
36    }
37
38    fn id(&self) -> &String {
39        &self.id
40    }
41
42    fn image_name(&self) -> &String {
43        &self.image_name
44    }
45}