podman_client/manifests/
create.rs1use http_body_util::Full;
2use hyper::body::Bytes;
3use url::form_urlencoded;
4
5use crate::{
6 client::Client,
7 models::{
8 connection::SendRequestOptions,
9 lib::Error,
10 podman::manifests::create::{ManifestCreate, ManifestCreateOptions},
11 },
12 utils::bool_to_str::bool_to_str,
13};
14
15impl Client {
16 pub async fn manifest_create(
17 &self,
18 options: ManifestCreateOptions<'_>,
19 ) -> Result<ManifestCreate, Error> {
20 let mut query = form_urlencoded::Serializer::new(String::new());
21 for image in options.images {
22 query.append_pair("images", image);
23 }
24 if let Some(all) = options.all {
25 query.append_pair("all", bool_to_str(all));
26 }
27 if let Some(amend) = options.amend {
28 query.append_pair("amend", bool_to_str(amend));
29 }
30 let query_string = query.finish();
31
32 let path = ["/libpod/manifests/", options.name, "?", &query_string].concat();
33
34 let (_, data) = self
35 .send_request::<_, (), _>(SendRequestOptions {
36 method: "GET",
37 path: &path,
38 header: None,
39 body: Full::new(Bytes::from(serde_json::to_string(&options.request)?)),
40 })
41 .await?;
42
43 Ok(data)
44 }
45}