diff options
Diffstat (limited to 'vfd-backend/app/util/package.scala')
-rw-r--r-- | vfd-backend/app/util/package.scala | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/vfd-backend/app/util/package.scala b/vfd-backend/app/util/package.scala new file mode 100644 index 0000000..4a6d2e6 --- /dev/null +++ b/vfd-backend/app/util/package.scala @@ -0,0 +1,22 @@ + + +import org.scalajs.spickling._ +import org.scalajs.spickling.playjson._ +import play.api.data.validation.ValidationError +import play.api.libs.json._ + + +package object util { + + def spicklerFormat[A](implicit manifest: Manifest[A], pickler: Pickler[A], unpickler: Unpickler[A]) = new Format[A] { + PicklerRegistry.register[A] + + def writes(o: A): JsValue = PicklerRegistry.pickle(o) + + def reads(j: JsValue): JsResult[A] = PicklerRegistry.unpickle(j) match { + case a: A => JsSuccess(a) + case _ => JsError("unpickling yielded wrong type") + } + } + +}
\ No newline at end of file |