interfacer-http 0.2.2

A magic HTTP client, like retrofit in Java
Documentation
use crate::{FromContentError, ToContentError};

use lib_encoding::label::encoding_from_whatwg_label;

#[allow(dead_code)]
pub fn encode_data(raw_data: &str, encoding: &str) -> Result<Vec<u8>, ToContentError> {
    match encoding_from_whatwg_label(encoding) {
        Some(encoder) => encoder
            .encode(&raw_data, lib_encoding::EncoderTrap::Strict)
            .map_err(|err| (raw_data.to_owned(), encoding.to_owned(), err.to_string()).into()),
        None => Err(ToContentError::UnsupportedEncoding(encoding.into())),
    }
}

#[allow(dead_code)]
pub fn decode_data(raw_data: &[u8], encoding: &str) -> Result<String, FromContentError> {
    match encoding_from_whatwg_label(encoding) {
        Some(encoder) => encoder
            .decode(raw_data, lib_encoding::DecoderTrap::Strict)
            .map_err(|err| (raw_data.to_owned(), encoding.to_owned(), err.to_string()).into()),
        None => Err(FromContentError::UnsupportedEncoding(encoding.into())),
    }
}