anvil/server/beacon/
utils.rs1use hyper::HeaderMap;
2
3pub fn must_be_ssz(headers: &HeaderMap) -> bool {
6 headers
7 .get(axum::http::header::ACCEPT)
8 .and_then(|v| v.to_str().ok())
9 .map(|accept_str| {
10 let mut octet_stream_q = 0.0;
11 let mut json_q = 0.0;
12
13 for media_type in accept_str.split(',') {
15 let media_type = media_type.trim();
16 let quality = media_type
17 .split(';')
18 .find_map(|param| {
19 let param = param.trim();
20 if let Some(q) = param.strip_prefix("q=") {
21 q.parse::<f32>().ok()
22 } else {
23 None
24 }
25 })
26 .unwrap_or(1.0); if media_type.starts_with("application/octet-stream") {
29 octet_stream_q = quality;
30 } else if media_type.starts_with("application/json") {
31 json_q = quality;
32 }
33 }
34
35 octet_stream_q > json_q
37 })
38 .unwrap_or(false)
39}