-
-
Notifications
You must be signed in to change notification settings - Fork 609
/
Ordered.fm
25 lines (20 loc) · 927 Bytes
/
Ordered.fm
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
package slick.lifted
import scala.language.implicitConversions
import slick.ast.{Ordering, Node}
class Ordered(val columns: IndexedSeq[(Node, Ordering)])
object Ordered {
<#list 2..22 as i>
implicit def tuple${i}Ordered[<#list 1..i as j>T${j} <#if i != j>, </#if></#list>](t: (<#list 1..i as j>T${j}<#if i != j>, </#if></#list>))
(implicit <#list 1..i as j>ev${j}: T${j} => Ordered<#if i != j>, </#if></#list>): Ordered =
new Ordered(<#list 1..i as j>t._${j}.columns<#if i != j> ++ </#if></#list>)
</#list>
}
/** A `Column` with an associated `Ordering`. */
case class ColumnOrdered[T](column: Rep[T], ord: Ordering) extends Ordered(Vector((column.toNode, ord))) {
def asc = copy(ord = ord.asc)
def desc = copy(ord = ord.desc)
def reverse = copy(ord = ord.reverse)
def nullsDefault = copy(ord = ord.nullsDefault)
def nullsFirst = copy(ord = ord.nullsFirst)
def nullsLast = copy(ord = ord.nullsLast)
}