All Downloads are FREE. Search and download functionalities are using the official Maven repository.

yka.tasks-core_3.3.0.0-M15.source-code.MacroCalls.scala Maven / Gradle / Ivy

The newest version!
package tasks

import scala.language.experimental.macros
import tasks.queue._
import cats.effect.IO
trait MacroCalls {
  inline def Task[A <: AnyRef, C](taskID: String, taskVersion: Int)(
      comp: A => ComputationEnvironment => IO[C]
  )(implicit
      inline serA: Serializer[A],
      inline deserA: Deserializer[A],
      inline serC: Serializer[C],
      inline deserC: Deserializer[C]
  ): TaskDefinition[A, C] = ${
    TaskDefinitionMacros
      .taskDefinitionFromTree[A, C](
        serA = 'serA,
        deserA = 'deserA,
        serC = 'serC,
        deserC = 'deserC,
        taskID = 'taskID,
        taskVersion = 'taskVersion,
        comp = 'comp
      )
  }

  inline def spore[A, B](value: A => B): Spore[A, B] =
    tasks.queue.SporeMacros
      .spore(value)

  inline def makeSerDe[A](implicit
      inline ser: Serializer[A],
      inline des: Deserializer[A]
  ) = ${
    SerdeMacro.create[A]('des, 'ser)
  }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy