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
1 changed files with 8 additions and 2 deletions

View File

@ -35,6 +35,10 @@ overrides = {
'ListFunds.channels[].state': 'ChannelState',
}
method_name_overrides = {
"Connect": "ConnectPeer",
}
class GrpcGenerator:
"""A generator that generates protobuf files.
@ -81,8 +85,9 @@ class GrpcGenerator:
""")
for method in service.methods:
mname = method_name_overrides.get(method.name, method.name)
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,
)
@ -348,8 +353,9 @@ class GrpcServerGenerator(GrpcConverterGenerator):
""")
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
name = re.sub(r'(?<!^)(?=[A-Z])', '_', method.name).lower()
name = re.sub(r'(?<!^)(?=[A-Z])', '_', mname).lower()
self.write(f"""\
async fn {name}(
&self,