a
Size: a a a
a
a
a
trait JsonCodec[A] extends ToJson[A] with FromJson[A] { A =>
def imap[B](f: B => A, g: A => B): JsonCodec[B] = new JsonCodec[B] {
override def write(b: B): JsValue = A.write(f(b))
override def read[E: JsonErrors](js: JsValue): Either[E, B] =
A.read(js).map(g)
}
}
ait Converter[T] {trait ResourceConverter[A] { A =>
def veryUnsafeWrite(any: T, stream: DataOutputStream): Unit
def veryUnsafeRead(stream: DataInputStream): T
def veryUnsafeWriteJson(any: T, stream: DataOutputStream): Unit
def veryUnsafeReadJson(stream: DataInputStream): T
}
a
I
λ
Oℕ
D
GP
D
シ
D
IP
D
VS
VS
b
D
D