Skip to content

Instantly share code, notes, and snippets.

@deanwampler
Created October 10, 2021 17:25
Show Gist options
  • Save deanwampler/86f58615f5de925ac7886471b292569a to your computer and use it in GitHub Desktop.
Save deanwampler/86f58615f5de925ac7886471b292569a to your computer and use it in GitHub Desktop.
package polyglotprogramming.messaging.v1
import polyglotprogramming.messaging.*
trait MessageHandler[IM <: IncomingMessage]:
def apply(message: IM): OutgoingMessage
case object StartHandler extends MessageHandler[Start]:
def apply(message: Start): OutgoingMessage =
println(s"Received message: $message")
Succeeded(s"Successfully processed $message")
case object DoWork1Handler extends MessageHandler[DoWork1]:
def apply(message: DoWork1): OutgoingMessage =
println(s"Received message: $message")
Succeeded(s"Successfully processed $message")
case object DoWork2Handler extends MessageHandler[DoWork2]:
def apply(message: DoWork2): OutgoingMessage =
println(s"Received message: $message")
Succeeded(s"Successfully processed $message")
case object StopHandler extends MessageHandler[Stop]:
def apply(message: Stop): OutgoingMessage =
println(s"Received message: $message")
Succeeded(s"Successfully processed $message")
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment