6502-opcodes/firepower-core/src/main/scala/com/htmlism/firepower/core/Definable.scala

19 lines
407 B
Scala
Raw Normal View History

2022-12-07 19:42:03 +00:00
package com.htmlism.firepower.core
2022-12-06 19:30:35 +00:00
trait Definable[A]:
2022-12-07 18:53:05 +00:00
def table(x: A): Definable.Table
2022-12-06 19:58:20 +00:00
2022-12-06 19:30:35 +00:00
extension (x: A) def toComment: String
extension (x: A) def toValue: Int
2022-12-06 19:58:20 +00:00
extension (x: A) def toDefine: String
2022-12-06 20:32:30 +00:00
2022-12-06 22:06:53 +00:00
extension (x: A) def toDefineWithMath: String
2022-12-06 20:32:30 +00:00
object Definable:
2022-12-07 18:53:05 +00:00
case class Table(description: String, xs: List[(String, Int)])
2022-12-06 20:32:30 +00:00
def apply[A](using ev: Definable[A]): Definable[A] =
ev