Current section

Files

Jump to
typed_headers src typed_headers.gleam
Raw

src/typed_headers.gleam

import method.{type Method}
import content_type.{type ContentType}
pub type Header {
MethodHeader(Method)
ContentTypeHeader(ContentType)
CustomHeader(name: String, value: String)
CustomRawHeader(String)
}
fn h(name: String, value: String) -> String {
name <> ": " <> value
}
pub fn to_string(header: Header) -> String {
case header {
MethodHeader(m) -> h(method.header_name, method.to_string(m))
ContentTypeHeader(c) ->
h(content_type.header_name, content_type.to_string(c))
CustomHeader(name, value) -> h(name, value)
CustomRawHeader(s) -> s
}
}