aboutsummaryrefslogtreecommitdiff
path: root/src/main/scala/firrtl/options
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/scala/firrtl/options')
-rw-r--r--src/main/scala/firrtl/options/OptionsView.scala9
-rw-r--r--src/main/scala/firrtl/options/phases/WriteOutputAnnotations.scala2
2 files changed, 8 insertions, 3 deletions
diff --git a/src/main/scala/firrtl/options/OptionsView.scala b/src/main/scala/firrtl/options/OptionsView.scala
index 49417ded..4235b660 100644
--- a/src/main/scala/firrtl/options/OptionsView.scala
+++ b/src/main/scala/firrtl/options/OptionsView.scala
@@ -19,11 +19,16 @@ trait OptionsView[T] {
/** A shim to manage multiple "views" of an [[firrtl.AnnotationSeq AnnotationSeq]] */
object Viewer {
+ /** Helper method to get at a given [[OptionsView]]. This enables access to [[OptionsView]] methods in a more canonical
+ * format, e.g., you can then do `Viewer[T].view`.
+ * @param a an implicit [[OptionsView]]
+ */
+ def apply[T](implicit a: OptionsView[T]): OptionsView[T] = a
+
/** Convert annotations to options using an implicitly provided [[OptionsView]]
* @param options some annotations
- * @param optionsView a converter of options to the requested type
* @tparam T the type to which the input [[firrtl.AnnotationSeq AnnotationSeq]] should be viewed as
*/
- def view[T](options: AnnotationSeq)(implicit optionsView: OptionsView[T]): T = optionsView.view(options)
+ def view[T: OptionsView](options: AnnotationSeq): T = Viewer[T].view(options)
}
diff --git a/src/main/scala/firrtl/options/phases/WriteOutputAnnotations.scala b/src/main/scala/firrtl/options/phases/WriteOutputAnnotations.scala
index 66f40d3c..bb2a8cd6 100644
--- a/src/main/scala/firrtl/options/phases/WriteOutputAnnotations.scala
+++ b/src/main/scala/firrtl/options/phases/WriteOutputAnnotations.scala
@@ -15,7 +15,7 @@ class WriteOutputAnnotations extends Phase {
/** Write the input [[AnnotationSeq]] to a fie. */
def transform(annotations: AnnotationSeq): AnnotationSeq = {
- val sopts = Viewer.view[StageOptions](annotations)
+ val sopts = Viewer[StageOptions].view(annotations)
val serializable = annotations.filter{
case _: Unserializable => false
case _: DeletedAnnotation => sopts.writeDeleted