GitRoot

craft your forge, build your project, grow your community freely
 1// SPDX-FileCopyrightText: 2025 Romain Maneschi <romain@gitroot.dev>
 2//
 3// SPDX-License-Identifier: MIT
 4
 5use serde::{Deserialize, Serialize};
 6
 7#[derive(Serialize, Deserialize)]
 8#[serde(rename_all = "camelCase")]
 9pub struct Exec {
10    pub build: String, //image docker, path to Dockerfile
11    pub cmds: Vec<Cmd>,
12    pub env: Vec<String>,
13}
14
15#[derive(Serialize, Deserialize)]
16#[serde(rename_all = "camelCase")]
17pub struct ExecStatus {
18    pub cmds_exec: Vec<String>,
19    pub cmds_status: Vec<i32>,
20    pub cmds_logs: Vec<String>,
21    pub cmds_stats: Vec<CmdStats>,
22}
23
24#[derive(Serialize, Deserialize)]
25#[serde(rename_all = "camelCase")]
26pub struct CmdStats {
27    pub max_memory_bytes: u64,
28    pub max_threads: i32,
29    pub read_bytes_total: u64,
30    pub write_bytes_total: u64,
31    pub total_cpu_time_ms: u64,
32}
33
34#[derive(Serialize, Deserialize)]
35#[serde(rename_all = "camelCase")]
36pub struct Cmd {
37    pub cmd: String,
38    pub args: Vec<String>,
39}