make defines slightly more convenient

This commit is contained in:
Mark Canlas 2022-12-06 15:32:30 -05:00
parent ed3b8a308d
commit 77785bef50
2 changed files with 12 additions and 3 deletions

View File

@ -10,3 +10,7 @@ trait Definable[A]:
extension (x: A) def toValue: Int
extension (x: A) def toDefine: String
object Definable:
def apply[A](using ev: Definable[A]): Definable[A] =
ev

View File

@ -9,9 +9,14 @@ import com.htmlism.firepower.core.AsmBlock._
import com.htmlism.firepower.core._
object PrintThree:
case class Move[A: Definable, B: Definable](src: A, dest: B):
def defines: List[ListMap[String, String]] =
List(implicitly[Definable[A]].table, implicitly[Definable[B]].table)
trait DefinesHelper(xs: Definable[_]*):
def defines: Seq[ListMap[String, String]] =
xs
.iterator
.map(_.table)
.toList
case class Move[A: Definable, B: Definable](src: A, dest: B) extends DefinesHelper(Definable[A], Definable[B])
def build(screen: Easy6502.Screen): List[Move[Easy6502.Color, Easy6502.Screen.Pixel]] =
List(