File tree 3 files changed +39
-0
lines changed
3 files changed +39
-0
lines changed Original file line number Diff line number Diff line change
1
+ import scala .quoted .*
2
+
3
+ case class QueryMeta [T ](map : Map [String , String ])
4
+
5
+ object QueryMeta :
6
+ given [T ]: FromExpr [QueryMeta [T ]] = new FromExpr [QueryMeta [T ]]:
7
+ def unapply (expr : Expr [QueryMeta [T ]])(using q : Quotes ): Option [QueryMeta [T ]] =
8
+ import q .reflect .*
9
+ expr match
10
+ case ' { QueryMeta /* [T]*/ ($ { map }: Map [String , String ]) } => // error: Reference to T within quotes requires a given scala.quoted.Type[T] in scope.
11
+ map.value.map(QueryMeta [T ].apply)
12
+ case _ =>
13
+ None
Original file line number Diff line number Diff line change
1
+ import scala .quoted .*
2
+
3
+ case class QueryMeta [T ](map : Map [String , String ])
4
+
5
+ object QueryMeta :
6
+ given [T : Type ]: FromExpr [QueryMeta [T ]] = new FromExpr [QueryMeta [T ]]:
7
+ def unapply (expr : Expr [QueryMeta [T ]])(using q : Quotes ): Option [QueryMeta [T ]] =
8
+ import q .reflect .*
9
+ expr match
10
+ case ' { QueryMeta [t]($ { map }: Map [String , String ]) } =>
11
+ map.value.map(QueryMeta [T ].apply)
12
+ case _ =>
13
+ None
Original file line number Diff line number Diff line change
1
+ import scala .quoted .*
2
+
3
+ case class QueryMeta [T ](map : Map [String , String ])
4
+
5
+ object QueryMeta :
6
+ given [T ]: FromExpr [QueryMeta [T ]] = new FromExpr [QueryMeta [T ]]:
7
+ def unapply (expr : Expr [QueryMeta [T ]])(using q : Quotes ): Option [QueryMeta [T ]] =
8
+ import q .reflect .*
9
+ expr match
10
+ case ' { QueryMeta [t]($ { map }: Map [String , String ]) } =>
11
+ map.value.map(QueryMeta [T ].apply)
12
+ case _ =>
13
+ None
You can’t perform that action at this time.
0 commit comments