The DummyType here is needed, because in the service
macro we implement
service on a generic type. This, in turn, is needed because I wanted to
allow for a service definition after specifying the impl.
For example we define a Worker RPC service in a shared crate/file. In there
we want to only define the interface, but in order for the service to work properly
the Service trait has to be also implemented. It’s best to do it in the macro
itself, cause it requires a lot of boilerplate, but when the macro runs, we don’t
have the actual service defined yet.