From 75276655d28155fd2e87ae2dcd93d44fe7689c4e Mon Sep 17 00:00:00 2001 From: =?utf8?q?Alexis=20Laferri=C3=A8re?= Date: Sat, 7 Nov 2015 08:02:42 -0500 Subject: [PATCH] lib/serialization: support the Error class MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: Alexis Laferrière --- lib/serialization/serialization.nit | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/lib/serialization/serialization.nit b/lib/serialization/serialization.nit index 7c689b6..5558d66 100644 --- a/lib/serialization/serialization.nit +++ b/lib/serialization/serialization.nit @@ -257,3 +257,25 @@ redef class Ref[E] v.serialize_attribute("item", first) end end + +redef class Error + super Serializable + + redef init from_deserializer(v) + do + v.notify_of_creation self + + var message = v.deserialize_attribute("message") + if not message isa String then message = "" + init message + + var cause = v.deserialize_attribute("cause") + if cause isa nullable Error then self.cause = cause + end + + redef fun core_serialize_to(v) + do + v.serialize_attribute("message", message) + v.serialize_attribute("cause", cause) + end +end -- 1.7.9.5