diff options
| author | Jim Lawson | 2019-03-18 15:20:51 -0700 |
|---|---|---|
| committer | GitHub | 2019-03-18 15:20:51 -0700 |
| commit | 9911b3467de2ebe92827ddc3288bd6db477cc636 (patch) | |
| tree | 4e791d82069c0e94fd5c34cd674a9b9596042d8b /src/main/scala/firrtl/annotations/JsonProtocol.scala | |
| parent | a97a81bc0f717f80bb70733795ac5337653b58c5 (diff) | |
Add serialization support for LoadMemoryFileType in LoadMemoryAnnotation (#1056)
* Add serialization support for LoadMemoryFileType in LoadMemoryAnnotation
Add custom LoadMemoryFileTypeSerializer.
Add test to verify LoadMemoryAnnotation can be correctly serialized/deserialized.
* Simplify and focus LoadMemoryAnnotation serialization/deserialization.
Respond to comments on earlier implementations.
* Add type FileType definition for current chisel3 code.
Diffstat (limited to 'src/main/scala/firrtl/annotations/JsonProtocol.scala')
| -rw-r--r-- | src/main/scala/firrtl/annotations/JsonProtocol.scala | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/main/scala/firrtl/annotations/JsonProtocol.scala b/src/main/scala/firrtl/annotations/JsonProtocol.scala index acb2d957..ea29f090 100644 --- a/src/main/scala/firrtl/annotations/JsonProtocol.scala +++ b/src/main/scala/firrtl/annotations/JsonProtocol.scala @@ -45,7 +45,10 @@ object JsonProtocol { }}, { case x: Transform => JString(x.getClass.getName) } )) - + class LoadMemoryFileTypeSerializer extends CustomSerializer[MemoryLoadFileType](format => ( + { case JString(s) => MemoryLoadFileType.deserialize(s) }, + { case named: MemoryLoadFileType => JString(named.serialize) } + )) class TargetSerializer extends CustomSerializer[Target](format => ( { case JString(s) => Target.deserialize(s) }, @@ -78,7 +81,8 @@ 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 TransformSerializer + new InstanceTargetSerializer + new ReferenceTargetSerializer + new TransformSerializer + + new LoadMemoryFileTypeSerializer } /** Serialize annotations to a String for emission */ |
