#if NETSTANDARD using System; namespace MessagePack.Formatters { public sealed class TupleFormatter : IMessagePackFormatter> { public int Serialize(ref byte[] bytes, int offset, Tuple value, IFormatterResolver formatterResolver) { if (value == null) { return MessagePackBinary.WriteNil(ref bytes, offset); } else { var startOffset = offset; offset += MessagePackBinary.WriteArrayHeader(ref bytes, offset, 1); offset += formatterResolver.GetFormatterWithVerify().Serialize(ref bytes, offset, value.Item1, formatterResolver); return offset - startOffset; } } public Tuple Deserialize(byte[] bytes, int offset, IFormatterResolver formatterResolver, out int readSize) { if (MessagePackBinary.IsNil(bytes, offset)) { readSize = 1; return null; } else { var startOffset = offset; var count = MessagePackBinary.ReadArrayHeader(bytes, offset, out readSize); if (count != 1) throw new InvalidOperationException("Invalid Tuple count"); offset += readSize; var item1 = formatterResolver.GetFormatterWithVerify().Deserialize(bytes, offset, formatterResolver, out readSize); offset += readSize; readSize = offset - startOffset; return new Tuple(item1); } } } public sealed class TupleFormatter : IMessagePackFormatter> { public int Serialize(ref byte[] bytes, int offset, Tuple value, IFormatterResolver formatterResolver) { if (value == null) { return MessagePackBinary.WriteNil(ref bytes, offset); } else { var startOffset = offset; offset += MessagePackBinary.WriteArrayHeader(ref bytes, offset, 2); offset += formatterResolver.GetFormatterWithVerify().Serialize(ref bytes, offset, value.Item1, formatterResolver); offset += formatterResolver.GetFormatterWithVerify().Serialize(ref bytes, offset, value.Item2, formatterResolver); return offset - startOffset; } } public Tuple Deserialize(byte[] bytes, int offset, IFormatterResolver formatterResolver, out int readSize) { if (MessagePackBinary.IsNil(bytes, offset)) { readSize = 1; return null; } else { var startOffset = offset; var count = MessagePackBinary.ReadArrayHeader(bytes, offset, out readSize); if (count != 2) throw new InvalidOperationException("Invalid Tuple count"); offset += readSize; var item1 = formatterResolver.GetFormatterWithVerify().Deserialize(bytes, offset, formatterResolver, out readSize); offset += readSize; var item2 = formatterResolver.GetFormatterWithVerify().Deserialize(bytes, offset, formatterResolver, out readSize); offset += readSize; readSize = offset - startOffset; return new Tuple(item1, item2); } } } public sealed class TupleFormatter : IMessagePackFormatter> { public int Serialize(ref byte[] bytes, int offset, Tuple value, IFormatterResolver formatterResolver) { if (value == null) { return MessagePackBinary.WriteNil(ref bytes, offset); } else { var startOffset = offset; offset += MessagePackBinary.WriteArrayHeader(ref bytes, offset, 3); offset += formatterResolver.GetFormatterWithVerify().Serialize(ref bytes, offset, value.Item1, formatterResolver); offset += formatterResolver.GetFormatterWithVerify().Serialize(ref bytes, offset, value.Item2, formatterResolver); offset += formatterResolver.GetFormatterWithVerify().Serialize(ref bytes, offset, value.Item3, formatterResolver); return offset - startOffset; } } public Tuple Deserialize(byte[] bytes, int offset, IFormatterResolver formatterResolver, out int readSize) { if (MessagePackBinary.IsNil(bytes, offset)) { readSize = 1; return null; } else { var startOffset = offset; var count = MessagePackBinary.ReadArrayHeader(bytes, offset, out readSize); if (count != 3) throw new InvalidOperationException("Invalid Tuple count"); offset += readSize; var item1 = formatterResolver.GetFormatterWithVerify().Deserialize(bytes, offset, formatterResolver, out readSize); offset += readSize; var item2 = formatterResolver.GetFormatterWithVerify().Deserialize(bytes, offset, formatterResolver, out readSize); offset += readSize; var item3 = formatterResolver.GetFormatterWithVerify().Deserialize(bytes, offset, formatterResolver, out readSize); offset += readSize; readSize = offset - startOffset; return new Tuple(item1, item2, item3); } } } public sealed class TupleFormatter : IMessagePackFormatter> { public int Serialize(ref byte[] bytes, int offset, Tuple value, IFormatterResolver formatterResolver) { if (value == null) { return MessagePackBinary.WriteNil(ref bytes, offset); } else { var startOffset = offset; offset += MessagePackBinary.WriteArrayHeader(ref bytes, offset, 4); offset += formatterResolver.GetFormatterWithVerify().Serialize(ref bytes, offset, value.Item1, formatterResolver); offset += formatterResolver.GetFormatterWithVerify().Serialize(ref bytes, offset, value.Item2, formatterResolver); offset += formatterResolver.GetFormatterWithVerify().Serialize(ref bytes, offset, value.Item3, formatterResolver); offset += formatterResolver.GetFormatterWithVerify().Serialize(ref bytes, offset, value.Item4, formatterResolver); return offset - startOffset; } } public Tuple Deserialize(byte[] bytes, int offset, IFormatterResolver formatterResolver, out int readSize) { if (MessagePackBinary.IsNil(bytes, offset)) { readSize = 1; return null; } else { var startOffset = offset; var count = MessagePackBinary.ReadArrayHeader(bytes, offset, out readSize); if (count != 4) throw new InvalidOperationException("Invalid Tuple count"); offset += readSize; var item1 = formatterResolver.GetFormatterWithVerify().Deserialize(bytes, offset, formatterResolver, out readSize); offset += readSize; var item2 = formatterResolver.GetFormatterWithVerify().Deserialize(bytes, offset, formatterResolver, out readSize); offset += readSize; var item3 = formatterResolver.GetFormatterWithVerify().Deserialize(bytes, offset, formatterResolver, out readSize); offset += readSize; var item4 = formatterResolver.GetFormatterWithVerify().Deserialize(bytes, offset, formatterResolver, out readSize); offset += readSize; readSize = offset - startOffset; return new Tuple(item1, item2, item3, item4); } } } public sealed class TupleFormatter : IMessagePackFormatter> { public int Serialize(ref byte[] bytes, int offset, Tuple value, IFormatterResolver formatterResolver) { if (value == null) { return MessagePackBinary.WriteNil(ref bytes, offset); } else { var startOffset = offset; offset += MessagePackBinary.WriteArrayHeader(ref bytes, offset, 5); offset += formatterResolver.GetFormatterWithVerify().Serialize(ref bytes, offset, value.Item1, formatterResolver); offset += formatterResolver.GetFormatterWithVerify().Serialize(ref bytes, offset, value.Item2, formatterResolver); offset += formatterResolver.GetFormatterWithVerify().Serialize(ref bytes, offset, value.Item3, formatterResolver); offset += formatterResolver.GetFormatterWithVerify().Serialize(ref bytes, offset, value.Item4, formatterResolver); offset += formatterResolver.GetFormatterWithVerify().Serialize(ref bytes, offset, value.Item5, formatterResolver); return offset - startOffset; } } public Tuple Deserialize(byte[] bytes, int offset, IFormatterResolver formatterResolver, out int readSize) { if (MessagePackBinary.IsNil(bytes, offset)) { readSize = 1; return null; } else { var startOffset = offset; var count = MessagePackBinary.ReadArrayHeader(bytes, offset, out readSize); if (count != 5) throw new InvalidOperationException("Invalid Tuple count"); offset += readSize; var item1 = formatterResolver.GetFormatterWithVerify().Deserialize(bytes, offset, formatterResolver, out readSize); offset += readSize; var item2 = formatterResolver.GetFormatterWithVerify().Deserialize(bytes, offset, formatterResolver, out readSize); offset += readSize; var item3 = formatterResolver.GetFormatterWithVerify().Deserialize(bytes, offset, formatterResolver, out readSize); offset += readSize; var item4 = formatterResolver.GetFormatterWithVerify().Deserialize(bytes, offset, formatterResolver, out readSize); offset += readSize; var item5 = formatterResolver.GetFormatterWithVerify().Deserialize(bytes, offset, formatterResolver, out readSize); offset += readSize; readSize = offset - startOffset; return new Tuple(item1, item2, item3, item4, item5); } } } public sealed class TupleFormatter : IMessagePackFormatter> { public int Serialize(ref byte[] bytes, int offset, Tuple value, IFormatterResolver formatterResolver) { if (value == null) { return MessagePackBinary.WriteNil(ref bytes, offset); } else { var startOffset = offset; offset += MessagePackBinary.WriteArrayHeader(ref bytes, offset, 6); offset += formatterResolver.GetFormatterWithVerify().Serialize(ref bytes, offset, value.Item1, formatterResolver); offset += formatterResolver.GetFormatterWithVerify().Serialize(ref bytes, offset, value.Item2, formatterResolver); offset += formatterResolver.GetFormatterWithVerify().Serialize(ref bytes, offset, value.Item3, formatterResolver); offset += formatterResolver.GetFormatterWithVerify().Serialize(ref bytes, offset, value.Item4, formatterResolver); offset += formatterResolver.GetFormatterWithVerify().Serialize(ref bytes, offset, value.Item5, formatterResolver); offset += formatterResolver.GetFormatterWithVerify().Serialize(ref bytes, offset, value.Item6, formatterResolver); return offset - startOffset; } } public Tuple Deserialize(byte[] bytes, int offset, IFormatterResolver formatterResolver, out int readSize) { if (MessagePackBinary.IsNil(bytes, offset)) { readSize = 1; return null; } else { var startOffset = offset; var count = MessagePackBinary.ReadArrayHeader(bytes, offset, out readSize); if (count != 6) throw new InvalidOperationException("Invalid Tuple count"); offset += readSize; var item1 = formatterResolver.GetFormatterWithVerify().Deserialize(bytes, offset, formatterResolver, out readSize); offset += readSize; var item2 = formatterResolver.GetFormatterWithVerify().Deserialize(bytes, offset, formatterResolver, out readSize); offset += readSize; var item3 = formatterResolver.GetFormatterWithVerify().Deserialize(bytes, offset, formatterResolver, out readSize); offset += readSize; var item4 = formatterResolver.GetFormatterWithVerify().Deserialize(bytes, offset, formatterResolver, out readSize); offset += readSize; var item5 = formatterResolver.GetFormatterWithVerify().Deserialize(bytes, offset, formatterResolver, out readSize); offset += readSize; var item6 = formatterResolver.GetFormatterWithVerify().Deserialize(bytes, offset, formatterResolver, out readSize); offset += readSize; readSize = offset - startOffset; return new Tuple(item1, item2, item3, item4, item5, item6); } } } public sealed class TupleFormatter : IMessagePackFormatter> { public int Serialize(ref byte[] bytes, int offset, Tuple value, IFormatterResolver formatterResolver) { if (value == null) { return MessagePackBinary.WriteNil(ref bytes, offset); } else { var startOffset = offset; offset += MessagePackBinary.WriteArrayHeader(ref bytes, offset, 7); offset += formatterResolver.GetFormatterWithVerify().Serialize(ref bytes, offset, value.Item1, formatterResolver); offset += formatterResolver.GetFormatterWithVerify().Serialize(ref bytes, offset, value.Item2, formatterResolver); offset += formatterResolver.GetFormatterWithVerify().Serialize(ref bytes, offset, value.Item3, formatterResolver); offset += formatterResolver.GetFormatterWithVerify().Serialize(ref bytes, offset, value.Item4, formatterResolver); offset += formatterResolver.GetFormatterWithVerify().Serialize(ref bytes, offset, value.Item5, formatterResolver); offset += formatterResolver.GetFormatterWithVerify().Serialize(ref bytes, offset, value.Item6, formatterResolver); offset += formatterResolver.GetFormatterWithVerify().Serialize(ref bytes, offset, value.Item7, formatterResolver); return offset - startOffset; } } public Tuple Deserialize(byte[] bytes, int offset, IFormatterResolver formatterResolver, out int readSize) { if (MessagePackBinary.IsNil(bytes, offset)) { readSize = 1; return null; } else { var startOffset = offset; var count = MessagePackBinary.ReadArrayHeader(bytes, offset, out readSize); if (count != 7) throw new InvalidOperationException("Invalid Tuple count"); offset += readSize; var item1 = formatterResolver.GetFormatterWithVerify().Deserialize(bytes, offset, formatterResolver, out readSize); offset += readSize; var item2 = formatterResolver.GetFormatterWithVerify().Deserialize(bytes, offset, formatterResolver, out readSize); offset += readSize; var item3 = formatterResolver.GetFormatterWithVerify().Deserialize(bytes, offset, formatterResolver, out readSize); offset += readSize; var item4 = formatterResolver.GetFormatterWithVerify().Deserialize(bytes, offset, formatterResolver, out readSize); offset += readSize; var item5 = formatterResolver.GetFormatterWithVerify().Deserialize(bytes, offset, formatterResolver, out readSize); offset += readSize; var item6 = formatterResolver.GetFormatterWithVerify().Deserialize(bytes, offset, formatterResolver, out readSize); offset += readSize; var item7 = formatterResolver.GetFormatterWithVerify().Deserialize(bytes, offset, formatterResolver, out readSize); offset += readSize; readSize = offset - startOffset; return new Tuple(item1, item2, item3, item4, item5, item6, item7); } } } public sealed class TupleFormatter : IMessagePackFormatter> { public int Serialize(ref byte[] bytes, int offset, Tuple value, IFormatterResolver formatterResolver) { if (value == null) { return MessagePackBinary.WriteNil(ref bytes, offset); } else { var startOffset = offset; offset += MessagePackBinary.WriteArrayHeader(ref bytes, offset, 8); offset += formatterResolver.GetFormatterWithVerify().Serialize(ref bytes, offset, value.Item1, formatterResolver); offset += formatterResolver.GetFormatterWithVerify().Serialize(ref bytes, offset, value.Item2, formatterResolver); offset += formatterResolver.GetFormatterWithVerify().Serialize(ref bytes, offset, value.Item3, formatterResolver); offset += formatterResolver.GetFormatterWithVerify().Serialize(ref bytes, offset, value.Item4, formatterResolver); offset += formatterResolver.GetFormatterWithVerify().Serialize(ref bytes, offset, value.Item5, formatterResolver); offset += formatterResolver.GetFormatterWithVerify().Serialize(ref bytes, offset, value.Item6, formatterResolver); offset += formatterResolver.GetFormatterWithVerify().Serialize(ref bytes, offset, value.Item7, formatterResolver); offset += formatterResolver.GetFormatterWithVerify().Serialize(ref bytes, offset, value.Rest, formatterResolver); return offset - startOffset; } } public Tuple Deserialize(byte[] bytes, int offset, IFormatterResolver formatterResolver, out int readSize) { if (MessagePackBinary.IsNil(bytes, offset)) { readSize = 1; return null; } else { var startOffset = offset; var count = MessagePackBinary.ReadArrayHeader(bytes, offset, out readSize); if (count != 8) throw new InvalidOperationException("Invalid Tuple count"); offset += readSize; var item1 = formatterResolver.GetFormatterWithVerify().Deserialize(bytes, offset, formatterResolver, out readSize); offset += readSize; var item2 = formatterResolver.GetFormatterWithVerify().Deserialize(bytes, offset, formatterResolver, out readSize); offset += readSize; var item3 = formatterResolver.GetFormatterWithVerify().Deserialize(bytes, offset, formatterResolver, out readSize); offset += readSize; var item4 = formatterResolver.GetFormatterWithVerify().Deserialize(bytes, offset, formatterResolver, out readSize); offset += readSize; var item5 = formatterResolver.GetFormatterWithVerify().Deserialize(bytes, offset, formatterResolver, out readSize); offset += readSize; var item6 = formatterResolver.GetFormatterWithVerify().Deserialize(bytes, offset, formatterResolver, out readSize); offset += readSize; var item7 = formatterResolver.GetFormatterWithVerify().Deserialize(bytes, offset, formatterResolver, out readSize); offset += readSize; var item8 = formatterResolver.GetFormatterWithVerify().Deserialize(bytes, offset, formatterResolver, out readSize); offset += readSize; readSize = offset - startOffset; return new Tuple(item1, item2, item3, item4, item5, item6, item7, item8); } } } } #endif