const class sys::MimeType
sys::Obj sys::MimeType
@Serializable { simple=true }
MimeType represents the parsed value of a Content-Type header per RFC 2045 section 5.1.
- charset
-
Charset charset()
If a charset parameter is specified, then map it to the
Charset
instance, otherwise returnCharset.utf8
. - equals
-
virtual override 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 := true)
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()
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
-
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)
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 override Str toStr()
Encode as a MIME message according to RFC 822. This is always the exact same string passed to
fromStr
.