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