podman_client/artifacts/
extract.rs1use http_body_util::Empty;
2use hyper::body::Bytes;
3use url::form_urlencoded;
4
5use crate::{
6 client::Client,
7 models::{
8 connection::SendRequestOptions, lib::Error,
9 podman::artifacts::extract::ArtifactExtractOptions,
10 },
11};
12
13impl Client {
14 pub async fn artifact_extract(&self, options: ArtifactExtractOptions<'_>) -> Result<(), Error> {
15 let mut path = ["/libpod/artifacts/", options.name, "/extract"].concat();
16
17 let mut query = form_urlencoded::Serializer::new(String::new());
18 if let Some(digest) = options.digest {
19 query.append_pair("digest", digest);
20 }
21 if let Some(title) = options.title {
22 query.append_pair("title", title);
23 }
24 let query_string = query.finish();
25 if !query_string.is_empty() {
26 path += &["?", &query_string].concat();
27 }
28
29 let (_, data) = self
30 .send_request::<_, (), _>(SendRequestOptions {
31 method: "GET",
32 path: &path,
33 header: None,
34 body: Empty::<Bytes>::new(),
35 })
36 .await?;
37
38 Ok(data)
39 }
40}