async-fetch 0.1.0

Asynchronous HTTP client.
Documentation
use std::collections::HashMap;
use crate::{Error};

pub fn read_transfer_encoding(headers: &HashMap<String, String>) -> &str {
    match headers.get("Transfer-Encoding") {
        Some(encoding) => encoding,
        None => "identity",
    }
}

pub fn read_content_length(headers: &HashMap<String, String>, limit: Option<usize>) -> Result<usize, Error> {
    match headers.get("Content-Length") {
        Some(length) => match length.parse::<usize>() {
            Ok(length) => match limit {
                Some(limit) => match limit >= length {
                    true => Ok(length),
                    false => Err(Error::LimitExceeded),
                },
                None => Ok(length),
            },
            Err(_) => Err(Error::InvalidInput),
        },
        None => Err(Error::InvalidHeader),
    }
}