MCPcopy Create free account
hub / github.com/TeamPiped/piped-proxy / parse_range

Function parse_range

src/main.rs:185–209  ·  view source on GitHub ↗
(range_str: &str, total_size: u64)

Source from the content-addressed store, hash-verified

183}
184
185fn parse_range(range_str: &str, total_size: u64) -> Option<RangeRequest> {
186 let range_parts: Vec<&str> = range_str.split('-').collect();
187
188 if range_parts.len() != 2 {
189 return None;
190 }
191
192 let start_result = range_parts[0].parse::<u64>();
193 let start = start_result.unwrap_or(0);
194
195 // Parse end position - if empty, use total_size-1 (open-ended range)
196 let end = if range_parts[1].is_empty() {
197 total_size.saturating_sub(1) // Avoid underflow
198 } else {
199 let end_result = range_parts[1].parse::<u64>();
200 let parsed_end = end_result.unwrap_or(total_size.saturating_sub(1));
201 parsed_end.min(total_size.saturating_sub(1))
202 };
203
204 Some(RangeRequest {
205 start,
206 end,
207 total_size,
208 })
209}
210
211fn handle_range_response_correction(
212 response: &mut HttpResponseBuilder,

Callers 1

Calls

no outgoing calls

Tested by

no test coverage detected