summaryrefslogtreecommitdiff
path: root/src/main/scala/cc/spray/json/AdditionalFormats.scala
diff options
context:
space:
mode:
authorMathias <mathias@spray.cc>2011-09-06 11:55:22 +0200
committerMathias <mathias@spray.cc>2011-09-06 11:55:22 +0200
commit14670623eff7d5394eadc41c56056f2a5a047a70 (patch)
tree86828d895ce38645eb6b2dc0f21ef7e3ff23334d /src/main/scala/cc/spray/json/AdditionalFormats.scala
parentb93e81edfe49c677cce64e32fe49850204e14c97 (diff)
downloadspray-json-14670623eff7d5394eadc41c56056f2a5a047a70.tar.gz
spray-json-14670623eff7d5394eadc41c56056f2a5a047a70.tar.bz2
spray-json-14670623eff7d5394eadc41c56056f2a5a047a70.zip
Improve JsonReader/JsonWriter lifting to JsonFormat
Diffstat (limited to 'src/main/scala/cc/spray/json/AdditionalFormats.scala')
-rw-r--r--src/main/scala/cc/spray/json/AdditionalFormats.scala12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/main/scala/cc/spray/json/AdditionalFormats.scala b/src/main/scala/cc/spray/json/AdditionalFormats.scala
index 96be8d2..e8b59c7 100644
--- a/src/main/scala/cc/spray/json/AdditionalFormats.scala
+++ b/src/main/scala/cc/spray/json/AdditionalFormats.scala
@@ -32,6 +32,18 @@ trait AdditionalFormats {
def read(json: JsValue) = reader.read(json)
}
+ def lift[T](writer :JsonWriter[T]) = new JsonFormat[T] {
+ def write(obj: T): JsValue = writer.write(obj)
+ def read(value: JsValue) =
+ throw new UnsupportedOperationException("JsonReader implementation missing")
+ }
+
+ def lift[T <: AnyRef](reader :JsonReader[T]) = new JsonFormat[T] {
+ def write(obj: T): JsValue =
+ throw new UnsupportedOperationException("No JsonWriter[" + obj.getClass + "] available")
+ def read(value: JsValue) = reader.read(value)
+ }
+
/**
* Lazy wrapper around serialization. Useful when you want to serialize (mutually) recursive structures.
*/