Something went wrong. Try again.
atproto Thingiverse but good
Something went wrong. Try again.
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849use axum::http::{HeaderMap, header};
/// Return the inbound media type without parameters, defaulting to binary.pub(super) fn content_type(headers: &HeaderMap) -> String { headers .get(header::CONTENT_TYPE) .and_then(|value| value.to_str().ok()) .and_then(|value| value.split(';').next()) .map(str::trim) .filter(|value| !value.is_empty()) .unwrap_or("application/octet-stream") .to_string()}
#[cfg(test)]mod tests { use super::content_type; use axum::http::{HeaderMap, HeaderValue, header};
#[test] fn content_type_from_headers_defaults_to_octet_stream() { let headers = HeaderMap::new();
assert_eq!(content_type(&headers), "application/octet-stream"); }
#[test] fn content_type_from_headers_preserves_parameters() { let mut headers = HeaderMap::new(); headers.insert( header::CONTENT_TYPE, HeaderValue::from_static("text/plain; charset=utf-8"), );
assert_eq!(content_type(&headers), "text/plain"); }
#[test] fn content_type_from_headers_discards_empty_values() { let mut headers = HeaderMap::new(); headers.insert( header::CONTENT_TYPE, HeaderValue::from_static(" ; charset=utf-8"), );
assert_eq!(content_type(&headers), "application/octet-stream"); }}