@@ -39,24 +39,41 @@ sealed trait HighlightResult
3939
4040trait HighlightResultTrait extends HighlightResult
4141
42+ trait HighlightResultEvidence
43+
44+ object HighlightResultEvidence {
45+ implicit object MapOfStringHighlightResultEvidence extends HighlightResultEvidence
46+ implicit object MapOfStringHighlightResultOptionEvidence extends HighlightResultEvidence
47+ }
48+
4249object HighlightResult {
4350
51+ case class MapOfStringHighlightResult (value : Map [String , HighlightResult ]) extends HighlightResult
4452 case class MapOfStringHighlightResultOption (value : Map [String , HighlightResultOption ]) extends HighlightResult
4553 case class SeqOfHighlightResultOption (value : Seq [HighlightResultOption ]) extends HighlightResult
4654
47- def apply (value : Map [String , HighlightResultOption ]): HighlightResult = {
55+ def apply (
56+ value : Map [String , HighlightResult ]
57+ )(implicit ev : HighlightResultEvidence .MapOfStringHighlightResultEvidence .type ): HighlightResult = {
58+ HighlightResult .MapOfStringHighlightResult (value)
59+ }
60+ def apply (
61+ value : Map [String , HighlightResultOption ]
62+ )(implicit ev : HighlightResultEvidence .MapOfStringHighlightResultOptionEvidence .type ): HighlightResult = {
4863 HighlightResult .MapOfStringHighlightResultOption (value)
4964 }
5065 def apply (value : Seq [HighlightResultOption ]): HighlightResult = {
5166 HighlightResult .SeqOfHighlightResultOption (value)
5267 }
68+
5369}
5470
5571object HighlightResultSerializer extends Serializer [HighlightResult ] {
5672 override def deserialize (implicit format : Formats ): PartialFunction [(TypeInfo , JValue ), HighlightResult ] = {
5773
5874 case (TypeInfo (clazz, _), json) if clazz == classOf [HighlightResult ] =>
5975 json match {
76+ case value : JObject => HighlightResult .apply(Extraction .extract[Map [String , HighlightResult ]](value))
6077 case value : JObject => Extraction .extract[HighlightResultOption ](value)
6178 case value : JObject => HighlightResult .apply(Extraction .extract[Map [String , HighlightResultOption ]](value))
6279 case JArray (value) if value.forall(_.isInstanceOf [JArray ]) =>
0 commit comments