aboutsummaryrefslogtreecommitdiff
path: root/vfd-backend/app/util/package.scala
diff options
context:
space:
mode:
Diffstat (limited to 'vfd-backend/app/util/package.scala')
-rw-r--r--vfd-backend/app/util/package.scala22
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