23 lines
457 B
Scala
23 lines
457 B
Scala
|
package tf.bug.fancadegraph
|
||
|
|
||
|
import tf.bug.fancadescodec.{Metadata, Position}
|
||
|
|
||
|
case class Block[T](
|
||
|
position: Position,
|
||
|
definition: BlockDefinition[T],
|
||
|
argument: T
|
||
|
)(
|
||
|
implicit ev: Argument[T]
|
||
|
) {
|
||
|
def metadata: Vector[Metadata] = ev.encode(argument)(position)
|
||
|
}
|
||
|
|
||
|
object Block {
|
||
|
def apply(position: Position, definition: BlockDefinition[Unit]): Block[Unit] =
|
||
|
new Block(
|
||
|
position,
|
||
|
definition,
|
||
|
()
|
||
|
)
|
||
|
}
|