aws_sdk_s3/protocol_serde/
shape_get_object_output.rs1pub(crate) fn de_accept_ranges_header(
3 header_map: &::aws_smithy_runtime_api::http::Headers,
4) -> ::std::result::Result<::std::option::Option<::std::string::String>, ::aws_smithy_http::header::ParseError> {
5 let headers = header_map.get_all("accept-ranges");
6 ::aws_smithy_http::header::one_or_none(headers)
7}
8
9pub fn de_body_payload(
10 body: &mut ::aws_smithy_types::body::SdkBody,
11) -> std::result::Result<::aws_smithy_types::byte_stream::ByteStream, crate::operation::get_object::GetObjectError> {
12 let body = std::mem::replace(body, ::aws_smithy_types::body::SdkBody::taken());
14 Ok(::aws_smithy_types::byte_stream::ByteStream::new(body))
15}
16
17pub(crate) fn de_bucket_key_enabled_header(
18 header_map: &::aws_smithy_runtime_api::http::Headers,
19) -> ::std::result::Result<::std::option::Option<bool>, ::aws_smithy_http::header::ParseError> {
20 let headers = header_map.get_all("x-amz-server-side-encryption-bucket-key-enabled");
21 let var_1 = ::aws_smithy_http::header::read_many_primitive::<bool>(headers)?;
22 if var_1.len() > 1 {
23 Err(::aws_smithy_http::header::ParseError::new(format!(
24 "expected one item but found {}",
25 var_1.len()
26 )))
27 } else {
28 let mut var_1 = var_1;
29 Ok(var_1.pop())
30 }
31}
32
33pub(crate) fn de_cache_control_header(
34 header_map: &::aws_smithy_runtime_api::http::Headers,
35) -> ::std::result::Result<::std::option::Option<::std::string::String>, ::aws_smithy_http::header::ParseError> {
36 let headers = header_map.get_all("Cache-Control");
37 ::aws_smithy_http::header::one_or_none(headers)
38}
39
40pub(crate) fn de_checksum_crc32_header(
41 header_map: &::aws_smithy_runtime_api::http::Headers,
42) -> ::std::result::Result<::std::option::Option<::std::string::String>, ::aws_smithy_http::header::ParseError> {
43 let headers = header_map.get_all("x-amz-checksum-crc32");
44 ::aws_smithy_http::header::one_or_none(headers)
45}
46
47pub(crate) fn de_checksum_crc32_c_header(
48 header_map: &::aws_smithy_runtime_api::http::Headers,
49) -> ::std::result::Result<::std::option::Option<::std::string::String>, ::aws_smithy_http::header::ParseError> {
50 let headers = header_map.get_all("x-amz-checksum-crc32c");
51 ::aws_smithy_http::header::one_or_none(headers)
52}
53
54pub(crate) fn de_checksum_sha1_header(
55 header_map: &::aws_smithy_runtime_api::http::Headers,
56) -> ::std::result::Result<::std::option::Option<::std::string::String>, ::aws_smithy_http::header::ParseError> {
57 let headers = header_map.get_all("x-amz-checksum-sha1");
58 ::aws_smithy_http::header::one_or_none(headers)
59}
60
61pub(crate) fn de_checksum_sha256_header(
62 header_map: &::aws_smithy_runtime_api::http::Headers,
63) -> ::std::result::Result<::std::option::Option<::std::string::String>, ::aws_smithy_http::header::ParseError> {
64 let headers = header_map.get_all("x-amz-checksum-sha256");
65 ::aws_smithy_http::header::one_or_none(headers)
66}
67
68pub(crate) fn de_content_disposition_header(
69 header_map: &::aws_smithy_runtime_api::http::Headers,
70) -> ::std::result::Result<::std::option::Option<::std::string::String>, ::aws_smithy_http::header::ParseError> {
71 let headers = header_map.get_all("Content-Disposition");
72 ::aws_smithy_http::header::one_or_none(headers)
73}
74
75pub(crate) fn de_content_encoding_header(
76 header_map: &::aws_smithy_runtime_api::http::Headers,
77) -> ::std::result::Result<::std::option::Option<::std::string::String>, ::aws_smithy_http::header::ParseError> {
78 let headers = header_map.get_all("Content-Encoding");
79 ::aws_smithy_http::header::one_or_none(headers)
80}
81
82pub(crate) fn de_content_language_header(
83 header_map: &::aws_smithy_runtime_api::http::Headers,
84) -> ::std::result::Result<::std::option::Option<::std::string::String>, ::aws_smithy_http::header::ParseError> {
85 let headers = header_map.get_all("Content-Language");
86 ::aws_smithy_http::header::one_or_none(headers)
87}
88
89pub(crate) fn de_content_length_header(
90 header_map: &::aws_smithy_runtime_api::http::Headers,
91) -> ::std::result::Result<::std::option::Option<i64>, ::aws_smithy_http::header::ParseError> {
92 let headers = header_map.get_all("Content-Length");
93 let var_2 = ::aws_smithy_http::header::read_many_primitive::<i64>(headers)?;
94 if var_2.len() > 1 {
95 Err(::aws_smithy_http::header::ParseError::new(format!(
96 "expected one item but found {}",
97 var_2.len()
98 )))
99 } else {
100 let mut var_2 = var_2;
101 Ok(var_2.pop())
102 }
103}
104
105pub(crate) fn de_content_range_header(
106 header_map: &::aws_smithy_runtime_api::http::Headers,
107) -> ::std::result::Result<::std::option::Option<::std::string::String>, ::aws_smithy_http::header::ParseError> {
108 let headers = header_map.get_all("Content-Range");
109 ::aws_smithy_http::header::one_or_none(headers)
110}
111
112pub(crate) fn de_content_type_header(
113 header_map: &::aws_smithy_runtime_api::http::Headers,
114) -> ::std::result::Result<::std::option::Option<::std::string::String>, ::aws_smithy_http::header::ParseError> {
115 let headers = header_map.get_all("Content-Type");
116 ::aws_smithy_http::header::one_or_none(headers)
117}
118
119pub(crate) fn de_delete_marker_header(
120 header_map: &::aws_smithy_runtime_api::http::Headers,
121) -> ::std::result::Result<::std::option::Option<bool>, ::aws_smithy_http::header::ParseError> {
122 let headers = header_map.get_all("x-amz-delete-marker");
123 let var_3 = ::aws_smithy_http::header::read_many_primitive::<bool>(headers)?;
124 if var_3.len() > 1 {
125 Err(::aws_smithy_http::header::ParseError::new(format!(
126 "expected one item but found {}",
127 var_3.len()
128 )))
129 } else {
130 let mut var_3 = var_3;
131 Ok(var_3.pop())
132 }
133}
134
135pub(crate) fn de_e_tag_header(
136 header_map: &::aws_smithy_runtime_api::http::Headers,
137) -> ::std::result::Result<::std::option::Option<::std::string::String>, ::aws_smithy_http::header::ParseError> {
138 let headers = header_map.get_all("ETag");
139 ::aws_smithy_http::header::one_or_none(headers)
140}
141
142pub(crate) fn de_expiration_header(
143 header_map: &::aws_smithy_runtime_api::http::Headers,
144) -> ::std::result::Result<::std::option::Option<::std::string::String>, ::aws_smithy_http::header::ParseError> {
145 let headers = header_map.get_all("x-amz-expiration");
146 ::aws_smithy_http::header::one_or_none(headers)
147}
148
149pub(crate) fn de_expires_header(
150 header_map: &::aws_smithy_runtime_api::http::Headers,
151) -> ::std::result::Result<::std::option::Option<::aws_smithy_types::DateTime>, ::aws_smithy_http::header::ParseError> {
152 let headers = header_map.get_all("Expires");
153 let var_4: Vec<::aws_smithy_types::DateTime> = ::aws_smithy_http::header::many_dates(headers, ::aws_smithy_types::date_time::Format::HttpDate)?;
154 if var_4.len() > 1 {
155 Err(::aws_smithy_http::header::ParseError::new(format!(
156 "expected one item but found {}",
157 var_4.len()
158 )))
159 } else {
160 let mut var_4 = var_4;
161 Ok(var_4.pop())
162 }
163}
164
165pub(crate) fn de_expires_string_header(
166 header_map: &::aws_smithy_runtime_api::http::Headers,
167) -> ::std::result::Result<::std::option::Option<::std::string::String>, ::aws_smithy_http::header::ParseError> {
168 let headers = header_map.get_all("ExpiresString");
169 ::aws_smithy_http::header::one_or_none(headers)
170}
171
172pub(crate) fn de_last_modified_header(
173 header_map: &::aws_smithy_runtime_api::http::Headers,
174) -> ::std::result::Result<::std::option::Option<::aws_smithy_types::DateTime>, ::aws_smithy_http::header::ParseError> {
175 let headers = header_map.get_all("Last-Modified");
176 let var_5: Vec<::aws_smithy_types::DateTime> = ::aws_smithy_http::header::many_dates(headers, ::aws_smithy_types::date_time::Format::HttpDate)?;
177 if var_5.len() > 1 {
178 Err(::aws_smithy_http::header::ParseError::new(format!(
179 "expected one item but found {}",
180 var_5.len()
181 )))
182 } else {
183 let mut var_5 = var_5;
184 Ok(var_5.pop())
185 }
186}
187
188pub(crate) fn de_metadata_prefix_header(
189 header_map: &::aws_smithy_runtime_api::http::Headers,
190) -> std::result::Result<
191 ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>,
192 ::aws_smithy_http::header::ParseError,
193> {
194 let headers = ::aws_smithy_http::header::headers_for_prefix(header_map.iter().map(|(k, _)| k), "x-amz-meta-");
195 let out: std::result::Result<_, _> = headers.map(|(key, header_name)| {
196 let values = header_map.get_all(header_name);
197 crate::protocol_serde::shape_get_object_output::de_metadata_inner(values).map(|v| (key.to_string(), v.expect(
198 "we have checked there is at least one value for this header name; please file a bug report under https://github.com/smithy-lang/smithy-rs/issues"
199 )))
200 }).collect();
201 out.map(Some)
202}
203
204pub(crate) fn de_missing_meta_header(
205 header_map: &::aws_smithy_runtime_api::http::Headers,
206) -> ::std::result::Result<::std::option::Option<i32>, ::aws_smithy_http::header::ParseError> {
207 let headers = header_map.get_all("x-amz-missing-meta");
208 let var_6 = ::aws_smithy_http::header::read_many_primitive::<i32>(headers)?;
209 if var_6.len() > 1 {
210 Err(::aws_smithy_http::header::ParseError::new(format!(
211 "expected one item but found {}",
212 var_6.len()
213 )))
214 } else {
215 let mut var_6 = var_6;
216 Ok(var_6.pop())
217 }
218}
219
220pub(crate) fn de_object_lock_legal_hold_status_header(
221 header_map: &::aws_smithy_runtime_api::http::Headers,
222) -> ::std::result::Result<::std::option::Option<crate::types::ObjectLockLegalHoldStatus>, ::aws_smithy_http::header::ParseError> {
223 let headers = header_map.get_all("x-amz-object-lock-legal-hold");
224 ::aws_smithy_http::header::one_or_none(headers)
225}
226
227pub(crate) fn de_object_lock_mode_header(
228 header_map: &::aws_smithy_runtime_api::http::Headers,
229) -> ::std::result::Result<::std::option::Option<crate::types::ObjectLockMode>, ::aws_smithy_http::header::ParseError> {
230 let headers = header_map.get_all("x-amz-object-lock-mode");
231 ::aws_smithy_http::header::one_or_none(headers)
232}
233
234pub(crate) fn de_object_lock_retain_until_date_header(
235 header_map: &::aws_smithy_runtime_api::http::Headers,
236) -> ::std::result::Result<::std::option::Option<::aws_smithy_types::DateTime>, ::aws_smithy_http::header::ParseError> {
237 let headers = header_map.get_all("x-amz-object-lock-retain-until-date");
238 let var_7: Vec<::aws_smithy_types::DateTime> =
239 ::aws_smithy_http::header::many_dates(headers, ::aws_smithy_types::date_time::Format::DateTimeWithOffset)?;
240 if var_7.len() > 1 {
241 Err(::aws_smithy_http::header::ParseError::new(format!(
242 "expected one item but found {}",
243 var_7.len()
244 )))
245 } else {
246 let mut var_7 = var_7;
247 Ok(var_7.pop())
248 }
249}
250
251pub(crate) fn de_parts_count_header(
252 header_map: &::aws_smithy_runtime_api::http::Headers,
253) -> ::std::result::Result<::std::option::Option<i32>, ::aws_smithy_http::header::ParseError> {
254 let headers = header_map.get_all("x-amz-mp-parts-count");
255 let var_8 = ::aws_smithy_http::header::read_many_primitive::<i32>(headers)?;
256 if var_8.len() > 1 {
257 Err(::aws_smithy_http::header::ParseError::new(format!(
258 "expected one item but found {}",
259 var_8.len()
260 )))
261 } else {
262 let mut var_8 = var_8;
263 Ok(var_8.pop())
264 }
265}
266
267pub(crate) fn de_replication_status_header(
268 header_map: &::aws_smithy_runtime_api::http::Headers,
269) -> ::std::result::Result<::std::option::Option<crate::types::ReplicationStatus>, ::aws_smithy_http::header::ParseError> {
270 let headers = header_map.get_all("x-amz-replication-status");
271 ::aws_smithy_http::header::one_or_none(headers)
272}
273
274pub(crate) fn de_request_charged_header(
275 header_map: &::aws_smithy_runtime_api::http::Headers,
276) -> ::std::result::Result<::std::option::Option<crate::types::RequestCharged>, ::aws_smithy_http::header::ParseError> {
277 let headers = header_map.get_all("x-amz-request-charged");
278 ::aws_smithy_http::header::one_or_none(headers)
279}
280
281pub(crate) fn de_restore_header(
282 header_map: &::aws_smithy_runtime_api::http::Headers,
283) -> ::std::result::Result<::std::option::Option<::std::string::String>, ::aws_smithy_http::header::ParseError> {
284 let headers = header_map.get_all("x-amz-restore");
285 ::aws_smithy_http::header::one_or_none(headers)
286}
287
288pub(crate) fn de_sse_customer_algorithm_header(
289 header_map: &::aws_smithy_runtime_api::http::Headers,
290) -> ::std::result::Result<::std::option::Option<::std::string::String>, ::aws_smithy_http::header::ParseError> {
291 let headers = header_map.get_all("x-amz-server-side-encryption-customer-algorithm");
292 ::aws_smithy_http::header::one_or_none(headers)
293}
294
295pub(crate) fn de_sse_customer_key_md5_header(
296 header_map: &::aws_smithy_runtime_api::http::Headers,
297) -> ::std::result::Result<::std::option::Option<::std::string::String>, ::aws_smithy_http::header::ParseError> {
298 let headers = header_map.get_all("x-amz-server-side-encryption-customer-key-MD5");
299 ::aws_smithy_http::header::one_or_none(headers)
300}
301
302pub(crate) fn de_ssekms_key_id_header(
303 header_map: &::aws_smithy_runtime_api::http::Headers,
304) -> ::std::result::Result<::std::option::Option<::std::string::String>, ::aws_smithy_http::header::ParseError> {
305 let headers = header_map.get_all("x-amz-server-side-encryption-aws-kms-key-id");
306 ::aws_smithy_http::header::one_or_none(headers)
307}
308
309pub(crate) fn de_server_side_encryption_header(
310 header_map: &::aws_smithy_runtime_api::http::Headers,
311) -> ::std::result::Result<::std::option::Option<crate::types::ServerSideEncryption>, ::aws_smithy_http::header::ParseError> {
312 let headers = header_map.get_all("x-amz-server-side-encryption");
313 ::aws_smithy_http::header::one_or_none(headers)
314}
315
316pub(crate) fn de_storage_class_header(
317 header_map: &::aws_smithy_runtime_api::http::Headers,
318) -> ::std::result::Result<::std::option::Option<crate::types::StorageClass>, ::aws_smithy_http::header::ParseError> {
319 let headers = header_map.get_all("x-amz-storage-class");
320 ::aws_smithy_http::header::one_or_none(headers)
321}
322
323pub(crate) fn de_tag_count_header(
324 header_map: &::aws_smithy_runtime_api::http::Headers,
325) -> ::std::result::Result<::std::option::Option<i32>, ::aws_smithy_http::header::ParseError> {
326 let headers = header_map.get_all("x-amz-tagging-count");
327 let var_9 = ::aws_smithy_http::header::read_many_primitive::<i32>(headers)?;
328 if var_9.len() > 1 {
329 Err(::aws_smithy_http::header::ParseError::new(format!(
330 "expected one item but found {}",
331 var_9.len()
332 )))
333 } else {
334 let mut var_9 = var_9;
335 Ok(var_9.pop())
336 }
337}
338
339pub(crate) fn de_version_id_header(
340 header_map: &::aws_smithy_runtime_api::http::Headers,
341) -> ::std::result::Result<::std::option::Option<::std::string::String>, ::aws_smithy_http::header::ParseError> {
342 let headers = header_map.get_all("x-amz-version-id");
343 ::aws_smithy_http::header::one_or_none(headers)
344}
345
346pub(crate) fn de_website_redirect_location_header(
347 header_map: &::aws_smithy_runtime_api::http::Headers,
348) -> ::std::result::Result<::std::option::Option<::std::string::String>, ::aws_smithy_http::header::ParseError> {
349 let headers = header_map.get_all("x-amz-website-redirect-location");
350 ::aws_smithy_http::header::one_or_none(headers)
351}
352
353pub fn de_metadata_inner<'a>(
354 headers: impl ::std::iter::Iterator<Item = &'a str>,
355) -> std::result::Result<Option<::std::string::String>, ::aws_smithy_http::header::ParseError> {
356 ::aws_smithy_http::header::one_or_none(headers)
357}