hyperium / headers

Typed HTTP Headers from hyper
https://hyper.rs
MIT License
162 stars 84 forks source link

Could we get string representation for CacheControl #146

Open sadokmtir opened 1 year ago

sadokmtir commented 1 year ago

I am using this crate for dealing with headers for example Cache-Control and I find it very helpful to create headers in general with this lib. But unfortunately most of the headers Structs they do not provide a string representation so we could include the headers in the response.

Example:

           let mut res = axum::response::Response::builder();

            let cache_control_value = axum::headers::CacheControl::new()
                .with_max_age(Duration::new(10, 0))
                .with_public();
            res = res.header(CACHE_CONTROL, cache_control_value.as_str());

Something like that would be very useful not only for Cache-Control but for most headers

seanmonstar commented 1 year ago

The typed headers are meant to be used with HeaderMapExt, which allow a typed_insert(). CacheControl in particular doesn't have a cheap way to provide an as_str() representation, since it's internally a bunch of a flags.