podman_client/pods/
list_processes.rs1use http_body_util::Empty;
2use hyper::body::Bytes;
3use url::form_urlencoded;
4
5use crate::{
6 client::Client,
7 models::{
8 connection::SendRequestOptions,
9 lib::Error,
10 podman::pods::list_processes::{PodListProcesses, PodListProcessesOptions},
11 },
12 utils::bool_to_str::bool_to_str,
13};
14
15impl Client {
16 pub async fn pod_list_processes(
17 &self,
18 options: PodListProcessesOptions<'_>,
19 ) -> Result<PodListProcesses, Error> {
20 let mut path = ["/libpod/pods/", options.name, "/top"].concat();
21
22 let mut query = form_urlencoded::Serializer::new(String::new());
23 if let Some(delay) = options.delay {
24 query.append_pair("delay", itoa::Buffer::new().format(delay));
25 }
26 if let Some(ps_args) = options.ps_args {
27 query.append_pair("ps_args", ps_args);
28 }
29 if let Some(stream) = options.stream {
30 query.append_pair("stream", bool_to_str(stream));
31 }
32 let query_string = query.finish();
33 if !query_string.is_empty() {
34 path += &["?", &query_string].concat();
35 }
36
37 let (_, data) = self
38 .send_request::<_, (), _>(SendRequestOptions {
39 method: "GET",
40 path: &path,
41 header: None,
42 body: Empty::<Bytes>::new(),
43 })
44 .await?;
45
46 Ok(data)
47 }
48}