Правильный способ получить максимальное значение JInt из List[JValue] в Json4s
Есть ли какие-то конкретные причины, по которым Json4s не определили неявное упорядочение?
Например этот код::
List(JInt(1), JInt(3)).max
Вызывает следующее исключение
Не определен неявный порядок для org.json4s.JsonAST.JInt
Так это просто особенность, которая никого не волнует, или за этим стоит какая-то история?
И также, эта реализация (использует скалярный порядок) в порядке? Разве это не нарушает договор?
object JValueOrdering extends Order[JValue] {
def order(x: JValue, y: JValue): Ordering = (x, y) match {
case (JInt(a), JInt(b)) => a ?|? b
case (JString(a), JString(b)) => a ?|? b
case (JDouble(a), JDouble(b)) => a ?|? b
case (JDecimal(a), JDecimal(b)) => a ?|? b
case (JArray(a), JArray(b)) => a.length ?|? b.length
case _ => Ordering.EQ
}
}