Add conversions from Init/+Task to Taskable

This commit is contained in:
Dale Wijnand 2020-02-16 21:05:40 +00:00
parent fdfdd1ca47
commit 722022ae97
2 changed files with 23 additions and 0 deletions

View File

@ -35,6 +35,16 @@ sealed trait Taskable[T] {
def toTask: Initialize[Task[T]]
}
sealed trait TaskableImplicits { self: Taskable.type =>
implicit def fromInit[T](x: Initialize[T]): Taskable[T] =
new Taskable[T] { def toTask = Def.toITask(x) }
}
object Taskable extends TaskableImplicits {
implicit def fromITask[T](x: Initialize[Task[T]]): Taskable[T] =
new Taskable[T] { def toTask = x }
}
/** A common type for SettingKey and TaskKey so that both can be used as inputs to tasks.*/
sealed trait ScopedTaskable[T] extends Scoped with Taskable[T]

View File

@ -15,13 +15,26 @@ class ClasspathsTest[T](
settKey: SettingKey[Seq[T]],
taskKey: TaskKey[Seq[T]],
initVal: Initialize[Seq[T]],
taskVal: Initialize[Task[Seq[T]]],
) {
def testConcat() = {
concat(settKey, settKey)
concat(settKey, taskKey)
concat(settKey, initVal)
concat(settKey, taskVal)
concat(taskKey, settKey)
concat(taskKey, taskKey)
concat(taskKey, initVal)
concat(taskKey, taskVal)
concat(initVal, settKey)
concat(initVal, taskKey)
concat(initVal, initVal)
concat(initVal, taskVal)
concat(taskVal, settKey)
concat(taskVal, taskKey)
concat(taskVal, initVal)
concat(taskVal, taskVal)
}
def testConcatSettings() = {