Skip to content

Instantly share code, notes, and snippets.

@ruurtjan
Created April 30, 2020 09:10
Show Gist options
  • Select an option

  • Save ruurtjan/33a559250da5c2aa9ee928c87de8e18a to your computer and use it in GitHub Desktop.

Select an option

Save ruurtjan/33a559250da5c2aa9ee928c87de8e18a to your computer and use it in GitHub Desktop.

Revisions

  1. ruurtjan created this gist Apr 30, 2020.
    7 changes: 7 additions & 0 deletions functional-dsl-blog-2.scala
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,7 @@
    sealed trait EmailFilter
    final case object Always extends EmailFilter
    final case class Not(filter: EmailFilter) extends EmailFilter
    final case class And(left: EmailFilter, right: EmailFilter) extends EmailFilter
    final case class SenderEquals(target: Address) extends EmailFilter
    final case class RecipientEquals(target: Address) extends EmailFilter
    final case class BodyContains(phrase: String) extends EmailFilter