podman_client/containers/
delete_stopped.rs1use std::collections::HashMap;
2
3use http_body_util::Empty;
4use hyper::body::Bytes;
5use url::form_urlencoded::byte_serialize;
6
7use crate::{
8 client::Client,
9 models::{
10 connection::SendRequestOptions,
11 lib::Error,
12 podman::containers::delete_stopped::{
13 ContainerDeleteStopped, ContainerDeleteStoppedOptions,
14 },
15 },
16};
17
18impl Client {
19 pub async fn container_delete_stopped(
20 &self,
21 options: Option<ContainerDeleteStoppedOptions<'_>>,
22 ) -> Result<ContainerDeleteStopped, Error> {
23 let mut path = "/libpod/containers/prune".to_owned();
24
25 if let Some(options) = options {
26 if let Some(opt_filters) = options.filters {
27 let mut filters = HashMap::new();
28 if let Some(until) = opt_filters.until {
29 filters.insert("until", until);
30 }
31 if let Some(label) = opt_filters.label {
32 filters.insert("label", label);
33 }
34 if let Some(labelnot) = opt_filters.labelnot {
35 filters.insert("label!", labelnot);
36 }
37 if !filters.is_empty() {
38 let filters_json = serde_json::to_string(&filters)?;
39 let filters_encoded: String = byte_serialize(filters_json.as_bytes()).collect();
40 path += &["?filters=", &filters_encoded].concat();
41 }
42 }
43 }
44
45 let (_, data) = self
46 .send_request::<_, (), _>(SendRequestOptions {
47 method: "POST",
48 path: &path,
49 header: None,
50 body: Empty::<Bytes>::new(),
51 })
52 .await?;
53
54 Ok(data)
55 }
56}