msggen: Support renaming methods in GRPC

There is at least one clash with a built-in for the grpc server trait,
namely `connect` so we add support for renaming a method when
generating the scaffolding
This commit is contained in:
Christian Decker
2022-01-27 14:19:48 +01:00
parent efed7d8617
commit bb4946a6e6

View File

@@ -35,6 +35,10 @@ overrides = {
'ListFunds.channels[].state': 'ChannelState', 'ListFunds.channels[].state': 'ChannelState',
} }
method_name_overrides = {
"Connect": "ConnectPeer",
}
class GrpcGenerator: class GrpcGenerator:
"""A generator that generates protobuf files. """A generator that generates protobuf files.
@@ -81,8 +85,9 @@ class GrpcGenerator:
""") """)
for method in service.methods: for method in service.methods:
mname = method_name_overrides.get(method.name, method.name)
self.write( self.write(
f" rpc {method.name}({method.request.typename}) returns ({method.response.typename}) {{}}\n", f" rpc {mname}({method.request.typename}) returns ({method.response.typename}) {{}}\n",
cleanup=False, cleanup=False,
) )
@@ -348,8 +353,9 @@ class GrpcServerGenerator(GrpcConverterGenerator):
""") """)
for method in service.methods: for method in service.methods:
mname = method_name_overrides.get(method.name, method.name)
# Tonic will convert to snake-case, so we have to do it here too # Tonic will convert to snake-case, so we have to do it here too
name = re.sub(r'(?<!^)(?=[A-Z])', '_', method.name).lower() name = re.sub(r'(?<!^)(?=[A-Z])', '_', mname).lower()
self.write(f"""\ self.write(f"""\
async fn {name}( async fn {name}(
&self, &self,