pekko/akka-docs/rst/additional/code/docs/faq/Faq.scala

30 lines
853 B
Scala
Raw Normal View History

package docs.faq
import akka.actor.Actor
//#exhaustiveness-check
object MyActor {
// these are the messages we accept
sealed abstract trait Message
2014-03-07 13:20:01 +01:00
final case class FooMessage(foo: String) extends Message
final case class BarMessage(bar: Int) extends Message
// these are the replies we send
sealed abstract trait Reply
2014-03-07 13:20:01 +01:00
final case class BazMessage(baz: String) extends Reply
}
class MyActor extends Actor {
import MyActor._
def receive = {
case message: Message => message match {
case BarMessage(bar) => sender() ! BazMessage("Got " + bar)
// warning here:
// "match may not be exhaustive. It would fail on the following input: FooMessage(_)"
//#exhaustiveness-check
case FooMessage(_) => // avoid the warning in our build logs
//#exhaustiveness-check
}
}
}
//#exhaustiveness-check