modio/request/files/multipart/
delete_multipart_upload_session.rs

1use std::future::IntoFuture;
2
3use crate::client::Client;
4use crate::request::{Output, RequestBuilder, Route};
5use crate::response::{NoContent, ResponseFuture};
6use crate::types::files::multipart::UploadId;
7use crate::types::id::{GameId, ModId};
8
9pub struct DeleteMultipartUploadSession<'a> {
10    http: &'a Client,
11    game_id: GameId,
12    mod_id: ModId,
13    upload_id: UploadId,
14}
15
16impl<'a> DeleteMultipartUploadSession<'a> {
17    pub(crate) const fn new(
18        http: &'a Client,
19        game_id: GameId,
20        mod_id: ModId,
21        upload_id: UploadId,
22    ) -> Self {
23        Self {
24            http,
25            game_id,
26            mod_id,
27            upload_id,
28        }
29    }
30}
31
32impl IntoFuture for DeleteMultipartUploadSession<'_> {
33    type Output = Output<NoContent>;
34    type IntoFuture = ResponseFuture<NoContent>;
35
36    fn into_future(self) -> Self::IntoFuture {
37        let route = Route::DeleteMultipartUploadSession {
38            game_id: self.game_id,
39            mod_id: self.mod_id,
40            upload_id: self.upload_id,
41        };
42        match RequestBuilder::from_route(&route).empty() {
43            Ok(req) => self.http.request(req),
44            Err(err) => ResponseFuture::failed(err),
45        }
46    }
47}