private static string DecodeMessage(ushort msgId, IChannelDecoder decoder, List <object> args) { var message = decoder.DecodeMessage(msgId); switch (args.Count) { case 0: return(message); case 1: return(string.Format(message, args[0])); case 2: return(string.Format(message, args[0], args[1])); case 3: return(string.Format(message, args[0], args[1], args[2])); case 4: return(string.Format(message, args[0], args[1], args[2], args[3])); default: throw new BinLogDecodingException($"Too many arguments in log entry: {args.Count}"); } }
private static int DecodeArguments(int count, ReadOnlySpan <byte> src, IChannelDecoder decoder, List <object> args) { var bytesRead = 0; for (var i = 0; i < count; i++) { bytesRead += decoder.DecodeArgument(src.Slice(bytesRead), out var arg); args.Add(arg); } return(bytesRead); }