const class sys::MimeType

sys::Obj
  sys::MimeType

@Serializable { simple=true }

Source

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

charset

Charset charset()

Source

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

equals

virtual override Bool equals(Obj? that)

Source

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)

Source

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 := true)

Source

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 override Int hash()

Source

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

isText

Bool isText()

Source

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()

Source

The primary media type always in lowercase:

text/html  =>  text
noParams

MimeType noParams()

Source

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

params

Str:Str params()

Source

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 := true)

Source

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()

Source

The subtype always in lowercase:

text/html  =>  html
toStr

virtual override Str toStr()

Source

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