1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
use serde::Deserialize;

use crate::Error;

#[derive(Debug)]
pub enum AppStartError {
    AlreadyOnline,
    Other(Error),
}

impl From<Error> for AppStartError {
    fn from(error: Error) -> Self {
        Self::Other(error)
    }
}

#[derive(Deserialize, Debug, Clone)]
#[serde(rename_all = "camelCase")]
pub struct AppStartStatus {
    pub exit_code: i32,
    pub online: bool,
    pub ram_killed: bool,
}

#[derive(Deserialize, Debug, Clone)]
#[serde(rename_all = "camelCase")]
pub struct AppStartAll {
    pub already_in_process: Vec<String>,
    pub already_online: Vec<String>,
    pub started: Vec<String>,
}

#[derive(Deserialize, Debug, Clone)]
#[serde(rename_all = "camelCase")]
pub struct AppStartResponseUnique {
    pub message: String,
    pub status: String,
    pub app_status: Option<AppStartStatus>,
}

#[derive(Deserialize, Debug, Clone)]
#[serde(rename_all = "camelCase")]
pub struct AppStartResponseAll {
    pub message: String,
    pub status: String,
    pub apps: AppStartAll,
}