Skip to content

Instantly share code, notes, and snippets.

@Jacoby6000
Created December 28, 2017 18:49
Show Gist options
  • Save Jacoby6000/30b3836896575faf9724daf2f90ebbae to your computer and use it in GitHub Desktop.
Save Jacoby6000/30b3836896575faf9724daf2f90ebbae to your computer and use it in GitHub Desktop.
sealed trait QueryValue[A]
case class Parameter[A](value: A) extends QueryValue[A]
case class Function[A](path: Path, args: List[QueryValue[A]]) extends QueryValue[A]
case class Null[A]() extends QueryValue[A]
sealed trait QueryComparison[A]
case class QueryEqual[A](left: QueryValue[A], right: QueryValue[A]) extends QueryComparison[A]
case class QueryGreaterThan[A](left: QueryValue[A], right: QueryValue[A]) extends QueryComparison[A]
case class QueryGreaterThanOrEqual[A](left: QueryValue[A], right: QueryValue[A]) extends QueryComparison[A]
case class QueryLessThan[A](left: QueryValue[A], right: QueryValue[A]) extends QueryComparison[A]
case class QueryLessThanOrEqual[A](left: QueryValue[A], right: QueryValue[A]) extends QueryComparison[A]
case class QueryAnd[A](left: QueryComparison[A], right: QueryComparison[A]) extends QueryComparison[A]
case class QueryOr[A](left: QueryComparison[A], right: QueryComparison[A]) extends QueryComparison[A]
case class QueryIn[A](left: QueryValue[A], rights: List[QueryValue[A]]) extends QueryComparison[A]
case class QueryLit[A](value: QueryValue[A]) extends QueryComparison[A]
case class QueryNot[A](value: QueryComparison[A]) extends QueryComparison[A]
case class Path(p: String) extends AnyVal
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment