Skip to content

Instantly share code, notes, and snippets.

View prolativ's full-sized avatar

Michał Pałka prolativ

View GitHub Profile
//> using scala "3.2.0-RC1"
//> using lib "org.scala-lang.modules::scala-xml:2.1.0"
trait Renderer[A]:
def render(x: A): xml.Elem
given Renderer[Int] with
def render(x: Int) = <td>{ x.toString }</td>
//> using target.scala "2"
object Greating {
def greating = "Hello Scala 2"
}
//> using scala "3.2.0"
//> using lib "org.virtuslab::iskra:0.0.2"
import org.virtuslab.iskra.api.*
import functions.*
import org.virtuslab.iskra.UntypedOps.typed // Improvement: We might make this already available after importing iskra.api.*
import org.apache.spark.sql
object IskraExtensions: // One can implementing missing wrappers for spark functions themselves and reuse them later
@prolativ
prolativ / MacroDef.scala
Created June 19, 2023 17:08
Constructing structural type in macro
//> using scala 3.3.0
trait Sel extends Selectable:
def selectDynamic(name: String) = s"name: $name"
def applyDynamic(name: String)(args: Any*) = s"name: $name, args: $args"
object Sel:
type Subtype[T <: Sel] = T
import scala.quoted.*