Декодер-кодировщик 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 до декодеров и кодировщиков обоих объектов