phobos
phobos copied to clipboard
Efficient and expressive XML data-binding library for Scala
Hi, I've noticed that in some cases a decoder may not produce the same result: ```scala import ru.tinkoff.phobos.decoding.* case class Foo(i: Int) derives ElementDecoder case class Bar(foo: List[Foo] = Nil)...
Hi! It would be nice to have a testing module that'd let you do something like Circe's codec laws. I'm building something like this for work, I'll see if I...
TextEncoder, TextDecoder, AttributeEncoder, AttributeDecoder, ElementEncoder and ElementDecoder have unobvious contracts which have to be documented
The encoder for Option[Unit] seems to be bugged: ```scala case class Bar(data: Option[Unit]) derives ElementDecoder val xml = "" val actual = XmlDecoder.fromElementDecoder[Bar]("bar").decode(xml) ``` ``` Left(ru.tinkoff.phobos.decoding.DecodingError: Error while decoding XML:...
I'd like to provide some way to set a default value whenever some field cannot be decoded (because it does not have the right type or else). Here's an attempt...
Hi there, I was looking to set up namespaces with a given prefix instead of being automatically determined as `ans\d+` in [PhobosStreamWriter](https://github.com/Tinkoff/phobos/blob/master/modules/core/src/main/scala/ru/tinkoff/phobos/encoding/PhobosStreamWriter.scala#L240). Example of ideal output sampled from [w3schools](https://www.w3schools.com/xml/xml_namespaces.asp): ```...
Good morning, I have been using this library in my project for a while. However, since Today I am getting the following error `GC overhead limit exceeded` while compiling my...
Fix for https://github.com/Tinkoff/phobos/issues/222