Декодер-кодировщик Circe для объекта как тип параметра json

Как написать такой декодер строкового кодировщика для circe? Например, у меня есть

      case class Something (s: String, foo: Foo, bar: Bar)

где Bar является членом ADT

      trait Bar
case object A extends Bar
case object B extends Bar

где я хочу декодировать что-то вроде

      {
"s":"smstring",
"foo":{...somefoo...},
"bar":"aaa"//for Bar=A, or "bbb" for Bar=B
}

Как проще всего организовать декодер/кодировщик для Something ?

PS Может быть используется какой-то производный кодек + какая-то модификация(контрамап?)?

1 ответ

похоже мне нужен eMapTry и contramap от String до декодеров и кодировщиков обоих объектов

Другие вопросы по тегам