trait BufferedCustomFileEmission extends CustomFileEmission
A buffered version of CustomFileEmission
This is especially useful for serializing large data structures. When emitting Strings, it makes it much easier to avoid materializing the entire serialized String in memory. It also helps avoid materializing intermediate datastructures in memory. Finally, it reduces iteration overhead and helps optimize I/O performance.
It may seem strange to use Array[Byte]
in an otherwise immutable API, but for maximal
performance it is best to use the JVM primitive that file I/O uses. These Arrays should only
used immutably even though the Java API technically does allow mutating them.
- Self Type
- BufferedCustomFileEmission with Annotation
- Source
- StageAnnotations.scala
- Alphabetic
- By Inheritance
- BufferedCustomFileEmission
- CustomFileEmission
- AnyRef
- Any
- by any2stringadd
- by StringFormat
- by Ensuring
- by ArrowAssoc
- Hide All
- Show All
- Public
- Protected
Abstract Value Members
- abstract def baseFileName(annotations: AnnotationSeq): String
Output filename where serialized content will be written
Output filename where serialized content will be written
The full annotation sequence is a parameter to allow for the location where this annotation will be serialized to be a function of other annotations, e.g., if the location where information is written is controlled by a separate file location annotation.
- annotations
the annotation sequence at the time of emission
- Attributes
- protected
- Definition Classes
- CustomFileEmission
- abstract def getBytesBuffered: Iterable[Array[Byte]]
A buffered version of getBytes for more efficient serialization
A buffered version of getBytes for more efficient serialization
If you only need to serialize an
Iterable[String]
, you can use theString.getBytes
method. It's also helpful to create aview
which will do the.map
lazily instead of eagerly, improving GC performance.def getBytesBuffered: Iterable[Array[Byte]] = myListString.view.map(_.getBytes)
- abstract def suffix: Option[String]
Optional suffix of the output file
Optional suffix of the output file
- Attributes
- protected
- Definition Classes
- CustomFileEmission
Concrete Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- def +(other: String): String
- Implicit
- This member is added by an implicit conversion from BufferedCustomFileEmission toany2stringadd[BufferedCustomFileEmission] performed by method any2stringadd in scala.Predef.
- Definition Classes
- any2stringadd
- def ->[B](y: B): (BufferedCustomFileEmission, B)
- Implicit
- This member is added by an implicit conversion from BufferedCustomFileEmission toArrowAssoc[BufferedCustomFileEmission] performed by method ArrowAssoc in scala.Predef.
- Definition Classes
- ArrowAssoc
- Annotations
- @inline()
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native()
- def ensuring(cond: (BufferedCustomFileEmission) => Boolean, msg: => Any): BufferedCustomFileEmission
- Implicit
- This member is added by an implicit conversion from BufferedCustomFileEmission toEnsuring[BufferedCustomFileEmission] performed by method Ensuring in scala.Predef.
- Definition Classes
- Ensuring
- def ensuring(cond: (BufferedCustomFileEmission) => Boolean): BufferedCustomFileEmission
- Implicit
- This member is added by an implicit conversion from BufferedCustomFileEmission toEnsuring[BufferedCustomFileEmission] performed by method Ensuring in scala.Predef.
- Definition Classes
- Ensuring
- def ensuring(cond: Boolean, msg: => Any): BufferedCustomFileEmission
- Implicit
- This member is added by an implicit conversion from BufferedCustomFileEmission toEnsuring[BufferedCustomFileEmission] performed by method Ensuring in scala.Predef.
- Definition Classes
- Ensuring
- def ensuring(cond: Boolean): BufferedCustomFileEmission
- Implicit
- This member is added by an implicit conversion from BufferedCustomFileEmission toEnsuring[BufferedCustomFileEmission] performed by method Ensuring in scala.Predef.
- Definition Classes
- Ensuring
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- final def filename(annotations: AnnotationSeq): File
Method that returns the filename where this annotation will be serialized.
Method that returns the filename where this annotation will be serialized.
- annotations
the annotations at the time of serialization
- Definition Classes
- CustomFileEmission
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable])
- final def getBytes: Iterable[Byte]
A method that can convert this annotation to bytes that will be written to a file.
A method that can convert this annotation to bytes that will be written to a file.
If you only need to serialize a string, you can use the
getBytes
method:def getBytes: Iterable[Byte] = myString.getBytes
- Definition Classes
- BufferedCustomFileEmission → CustomFileEmission
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- def replacements(file: File): AnnotationSeq
Optionally, a sequence of annotations that will replace this annotation in the output annotation file.
Optionally, a sequence of annotations that will replace this annotation in the output annotation file.
A non-empty implementation of this method is a mechanism for telling a downstream Stage how to deserialize the information that was serialized to a separate file. For example, if a FIRRTL circuit is serialized to a separate file, this method could include an input file annotation that a later stage can use to read the serialized FIRRTL circuit back in.
- Definition Classes
- CustomFileEmission
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- AnyRef → Any
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()
Deprecated Value Members
- def formatted(fmtstr: String): String
- Implicit
- This member is added by an implicit conversion from BufferedCustomFileEmission toStringFormat[BufferedCustomFileEmission] performed by method StringFormat in scala.Predef.
- Definition Classes
- StringFormat
- Annotations
- @deprecated @inline()
- Deprecated
(Since version 2.12.16) Use
formatString.format(value)
instead ofvalue.formatted(formatString)
, or use thef""
string interpolator. In Java 15 and later,formatted
resolves to the new method in String which has reversed parameters.
- def →[B](y: B): (BufferedCustomFileEmission, B)
- Implicit
- This member is added by an implicit conversion from BufferedCustomFileEmission toArrowAssoc[BufferedCustomFileEmission] performed by method ArrowAssoc in scala.Predef.
- Definition Classes
- ArrowAssoc
- Annotations
- @deprecated
- Deprecated
(Since version 2.13.0) Use
->
instead. If you still wish to display it as one character, consider using a font with programming ligatures such as Fira Code.