use time::GregorianDateTime;

use crate::Host;

//WIP: Research and write more variants
pub enum Header {
    Host(Host),
    UserAgent(String),
    Accept(Vec<(ContentType, Option<f32>)>),
    ContentType(ContentType),
    AcceptLanguage(Vec<(String, Option<f32>)>),
    AcceptEncoding(Vec<(Encoding, Option<f32>)>),
    ContentEncoding(Vec<Encoding>),
    Cookie(Vec<u8>),
    Priority(bool),
    IfModifiedSince(GregorianDateTime),
    Other(String,String),
}

//WIP: More Variants
pub enum Encoding {
    Gzip,
    Compress,
    Deflate,
    Br,
    Zstd,
    Dcb,
    Dcz,
    Identity,
    Wildcard,
}

//TODO: Research variants and actually write
pub enum ContentType {
    
}
