podman_client/models/podman/system/
version.rs1use 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}