podman_api/opts/
volumes.rs1use containers_api::opts::{Filter, FilterItem};
2use containers_api::{impl_filter_func, impl_map_field, impl_opts_builder, impl_str_field};
3
4impl_opts_builder!(url =>
5 VolumeList
7);
8
9#[derive(Debug)]
10pub enum VolumeListFilter {
12 Driver(String),
14 LabelKey(String),
16 LabelKeyVal(String, String),
18 NoLabelKey(String),
20 NoLabelKeyVal(String, String),
22 Name(String),
24 Opt(String),
26 Until(String),
29}
30
31impl Filter for VolumeListFilter {
32 fn query_item(&self) -> FilterItem {
33 use VolumeListFilter::*;
34 match &self {
35 Driver(driver) => FilterItem::new("driver", driver.clone()),
36 LabelKey(key) => FilterItem::new("label", key.clone()),
37 LabelKeyVal(key, val) => FilterItem::new("label", format!("{key}={val}")),
38 NoLabelKey(key) => FilterItem::new("label!", key.clone()),
39 NoLabelKeyVal(key, val) => FilterItem::new("label!", format!("{key}={val}")),
40 Name(name) => FilterItem::new("name", name.clone()),
41 Opt(opt) => FilterItem::new("opt", opt.clone()),
42 Until(t) => FilterItem::new("until", t.clone()),
43 }
44 }
45}
46
47impl VolumeListOptsBuilder {
48 impl_filter_func!(VolumeListFilter);
49}
50
51impl_opts_builder!(json =>
52 VolumeCreate
54);
55
56impl VolumeCreateOptsBuilder {
57 impl_str_field!(
58 driver => "Driver"
60 );
61
62 impl_map_field!(json
63 labels => "Labels"
65 );
66
67 impl_str_field!(
68 name => "Name"
70 );
71
72 impl_map_field!(json
73 options => "Options"
75 );
76}
77
78impl_opts_builder!(url =>
79 VolumePrune
81);
82
83#[derive(Debug)]
84pub enum VolumePruneFilter {
86 LabelKey(String),
88 LabelKeyVal(String, String),
90 NoLabelKey(String),
92 NoLabelKeyVal(String, String),
94 Until(String),
97}
98
99impl Filter for VolumePruneFilter {
100 fn query_item(&self) -> FilterItem {
101 use VolumePruneFilter::*;
102 match &self {
103 LabelKey(key) => FilterItem::new("label", key.clone()),
104 LabelKeyVal(key, val) => FilterItem::new("label", format!("{key}={val}")),
105 NoLabelKey(key) => FilterItem::new("label", key.clone()),
106 NoLabelKeyVal(key, val) => FilterItem::new("label", format!("{key}={val}")),
107 Until(t) => FilterItem::new("until", t.clone()),
108 }
109 }
110}
111
112impl VolumePruneOptsBuilder {
113 impl_filter_func!(VolumePruneFilter);
114}