Я хочу предоставить JSON-кодировщики для следующего класса дел:
import io.circe.generic.extras.Configuration
final case class Hello[T](
source: String,
version: Int = 1,
data: T
)
object Hello {
implicit val configuration: Configuration = Configuration.default.withDefaults
}
Я бы обычно вызывал deriveEncoder[A]
в сопутствующем объекте, но здесь это не работает, так как нет ссылки илиEncoder
для T
доступно здесь.
Тип Hello
будет предоставлен клиентам в виде библиотеки, поэтому я бы хотел использовать как можно больше шаблонов в этом типе, а не зависеть от кода клиента, предоставляющего кодировщик и декодер.Есть ли идиоматическое решение для этого с circe, чтобы клиенты предоставляли кодер / декодер для T
, и это используется для получения кодера / декодера для Hello[T]
?