File tree Expand file tree Collapse file tree 3 files changed +39
-0
lines changed Expand file tree Collapse file tree 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