podman_client/models/podman/system/
version.rs

1use core::fmt;
2use std::collections::HashMap;
3
4use serde::{Deserialize, Serialize};
5
6#[derive(Deserialize, Serialize)]
7pub struct SystemVersion {
8    #[serde(rename = "Platform")]
9    pub platform: SystemVersionPlatform,
10
11    #[serde(rename = "Components")]
12    pub components: Vec<SystemVersionComponent>,
13
14    #[serde(rename = "SystemVersion")]
15    pub version: String,
16
17    #[serde(rename = "SystemApiVersion")]
18    pub api_version: String,
19
20    #[serde(rename = "SystemMinAPIVersion")]
21    pub min_api_version: String,
22
23    #[serde(rename = "GitCommit")]
24    pub git_commit: String,
25
26    #[serde(rename = "SystemGoVersion")]
27    pub go_version: String,
28
29    #[serde(rename = "Os")]
30    pub os: String,
31
32    #[serde(rename = "Arch")]
33    pub arch: String,
34
35    #[serde(rename = "SystemKernelVersion")]
36    pub kernel_version: String,
37
38    #[serde(rename = "BuildTime")]
39    pub build_time: String,
40
41    #[serde(rename = "Experimental")]
42    pub experimental: Option<bool>,
43}
44
45impl fmt::Debug for SystemVersion {
46    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
47        let json = serde_json::to_string_pretty(self).map_err(|_| fmt::Error)?;
48        f.write_str(&json)
49    }
50}
51
52#[derive(Deserialize, Serialize)]
53#[serde(rename_all = "PascalCase")]
54pub struct SystemVersionPlatform {
55    pub name: String,
56}
57
58#[derive(Deserialize, Serialize)]
59#[serde(rename_all = "PascalCase")]
60pub struct SystemVersionComponent {
61    pub name: String,
62    pub version: String,
63    pub details: HashMap<String, String>,
64}