From 184ab0b884556b91de7ebc710009162dbb16338e Mon Sep 17 00:00:00 2001 From: jilen Date: Sun, 22 Jun 2025 20:45:26 +0800 Subject: [PATCH] Add insert placeholder --- src/main/scala/minisql/Quoted.scala | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/src/main/scala/minisql/Quoted.scala b/src/main/scala/minisql/Quoted.scala index a01ed3c..b1ddb0c 100644 --- a/src/main/scala/minisql/Quoted.scala +++ b/src/main/scala/minisql/Quoted.scala @@ -24,9 +24,33 @@ opaque type Quoted <: Ast = Ast opaque type Query[E] <: Quoted = Quoted +opaque type Action[E] <: Quoted = Quoted + +opaque type Insert <: Action[Long] = Quoted + +object Query { + + extension [E](inline e: Query[E]) { + + inline def map[E1](inline f: E => E1): Query[E1] = { + transform(e)(f)(Map.apply) + } + + inline def filter(inline f: E => Boolean): Query[E] = { + transform(e)(f)(Filter.apply) + } + + inline def withFilter(inline f: E => Boolean): Query[E] = { + transform(e)(f)(Filter.apply) + } + + } +} + opaque type EntityQuery[E] <: Query[E] = Query[E] object EntityQuery { + extension [E](inline e: EntityQuery[E]) { inline def map[E1](inline f: E => E1): EntityQuery[E1] = { @@ -37,6 +61,10 @@ object EntityQuery { transform(e)(f)(Filter.apply) } + inline def insert(v: E)(using m: Mirror.ProductOf[E]): Insert = { + ??? + } + } }