diff options
author | Mathias <mathias@spray.cc> | 2011-09-06 11:55:22 +0200 |
---|---|---|
committer | Mathias <mathias@spray.cc> | 2011-09-06 11:55:22 +0200 |
commit | 14670623eff7d5394eadc41c56056f2a5a047a70 (patch) | |
tree | 86828d895ce38645eb6b2dc0f21ef7e3ff23334d /src/main/scala/cc/spray/json/AdditionalFormats.scala | |
parent | b93e81edfe49c677cce64e32fe49850204e14c97 (diff) | |
download | spray-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.scala | 12 |
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. */ |