From 448febe5dc2293aca6ea0c688e9d3e3888cdae17 Mon Sep 17 00:00:00 2001 From: Albert Chen Date: Tue, 28 Jan 2020 10:42:54 -0800 Subject: add IsModule, IsMember, CompleteTarget serializers (#1321) --- src/main/scala/firrtl/annotations/JsonProtocol.scala | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/main/scala/firrtl/annotations/JsonProtocol.scala b/src/main/scala/firrtl/annotations/JsonProtocol.scala index 9992400a..55043b63 100644 --- a/src/main/scala/firrtl/annotations/JsonProtocol.scala +++ b/src/main/scala/firrtl/annotations/JsonProtocol.scala @@ -78,6 +78,18 @@ object JsonProtocol { { case JString(s) => Target.deserialize(s).asInstanceOf[ReferenceTarget] }, { case named: ReferenceTarget => JString(named.serialize) } )) + class IsModuleSerializer extends CustomSerializer[IsModule](format => ( + { case JString(s) => Target.deserialize(s).asInstanceOf[IsModule] }, + { case named: IsModule => JString(named.serialize) } + )) + class IsMemberSerializer extends CustomSerializer[IsMember](format => ( + { case JString(s) => Target.deserialize(s).asInstanceOf[IsMember] }, + { case named: IsMember => JString(named.serialize) } + )) + class CompleteTargetSerializer extends CustomSerializer[CompleteTarget](format => ( + { case JString(s) => Target.deserialize(s).asInstanceOf[CompleteTarget] }, + { case named: CompleteTarget => JString(named.serialize) } + )) /** Construct Json formatter for annotations */ def jsonFormat(tags: Seq[Class[_]]) = { @@ -86,7 +98,8 @@ object JsonProtocol { new ModuleNameSerializer + new ComponentNameSerializer + new TargetSerializer + new GenericTargetSerializer + new CircuitTargetSerializer + new ModuleTargetSerializer + new InstanceTargetSerializer + new ReferenceTargetSerializer + new TransformSerializer + - new LoadMemoryFileTypeSerializer + new LoadMemoryFileTypeSerializer + new IsModuleSerializer + new IsMemberSerializer + + new CompleteTargetSerializer } /** Serialize annotations to a String for emission */ -- cgit v1.2.3