Fan

 

const final class

sys::MimeType

sys::Obj
  sys::MimeType

@simple

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

Slots

charsetSource

Charset charset()

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

equalsSource

override Bool equals(Obj? that)

Overrides sys::Obj.equals

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

forExtSource

static MimeType? forExt(Str ext)

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

fromStrSource

static MimeType? fromStr(Str s, Bool checked := true)

Parse from string format. If invalid format and checked is false return null, otherwise throw ParseErr. Parenthesis comments are not supported.

hashSource

override Int hash()

Overrides sys::Obj.hash

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

mediaTypeSource

Str mediaType()

The primary media type always in lowercase:

text/html  =>  text
paramsSource

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]
parseParamsSource

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

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 and checked is false return null, otherwise throw ParseErr. Parenthesis comments are not supported.

Examples:

a=b; c="d"  =>  ["a":"b", "c"="d"]
subTypeSource

Str subType()

The subtype always in lowercase:

text/html  =>  html
toStrSource

override Str toStr()

Overrides sys::Obj.toStr

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