@@ -57,7 +57,7 @@ def encode(self, message: T_contra) -> bytes:
5757 """Marshals the given message."""
5858 ...
5959
60- def decode (self , data : bytes | bytearray , message : U ) -> U :
60+ def decode (self , data : bytes | bytearray , message_class : type [ U ] ) -> U :
6161 """Unmarshals the given message."""
6262 ...
6363
@@ -71,8 +71,8 @@ def name(self) -> str:
7171 def encode (self , message : Message ) -> bytes :
7272 return message .to_binary ()
7373
74- def decode (self , data : bytes | bytearray , message : V ) -> V :
75- return message . __class__ . from_binary (data ) # TODO: fix type
74+ def decode (self , data : bytes | bytearray , message_class : type [ V ] ) -> V :
75+ return message_class . from_binary (data )
7676
7777
7878class ProtoJSONCodec (Codec [Message , V ]):
@@ -88,8 +88,8 @@ def name(self) -> str:
8888 def encode (self , message : Message ) -> bytes :
8989 return message .to_json (registry = self ._registry ).encode ()
9090
91- def decode (self , data : bytes | bytearray , message : V ) -> V :
92- return message . __class__ .from_json (data , registry = self ._registry )
91+ def decode (self , data : bytes | bytearray , message_class : type [ V ] ) -> V :
92+ return message_class .from_json (data , registry = self ._registry )
9393
9494
9595_proto_binary_codec = ProtoBinaryCodec ()
0 commit comments