diff options
| author | Schuyler Eldridge | 2018-08-22 16:39:07 -0400 |
|---|---|---|
| committer | Schuyler Eldridge | 2018-11-07 13:49:16 -0500 |
| commit | 61ab5a323da77dd03a24cfda3948830c3bb286c9 (patch) | |
| tree | 2ca1c57d67c571b1a414849c9c55aac4d44d44fd /src/main/scala/firrtl/annotations | |
| parent | 17b4e9835bd95dcf91c5ea5a4d7c52280031ea93 (diff) | |
Add FirrtlOptions
Signed-off-by: Schuyler Eldridge <schuyler.eldridge@ibm.com>
Diffstat (limited to 'src/main/scala/firrtl/annotations')
| -rw-r--r-- | src/main/scala/firrtl/annotations/JsonProtocol.scala | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/src/main/scala/firrtl/annotations/JsonProtocol.scala b/src/main/scala/firrtl/annotations/JsonProtocol.scala index 36699151..acb2d957 100644 --- a/src/main/scala/firrtl/annotations/JsonProtocol.scala +++ b/src/main/scala/firrtl/annotations/JsonProtocol.scala @@ -34,6 +34,17 @@ object JsonProtocol { { case JString(s) => AnnotationUtils.toNamed(s).asInstanceOf[ComponentName] }, { case named: ComponentName => JString(named.serialize) } )) + class TransformSerializer extends CustomSerializer[Transform](format => ( + { case JString(s) => + try { + Class.forName(s).asInstanceOf[Class[_ <: Transform]].newInstance() + } catch { + case e: java.lang.InstantiationException => throw new FIRRTLException( + "NoSuchMethodException during construction of serialized Transform. Is your Transform an inner class?", e) + case t: Throwable => throw t + }}, + { case x: Transform => JString(x.getClass.getName) } + )) class TargetSerializer extends CustomSerializer[Target](format => ( @@ -67,7 +78,7 @@ object JsonProtocol { new TransformClassSerializer + new NamedSerializer + new CircuitNameSerializer + new ModuleNameSerializer + new ComponentNameSerializer + new TargetSerializer + new GenericTargetSerializer + new CircuitTargetSerializer + new ModuleTargetSerializer + - new InstanceTargetSerializer + new ReferenceTargetSerializer + new InstanceTargetSerializer + new ReferenceTargetSerializer + new TransformSerializer } /** Serialize annotations to a String for emission */ |
