aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAlbert Chen2020-01-28 10:42:54 -0800
committermergify[bot]2020-01-28 18:42:54 +0000
commit448febe5dc2293aca6ea0c688e9d3e3888cdae17 (patch)
tree3ac3803d0fd2bb5d666888463c9b298ccc78b11c /src
parent45b682aa6f2cc7c15832a99f57940cdfc96d0244 (diff)
add IsModule, IsMember, CompleteTarget serializers (#1321)
Diffstat (limited to 'src')
-rw-r--r--src/main/scala/firrtl/annotations/JsonProtocol.scala15
1 files changed, 14 insertions, 1 deletions
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 */