podman_client/models/podman/system/
version.rs1use core::fmt;
2
3use serde::{Deserialize, Serialize};
4
5#[derive(Deserialize, Serialize)]
6pub struct Version {
7 #[serde(rename = "Platform")]
8 pub platform: VersionPlatform,
9
10 #[serde(rename = "Components")]
11 pub components: Vec<VersionComponent>,
12
13 #[serde(rename = "Version")]
14 pub version: String,
15
16 #[serde(rename = "ApiVersion")]
17 pub api_version: String,
18
19 #[serde(rename = "MinAPIVersion")]
20 pub min_api_version: String,
21
22 #[serde(rename = "GitCommit")]
23 pub git_commit: String,
24
25 #[serde(rename = "GoVersion")]
26 pub go_version: String,
27
28 #[serde(rename = "Os")]
29 pub os: String,
30
31 #[serde(rename = "Arch")]
32 pub arch: String,
33
34 #[serde(rename = "KernelVersion")]
35 pub kernel_version: String,
36
37 #[serde(rename = "BuildTime")]
38 pub build_time: String,
39}
40
41impl fmt::Debug for Version {
42 fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
43 let json = serde_json::to_string_pretty(self).map_err(|_| fmt::Error)?;
44 f.write_str(&json)
45 }
46}
47
48#[derive(Deserialize, Serialize)]
49#[serde(rename_all = "PascalCase")]
50pub struct VersionPlatform {
51 pub name: String,
52}
53
54#[derive(Deserialize, Serialize)]
55#[serde(rename_all = "PascalCase")]
56pub struct VersionComponent {
57 pub name: String,
58 pub version: String,
59 pub details: VersionComponentDetails,
60}
61
62#[derive(Deserialize, Serialize)]
63#[serde(untagged)]
64pub enum VersionComponentDetails {
65 PodmanEngine(VersionComponentDetailsPodmanEngine),
66 Else(VersionComponentDetailsElse),
67}
68
69#[derive(Deserialize, Serialize)]
70pub struct VersionComponentDetailsPodmanEngine {
71 #[serde(rename = "APIVersion")]
72 pub api_version: String,
73
74 #[serde(rename = "Arch")]
75 pub arch: String,
76
77 #[serde(rename = "BuildTime")]
78 pub build_time: String,
79
80 #[serde(rename = "Experimental")]
81 pub experimental: String,
82
83 #[serde(rename = "GitCommit")]
84 pub git_commit: String,
85
86 #[serde(rename = "GoVersion")]
87 pub go_version: String,
88
89 #[serde(rename = "KernelVersion")]
90 pub kernel_version: String,
91
92 #[serde(rename = "MinAPIVersion")]
93 pub min_api_version: String,
94
95 #[serde(rename = "Os")]
96 pub os: String,
97}
98
99#[derive(Deserialize, Serialize)]
100#[serde(rename_all = "PascalCase")]
101pub struct VersionComponentDetailsElse {
102 pub package: String,
103}