podman_client/models/podman/system/
prune.rs

1use core::fmt;
2
3use serde::{Deserialize, Serialize};
4
5#[derive(Deserialize, Serialize)]
6#[serde(rename_all = "PascalCase")]
7pub struct Prune {
8    pub pod_prune_report: Option<Vec<PruneReport>>,
9    pub container_prune_reports: Option<Vec<PruneReport>>,
10    pub image_prune_reports: Option<Vec<PruneReport>>,
11    pub network_prune_reports: Option<Vec<PruneReport>>,
12    pub volume_prune_reports: Option<Vec<PruneReport>>,
13    pub reclaimed_space: u64,
14}
15
16impl fmt::Debug for Prune {
17    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
18        let json = serde_json::to_string_pretty(self).map_err(|_| fmt::Error)?;
19        f.write_str(&json)
20    }
21}
22
23#[derive(Deserialize, Serialize)]
24#[serde(untagged)]
25pub enum PruneReport {
26    Pod(PruneReportPod),
27    Network(PruneReportNetwork),
28    Else(PruneReportElse),
29}
30
31#[derive(Deserialize, Serialize)]
32#[serde(rename_all = "PascalCase")]
33pub struct PruneReportPod {
34    pub err: String,
35    pub id: String,
36}
37
38#[derive(Deserialize, Serialize)]
39#[serde(rename_all = "PascalCase")]
40pub struct PruneReportNetwork {
41    pub error: String,
42    pub name: String,
43}
44
45#[derive(Deserialize, Serialize)]
46#[serde(rename_all = "PascalCase")]
47pub struct PruneReportElse {
48    pub err: String,
49    pub id: String,
50    pub size: u64,
51}