Вдохновленный тем, что я выбрал в качестве ответа, я придумал это решение, разместив его здесь, если кто-то захочет его использовать.
class Range(private val fromInclusive: Boolean, val from: Float, val to: Float, private val toInclusive: Boolean) {
infix fun contains(value: Float): Boolean {
return when {
fromInclusive && toInclusive -> value in from..to
!fromInclusive && !toInclusive -> value > from && value < to
!fromInclusive && toInclusive -> value > from && value <= to
fromInclusive && !toInclusive -> value >= from && value < to
else -> false
}
}
}
Использование: val inRange = Range(true, 0f, 10f, false) contains 5f