class

MimeType

@Serializable { simple=true }
const class MimeType : Obj

MimeType represents the parsed value of a Content-Type header per RFC 2045 section 5.1.

constructors fromStr

Parse from string format

methods toStr

Encode as a MIME message according to RFC 822

charset

If a charset parameter is specified, then map it to the Charset instance, otherwise return Charset.utf8

noParams

Return an instance with this mediaType and subType, but strip any parameters

equals

Equality is based on the case insensitive mediaType and subType, and params (keys are case insensitive and values are case sensitive)

forExt

Map a case insensitive file extension to a MimeType

mediaType

The primary media type always in lowercase

subType

The subtype always in lowercase

params

Additional parameters stored in case-insensitive map

hash

Hash code is derived from the mediaType, subType, and params hashes

isText

Return if this mime type is known to be text

parseParams

Parse a set of attribute-value parameters where the values may be tokens or quoted-strings

charset Charset charset()

If a charset parameter is specified, then map it to the Charset instance, otherwise return Charset.utf8.

equals virtual Bool equals(Obj? that)

Equality is based on the case insensitive mediaType and subType, and params (keys are case insensitive and values are case sensitive).

forExt static MimeType? forExt(Str ext)

Map a case insensitive file extension to a MimeType. This mapping is configured via "etc/sys/ext2mime.props". If no mapping is available return null.

fromStr static new fromStr(Str s, Bool checked)

Parse from string format. If invalid format and checked is false return null, otherwise throw ParseErr. Parenthesis comments are treated as part of the value.

hash virtual Int hash()

Hash code is derived from the mediaType, subType, and params hashes.

isText Bool isText()

Return if this mime type is known to be text. This includes all "text/*" mime types along with special cases like "application/json".

mediaType Str mediaType()

The primary media type always in lowercase:

text/html  =>  text

noParams MimeType noParams()

Return an instance with this mediaType and subType, but strip any parameters.

params Str:Str params()

Additional parameters stored in case-insensitive map. If no parameters, then this is an empty map.

text/html; charset=utf-8    =>  [charset:utf-8]
text/html; charset="utf-8"  =>  [charset:utf-8]

parseParams static [Str:Str]? parseParams(Str s, Bool checked)

Parse a set of attribute-value parameters where the values may be tokens or quoted-strings. The resulting map is case insensitive. If invalid format return null or raise ParseErr based on checked flag. Parenthesis comments are not supported. If a value pair is missing "= value", then the value is defaulted to "".

Examples:

a=b; c="d"       =>  ["a":"b", "c"="d"]
foo=bar; secure  =>  ["foo":"bar", "secure":""]

subType Str subType()

The subtype always in lowercase:

text/html  =>  html

toStr virtual Str toStr()

Encode as a MIME message according to RFC 822. This is always the exact same string passed to fromStr.

Haxall 4.0.5 ∙ 24-Feb-2026 14:33 EST