Reputation: 97
I want to use automatic generic marshaller to Json from circle:
def printTest[T<: Product](resourse: ResourcePartTest[T]): Unit = {
import io.circe.generic.auto._
import io.circe.syntax._
println(resourse.asJson)
}
But I can Exeption:
Error:(29, 22) could not find implicit value for parameter encoder: io.circe.Encoder[com.moex.regulatory.standards.intermediate.v23.ResourcePartTest[T]]
println(resourse.asJson)
Error:(29, 22) not enough arguments for method asJson: (implicit encoder: io.circe.Encoder[com.moex.regulatory.standards.intermediate.v23.ResourcePartTest[T]])io.circe.Json.
Unspecified value parameter encoder.
println(resourse.asJson)
Can I use automatic marshaller for Generic?
Upvotes: 2
Views: 324
Reputation: 149628
I'm not sure how ResourceParTest
is defined, but this should work by moving the generic derivation import outside the method and requiring an Encoder[ResourcePartTest[T]]
as evidence:
import io.circe.Encoder
import io.circe.generic.auto._
import io.circe.syntax._
sealed trait ResourcePartTest[T]
case class Foo() extends ResourcePartTest[(Int, Int)]
def printTest[T <: Product](resourse:
ResourcePartTest[T])(implicit ev: Encoder[ResourcePartTest[T]]): Unit = {
println(resourse.asJson)
}
Upvotes: 2