You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
73 lines
1.8 KiB
73 lines
1.8 KiB
4 years ago
|
using System;
|
||
|
|
||
|
namespace MessagePack
|
||
|
{
|
||
|
public struct Nil : IEquatable<Nil>
|
||
|
{
|
||
|
public static readonly Nil Default = new Nil();
|
||
|
|
||
|
public override bool Equals(object obj)
|
||
|
{
|
||
|
return obj is Nil;
|
||
|
}
|
||
|
|
||
|
public bool Equals(Nil other)
|
||
|
{
|
||
|
return true;
|
||
|
}
|
||
|
|
||
|
public override int GetHashCode()
|
||
|
{
|
||
|
return 0;
|
||
|
}
|
||
|
|
||
|
public override string ToString()
|
||
|
{
|
||
|
return "()";
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
namespace MessagePack.Formatters
|
||
|
{
|
||
|
public class NilFormatter : IMessagePackFormatter<Nil>
|
||
|
{
|
||
|
public static readonly IMessagePackFormatter<Nil> Instance = new NilFormatter();
|
||
|
|
||
|
NilFormatter()
|
||
|
{
|
||
|
|
||
|
}
|
||
|
|
||
|
public int Serialize(ref byte[] bytes, int offset, Nil value, IFormatterResolver typeResolver)
|
||
|
{
|
||
|
return MessagePackBinary.WriteNil(ref bytes, offset);
|
||
|
}
|
||
|
|
||
|
public Nil Deserialize(byte[] bytes, int offset, IFormatterResolver typeResolver, out int readSize)
|
||
|
{
|
||
|
return MessagePackBinary.ReadNil(bytes, offset, out readSize);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// NullableNil is same as Nil.
|
||
|
public class NullableNilFormatter : IMessagePackFormatter<Nil?>
|
||
|
{
|
||
|
public static readonly IMessagePackFormatter<Nil?> Instance = new NullableNilFormatter();
|
||
|
|
||
|
NullableNilFormatter()
|
||
|
{
|
||
|
|
||
|
}
|
||
|
|
||
|
public int Serialize(ref byte[] bytes, int offset, Nil? value, IFormatterResolver typeResolver)
|
||
|
{
|
||
|
return MessagePackBinary.WriteNil(ref bytes, offset);
|
||
|
}
|
||
|
|
||
|
public Nil? Deserialize(byte[] bytes, int offset, IFormatterResolver typeResolver, out int readSize)
|
||
|
{
|
||
|
return MessagePackBinary.ReadNil(bytes, offset, out readSize);
|
||
|
}
|
||
|
}
|
||
|
}
|