ActualLab / Fusion

MIT License
72 stars 9 forks source link

`MemoryPack` compatiblity #21

Closed adambajguz closed 2 months ago

adambajguz commented 3 months ago

The library is not compatible with MemoryPack > 1.10.0 resulting in the following runtime error:

Couldn't serialize the value of type 'ActualLab.Rpc.Infrastructure.RpcMessage'
                   <s:ActualLab.Rpc.WebSockets.WebSocketChannel>
[("HResult": -2146233069), ("Message": "Method not found: 'Void MemoryPack.Formatters.ListFormatter.SerializePackable(MemoryPack.MemoryPackWriter`1<!!1> ByRef, System.Collections.Generic.List`1<System.__Canon> ByRef)'."), ("Source": "ActualLab.Rpc"), ("TargetSite": "Void MemoryPack.IMemoryPackable<ActualLab.Rpc.Infrastructure.RpcMessage>.Serialize[TBufferWriter](MemoryPack.MemoryPackWriter`1[TBufferWriter] ByRef, ActualLab.Rpc.Infrastructure.RpcMessage ByRef)"), ("Type": "System.MissingMethodException")]System.MissingMethodException: Method not found: 'Void MemoryPack.Formatters.ListFormatter.SerializePackable(MemoryPack.MemoryPackWriter`1<!!1> ByRef, System.Collections.Generic.List`1<System.__Canon> ByRef)'.
   at ActualLab.Rpc.Infrastructure.RpcMessage.MemoryPack.IMemoryPackable<ActualLab.Rpc.Infrastructure.RpcMessage>.Serialize[TBufferWriter](MemoryPackWriter`1& writer, RpcMessage& value)
   at MemoryPack.Formatters.MemoryPackableFormatter`1.Serialize[TBufferWriter](MemoryPackWriter`1& writer, T& value)
   at MemoryPack.MemoryPackSerializer.Serialize[T,TBufferWriter](TBufferWriter& bufferWriter, T& value, MemoryPackSerializerOptions options)
   at ActualLab.Serialization.MemoryPackByteSerializer`1.Write(IBufferWriter`1 bufferWriter, T value)
   at ActualLab.Rpc.WebSockets.WebSocketChannel`1.TrySerialize(T value, ArrayPoolBuffer`1 buffer)

Can you please update the MemoryPack version?

adambajguz commented 2 months ago

@alexyakunin Closing because the issue was fixed in version 9.x.x