How to write such a string-encoder decoder for circe? For example, I have
case class Something (s: String, foo: Foo, bar: Bar)
where Bar is member of ADT
trait Bar
case object A extends Bar
case object B extends Bar
where I want to decode my Something like
{
"s":"smstring",
"foo":{...somefoo...},
"bar":"aaa"//for Bar=A, or "bbb" for Bar=B
}
What is the simplest way to organise decoder/encoder for Something?
PS May be using derived Something codec + some modification(contramap?)?
look like I need eMapTry and contramap from String to decoders and encoders of both objects