Skip to content

Instantly share code, notes, and snippets.

@deanwampler
Created October 10, 2021 17:31
Show Gist options
  • Save deanwampler/4432f3c04bb09b5fb839744ebefea0f9 to your computer and use it in GitHub Desktop.
Save deanwampler/4432f3c04bb09b5fb839744ebefea0f9 to your computer and use it in GitHub Desktop.
package polyglotprogramming.messaging.v1
import polyglotprogramming.messaging.*
object Processor:
def apply(message: IncomingMessage): OutgoingMessage = message match
case Start(details) => StartHandler(message.asInstanceOf[Start])
case DoWork1(details) => DoWork1Handler(message.asInstanceOf[DoWork1])
case DoWork2(details) => DoWork2Handler(message.asInstanceOf[DoWork2])
case Stop(details) => StopHandler(message.asInstanceOf[Stop])
@main def Messaging() =
println(Processor(Start("start")))
println(Processor(DoWork1("dowork1")))
println(Processor(DoWork2("dowork2")))
println(Processor(Stop("stop")))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment