def handle
import ezmcp@0.1.0.0/src/server.bend as Serverimport Base
import ezmcp@0.1.0.0/src/rpc.bend as Rpc
272# what a server does with one classified message: a request is answered, a
273# notification or a response is not, an invalid request is a fault
274def handle(srv: Server, msg: Rpc.Msg) -> Act:
275 match msg:
276 case Rpc.Ask{id, m, params}:
277 answer(id, dispatch(srv, m, params))
278 case Rpc.Tell{m, params}:
279 Quiet{}
280 case Rpc.Answer{id}:
281 Quiet{}
282 case Rpc.Junk{id, why}:
283 Fault{Rpc.reply(id, Rpc.Err{Rpc.InvalidRequest{}, why})}