Models the most common mime types as a Union type in Elm and provides a method to parse mime types from a string.
The MimeType union type defines the main categories Image, Audio, Video, Text, App and OtherMimeType, all but the last of which carry another union type defining some common formats but also giving an Other* option with a String payload to represent arbitrary mime types.
The basic usage is to parse the mime type from a string identifier and then match against it, e.g.
let
maybeMimeType = parseMimeType someMimeIdentifierString
in
case maybeMimeType of
Nothing ->
"Could not be parsed as a mime type at all"
Just mimeType ->
case mimeType of
Image Jpeg ->
"Successfully parsed as jpeg image"
Image Png ->
"Successfully parsed as png image"
Image Gif ->
"Successfully parsed as gif image"
Image (OtherImage other)
"Unrecognized image format: " ++ other
_ ->
"Non-image mime type"
Initial version by Daniel Bachler