use std::io;
use std::num::ParseIntError;
use zip::result::ZipError;
use reqwest::header::InvalidHeaderName;
use reqwest::header::InvalidHeaderValue;
pub trait Error
{
type ErrorType;
fn generic(e: String) -> Self::ErrorType;
fn io(e: io::Error) -> Self::ErrorType;
fn zip(e: ZipError) -> Self::ErrorType;
fn network(e: reqwest::Error) -> Self::ErrorType;
fn network_invalid_header_name(e: InvalidHeaderName) -> Self::ErrorType;
fn network_invalid_header_value(e: InvalidHeaderValue) -> Self::ErrorType;
fn parse_int(e: ParseIntError) -> Self::ErrorType;
fn unknown_resource(resid: usize) -> Self::ErrorType;
fn unknown_resource_path(res: &str) -> Self::ErrorType;
}