Skip to main content

aws_multipart_upload/client/request/
mod.rs

1pub use crate::abort_upload::builders::AbortMultipartUploadFluentBuilder as AbortRequestBuilder;
2pub use crate::complete_upload::builders::CompleteMultipartUploadFluentBuilder as CompleteRequestBuilder;
3pub use crate::create_upload::builders::CreateMultipartUploadFluentBuilder as CreateRequestBuilder;
4pub use crate::part_upload::builders::UploadPartFluentBuilder as UploadPartRequestBuilder;
5
6mod abort;
7pub use abort::{AbortRequest, SendAbortUpload};
8
9mod complete;
10pub use complete::{CompleteRequest, CompletedUpload, SendCompleteUpload};
11
12mod create;
13pub use create::{CreateRequest, SendCreateUpload};
14
15mod upload_part;
16pub use upload_part::{SendUploadPart, UploadPartRequest};
17
18/// Add additional properties to the request objects being sent.
19pub trait RequestBuilder: Send + Sync {
20    /// Set additional properties on [`CreateRequestBuilder`] beyond what
21    /// [`CreateRequest`] provides.
22    ///
23    /// [`CreateRequest`]: self::create::CreateRequest
24    fn with_create_builder(
25        &self,
26        builder: CreateRequestBuilder,
27    ) -> CreateRequestBuilder {
28        builder
29    }
30
31    /// Set additional properties on [`UploadPartRequestBuilder`] beyond what
32    /// [`UploadPartRequest`] provides.
33    ///
34    /// [`UploadPartRequest`]: self::upload_part::UploadPartRequest
35    fn with_upload_part_builder(
36        &self,
37        builder: UploadPartRequestBuilder,
38    ) -> UploadPartRequestBuilder {
39        builder
40    }
41
42    /// Set additional properties on [`CompleteRequestBuilder`] beyond what
43    /// [`CompleteRequest`] provides.
44    ///
45    /// [`CompleteRequest`]: self::complete::CompleteRequest
46    fn with_complete_builder(
47        &self,
48        builder: CompleteRequestBuilder,
49    ) -> CompleteRequestBuilder {
50        builder
51    }
52
53    /// Set additional properties on [`AbortRequestBuilder`] beyond what
54    /// [`AbortRequest`] provides.
55    ///
56    /// [`AbortRequest`]: self::abort::AbortRequest
57    fn with_abort_builder(
58        &self,
59        builder: AbortRequestBuilder,
60    ) -> AbortRequestBuilder {
61        builder
62    }
63}
64
65/// Default implementation of `RequestBuilder` that doesn't modify the request
66/// object at all.
67#[derive(Debug, Clone, Copy, Default)]
68pub struct DefaultRequestBuilder;
69impl RequestBuilder for DefaultRequestBuilder {}