public static void WriteBytes(this IByteConverter converter, ulong value, Action <byte> writeByte)
    {
        SharedContracts(converter, writeByte);

        PrepareBuffer();
        converter.CopyBytes(value, threadLocalBuffer, 0);
        WriteBytes(writeByte, ByteLength.ULong);
    }
    public static void CopyBytes(this IByteConverter converter, ulong value, byte[] buffer, int index)
    {
        Contracts.Requires.That(converter != null);

        converter.CopyBytes(value, buffer, ref index);
    }