diff options
| author | Albert Chen | 2020-01-28 10:42:54 -0800 |
|---|---|---|
| committer | mergify[bot] | 2020-01-28 18:42:54 +0000 |
| commit | 448febe5dc2293aca6ea0c688e9d3e3888cdae17 (patch) | |
| tree | 3ac3803d0fd2bb5d666888463c9b298ccc78b11c /src | |
| parent | 45b682aa6f2cc7c15832a99f57940cdfc96d0244 (diff) | |
add IsModule, IsMember, CompleteTarget serializers (#1321)
Diffstat (limited to 'src')
| -rw-r--r-- | src/main/scala/firrtl/annotations/JsonProtocol.scala | 15 |
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 */ |
