in ktor-http/common/src/io/ktor/http/ContentTypes.kt [55:86]
public fun match(pattern: ContentType): Boolean {
if (pattern.contentType != "*" && !pattern.contentType.equals(contentType, ignoreCase = true)) {
return false
}
if (pattern.contentSubtype != "*" && !pattern.contentSubtype.equals(contentSubtype, ignoreCase = true)) {
return false
}
for ((patternName, patternValue) in pattern.parameters) {
val matches = when (patternName) {
"*" -> {
when (patternValue) {
"*" -> true
else -> parameters.any { p -> p.value.equals(patternValue, ignoreCase = true) }
}
}
else -> {
val value = parameter(patternName)
when (patternValue) {
"*" -> value != null
else -> value.equals(patternValue, ignoreCase = true)
}
}
}
if (!matches) {
return false
}
}
return true
}