MimeType
@Serializable { simple=true }
const class MimeType : Obj
MimeType represents the parsed value of a Content-Type header per RFC 2045 section 5.1.
Parse from string format
Encode as a MIME message according to RFC 822
If a charset parameter is specified, then map it to the Charset instance, otherwise return Charset.utf8
Return an instance with this mediaType and subType, but strip any parameters
Equality is based on the case insensitive mediaType and subType, and params (keys are case insensitive and values are case sensitive)
Map a case insensitive file extension to a MimeType
The primary media type always in lowercase
The subtype always in lowercase
Additional parameters stored in case-insensitive map
Hash code is derived from the mediaType, subType, and params hashes
Return if this mime type is known to be text
Parse a set of attribute-value parameters where the values may be tokens or quoted-strings
Charset charset()
If a charset parameter is specified, then map it to the Charset instance, otherwise return Charset.utf8.
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).
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.
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.
virtual Int hash()
Hash code is derived from the mediaType, subType, and params hashes.
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".
Str mediaType()
The primary media type always in lowercase:
text/html => text
MimeType noParams()
Return an instance with this mediaType and subType, but strip any parameters.
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]
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":""]
Str subType()
The subtype always in lowercase:
text/html => html
virtual Str toStr()
Encode as a MIME message according to RFC 822. This is always the exact same string passed to fromStr.